自宅で検証できそうなスペックに合わせたNSX-Tのインストール手順を紹介します。NSX Manager 3台, NSX Edge 2台, ESXi 2台, vCenter 1台の構成で、このページではNSX EdgeのTier-0ゲートウェイと物理ルータ間でダイナミックルーティングを確立する方法をまとめます。
構築範囲
このページでは、NSX EdgeのTier-0ゲートウェイと物理ルータ間でダイナミックルーティングを確立し、NSX-T内の仮想マシンが物理ネットワークと疎通可能な状態にします。構築範囲を図示すると以下の範囲です。
ダイナミックルーティング
NSX-Tの設定
NSX-TはBGPまたはOSPFによるダイナミックルーティングが可能です。
OSPFが使用可能なのはNSX-T 3.1.0以降です。
「ネットワーク」「Tier-0ゲートウェイ」「対象のTier-0ゲートウェイ 3点リーダ」「編集」の順に押下します。
「ルーティング」のタブを開きます。
「(BGPネイバーの)設定」を押下します。
「BGIネイバーの追加」を押下します。
「IPアドレス」には対向機器のIPアドレスを入力し、「リモートASの番号」は対向機器のAS番号を入力します。「送信元アドレス」には、NSX Edgeを台数分だけ指定します。
デフォルト設定のホールドダウン180秒, キープアライブ30秒を待ちきれない場合は、タイマーをチューニングします。以下スクリーンショットでは30秒, 10秒としています。
設定完了後、「保存」を押下します。
「初期化されていません」をクリックします。設定に問題ない場合は「成功」に変わります。
「成功」と表示されることを確認します。
動作確認
物理ルータにBGPの設定を入れます。以下はNEC IXを使用した場合の設定例です。
router bgp 65000 timers 10 30 neighbor 192.168.3.132 remote-as 65000 neighbor 192.168.3.131 remote-as 65000
NSX-TとBGP neighborを確立できていることを確認します。
この時点でNSX-Tからprefixを受信できていませんが、正常な挙動です。NSX-T側での再配送が未設定のためです。
nec-ix01(config)# show ip bgp summary BGP router ID 192.168.4.1, local AS number 65000 1 BGP AS-PATH entries Neighbor V AS MsgRcvd MsgSent Up/DownTime State 192.168.3.131 4 65000 38 36 0:04:43 ESTABLISHED 192.168.3.132 4 65000 42 42 0:04:47 ESTABLISHED Total number of neighbors 2
再配送(再配分)
NSX-Tの設定
再配送を設定し、NSX-Tと物理ルータ間で互いにprefixを交換できるようにします。Tier-0ゲートウェイの設定画面で「ルート再配分」のプルダウンを開きます。その後、「(ルート再配分の)設定」を押下します。
redistributeの訳語として「再配送」「再配分」などの用語が見られます。ヴイエムウェア社だけは「再配分」との訳語にしていますが、かなり少数派の言い回しのため、当サイトでは「再配分」との言葉は使用しません。
「ルート再配分の追加」を押下します。
「名前」に設定内容を意味する何か分かりやすい名前を入力し、「(ルート再配分の)設定」を押下します。
再配送すべきprefixにチェックを入れ、「適用」を押下します。
「追加」を押下します。
「適用」を押下します。
「保存」を押下します。
動作確認
物理ルータにもprefixをadvertiseする設定を入れます。以下はNEC IXを使用した場合の設定例です。
router bgp 65000 address-family ipv4 unicast originate-default network 192.168.1.0/24
NSX-TからBGPによるprefixを受信しルーティングテーブルに載せていることを確認します。
nec-ix01(config)# show ip route IP Routing Table - 12 entries, 1 hidden, 2035 frees Entries: 5 Connected, 3 Static, 0 RIP, 0 OSPF, 4 BGP Codes: C - Connected, S - Static, R - RIP, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2, B - BGP * - Candidate default, s - Summary Timers: Age S* 0.0.0.0/0 [0/1] via 42.144.44.1, GigaEthernet0.0, 8:29:40 S 10.0.0.0/8 [1/1] via 192.168.1.10, GigaEthernet1.0, 18d19h54m3s 42.0.0.0/8 is subnetted, 1 subnets C 42.144.44.0/22 [0/1] is directly connected, GigaEthernet0.0, 8:29:40 S 192.168.0.0/16 [1/1] via 192.168.1.10, GigaEthernet1.0, 18d19h54m3s C 192.168.1.0/24 [0/1] is directly connected, GigaEthernet1.0, 18d19h54m3s C 192.168.2.0/24 [0/1] is directly connected, GigaEthernet1.2, 15d12h34m9s C 192.168.3.0/24 [0/1] is directly connected, GigaEthernet1.3, 15d12h34m3s C 192.168.4.0/24 [0/1] is directly connected, GigaEthernet1.4, 15d12h34m B 192.168.50.0/24 [200/0] via 192.168.3.131, GigaEthernet1.3, 0:00:03 B 192.168.51.0/24 [200/0] via 192.168.3.131, GigaEthernet1.3, 0:00:03 B 192.168.60.0/24 [200/0] via 192.168.3.131, GigaEthernet1.3, 0:00:03 B 192.168.61.0/24 [200/0] via 192.168.3.131, GigaEthernet1.3, 0:00:03 nec-ix01(config)#
NSX Edgeにログインし、ルーティングテーブルを確認します。物理ルータがadvertiseしたprefixが確かにルーティングテーブルに載っていることを確認します。
nsx-edge131> get logical-router Mon May 03 2021 UTC 02:59:35.739 Logical Router UUID VRF LR-ID Name Type Ports Neighbors 736a80e3-23f6-5a2d-81d6-bbefb2786666 0 0 TUNNEL 3 3/5000 8933db2c-671a-43df-b300-262ac8fd7b30 1 2 SR-t0-router SERVICE_ROUTER_TIER0 6 2/50000 112a9659-8c91-433a-8788-f804716fdfa1 3 4 DR-t1-router5X DISTRIBUTED_ROUTER_TIER1 5 0/50000 bb48d269-9fb6-472d-8b35-d008c3b6d457 4 1 DR-t0-router DISTRIBUTED_ROUTER_TIER0 6 0/50000 867f79b4-44b2-4819-8d59-0013c0d60394 5 5 SR-t1-router5X SERVICE_ROUTER_TIER1 5 2/50000 ad6ce737-b388-403f-ae1a-ab7d9c975ebd 6 6 DR-t1-router6X DISTRIBUTED_ROUTER_TIER1 5 0/50000 38830c7f-4914-4a3a-b90d-74f4f97ba59f 7 7 SR-t1-router6X SERVICE_ROUTER_TIER1 5 2/50000 nsx-edge131> get logical-router 8933db2c-671a-43df-b300-262ac8fd7b30 route Flags: t0c - Tier0-Connected, t0s - Tier0-Static, b - BGP, o - OSPF t0n - Tier0-NAT, t1s - Tier1-Static, t1c - Tier1-Connected, t1n: Tier1-NAT, t1l: Tier1-LB VIP, t1ls: Tier1-LB SNAT, t1d: Tier1-DNS FORWARDER, t1ipsec: Tier1-IPSec, isr: Inter-SR, > - selected route, * - FIB route Total number of routes: 15 b > * 0.0.0.0/0 [200/1] via 192.168.3.1, uplink-291, 00:01:04 t0c> * 100.64.128.0/31 is directly connected, downlink-297, 02:10:34 t0c> * 100.64.128.2/31 is directly connected, downlink-281, 02:10:34 t0c> * 169.254.0.0/25 is directly connected, downlink-283, 00:09:08 isr> * 169.254.0.128/25 is directly connected, inter-sr-301, 02:10:34 b > * 192.168.1.0/24 [200/1] via 192.168.3.1, uplink-291, 00:01:57 t0c> * 192.168.3.0/24 is directly connected, uplink-291, 02:10:34 isr> * 192.168.3.132/32 [200/0] via 169.254.0.131, inter-sr-301, 02:10:31 t1c> * 192.168.50.0/24 [3/0] via 100.64.128.1, downlink-297, 01:03:14 t1c> * 192.168.51.0/24 [3/0] via 100.64.128.1, downlink-297, 01:03:14 t1c> * 192.168.60.0/24 [3/0] via 100.64.128.3, downlink-281, 01:03:02 t1c> * 192.168.61.0/24 [3/0] via 100.64.128.3, downlink-281, 01:03:02 t0c> * fc0f:d7fd:1b18:b000::/64 is directly connected, downlink-297, 02:10:34 t0c> * fc0f:d7fd:1b18:b001::/64 is directly connected, downlink-281, 02:10:34 t0c> * fe80::/64 is directly connected, downlink-297, 02:10:34 Mon May 03 2021 UTC 02:59:58.019 nsx-edge131>
最後にサーバ同士の疎通を確認します。centos40(192.168.1.40)から物理ルータ(192.168.1.1)とNSX Edge(192.168.3.31)を経由してcentos51(192.168.51.51)へ疎通可能なことを確認します。
[root@centos40 ~]# ping 192.168.51.51 -c 3 PING 192.168.51.51 (192.168.51.51) 56(84) bytes of data. 64 bytes from 192.168.51.51: icmp_seq=1 ttl=61 time=1.08 ms 64 bytes from 192.168.51.51: icmp_seq=2 ttl=61 time=1.03 ms 64 bytes from 192.168.51.51: icmp_seq=3 ttl=61 time=1.24 ms --- 192.168.51.51 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 4ms rtt min/avg/max/mdev = 1.034/1.117/1.241/0.093 ms [root@centos40 ~]# [root@centos40 ~]# [root@centos40 ~]# [root@centos40 ~]# traceroute 192.168.51.51 traceroute to 192.168.51.51 (192.168.51.51), 30 hops max, 60 byte packets 1 _gateway (192.168.1.1) 0.417 ms 0.401 ms 0.377 ms 2 192.168.3.131 (192.168.3.131) 33.481 ms 33.461 ms 33.449 ms 3 100.64.128.1 (100.64.128.1) 0.977 ms 0.960 ms 0.919 ms 4 192.168.51.51 (192.168.51.51) 1.269 ms !X 1.634 ms !X 1.617 ms !X [root@centos40 ~]#
補足説明
自動化
BGP neighborの設定
BGP neighborを設定するRest API操作は以下の通りです。GUI上では表示されませんが、内部的にはneighborの設定ごとにIDを持つようです。以下の操作ではIDを「01」にしています。
curl --request PUT -d @- \ -u admin:P@ssw0rdP@ssw0rd \ --header "Content-Type:application/json" \ -k https://192.168.1.121/policy/api/v1/infra/tier-0s/t0-router/locale-services/default/bgp/neighbors/01 << EOF { "source_addresses" : [ "192.168.3.131", "192.168.3.132" ], "neighbor_address" : "192.168.3.1", "remote_as_num" : "65000", "keep_alive_time" : 10, "hold_down_time" : 30, "resource_type" : "BgpNeighborConfig", "display_name" : "01" } EOF
再配送の設定
再配送を設定するRest API操作は以下の通りです。
curl --request PATCH -d @- \ -u admin:P@ssw0rdP@ssw0rd \ --header "Content-Type:application/json" \ -k https://192.168.1.121/policy/api/v1/infra/tier-0s/t0-router/locale-services/default << EOF { "route_redistribution_config" : { "bgp_enabled" : true, "ospf_enabled" : true, "redistribution_rules" : [ { "name" : "rule01", "route_redistribution_types" : [ "TIER1_CONNECTED" ], "destinations" : [ "BGP" ] } ] } } EOF