スパニングツリーの動作テスト
MSTP(Multiple Spanning Tree Protocol, 802.1s)とRSTP(Rapid Spanning Tree Protocol, 802.1w)機能について検証を行い、正しく動作することを確認した。
はじめに
EOSには MSTP(Multiple Spanning Tree Protocol, 802.1s)とRSTP(Rapid Spanning Tree Protocol, 802.1w)が実装されている。そこで STPの基本的な動作確認やパスコストについて標準規格に準拠しているか確認を行った。
結果
他社製品との接続性までの検証には至らなかったが、下記事項は問題なく動作していることが確認できた。
- MSTのデフォルトインスタンス 0 には、全てのVLANが割り当てられているが、MST1を新規作成し、別VLANをアサインする。
- パスコストが正しく認識されているか確認する。例えば、10Gbps=2000、1Gbps=20000、100Mbps=200000で認識する。
- 自発行したBPDUパケットを受信した場合、ポート役割(Role)がdesignatedからbackupに遷移し、トラフィックをブロッキングする。
- BPDUは2秒間隔で出力されている。
- Portfastポート(ユーザー端末向け)は、数秒以内(ping×1ロスト程度)に状態が収束し、通信が再開する。
MSTP/RSTPとは
MSTP は、複数のVLAN を1 つのスパニングツリーインスタンスにまとめられ、RSTP を使用して高速コンバージェンスを行うことができる。
具体的には、STP(Spanning Tree Protocol, 802.1d)は、VLANに関係なくSTPツリーが決まるという欠点があり、補うために改良されたのがPVST(Per VLAN Spanning Tree)である。しかし、PVSTはVLAN単位でBPDUが送信されるため、VLANが多いとBPDUが増えて処理負荷が高くなる。MSTPを使用すると、複数のVLANを同じスパニングツリー インスタンスに対応付けできるので、必ずしもVLAN単位でBPDUを送信する必要はない。また、STPは、最大50秒の通信断が発生するという欠点があるが、RSTPにより1秒程度で高速な切替を実現できるように改良されている。
Arista EOSにおけるMSTP パスコスト
Port Speed | Path Cost |
---|---|
10Mbit/s | 2000000 |
100Mbit/s | 200000 |
1Gbit/s | 20000 |
10Gbit/s | 2000 |
設定コマンド
MSTPは、グローバルコンフィグレーションモードにおいて有効にする。VLANを指定しなければ、全VLANがMST0にマッピングされ、STPグループを形成する。
localhost(config)# spanning-tree mode mstp
PortFastは、インタフェースコンフィグレーションモードにおいて有効にする。
localhost(config-if-Et7)#spanning-tree portfast
MSTPのカスタマイズ
localhost(config)#spanning-tree mst configuration
localhost(config-mst)#?
abort Exit region configuration mode, aborting changes
default Set a command to its defaults
exit Exit from configure mode
help Description of the interactive help system
instance Map vlans to an MST instance
name Set configuration name
no Negate a command or set its defaults
revision Set configuration revision number
show Show running system information
検証方法
以下の設定を行い、MSTPの基本動作を確認した。確認方法は、ポート7の配下でネットワークループをシミュレーションし、ポート役割がBackupに遷移することを期待する。結果、以下のように自発行のBPDUパケットをポート7で受信直後、ポート役割がBackup(※1)に変化し正しくブロッキングされたことを確認できた。
設定内容
localhost(config)# spanning-tree mode mstp
localhost(config-if-Et7)#spanning-tree portfast
動作確認:通常時
localhost(config)# show spanning-tree
MST0
Spanning tree enabled protocol mstp
Root ID Priority 32768
Address xxxx.xxxx.xxxx
This bridge is the root
Bridge ID Priority 32768 (priority 32768 sys-id-ext 0)
Address xxxx.xxxx.xxxx
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Interface Role State Cost Prio.Nbr Type
---------------- ---------- ---------- --------- -------- --------------------
Et1 designated forwarding 200000 128.1 P2p
Et2 designated forwarding 200000 128.2 P2p
Et3 designated forwarding 20000 128.3 P2p
Et4 designated forwarding 20000 128.4 P2p
Et5 designated forwarding 20000 128.5 P2p
Et6 designated forwarding 20000 128.6 P2p
Et7 designated forwarding 2000 128.7 P2p
Et8 designated forwarding 2000 128.8 P2p
動作確認:Et7 ブロッキング時
localhost(config)# show spanning-tree
MST0
Spanning tree enabled protocol mstp
Root ID Priority 32768
Address xxxx.xxxx.xxxx
This bridge is the root
Bridge ID Priority 32768 (priority 32768 sys-id-ext 0)
Address xxxx.xxxx.xxxx
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Interface Role State Cost Prio.Nbr Type
---------------- ---------- ---------- --------- -------- --------------------
Et1 designated forwarding 200000 128.1 P2p
Et2 designated forwarding 200000 128.2 P2p
Et3 designated forwarding 20000 128.3 P2p
Et4 designated forwarding 20000 128.4 P2p
Et5 designated forwarding 20000 128.5 P2p
Et6 designated forwarding 20000 128.6 P2p
Et7 backup discarding 2000 128.7 P2p <---※1 BPDU受信後、RoleがBackupに変化。
Et8 designated forwarding 2000 128.8 P2p