NSX-Tの負荷分散構成について考察します。(個人の見解としてはヴイエムウェア社のポジショントークと思っていますが)NSX-TはmLAG構成を非推奨としており、mLAGを使用しないで負荷分散を実現するには複雑な設定が必要です。入れ子となる負荷分散ポリシーを作成したり複数のIPアドレスを付与したりの操作が必要です。このページでは、NSX EdgeがNSX-T外のルータと接続する部分の冗長化設定を紹介します。
おそらくヴイエムウェア社は、CiscoやJuniperの既存ベンダーのシェアを奪いにいくため、彼らのテクノロジーを必要ないデザインパターンを推奨しているものと推測しています。ヴイエムウェア社の資料を見ると、単純なLayer3 Switchを前提とする設定例が多く、いわゆるmLAGが組めるネットワーク機器を前提とした設定例は少数派です。
「Physical Network Design Decisions」によると、「No EtherChannel (LAG/vPC) configuration for ESXi host uplinks」と書かれています。
構成図
「NSX-T オーバーレイの負荷分散(mLAGなし multiple TEP)」「NSX-T アップリンクの負荷分散(mLAGなし)」の併せて2記事で以下のような構成を組み上げます。
このページでは赤枠で囲まれた部分のNSX Edgeのアップリンクの負荷分散構成を説明します。
前提条件
ポートグループ
負荷分散と冗長化を実現するため、trunk01とtrunk02という名前で互いに入れ子構成となるポートグループを作成します。
trunk01は「アップリンク 1 (vmnic0)」を優先するように設定します。
trunk02は「アップリンク 2 (vmnic1)」を優先するように設定します。
NSX EdgeのvNIC追加
このシナリオではNSX Edgeは5つのvNICを必要とします。デフォルトの状態ではvNICは4つなので、5つ目のNICを追加します。
設定の反映には再起動が必要です。
再起動後に、NSX Edgeにadminユーザでログインし、5つ目のvNIC「fp-eth3」を認識していることを確認します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | nsx-edge131> get interface Tue May 11 2021 UTC 10:44:04.478 Interface: bond0 Address: unknown MAC address: 46:63:18:9e:4a:3b MTU: 1500 <omitted> Interface: fp-eth3 ID: 3 Link status: up MAC address: 00:50:56:b3:85:4b MTU: 1500 PCI: 0000:04:00:00 Offload Capabilities: TX_VLAN_INSERT TX_UDP_CKSUM TX_TCP_CKSUM TX_TCP_TSO RX_VLAN_STRIP RX_IPV4_CKSUM RX_UDP_CKSUM RX_TCP_CKSUM RX_TCP_LRO Polling Status: active Driver: net_vmxnet3 Rx queue: 2 Tx queue: 2 Socket: 0 RX packets: 1651 RX bytes: 117727 RX errors: 0 RX badcrc: unknown RX badlen: unknown RX misses: 0 RX nombufs: 0 RX pause xoff: unknown RX pause xon: unknown TX packets: 0 TX bytes: 0 TX errors: 0 TX pause xoff: unknown TX pause xon: unknown |
システム設定
アップリンクプロファイル
あるトラフィックvmnic0を優先させ、あるトラフィックをvmnic1を優先させます。互いに優先順位が入れ子になるようなアップリンクプロファイルを作成します。
「プロファイルの追加」を押下します。
何か分かりやすい名前を入力します。
チーミングの設定で「追加」を2回押下し、入力欄を2つ増やします。
NSX Edgeに対して使用できるデフォルトのチーミングポリシーのロードバランシングアルゴリズムは「ロードバランシングの送信元」のみです。これ以外のロードバランシングアルゴリズムを選択すると、この後のノードスイッチの設定画面において、アップリンクプロファイル選択のプルダウンメニューに現れません。
「ロードバランシングの送信元」を選択した後に、「アクティブアップリンク」にカンマ区切りでアップリンク名を2つ入力します。
その後、デフォルトではないチーミング設定に名前を付けたいのですが、操作には若干のコツを必要とします。デフォルトではチーミングの「アクティブアップリンク」をクリックした後に、Shift+Tabを2回押下すると、チーミングの名前入力欄にカーソルが移動します。
デフォルトではないチーミング設定に、何か分かりやすい名前を入力します。
最終的にアクティブとなるアップリンクが互いに入れ子となるような設定を作成します。
NSX Edgeはスタンバイリンクをサポートしないため、デフォルトではないチーミングポリシーは「アクティブリンク」のみを入力するようにし「スタンバイリンク」は入力しないようにしてください。
アップリンクプロファイルの設定全文は以下の通りです。
VLANトランスポートゾーン
アップリンクプロファイルにてチーミングポリシーを複数設定する場合は、VLANトランスポートゾーンとチーミングポリシーの紐付けをすることによって、セグメントごとに異なるチーミングポリシーを設定することができます。
「ゾーンの追加」を押下します。
「アップリンクチーミングポリシー」欄に、さきほど設定したチーミングポリシー名を入力します。
トランスポートゾーンの設定全文は以下の通りです。
ノードスイッチの設定
NSX Edgeに対してノードスイッチを設定します。
さきほどの操作で作成したアップリンクプロファイルとVLANトランスポートゾーンを適用します。
ノードスイッチの設定全文は以下の通りです。
Edgeクラスタ
以上の操作で作成されたNSX Edgeに対してクラスタを作成します。
Edgeクラスタの設定全文は以下の通りです。
ネットワーク設定
外部セグメント
「ネットワーク」「セグメント」「セグメント」の順に押下して表示されるセグメント一覧の画面で、「セグメントの追加」を押下します。
「セグメント名」や「トランスポートゾーン」を入力します。
「VLAN ID」と「アップリンクチーミングポリシー」を入力します。「アップリンクチーミングポリシー」にはVLANトランスポートゾーンに対して設定したチーミングポリシーを選択することが可能で、どのNICを優先させるかの指定が可能になります。
同様の設定を繰り替えし、「external-vlan3」「external-vlan4」の2つのセグメントを作成します。これら2つは互いに入れ子の設定になっており、「external-vlan3」は「vmnic2(uplink1)」を優先し、「external-vlan4」は「vmnic3(uplink2)」を優先します。
セグメントの設定全文は以下の通りです。
T0ゲートウェイ
T0ゲートウェイとループバックインターフェースを作成します。設定方法の詳細は「NSX-T VRFの作成」を参照ください。
まず、以下スクリーンショットのようにT0ゲートウェイを作成します。
次に、BGPのルータIDとなるループバックアドレスを定義します。
T0ゲートウェイの設定全文は以下の通りです。
インターフェースの設定全文は以下の通りです。
VRF
VRFと外部インターフェースを作成します。設定方法の詳細は「NSX-T VRFの作成」を参照ください。
まず、以下スクリーンショットのようにVRFを作成します。
vrf03にvlan3に所属するインターフェースを作成します。
vrf04にvlan4に所属するインターフェースを作成します。
VRFの設定全文は以下の通りです。
インターフェースの設定全文は以下の通りです。
動作確認
正常系
ESXiと物理ネットワーク機器の結線関係は以下の通りです。
vlan3はf0/1(vmnic0)へトラフィックが転送され、vlan4はf0/2(vmnic1)へトラフィックが転送されています。vlan単位の負荷分散を実現できていることが確認できます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | Switch#show arp vlan 3 Protocol Address Age (min) Hardware Addr Type Interface Internet 192.168.3.10 - c472.9559.9041 ARPA Vlan3 Internet 192.168.3.131 0 0050.56b3.5ffb ARPA Vlan3 Internet 192.168.3.132 0 0050.56b3.c3f7 ARPA Vlan3 Switch#show arp vlan 4 Protocol Address Age (min) Hardware Addr Type Interface Internet 192.168.4.10 - c472.9559.9042 ARPA Vlan4 Internet 192.168.4.131 0 0050.56b3.854b ARPA Vlan4 Internet 192.168.4.132 0 0050.56b3.83bb ARPA Vlan4 Switch# Switch# Switch#show mac address-table vlan 3 | exclude All Mac Address Table ------------------------------------------- Vlan Mac Address Type Ports ---- ----------- -------- ----- 3 0050.56b3.5ffb DYNAMIC Fa0/1 3 0050.56b3.c3f7 DYNAMIC Fa0/1 3 0060.b9e1.03f0 DYNAMIC Gi0/2 Total Mac Addresses for this criterion: 23 Switch# Switch# Switch#show mac address-table vlan 4 | exclude All Mac Address Table ------------------------------------------- Vlan Mac Address Type Ports ---- ----------- -------- ----- 4 0050.56b3.83bb DYNAMIC Fa0/2 4 0050.56b3.854b DYNAMIC Fa0/2 Total Mac Addresses for this criterion: 22 Switch# |
異常系
障害発生時に切り替わりが発生することを確認します。vlan3が接続されたf0/1(vmnic0)をダウンさせます。
1 2 3 4 5 6 7 8 9 | Switch#configure terminal Enter configuration commands, one per line. End with CNTL/Z. Switch(config)#inter Switch(config)#interface FastEthernet 0/1 Switch(config-if)#shutdown Switch(config-if)# May 8 02:55:00.515: %LINK-5-CHANGED: Interface FastEthernet0/1, changed state to administratively down May 8 02:55:01.522: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to down Switch(config-if)# |
障害発生後も疎通可能であることを確認します。
1 2 3 4 5 6 7 8 9 10 11 12 13 | Switch(config-if)#do ping 192.168.3.131 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.3.131, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/8 ms Switch(config-if)# Switch(config-if)# Switch(config-if)#do ping 192.168.3.132 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.3.132, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/8 ms Switch(config-if)# |
補足説明
BGPの有効化
NSX Edgeにオーバーレイトランスポートゾーンを設定するまえにBGP neighborを設定することもできますが、設定しても異常終了していしまいます。
アラートを見ると以下のようなログがあがります。
このシナリオの時点ではBGPを有効にすることはできませんが、後続の「NSX-T オーバーレイの負荷分散(mLAGなし multiple TEP)」を完了した時点で、問題なくBGP neighborを確立できます。