Virtual link trunking ( VLT ) & vDS (LACP)

先日の Japan VMUG UserCon で Dell-EMC の坂井さんに Session Speaker してもらったので,そのお礼もかねて,S4148T-ON の VLT を紹介しようと思います.
S4148T-ON は OS10 EE だと Stack 機能をサポートしていませんが,Switch 2 台で VLT を構成して Layer2 のアグリゲーションを実装することができます.
vDS についてもあまり LACP の設定について記載している日本語の Blog が無いようなので,今回は VLT + LACP で設定してみます.
設定は全て 2 台ともに入れていきます.

VLT

1. Spanning Tree の設定

まずは VLT の Startup 時に loop しないよう Spanning Tree を有効にします.pvst と rpvst+ が設定可能です.

switch1(config)# spanning-tree mode rapid-pvst

2. VLT domain 作成

VLT domain を作成します.今回は id 1 で作成しました.
(VLAN ID 4094 が VLT domain で利用されます.)

switch1(config)# vlt-domain 1

3. VLT Interconnect の設定

VLT Peer 間の同期で利用される Interconnect の設定をします.ここでは両 switch ともに 1/1/29, 1/1/30 で設定しています.

switch1(config)# interface ethernet 1/1/29
switch1(conf-if-eth1/1/29)# no switchport 
switch1(conf-if-eth1/1/29)# exit
switch1(config)# interface ethernet 1/1/30
switch1(conf-if-eth1/1/30)# no switchport 
switch1(conf-if-eth1/1/30)# exit
switch1(config)# vlt-domain 1
switch1(conf-vlt-1)# discovery-interface ethernet 1/1/29
switch1(conf-vlt-1)# discovery-interface ethernet 1/1/30

4. Primary Priority 設定

明示的に一方の switch を primary にしたい場合は設定します.今回は switch1 を primary にしています.
・switch1

switch1(config)# vlt-domain 1
switch1(conf-vlt-1)# primary-priority 1

・switch2

switch2(config)# vlt-domain 1
switch2(conf-vlt-1)# primary-priority 65535

5. VLT MAC Address の変更

Default では どちらかの switch の Local System MAC Address が使われますが,switch reboot の際などに VLTi flap が起きないよう固定で MAC Address を設定します.
VLT MAC Address は "show vlt" コマンドで確認できます.

switch1# show vlt 1
Domain ID                  : 1
Unit ID                    : 2
Role                       : primary
Version                    : 2.0
Local System MAC address   : e4:f0:04:a4:a1:bb
Role priority              : 1
VLT MAC address            : e4:f0:04:a4:a1:bb
IP address                 : fda5:74c8:b78e:1::5
Delay-Restore timer        : 90 seconds
Peer-Routing               : Disabled
Peer-Routing-Timeout timer : 0 seconds
VLTi Link Status
    port-channel1000       : up

VLT Peer Unit ID    System MAC Address    Status    IP Address             Version
----------------------------------------------------------------------------------
  1                 e4:f0:04:a4:a9:bdb     up       fda5:74c8:b78e:1::1     2.0

LAA ( Locally Administered Address ) では,Address の第 1 オクテット中の second-least-significant ビットが 1 となる必要があるので,今回は switch1 の Local System MAC Address の当該ビットを 1 に変更した ee:f0:04:a4:a1:bb としました.これを両 switch に設定していきます.

switch1(config)# vlt-domain 1
switch1(conf-vlt-1)# vlt-mac ee:f0:04:a4:a1:bb

6. LAG の設定

ESXi への Virtual Link Trunk を設定します.
ここでは両 switch の port 1/1/1 を port-channel 100 として,VLAN ID 102 を Tag VLAN として流します.
LAG の mode は VLT の Best Practices に沿って LACP にしています.
明示的に default の Access VLAN 1 を削除し,jumbo frame も 9000 で有効にしています.

switch1(config)# interface port-channel 100
switch1(conf-if-po-100)# vlt-port-channel 100
switch1(conf-if-po-100)# switchport mode trunk 
switch1(conf-if-po-100)# switchport trunk allowed vlan 102
switch1(conf-if-po-100)# no switchport access vlan
switch1(conf-if-po-100)# mtu 9000
switch1(conf-if-po-100)# exit
switch1(config)# interface ethernet 1/1/1
switch1(conf-if-eth1/1/1)# channel-group 100 mode active
switch1(conf-if-eth1/1/1)# no switchport access vlan
switch1(conf-if-eth1/1/1)# mtu 9000
switch1(conf-if-eth1/1/1)# end


2 台とも設定が完了したら,VLT mismatch を確認して,vDS 側の設定に進みましょう.

switch1# show vlt 1 mismatch
VLT-MAC mismatch:
No mismatch

Peer-routing mismatch:
No mismatch

VLAN mismatch:
No mismatch

VLT VLAN mismatch:
No mismatch

VLT Virtual Network Mismatch:
Virtual Network Name Mismatch:
No mismatch

Virtual Network VLTi-VLAN Mismatch:
No mismatch

Virtual Network Mode Mismatch:
No mismatch

Virtual Network Tagged Interfaces Mismatch:
No mismatch

Virtual Network Untagged Interfaces Mismatch:
No mismatch

Virtual Network VNI Mismatch:
No mismatch

Virtual Network Remote-VTEP Mismatch:
No mismatch

vDS

vDS で Virtual Link Trunk を受けるように, LAG mode を LACP にして構成します.
( vDS の設定はみなさんご存知かと思うので,さらっと要点だけ書きますね.)

1. Distributed Switch の新規作成

f:id:tcpninja:20190213090404p:plain


名前を付けて Version 選択します.今回は名前を [DSwitch], Version は [6.6.0] で作成します.
f:id:tcpninja:20190213091046p:plain


物理サーバに合わせてアップリンクの数を変更します.私の環境では 10GT * 2 で構成しています.
ポートグループは個別に作成するので,[デフォルトのポート グループの作成] チェックはオフにしました.
f:id:tcpninja:20190213092945p:plain

2. Distributed Switch で LAG 構成

作成した Distributed Switch を選択し,[設定] タブの [LACP] で [+新規] をクリックします.
f:id:tcpninja:20190213100029p:plain


ここでは名前を lag1, ポート数 2, モードをアクティブ (LACP) に設定します.
f:id:tcpninja:20190213101444p:plain


ロードバランシング モードはプルダウンから選択できます.
極力偏らないようにするため,[ソースとターゲット IP アドレス,TCP/UDP ポートおよび VLAN] を選択しています.
f:id:tcpninja:20190213101954p:plain

3. Jumbo Frame

Distributed Switch の MTU も [9000] に変更しておきます.
f:id:tcpninja:20190213102406p:plain


4. Dstributed Portgroup の作成
Distributed Switch の設定が終わったので,Distributed Portgroup を作成します.
f:id:tcpninja:20190213103238p:plain


今回は名前を VLT-eval としています.
f:id:tcpninja:20190213103604p:plain


OS10 側で Trunk port で VLAN を設定していますので,ここでも VLAN タイプを [VLAN] とし,同じ VLAN ID を設定します.
また,[デフォルト ポリシー設定をカスタマイズします] にチエックしておきます.
f:id:tcpninja:20190213104007p:plain


[チーミングおよびフェィルオーバー] 設定画面で,ロード バランシングを [物理 NIC 負荷に基づいたルート] に変更します.
次に,画面下のフェイルオーバーの順序を変更し,先程作成した [lag1] のみを [アクティブ アップリンク] に残し,他のアップリンクは全て [未使用のアップリンク] へ移動して,Portgroup 作成を進めていきます.
f:id:tcpninja:20190213104229p:plain

4. Host の追加

最後に Host を追加します.
f:id:tcpninja:20190213105549p:plain


vmnic をアップリンクに割り当てていきます.この例では vmnic2 に対して設定します.
f:id:tcpninja:20190213105914p:plain


[アップリンクの選択] ダイアログボックスで,[lag1 ポート] の [lag1-0] を選択します.
f:id:tcpninja:20190213110217p:plain


vmnic2 が DSwitch の アップリンク portgroup の lag1-0 に割り当てられたのが確認できます.
同じ操作をアップリンクの数だけ繰り返して Host の追加を完了します.
f:id:tcpninja:20190213110913p:plain

5. 動作確認

疎通が取れていれば完了です!
f:id:tcpninja:20190213112418p:plain