NSX-T 3.1.2 最小限構成のインストール方法 (6/7) Tier-1ゲートウェイとセグメントの作成

スポンサーリンク

自宅で検証できそうなスペックに合わせたNSX-Tのインストール手順を紹介します。NSX Manager 3台, NSX Edge 2台, ESXi 2台, vCenter 1台の構成で、このページではT1ゲートウェイとセグメントの作成をまとめます。

構築範囲

このページでは、セグメントを作成し仮想マシン間の疎通可能な状態まで構築します。構築範囲を図示すると以下の範囲です。

NSX-T 構築範囲の説明

NSX-T ネットワーク関連の設定

Tier-1ゲートウェイの作成

「ネットワーク」「Tier-1ゲートウェイ」「Tier-1ゲートウェイの追加」の順に押下します。

T1ゲートウェイの作成 01

「Tier-0ゲートウェイ」を入力し、「リンクされたTier-0ゲートウェイ」は前述の操作で作成したTier-0ゲートウェイを指定します。Edgeクラスタも前述の操作で作成したクラスタを指定します。

Tier-0ゲートウェイとTier-1ゲートウェイをリンクさせないと、Tier-1ゲートウェイ間の疎通が不能になります。

T1ゲートウェイの作成 02

「ルートアドバタイズ」を押下し、プルダウンを開きます。

T1ゲートウェイの作成 03

「接続されているすべてのセグメントおよびサービスポート」を有効にします。

これを有効にしないと異なるTier-1ゲートウェイ間の疎通が不能になります。

T1ゲートウェイの作成 04

「保存」を押下します。

T1ゲートウェイの作成 05

同様の操作を繰り返し、もう1つTier-1ゲートウェイを作成します。

T1ゲートウェイの作成 06

セグメントの作成

「ネットワーク」「セグメント」「セグメント」「セグメントの追加」の順に押下します。

セグメント作成 01

「セグメント名」は何か分かりやすい名前を、「接続せれたゲートウェイ」は「Tier-0ゲートウェイ」を、「トランスポートゾーン」はオーバーレイのトランスポートゾーンを、「サブネット」はサーバのデフォルトゲートウェイとなるIPアドレスとサブネットマスクを指定します。

セグメント作成 02

「保存」を押下します。

セグメント作成 03

同様の操作を繰り返し、以下のセグメントを作成します。

セグメント作成 04

疎通確認

仮想マシン作成

以上のセグメント作成を完了すると、仮想マシンを構築するときにNSX-Tのセグメントをポートグループとして指定することができます。動作確認のために仮想マシンを作成します。

仮想マシンの作成 01

ポートグループ指定のプルダウンメニューを開きます。

仮想マシンの作成 02

NSX-Tで作成したセグメントの指定が可能になっていることを確認します。

仮想マシンの作成 03

NSX-Tで作成したセグメントを仮想マシンへ設定できたことを確認します。

仮想マシンの作成 04

pingなどの疎通確認

異なるセグメントへ疎通可能になったことを確認します。

この時点では仮想マシンはNSX-T外の物理ルータなどを疎通できる状態ではありません。コンソール経由でログインし疎通確認してください。以下のテキストベースのログは後述の「NSX-T 3.1.2 最小限構成のインストール方法 (7/7)」が完了してから採取したものです。

[root@centos50 ~]# 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=63 time=3.75 ms
64 bytes from 192.168.51.51: icmp_seq=2 ttl=63 time=0.763 ms
64 bytes from 192.168.51.51: icmp_seq=3 ttl=63 time=0.696 ms

--- 192.168.51.51 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 15ms
rtt min/avg/max/mdev = 0.696/1.735/3.746/1.422 ms
[root@centos50 ~]# 
[root@centos50 ~]# 
[root@centos50 ~]# ping 192.168.60.60 -c 3
PING 192.168.60.60 (192.168.60.60) 56(84) bytes of data.
64 bytes from 192.168.60.60: icmp_seq=1 ttl=61 time=1.37 ms
64 bytes from 192.168.60.60: icmp_seq=2 ttl=61 time=0.996 ms
64 bytes from 192.168.60.60: icmp_seq=3 ttl=61 time=0.820 ms

--- 192.168.60.60 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 5ms
rtt min/avg/max/mdev = 0.820/1.060/1.366/0.230 ms
[root@centos50 ~]# 
[root@centos50 ~]# 
[root@centos50 ~]# tracepath 192.168.51.51
 1?: [LOCALHOST]                      pmtu 1500
 1:  _gateway                                              0.250ms asymm 64 
 1:  _gateway                                              0.205ms asymm 64 
 2:  192.168.51.51                                         1.254ms !H
     Resume: pmtu 1500 
[root@centos50 ~]# 
[root@centos50 ~]# 
[root@centos50 ~]# tracepath 192.168.60.60
 1?: [LOCALHOST]                      pmtu 1500
 1:  _gateway                                              0.315ms asymm 64 
 1:  _gateway                                              0.236ms asymm 64 
 2:  100.64.128.0                                          0.622ms 
 3:  100.64.128.3                                          0.368ms 
 4:  192.168.60.60                                         1.236ms !H
     Resume: pmtu 1500 
[root@centos50 ~]# 

疎通確認

補足説明

トラブル調査

トンネルの確立異常

以下ログのような同一筐体内の仮想マシンは疎通可能であるものの別筐体の仮想マシンが疎通不能となる場合は、ホストトランスポートノード(ESXi)のトンネル設定に誤りがある可能性を疑います。

[root@centos50 ~]# ping -c 3 192.168.60.60
PING 192.168.60.60 (192.168.60.60) 56(84) bytes of data.
64 bytes from 192.168.60.60: icmp_seq=1 ttl=61 time=2.73 ms
64 bytes from 192.168.60.60: icmp_seq=2 ttl=61 time=0.845 ms
64 bytes from 192.168.60.60: icmp_seq=3 ttl=61 time=0.874 ms

--- 192.168.60.60 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 5ms
rtt min/avg/max/mdev = 0.845/1.481/2.725/0.880 ms
[root@centos50 ~]# 
[root@centos50 ~]# 
[root@centos50 ~]# ping -c 3 192.168.51.51
PING 192.168.51.51 (192.168.51.51) 56(84) bytes of data.

--- 192.168.51.51 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 109ms

[root@centos50 ~]# 
[root@centos50 ~]# 
[root@centos50 ~]# ping -c 3 192.168.61.61
PING 192.168.61.61 (192.168.61.61) 56(84) bytes of data.

--- 192.168.61.61 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 70ms

[root@centos50 ~]# 

トンネルに異常があるかどうかは「システム」「ファブリック」「ノード」「ホストトランスポートノード」の順に押下して現れるホストトランスポートノード一覧の画面を確認します。「トンネル」欄で正常に確立されたトンネルが緑で表示され、異常があるトンネルが赤で表示されます。

以下スクリーンショットの例ならば、「192.168.1.141」は正常に確立されたトンネルがあるものの、「192.168.1.142」は全てのトンネルが異常であることが読み取れます。このような場合ならば、「192.168.1.142」の設定誤りである可能性を考えます。

ホストトランスポートノードのトラブルシューティング 01

ここでホストトランスポートノード名をクリックすると、より詳細な画面へ遷移できます。

ホストトランスポートノードのトラブルシューティング 02

以下スクリーンショットの場合ならば、「192.168.2.141」と「192.168.2.142」の間が疎通不能になっていることが読み取れます。

ホストトランスポートノードのトラブルシューティング 03

設定誤りを修正する場合はESXiの再インストールからやり直す必要はありません。ホストトランスポートノードの一覧画面にて、修正対象のホストトランスポートノードにチェックを入れ「NSXの設定」を押下します。

ホストトランスポートノードのトラブルシューティング 04

設定誤りのある部分を修正し、「終了」を押下します。

疎通は比較的早く回復しますが、表示が「正常(緑色)」に変わるには5分, 10分の時間を要します。表示が変わらなくても正常な設定の可能性がありますので、気長に待ちましょう。

ホストトランスポートノードのトラブルシューティング 05

GUIルーティングテーブル確認

「ネットワーク」「ネットワーク トポロジ」の順に押下すると、機械的に生成されたネットワークの俯瞰図を見ることができます。

NSX-T ルーティングテーブルの調査 01

ここでTier-0ゲートウェイやTier-1ゲートウェイを押下すると、「フォワーディングテーブル(ルーティングテーブル)ダウンロード」などの解析メニューが現れます。「フォワーディングテーブル ダウンロード」を押下します。

NSX-T ルーティングテーブルの調査 02

どの機器のフォワーディングテーブルをダウンロードするかを指定し、「ダウンロード」を押下します。

厳密に言えば、Tier-0ゲートウェイやTier-1ゲートウェイはSR(サービスルータ)とDR(分散ルータ)の2つのアーキテクチャで構成されます。NSX Edgeに配置されるのがSRで、各ホストトランスポートノードに分散されて配置されるのがDRです。

NSX-T ルーティングテーブルの調査 03

ダウンロードされたルーティングテーブルはcsv形式になっています。

NSX-T ルーティングテーブルの調査 04

CLIルーティングテーブル確認

NSX Edgeにadminユーザでログインすれば、CLI操作でルーティングテーブルを確認することもできます。

まずは「get logical-router」コマンドで調査対象のUUIDを調べます。

nsxt-manager121> get logical-router
Mon May 03 2021 UTC 01:57:50.952
LR-ID    LR-Name           Router-Type                 ClusterId                               UUID                                    

0x6      DR-t1-router6X    DISTRIBUTED_ROUTER_TIER1                                            ad6ce737-b388-403f-ae1a-ab7d9c975ebd    
0x1      DR-t0-router      DISTRIBUTED_ROUTER_TIER0                                            bb48d269-9fb6-472d-8b35-d008c3b6d457    
0x5      SR-t1-router5X    SERVICE_ROUTER_TIER1        00002000-0000-0000-0000-000000000004    867f79b4-44b2-4819-8d59-0013c0d60394    
0x3      SR-t0-router      SERVICE_ROUTER_TIER0        00002000-0000-0000-0000-000000000001    85841971-4f5b-4404-8150-10a1553cda9d    
0x4      DR-t1-router5X    DISTRIBUTED_ROUTER_TIER1                                            112a9659-8c91-433a-8788-f804716fdfa1    
0x2      SR-t0-router      SERVICE_ROUTER_TIER0        00002000-0000-0000-0000-000000000001    8933db2c-671a-43df-b300-262ac8fd7b30    
0x7      SR-t1-router6X    SERVICE_ROUTER_TIER1        00002000-0000-0000-0000-000000000006    38830c7f-4914-4a3a-b90d-74f4f97ba59f

引数にUUIDを指定すると、以下のようにルーティングテーブルを閲覧することができます。

nsxt-manager121> get logical-router ad6ce737-b388-403f-ae1a-ab7d9c975ebd route
Mon May 03 2021 UTC 01:59:06.320
Router/Cluster-UUID                     Destination        Next-Hop                   LR-Port-Id                              Blackhole    Blackhole-Action    Route-Type       Admin-Distance    Admin-State-Up    Route-UUID                              

ad6ce737-b388-403f-ae1a-ab7d9c975ebd    192.168.60.0/24    N/A                        da47d72a-9c59-439d-bead-f83293c97b48    false        N/A                 CONNECTED        0                 true              fc906c1a-e9da-4b00-93d0-52a8786fe6b7    
ad6ce737-b388-403f-ae1a-ab7d9c975ebd    ::/0               fe80::50:56ff:fe56:5300    8bfcc44f-f41f-443b-a5c8-6ddfea77102e    false        N/A                 NSX_CONNECTED    250               true              f706ef35-b246-4aa8-b12d-8b54d665f404    
ad6ce737-b388-403f-ae1a-ab7d9c975ebd    169.254.0.0/28     N/A                        8bfcc44f-f41f-443b-a5c8-6ddfea77102e    false        N/A                 CONNECTED        0                 true              b268c4a8-52a6-437c-a5fa-2d9b3d895dc4    
ad6ce737-b388-403f-ae1a-ab7d9c975ebd    fe80::/64          N/A                        8bfcc44f-f41f-443b-a5c8-6ddfea77102e    false        N/A                 CONNECTED        0                 true              fa2ed313-a673-4db4-b046-21b278d04846    
ad6ce737-b388-403f-ae1a-ab7d9c975ebd    192.168.61.0/24    N/A                        d2d2b132-496b-4e49-acc8-b56989b77050    false        N/A                 CONNECTED        0                 true              c255a10b-dcd4-41cb-9e92-8480aba097ae    
ad6ce737-b388-403f-ae1a-ab7d9c975ebd    0.0.0.0/0          169.254.0.2                8bfcc44f-f41f-443b-a5c8-6ddfea77102e    false        N/A                 NSX_CONNECTED    250               true              2aed6d61-15ab-41dd-929b-d5293eb908df

補足説明

自動化

Tier-1ゲートウェイの作成

Tier-1ゲートウェイを作成するRest API操作は以下の通りです。

CLUSTER_NAME="cluster01"
CLUSTER_ID=$(curl --request GET \
  -u admin:P@ssw0rdP@ssw0rd \
  --header "Content-Type:application/json" \
  -k https://192.168.1.121/api/v1/edge-clusters \
  | jq -r --arg arg ${CLUSTER_NAME} ' .results[] | select ( .display_name == $arg ) | .id ' )

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-1s/t1-router5X << EOF
{
  "tier0_path" : "/infra/tier-0s/t0-router",
  "resource_type" : "Tier1",
  "display_name" : "t1-router5X",
  "route_advertisement_types" : [ "TIER1_CONNECTED" ]
}
EOF

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-1s/t1-router5X/locale-services/default << EOF
{
  "edge_cluster_path" : "/infra/sites/default/enforcement-points/default/edge-clusters/${CLUSTER_ID}",
  "resource_type" : "LocaleServices",
  "display_name" : "default"
}
EOF

セグメントの作成

セグメントを作成するRest API操作は以下の通りです。

TZ_OVERLAY_NAME="tz-overlay-01"
TZ_OVERLAY_ID=$(curl --request GET \
  -u admin:P@ssw0rdP@ssw0rd \
  --header "Content-Type:application/json" \
  -k https://192.168.1.121/api/v1/transport-zones \
  | jq -r --arg arg ${TZ_OVERLAY_NAME} ' .results[] | select ( .display_name == $arg ) | .id ' )

curl --request PUT -d @- \
  -u admin:P@ssw0rdP@ssw0rd \
  --header "Content-Type:application/json" \
  -k https://192.168.1.121/policy/api/v1/infra/segments/seg50 << EOF
{
  "type" : "ROUTED",
  "subnets" : [ {
    "gateway_address" : "192.168.50.1/24"
  } ],
  "vlan_ids" : [ "0" ],
  "connectivity_path" : "/infra/tier-1s/t1-router5X",
  "transport_zone_path" : "/infra/sites/default/enforcement-points/default/transport-zones/${TZ_OVERLAY_ID}",
  "resource_type" : "Segment",
  "display_name" : "seg50"
}
EOF
タイトルとURLをコピーしました