パナソニックMNOシリーズにおけるRSTP (Rapid Spanning Tree Protocol)の設定例を紹介します。MNOとcisco catalystの混在環境について検証し、PVSTに関する互換性がない事などの注意点について考察します。
コマンド一覧
このシナリオで重要なコマンド一覧は以下の通りです。
Switch(config)# spanning-tree rst version [ rstp | stpCompatible ] Switch(config)# spanning-tree rst enable Switch(config)# spanning-tree mst version [ mstp | rstp | stpCompatible ] Switch(config)# spanning-tree mst enable Switch(config)# interface <interface> Switch(config-if)# spanning-tree rst edgeport Switch(config-if)# spanning-tree rst bpdu-guard
仕様説明
spannning tree 有効化
パナソニックMNOシリーズは、STP, RSTP, MSTという3種類のスパニングツリーを実装しています。このスパニングツリーに関する注意点は以下の通りです。
- デフォルト設定はSTP無効なので、config投入前はループを作らないように注意する必要がある。
- PVSTをサポートしていないので、ciscoなどのSTPと連携させる時は注意が必要。
STP (RSTPではなく通常のSTP) を有効にするコマンドは以下の通りです。パナソニックMNOのデフォルトのスパニングツリーのモードはRSTPなので、”spanning-tree rst version stpCompatible”コマンドで通常のSTPに変更します。その後、”spanning-tree rst enable”コマンドでSTPを有効にします。
Switch(config)# spanning-tree rst version stpCompatible Switch(config)# spanning-tree rst enable
RSTP(802.1w)を使用する設定は以下の通りです。なお、”spanning-tree rst version rstp”はデフォルト設定ですので、省略可能です。
Switch(config)# spanning-tree rst version rstp Switch(config)# spanning-tree rst enable
ヘルプストリングから判断するとMSTを設定する事もできるようです。但し、製品の価格帯を考えると、MSTが必要な大規模環境にPanasonic MNOを導入するケースは非常に少ないと思われますので、説明を省略します。
Switch(config)# spanning-tree mst version [ mstp | rstp | stpCompatible ] Switch(config)# spanning-tree mst enable
PVST
Ciscoからネットワークの勉強を始める人が多いため違和感を持つ人が意外と少ない実装なのですが、Cisco機のデフォルトのSTP設定はPVSTです。PVSTはvlan毎にBPDUを送信する仕様です。そのため、PVSTをサポートしないベンダーとciscoを連携させるのは、非常に難しい運用となります。
cisco機でPVSTを無効化するのは非常に難しいです。恐らく動作する環境は殆どないと思いますが、cisco機でPVSTを無効化するコマンドは以下の通りです。
Switch(config)#no spanning-tree extend system-id
“spanning-tree extend system-id”を無効化できるのは、1024個のMACアドレスをサポートする機器かつ拡張VLANを使用していない場合のみです。1024個のMACアドレスをサポートするのは、ハイエンド機器のみでcatalyst 29XXのようなL2SWは64個のMACアドレスしかサポートしません。L2SWで”spanning-tree extend system-id”を無効化しようとすると以下のようなエラーメッセージが出力されるでしょう。
Switch(config)#no spanning-tree extend system-id % Command "no spanning-tree extend system-id <cr>" was not accepted. This platform requires that the extended system-id feature remain enabled. Switch(config)#
つまり、PVSTを用いてパナソニックMNOシリーズとciscoを連携させるのは非常に難しいという事が分かりました。どうしてもパナソニックMNOとciscoの混在環境を構築したいならば、以下のような構成にしなければなりません。
- VLANを使用しない
- パナソニック, cisco間をaccess portとして結線する
Edge Port 設定
STPが有効になっているポートがリンクアップしてから疎通可能になるまで50秒かかります。これはSTPがタイムアウトするまでの待ち時間です。
この挙動は端末が接続されたEdge Portでは非常に不都合ですので、Edge Portは疎通可能になるよう設定変更する事が望まれます。以下のコマンドを投入する事で、Forwarding Delayなどの待ち時間をショートカットしリンクアップ状態にする事ができます。Cisco機でいう”spanning-tree portfast”に相当するコマンドです。
Switch(config)# interface <interface> Switch(config-if)# spanning-tree rst edgeport
何らかの手違いでEdge Portの先にスイッチが接続されてしまうと、ブロードキャストストームが起きてしまいます。この手違いに対する防御策として、BPDUを受信したポートをshutdown状態にしてしまう機能があります。Cisco機でいう”spanning-tree bpduguard enable”に相当するコマンドで、Edge Portに設定するのが一般的です。
Switch(config)# interface <interface> Switch(config-if)# spanning-tree rst bpdu-guard
動作確認環境
以下の構成で動作確認を行います。
[SW1] hostname SW1 console inactivity-timer 60 telnet-server inactivity-timer 60 ip http server ! ip address 192.168.0.1 255.255.255.0 ip default-gateway 192.168.0.254 [SW2] interface GigabitEthernet0/24 switchport mode trunk ! interface Vlan1 ip address 192.168.0.2 255.255.255.0 ! interface Vlan2 no ip address
初期設定の全文は以下を参照下さい。
RSTPの有効化
Cisco機側 設定
Cisco機側でスパニングツリーのモードをpvst(STP)からrapid-pvst(RSTP)に変更します。なお、パナソニック側のデフォルト設定はRSTPになっております。
[SW2:cisco] spanning-tree mode rapid-pvst
パナソニック機側 設定
パナソニック機側でRSTPを有効にします。
[SW1:MNO] spanning-tree rst enable
疎通確認
SW2からHost100, Host200への疎通を確認します。
[SW2:Cisco] SW2#ping 192.168.1.100 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.1.100, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 1/3/6 ms SW2# SW2# SW2# SW2#ping 192.168.2.200 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.2.200, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 1/3/5 ms SW2#
Root Bridgeの確認
SW1でRoot Bridgeの設定を確認します。”CIST Root”と”CIST Bridge ID”の値が一致している事からSW1がRoot Bridgeである事が読み取れます。
[SW1:MNO] SW1# show spanning-tree rst config CIST Root Port: 0 Time Since Topology Change: 1721 Sec. CIST Root Path Cost: 0 Topology Change Count: 4 CIST Root: 8000 00C08F2BB5F7 CIST Regional Root Cost: 0 CIST Bridge ID: 8000 00C08F2BB5F7 CIST Regional Root: 8000 00C08F2BB5F7 CIST Bridge Hello Time: 2 Sec. CIST Bridge Maximum Age: 20 Sec. CIST Hello Time: 2 Sec. CIST Bridge Forward Delay: 15 Sec. CIST Maximum Age: 20 Sec. Max Hop Count: 20 CIST Forward Delay: 15 Sec. SW1#
SW2でRoot Bridgeの設定を確認します。”Root ID”と”Bridge ID”の値が異なるからSW2がRoot Bridgeではない事が読み取れます。
[SW2:Cisco] SW2#show spanning-tree vlan 1 VLAN0001 Spanning tree enabled protocol rstp Root ID Priority 32768 Address 00c0.8f2b.b5f7 Cost 19 Port 23 (GigabitEthernet0/23) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32769 (priority 32768 sys-id-ext 1) Address c414.3cc2.3b00 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300 sec Interface Role Sts Cost Prio.Nbr Type ------------------- ---- --- --------- -------- -------------------------------- Gi0/23 Root FWD 19 128.23 P2p Gi0/24 Altn BLK 19 128.24 P2p SW2#
port role 確認
SW1のポートの状態を確認します。SW1はRoot Bridgeなので、ポートは全てDesignatedになっているはずです。理論通り、Stateが”Forwarding”になっており、Roleが”Designated”になっている事を確認します。
[SW1:MNO] SW1# show spanning-tree rst interface 23-24 Port : 23 STP Status : Enabled Link : Up Trunk : - Admin/OperEdge: False/False Admin/OperPtoP: Auto /True Migration : M/RSTP Port State : Forwarding Port Priority : 128 Port Role : Designated Port Path Cost: 200000(A) Desig. Root : 8000 00C08F2BB5F7 Desig. Cost : 0 Desig. Bridge : 8000 00C08F2BB5F7 Desig. Port : 80 17 Regional Root : 8000 00C08F2BB5F7 Regional Cost : 0 Guard : Disabled Port : 24 STP Status : Enabled Link : Up Trunk : - Admin/OperEdge: False/False Admin/OperPtoP: Auto /True Migration : M/RSTP Port State : Forwarding Port Priority : 128 Port Role : Designated Port Path Cost: 200000(A) Desig. Root : 8000 00C08F2BB5F7 Desig. Cost : 0 Desig. Bridge : 8000 00C08F2BB5F7 Desig. Port : 80 18 Regional Root : 8000 00C08F2BB5F7 Regional Cost : 0 Guard : Disabled SW1#
SW2側のポートの状態を確認します。Gi0/23, Gi0/24はどちらもCostが等しいので、対向(SW1)のPort Priorityが小さいGi0/23がRootとなり、Gi0/24がAltnになっている事が分かります。
[SW2:Cisco] SW2#show spanning-tree vlan 1 VLAN0001 Spanning tree enabled protocol rstp Root ID Priority 32768 Address 00c0.8f2b.b5f7 Cost 19 Port 23 (GigabitEthernet0/23) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32769 (priority 32768 sys-id-ext 1) Address c414.3cc2.3b00 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300 sec Interface Role Sts Cost Prio.Nbr Type ------------------- ---- --- --------- -------- -------------------------------- Gi0/23 Root FWD 19 128.23 P2p Gi0/24 Altn BLK 19 128.24 P2p SW2#
PVST 互換
動作確認
SW2のvlan 2に関するSTPの様子を観察します。SW1の方がbridge priorityが低いのにも関わらず、SW2がRoot Bridgeになっています。これはMNOシリーズがPVSTをサポートしていないため、vlan 2に関するBPDUが正常に交換できていないためです。
[SW2:Cisco] SW2#show spanning-tree vlan 2 VLAN0002 Spanning tree enabled protocol rstp Root ID Priority 32770 Address c414.3cc2.3b00 This bridge is the root Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32770 (priority 32768 sys-id-ext 2) Address c414.3cc2.3b00 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300 sec Interface Role Sts Cost Prio.Nbr Type ------------------- ---- --- --------- -------- -------------------------------- Gi0/23 Desg FWD 19 128.23 P2p Gi0/24 Back BLK 19 128.24 P2p SW2#
Edge Port 設定
設定前の動作確認
SW1のHost200へつながっているポートをbounce(shut / no shut)します。
[SW1:MNO] SW1(config)# interface Fa0/2 SW1(config-if)# shut SW1(config-if)# no shut SW1(config-if)#
上記bounceを行っている間、SW2からHost200へのpingを打ちます。timeout5秒のpingが8発落ちている事から、約40秒の通信断があった事が分かります。
[SW2:Cisco] SW2#ping 192.168.2.200 repeat 1000 timeout 5 Type escape sequence to abort. Sending 1000, 100-byte ICMP Echos to 192.168.2.200, timeout is 5 seconds: !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!........!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!! Success rate is 99 percent (992/1000), round-trip min/avg/max = 1/2/11 ms SW2#
portfast 設定投入
SW1のHost200へつながっているポートについて、すぐにリンクアップする設定とBPDU guardの設定を投入します。
[SW1:MNO] interface FastEthernet0/2 spanning-tree rst edgeport spanning-tree rst bpdu-guard
portfast 設定確認
“Admin/OperEdge”の欄が”True”と表示されている事と”Guard”の欄が”Enabled”と表示されている事を確認します。
[SW1:MNO] SW1# show spanning-tree rst interface 2 Port : 2 STP Status : Enabled Link : Down Trunk : - Admin/OperEdge: True /True Admin/OperPtoP: Auto /False Migration : Init. Port State : Discarding Port Priority : 128 Port Role : Disabled Port Path Cost: 200000(A) Desig. Root : 8000 00C08F2BB5F7 Desig. Cost : 0 Desig. Bridge : 8000 00C08F2BB5F7 Desig. Port : 00 02 Regional Root : 8000 00C08F2BB5F7 Regional Cost : 0 Guard : Enabled SW1#
設定前の動作確認
SW1のHost200へつながっているポートをbounce(shut / no shut)します。
[SW1:MNO] SW1(config)# interface Fa0/2 SW1(config-if)# shut SW1(config-if)# no shut SW1(config-if)#
上記bounceを行っている間、SW2からHost200へのpingを打ちます。timeout1秒のpingが1発落ちている事から、通信断は5秒未満であった事が分かります。
[SW2:Cisco] SW2#ping 192.168.2.200 repeat 1000 timeout 5 Type escape sequence to abort. Sending 1000, 100-byte ICMP Echos to 192.168.2.200, timeout is 5 seconds: !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!.!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!! Success rate is 99 percent (999/1000), round-trip min/avg/max = 1/2/11 ms SW2#