1. コマンド一覧

このシナリオで重要なコマンド一覧は以下の通りです。

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

2. 仕様説明

2.1. 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をベンダー混在環境で設定する人は滅多にいないと思いますので、 MSTに関する動作確認は省略します。

Switch(config)# spanning-tree mst version [ mstp | rstp | stpCompatible ]
Switch(config)# spanning-tree mst enable

2.2. 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として結線する

2.3. 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

3. 動作確認環境

以下の構成で動作確認を行います。

 [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

初期設定の全文は以下を参照下さい。

4. RSTPの有効化

4.1. Cisco機側 設定

Cisco機側でスパニングツリーのモードをpvst(STP)からrapid-pvst(RSTP)に変更します。 なお、パナソニック側のデフォルト設定はRSTPになっております。

 [SW2:cisco]
spanning-tree mode rapid-pvst

4.2. パナソニック機側 設定

パナソニック機側でRSTPを有効にします。

 [SW1:MNO]
spanning-tree rst enable

4.3. 疎通確認

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#

4.4. 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#

4.5. 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#

5. PVST 互換

5.1. 動作確認

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#

6. Edge Port 設定

6.1. 設定前の動作確認

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#

6.2. portfast 設定投入

SW1のHost200へつながっているポートについて、すぐにリンクアップする設定と BPDU guardの設定を投入します。

 [SW1:MNO]
interface FastEthernet0/2
 spanning-tree rst edgeport
 spanning-tree rst bpdu-guard

6.3. 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#

6.4. 設定前の動作確認

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#