Catalyst9000の中規模~大規模向けネットワークのコアスイッチの冗長化機能であるStackWise Virtualについて、概要や設定、動作検証の結果についてまとめておきます。
StackWiseとStackWise Virtualの違い
Catalyst9000シリーズで2台のスイッチを1台の論理スイッチとして動作させる場合には、StackWiseという機能を使用します。
StackWiseには、2台のスイッチを専用のスタックモジュール、スタックケーブルを購入して接続を行うStackWiseと、光ファイバーケーブルを使用して10Gbpsまたは40Gbpsで接続を行うStackWise Virtualという2種類の方式があります。
この2つの方式については機種によってどちらを使用するのかが決まっており、以下の通りとなっています。
StackWise Virtualの特徴
StackWise Virtualを使用すると上記のように2台のスイッチを論理的に1台のスイッチのように動作させることができます。
これによりSTPやVRRP等を使用しないシンプルな冗長構成にすることが可能です。
StackWise Virtualの主な特徴は以下の通りです。
- 従来機のVSS(Virtual Switching System)と基本的な考え方は同じです。
- 2台のスイッチで構成され、スイッチ同士をSVL(StackWise Virtual Link)とDAD(Dual-Active Detection Link)で接続します。
- 片方がアクティブ機、もう一方がスタンバイ機として動作します。
SVLを使用して、アクティブ機からスタンバイ機へ設定情報やステータス情報を同期します。 - SVLがすべて切断された場合、2台ともアクティブ機として動作してしまうデュアルアクティブ状態が発生します。
DADを設定することで、デュアルアクティブ状態を検出しリカバリを行います。
StackWise Virtualを使用するには以下の条件が満たされている必要があります。
- スイッチの型番、ライセンスの種類、ソフトウェアバージョンが一致していること
- Network Advantageライセンスが適用されていること
- SDMテンプレートの設定が一致していること
StackWise Virtualの設定
通常時、1号機がActive、2号機がStandbyとなるように設定を行います。
ドメインの設定
StackWise Virtualを有効化して、ドメインを設定します。
- stackwise-virtual
- domain [ドメインID( 1~255)] ※ドメインIDはデフォルト1
ドメインIDは1号機と2号機で同じ値に設定する。
- domain [ドメインID( 1~255)] ※ドメインIDはデフォルト1
1号機の設定
Switch01(config)#stackwise-virtual
Please reload the switch for Stackwise Virtual configuration to take effect
Upon reboot, the config will be part of running config but not part of start up config.
Switch01(config-stackwise-virtual)#domain 100
2号機の設定
Switch02(config)#stackwise-virtual
Please reload the switch for Stackwise Virtual configuration to take effect
Upon reboot, the config will be part of running config but not part of start up config.
Switch02(config-stackwise-virtual)#domain 100
SVLの設定
10Gbpsまたは40GbpsのインタフェースでSVLを設定します。
- interface [インタフェース番号]
- stackwise-virtual link [リンク番号]
リンク番号は1号機と2号機で同じ値に設定する。
- stackwise-virtual link [リンク番号]
1号機の設定
Switch01(config-stackwise-virtual)#interface range TenGigabitEthernet1/0/14-15
Switch01(config-if-range)# stackwise-virtual link 1
WARNING: All the extraneous configurations will be removed for TenGigabitEthernet1/0/14 on reboot
INFO: Upon reboot, the config will be part of running config but not part of start up config.
WARNING: All the extraneous configurations will be removed for TenGigabitEthernet1/0/15 on reboot
INFO: Upon reboot, the config will be part of running config but not part of start up config.
2号機の設定
Switch02(config-stackwise-virtual)#interface range TenGigabitEthernet1/0/14-15
Switch02(config-if-range)# stackwise-virtual link 1
WARNING: All the extraneous configurations will be removed for TenGigabitEthernet1/0/14 on reboot
INFO: Upon reboot, the config will be part of running config but not part of start up config.
WARNING: All the extraneous configurations will be removed for TenGigabitEthernet1/0/15 on reboot
INFO: Upon reboot, the config will be part of running config but not part of start up config.
DADの設定
10Gbpsまたは40GbpsのインタフェースでDADを設定します。
- interface [インタフェース番号]
- stackwise-virtual dual-active-detection
1号機の設定
Switch01(config-if-range)#interface TenGigabitEthernet1/0/16
Switch01(config-if)#stackwise-virtual dual-active-detection
WARNING: All the extraneous configurations will be removed for TenGigabitEthernet1/0/16 on reboot.
INFO: Upon reboot, the config will be part of running config but not part of start up config.
Switch01(config)#end
2号機の設定
Switch02(config-if-range)#interface TenGigabitEthernet1/0/16
Switch02(config-if)#stackwise-virtual dual-active-detection
WARNING: All the extraneous configurations will be removed for TenGigabitEthernet1/0/16 on reboot.
INFO: Upon reboot, the config will be part of running config but not part of start up config.
Switch02(config-if)#end
プライオリティの設定
StackWise Virtualにおける通常時のActiveとStandbyを決めるため、プライオリティを設定します。(大きい方がActiveになります)
- switch [スタックメンバー番号] priority [プライオリティ(1~15)]
※プライオリティはデフォルト1
1号機の設定
Switch01#switch 1 priority 10
2号機の設定
Switch02#switch 1 priority 5
ステータスの確認
SVLの確認
StackWiseが有効化されていること、ドメインID、SVLの設定状態を確認します。
- show stackwise-virtual
1号機の確認
Switch01#show stackwise-virtual
Stackwise Virtual Configuration:
--------------------------------
Stackwise Virtual Configuration After Reboot:
---------------------------------------------
Stackwise Virtual : Enabled
Domain Number : 100
Switch Stackwise Virtual Link Ports
------ ---------------------- ------
1 1 TenGigabitEthernet1/0/14
TenGigabitEthernet1/0/15
2号機の確認
Switch02#show stackwise-virtual
Stackwise Virtual Configuration:
--------------------------------
Stackwise Virtual Configuration After Reboot:
---------------------------------------------
Stackwise Virtual : Enabled
Domain Number : 100
Switch Stackwise Virtual Link Ports
------ ---------------------- ------
1 1 TenGigabitEthernet1/0/14
TenGigabitEthernet1/0/15
DADの確認
DADの設定状態を確認します。
- show stackwise-virtual dual-active-detection
1号機の確認
Switch01#show stackwise-virtual dual-active-detection
In dual-active recovery mode: No
Dual-Active-Detection Configuration:
-------------------------------------
Switch Dad port Status
------ ------------ ---------
Distributed Stack DAD Configuration After Reboot:
------------------------------------------------
Switch Dad port Status
------ -------- ------
1 TenGigabitEthernet1/0/16 down
2号機の確認
Switch02#show stackwise-virtual dual-active-detection
In dual-active recovery mode: No
Dual-Active-Detection Configuration:
-------------------------------------
Switch Dad port Status
------ ------------ ---------
Distributed Stack DAD Configuration After Reboot:
------------------------------------------------
Switch Dad port Status
------ -------- ------
1 TenGigabitEthernet1/0/16 down
スタックの確認
仮想MACアドレスとプライオリティを確認します。
- show switch
1号機の確認
Switch01#show switch
Switch/Stack Mac Address : b0c5.3c7a.a800 - Local Mac Address
Mac persistency wait time: Indefinite
H/W Current
Switch# Role Mac Address Priority Version State
-------------------------------------------------------------------------------------
*1 Active b0c5.3c7a.a800 10 V01 Ready
2号機の確認
Switch02#show switch
Switch/Stack Mac Address : b0c5.3c7a.a980 - Local Mac Address
Mac persistency wait time: Indefinite
H/W Current
Switch# Role Mac Address Priority Version State
-------------------------------------------------------------------------------------
*1 Active b0c5.3c7a.a980 5 V01 Ready
論理スイッチへの切り替え
2台のスイッチ間のSVLとDADを接続したら、再起動します。
再起動後、1台の論理スイッチに切り替わっていることを確認します。
SVLの確認
1号機と2号機のSVLの情報が表示されています。
Switch01#show stackwise-virtual
Stackwise Virtual Configuration:
--------------------------------
Stackwise Virtual : Enabled
Domain Number : 100
Switch Stackwise Virtual Link Ports
------ ---------------------- ------
1 1 TenGigabitEthernet1/0/14
TenGigabitEthernet1/0/15
2 1 TenGigabitEthernet2/0/14
TenGigabitEthernet2/0/15
DADの確認
1号機と2号機のDADの情報が表示されています。
Switch01#show stackwise-virtual dual-active-detection
In dual-active recovery mode: No
Recovery Reload: Enabled
Dual-Active-Detection Configuration:
-------------------------------------
Switch Dad port Status
------ ------------ ---------
1 TenGigabitEthernet1/0/16 up
2 TenGigabitEthernet2/0/16 up
スタックの確認
1号機と2号機のスタック状態やプライオリティが表示されています。
(「*」がついているほうがActiveです)
Switch01#show switch
Switch/Stack Mac Address : b0c5.3c7a.a800 - Local Mac Address
Mac persistency wait time: Indefinite
H/W Current
Switch# Role Mac Address Priority Version State
-------------------------------------------------------------------------------------
*1 Active b0c5.3c7a.a800 10 V01 Ready
2 Standby b0c5.3c7a.a980 5 V01 Ready
動作検証
StackWise Virtualが正常に動作している状態で複数パターンの障害を発生させ、どのような動作、ステータスになるのか検証を行いました。
DAD リンク障害
1号機の2号機のDADリンクが切断された場合、SVLの状態に変化は発生せずフェールオーバも発生しません。(つまり何も起こらない)
SVLの状態
Switch01#show stackwise-virtual
Stackwise Virtual Configuration:
--------------------------------
Stackwise Virtual : Enabled
Domain Number : 100
Switch Stackwise Virtual Link Ports
------ ---------------------- ------
1 1 TenGigabitEthernet1/0/14
TenGigabitEthernet1/0/15
2 1 TenGigabitEthernet2/0/14
TenGigabitEthernet2/0/15
DADの状態
DADが切断されているため、1号機、2号機共にステータスが「down」となっています。
Switch01#show stackwise-virtual dual-active-detection
In dual-active recovery mode: No
Recovery Reload: Enabled
Dual-Active-Detection Configuration:
-------------------------------------
Switch Dad port Status
------ ------------ ---------
1 TenGigabitEthernet1/0/16 down
2 TenGigabitEthernet2/0/16 down
Active側が停止した場合
Active側(1号機)が停止した場合、フェールオーバが発生し、Standby側(2号機)がActiveになり動作を継続します。
SVLの状態
1号機の情報が非表示になります。
Switch01#show stackwise-virtual
Stackwise Virtual Configuration:
--------------------------------
Stackwise Virtual : Enabled
Domain Number : 100
Switch Stackwise Virtual Link Ports
------ ---------------------- ------
2 1 TenGigabitEthernet2/0/14
TenGigabitEthernet2/0/15
DADの状態
1号機の情報が非表示になり、DADのステータスが「down」となります。
Switch01#show stackwise-virtual dual-active-detection
In dual-active recovery mode: No
Recovery Reload: Enabled
Dual-Active-Detection Configuration:
-------------------------------------
Switch Dad port Status
------ ------------ ---------
2 TenGigabitEthernet2/0/16 down
スタックの状態
元々Standbyだった2号機がActiveに変化し、1号機はステータスが「Removed」となります。
フェールオーバした際でも仮想MACアドレスは、1号機の値のままになります。
Switch01#show switch
Switch/Stack Mac Address : b0c5.3c7a.a800 - Foreign Mac Address
Mac persistency wait time: Indefinite
H/W Current
Switch# Role Mac Address Priority Version State
-------------------------------------------------------------------------------------
1 Member 0000.0000.0000 0 V01 Removed
*2 Active b0c5.3c7a.a980 5 V01 Ready
Active側を復旧させた後は、フェールバックは発生せず2号機がActiveのままとなります。
Switch01#show switch
Switch/Stack Mac Address : b0c5.3c7a.a800 - Local Mac Address
Mac persistency wait time: Indefinite
H/W Current
Switch# Role Mac Address Priority Version State
-------------------------------------------------------------------------------------
1 Standby b0c5.3c7a.a800 10 V01 Ready
*2 Active b0c5.3c7a.a980 5 V01 Ready
Standby側が停止した場合
Standby側(2号機)が停止した場合、SVLの状態に変化は発生せずフェールオーバも発生しません。(つまり何も起こらない)
SVLの状態
2号機の情報が非表示になります。
Switch01#show stackwise-virtual
Stackwise Virtual Configuration:
--------------------------------
Stackwise Virtual : Enabled
Domain Number : 100
Switch Stackwise Virtual Link Ports
------ ---------------------- ------
1 1 TenGigabitEthernet1/0/14
TenGigabitEthernet1/0/15
DADの状態
2号機の情報が非表示になり、DADのステータスが「down」となります。
Switch01#show stackwise-virtual dual-active-detection
In dual-active recovery mode: No
Recovery Reload: Enabled
Dual-Active-Detection Configuration:
-------------------------------------
Switch Dad port Status
------ ------------ ---------
1 TenGigabitEthernet1/0/16 down
スタックの状態
2号機のステータスが「Removed」となっています。
Switch01#show switch
Switch/Stack Mac Address : b0c5.3c7a.a800 - Local Mac Address
Mac persistency wait time: Indefinite
H/W Current
Switch# Role Mac Address Priority Version State
-------------------------------------------------------------------------------------
*1 Active b0c5.3c7a.a800 10 V01 Ready
2 Member 0000.0000.0000 0 V01 Removed
SVL リンク障害
SVLが2本ともダウンすると両方のスイッチがActiveとして動作する「デュアルアクティブ状態」が発生することになります。デュアルアクティブ状態が発生すると、1号機と2号機が同じ IP アドレスやSSH キー、および STP ブリッジ ID を持つことになり、ネットワークが不安定になる可能性があります。
それを防ぐためにDADがデュアルアクティブ状態を検出し、検出後、Active側はSVLやDADを除く全ポートを停止しリカバリーモードに遷移、Standby側はActiveに遷移します。
SVL全停止後
1号機の状態
リカバリーモードに遷移しているため、プロンプトに「(recovery-mode)」と表示されます。
SVLの状態
Switch01(recovery-mode)>show stackwise-virtual
Stackwise Virtual Configuration:
--------------------------------
Stackwise Virtual : Enabled
Domain Number : 100
Switch Stackwise Virtual Link Ports
------ ---------------------- ------
1 1 TenGigabitEthernet1/0/14
TenGigabitEthernet1/0/15
DADの状態
デュアルアクティブ状態が発生したことにより「In dual-active recovery mode: Yes」と表示されています。
Switch01(recovery-mode)>show stackwise-virtual dual-active-detection
In dual-active recovery mode: Yes
Recovery mode triggred by: fast-hello
Recovery Reload: Enabled
Dual-Active-Detection Configuration:
-------------------------------------
Switch Dad port Status
------ ------------ ---------
1 TenGigabitEthernet1/0/16 up
スタックの状態
デュアルアクティブ状態のため、1号機は「Active」となっています。
Switch01(recovery-mode)>show switch
Switch/Stack Mac Address : b0c5.3c7a.a800 - Local Mac Address
Mac persistency wait time: Indefinite
H/W Current
Switch# Role Mac Address Priority Version State
-------------------------------------------------------------------------------------
*1 Active b0c5.3c7a.a800 10 V01 Ready
2 Member 0000.0000.0000 0 V01 Removed
ポートの状態
SVL(Te1/0/14-1/0/15)、DAD(Te1/0/16)を除く全てのポートが「err-disabled」となっています。
Switch01(recovery-mode)>show int status
Port Name Status Vlan Duplex Speed Type
Te1/0/1 err-disabled 1 full 10G SFP-10GBase-SR
Te1/0/2 err-disabled 1 full 10G SFP-10GBase-SR
Te1/0/3 err-disabled 1 full 10G SFP-10GBase-SR
Te1/0/4 err-disabled 1 full 10G SFP-10GBase-SR
Te1/0/5 err-disabled 1 full 10G SFP-10GBase-SR
Te1/0/6 err-disabled 1 full 10G SFP-10GBase-SR
Te1/0/7 err-disabled 1 full 10G SFP-10GBase-SR
Te1/0/8 err-disabled 1 full 10G SFP-10GBase-SR
Te1/0/9 err-disabled 100 auto auto 10/100/1000BaseTX SFP
Te1/0/10 err-disabled 1 auto auto unknown
Te1/0/11 err-disabled 1 auto auto unknown
Te1/0/12 err-disabled 1 auto auto unknown
Port Name Status Vlan Duplex Speed Type
Te1/0/13 err-disabled 1 full 10G SFP-10GBase-SR
Te1/0/14 notconnect 4094 full 10G SFP-10GBase-SR
Te1/0/15 notconnect 4094 full 10G SFP-10GBase-SR
Te1/0/16 connected 4094 full 10G SFP-10GBase-SR
2号機の状態
SVLの状態
Switch01#show stackwise-virtual
Stackwise Virtual Configuration:
--------------------------------
Stackwise Virtual : Enabled
Domain Number : 100
Switch Stackwise Virtual Link Ports
------ ---------------------- ------
2 1 TenGigabitEthernet2/0/14
TenGigabitEthernet2/0/15
DADの状態
Switch01#show stackwise-virtual dual-active-detection
In dual-active recovery mode: No
Recovery Reload: Enabled
Dual-Active-Detection Configuration:
-------------------------------------
Switch Dad port Status
------ ------------ ---------
2 TenGigabitEthernet2/0/16 up
スタックの状態
1号機がリカバリーモードに遷移したため、2号機がActive状態に遷移しています。
Switch01#show switch
Switch/Stack Mac Address : b0c5.3c7a.a800 - Foreign Mac Address
Mac persistency wait time: Indefinite
H/W Current
Switch# Role Mac Address Priority Version State
-------------------------------------------------------------------------------------
1 Member 0000.0000.0000 0 V01 Removed
*2 Active b0c5.3c7a.a980 5 V01 Ready
SVLを復旧させると、1号機が自動で再起動します。
再起動後、フェールバックは行われないためそのまま2号機がActiveとなります。
Switch01#show switch
Switch/Stack Mac Address : b0c5.3c7a.a800 - Local Mac Address
Mac persistency wait time: Indefinite
H/W Current
Switch# Role Mac Address Priority Version State
-------------------------------------------------------------------------------------
1 Member b0c5.3c7a.a800 10 V01 Ready
*2 Active b0c5.3c7a.a980 5 V01 Ready
StackWiseで使用するVLANについて
「show int status」を打った時にふと気になったのですが、SVLやDADを設定したポートにいつのまにかVLAN「4094」が割り当てられていました。
Switch01# show int status
Port Name Status Vlan Duplex Speed Type
Te1/0/1 notconnect 1 full 10G SFP-10GBase-SR
Te1/0/2 notconnect 1 full 10G SFP-10GBase-SR
Te1/0/3 notconnect 1 full 10G SFP-10GBase-SR
Te1/0/4 notconnect 1 full 10G SFP-10GBase-SR
Te1/0/5 notconnect 1 full 10G SFP-10GBase-SR
Te1/0/6 notconnect 1 full 10G SFP-10GBase-SR
Te1/0/7 notconnect 1 full 10G SFP-10GBase-SR
Te1/0/8 notconnect 1 full 10G SFP-10GBase-SR
Te1/0/9 connected 100 a-full a-1000 10/100/1000BaseTX SFP
Te1/0/10 notconnect 1 auto auto unknown
Te1/0/11 notconnect 1 auto auto unknown
Te1/0/12 notconnect 1 auto auto unknown
Port Name Status Vlan Duplex Speed Type
Te1/0/13 notconnect 1 full 10G SFP-10GBase-SR
Te1/0/14 connected 4094 full 10G SFP-10GBase-SR
Te1/0/15 connected 4094 full 10G SFP-10GBase-SR
Te1/0/16 connected 4094 full 10G SFP-10GBase-SR
これについては、上記サイトに以下のような記述がありました。
意外と知られていないような気がするので、地味に注意点かなと思いました。
Cisco StackWise Virtual を展開する場合は、VLAN ID 4094 がネットワーク上のどこでも使用されていないことを確認してください。スタックメンバ間のすべてのシャーシ間システム制御通信は、グローバルな範囲から予約された VLAN ID 4094 で伝送されます。
Cisco IOS XE Amsterdam 17.3.x(Catalyst 9400 スイッチ)ハイ アベイラビリティ コンフィギュレーション ガイド – Cisco StackWise Virtual の設定 [Support] – Cisco