1. コマンド一覧

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

Switch(config)# spanning-tree mst priority lt;priority>

Switch(config)# interface <interface>
Switch(config-if)# spanning-tree rst cost <cost>
Switch(config-if)# spanning-tree rst port-priority <num>

Switch(config)# spanning-tree rst hello-time <sec>
Switch(config)# spanning-tree rst forward-time <sec>
Switch(config)# spanning-tree rst max-age <sec>

2. 仕様説明

2.1. Root Bridge 選定

MNOシリーズは、以下のコマンドでBridge Priorityを定義する事ができます。 Priorityは16進数で指定し、デフォルト値はCisco機と全く同じ値である0x8000(32768)です。 Cisco機と同様に、Priority値は0x1000(4096)の倍数で指定しなければならないという制約があります。

Switch(config)# spanning-tree mst priority lt;priority>

2.2. Cost 設定

以下のコマンドでSTPに関するコストを設定する事ができます。

Switch(config)# interface <interface>
Switch(config-if)# spanning-tree rst cost <cost>

重箱の隅をつつくような知識ですが、スパニングツリーはBPDUを受信したポートのコストが加算されます。 運用上の理想は対向毎に同じコストを設定すべきです。 しかし、設定ミスや政治上の理由で非対称がなコストになってしまった場合は、 このような知識を持っていると自信を持ってデバッグできます。

2.3. Port Priority 設定

以下のコマンドでSTPに関するPort Priorityを設定する事ができます。 Cisco機と同様に、Port Priorityは16の倍数で指定する必要があります。

Switch(config)# interface <interface>
Switch(config-if)# spanning-tree rst port-priority <num>

非常に誤解している人が多いのですが、Port Priorityは対向機のPort Priorityが小さいポートが優先されます。 初学者は自身のPort Priorityを元にRoot Bridgeが決まると勘違いしている人が多いので、注意して下さい。

2.4. タイマー設定

以下のコマンドでSTPに関するタイマーをチューニングする事ができます。

Switch(config)# spanning-tree rst hello-time <sec>
Switch(config)# spanning-tree rst forward-time <sec>
Switch(config)# spanning-tree rst max-age <sec>

STPに関するタイマーの決定権を持つのはRoot Bridgeです。 forwarding-time, max-age等のパラメータはBPDUに含まれており、 Root Bridge以外のスイッチ機器はRoot Bridgeのパラメータに追従する挙動をします。

3. 動作確認環境

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

 [SW1]
spanning-tree rst enable
spanning-tree rst version rstp

 [SW2]
spanning-tree mode rapid-pvst

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

4. Root Bridge 選定

4.1. 設定前の動作確認

デフォルトの状態では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: 3160   Sec.
 CIST Root Path Cost:     0              Topology Change Count:      6
 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#

4.2. 設定投入

SW2がRoot Bridgeになるよう、SW1のPriorityを下げます。

 [SW1:MNO]
spanning-tree mst priority 0x9000

4.3. 設定後の動作確認

Root BridgeがSW1からSW2へ変わった事を確認します。 "CIST Root"と"CIST Bridge ID"の異なる事からSW1がRoot Bridgeではなくなった事が分かります。

 [SW1:MNO]
SW1# show spanning-tree rst config

 CIST Root Port:          23             Time Since Topology Change: 23     Sec.
 CIST Root Path Cost:     200000         Topology Change Count:      7
 CIST Root:          8001 C4143CC23B00
 CIST Regional Root Cost: 0              CIST Bridge ID:       9000 00C08F2BB5F7
 CIST Regional Root: 9000 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#

5. Cost 設定

5.1. 設定前の動作確認

SW1の状態を確認すると、コストが等しいため、Port Priorityが小さいFa0/23がForwardingになっている事が確認できます。

 [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     : Root               Port Path Cost: 200000(A)
  Desig. Root   : 8001 C4143CC23B00  Desig. Cost   : 0
  Desig. Bridge : 8001 C4143CC23B00  Desig. Port   : 80 17
  Regional Root : 8001 C4143CC23B00  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    : Discarding         Port Priority : 128
  Port Role     : Alternate          Port Path Cost: 200000(A)
  Desig. Root   : 8001 C4143CC23B00  Desig. Cost   : 0
  Desig. Bridge : 8001 C4143CC23B00  Desig. Port   : 80 18
  Regional Root : 8001 C4143CC23B00  Regional Cost : 0
  Guard         : Disabled

SW1#

5.2. 設定投入

SW1にコストを設定し、Gi0/23ではなくGi0/24が優先されるように経路変更します。

この時注意するのが、Root Bridgeの位置です。現在SW2側がRoot Bridgeになっています。 BPDUを受信したポートのCostが適用されるため、Costを設定すべきPortはSW1側です。

 [SW1:MNO]
interface FastEthernet0/23
 spanning-tree rst cost 200001

5.3. 設定後の動作確認

SW1の状態を確認すると、コストが小さいFa0/24がForwardingになっている事が確認できます。 Fa0/23経由からFa0/24経由に変わった事が分かります。

 [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    : Discarding         Port Priority : 128
  Port Role     : Alternate          Port Path Cost: 200001
  Desig. Root   : 8001 C4143CC23B00  Desig. Cost   : 0
  Desig. Bridge : 8001 C4143CC23B00  Desig. Port   : 80 17
  Regional Root : 8001 C4143CC23B00  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     : Root               Port Path Cost: 200000(A)
  Desig. Root   : 8001 C4143CC23B00  Desig. Cost   : 0
  Desig. Bridge : 8001 C4143CC23B00  Desig. Port   : 80 18
  Regional Root : 8001 C4143CC23B00  Regional Cost : 0
  Guard         : Disabled

SW1#

6. Port Priority 設定

6.1. 事前準備

MNOシリーズに投入したPort Priorityの値が機能しているかどうか確かめるため、SW1をRoot Bridgeとします。

SW2はまずCostを元にRoot Portの選定を試みます。 Costが等しい場合は、対向機器のSW1のPort Priorityを元にRoot Portを選定します。 このような挙動をするため、Port Priorityの動作確認を行うためにはSW1側をRoot Bridgeとする必要があります。

 [SW1:MNO]
spanning-tree rst priority 0x0000

6.2. 設定前の動作確認

SW2の状態を確認すると、コストが等しいため、SW1側のBridge Priorityが小さいGi0/23がFWDになっている事が確認できます。 大事な事なので3回目の繰り返しになりますが、対向機器のPort Priorityを元にRoot Bridgeが選定されます。

 [SW2:cisco]
SW2#show spanning-tree vlan 1

VLAN0001
  Spanning tree enabled protocol rstp
  Root ID    Priority    0
             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#

あまり知られていない確認手法ですが、"show spanning-tree vlan <num> detail"コマンドで 対向機器のport priorityを確認する事ができます。 "Designated port id is"と書かれている部分に注目すると、 デフォルト値の128とポート番号が組み合させた値が記載されている事が分かります。

 [SW2:cisco]
SW2#show spanning-tree vlan 1 detail

 VLAN0001 is executing the rstp compatible Spanning Tree protocol
  Bridge Identifier has priority 32768, sysid 1, address c414.3cc2.3b00
  Configured hello time 2, max age 20, forward delay 15, transmit hold-count 6
  Current root has priority 0, address 00c0.8f2b.b5f7
  Root port is 23 (GigabitEthernet0/23), cost of root path is 19
  Topology change flag not set, detected flag not set
  Number of topology changes 17 last change occurred 00:03:30 ago
          from GigabitEthernet0/23
  Times:  hold 1, topology change 35, notification 2
          hello 2, max age 20, forward delay 15
  Timers: hello 0, topology change 0, notification 0, aging 300

 Port 23 (GigabitEthernet0/23) of VLAN0001 is root forwarding
   Port path cost 19, Port priority 128, Port Identifier 128.23.
   Designated root has priority 0, address 00c0.8f2b.b5f7
   Designated bridge has priority 0, address 00c0.8f2b.b5f7
   Designated port id is 128.23, designated path cost 0
   Timers: message age 16, forward delay 0, hold 0
   Number of transitions to forwarding state: 4
   Link type is point-to-point by default
   BPDU: sent 843, received 3427

 Port 24 (GigabitEthernet0/24) of VLAN0001 is alternate blocking
   Port path cost 19, Port priority 128, Port Identifier 128.24.
   Designated root has priority 0, address 00c0.8f2b.b5f7
   Designated bridge has priority 0, address 00c0.8f2b.b5f7
   Designated port id is 128.24, designated path cost 0
   Timers: message age 15, forward delay 0, hold 0

SW2#

6.3. 設定投入

MNOシリーズにPort Priorityの定義し、Gi0/23経由からGi0/24経由に変更します。

 [SW1:MNO]
interface FastEthernet0/24
 spanning-tree rst port-priority 0

6.4. 設定後の動作確認

SW2のポートの状態を確認します。Gi0/23経由からGi0/24経由に変わった事を確認します。 Gi0/24がFWDとなった事を確認して下さい。

 [SW2:cisco]
SW2#show spanning-tree vlan 1

VLAN0001
  Spanning tree enabled protocol rstp
  Root ID    Priority    0
             Address     00c0.8f2b.b5f7
             Cost        19
             Port        24 (GigabitEthernet0/24)
             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              Altn BLK 19        128.23   P2p
Gi0/24              Root FWD 19        128.24   P2p


SW2#

SW2から見て、SW1からAdvertiseされたport priorityが変わった事を確認します。 port24の"Designated port id is"が128.24から0.24に減った事を確認します。

 [SW2:cisco]
SW2#show spanning-tree vlan 1 detail

 VLAN0001 is executing the rstp compatible Spanning Tree protocol
  Bridge Identifier has priority 32768, sysid 1, address c414.3cc2.3b00
  Configured hello time 2, max age 20, forward delay 15, transmit hold-count 6
  Current root has priority 0, address 00c0.8f2b.b5f7
  Root port is 24 (GigabitEthernet0/24), cost of root path is 19
  Topology change flag set, detected flag not set
  Number of topology changes 18 last change occurred 00:00:27 ago
          from GigabitEthernet0/24
  Times:  hold 1, topology change 35, notification 2
          hello 2, max age 20, forward delay 15
  Timers: hello 0, topology change 7, notification 0, aging 300

 Port 23 (GigabitEthernet0/23) of VLAN0001 is alternate blocking
   Port path cost 19, Port priority 128, Port Identifier 128.23.
   Designated root has priority 0, address 00c0.8f2b.b5f7
   Designated bridge has priority 0, address 00c0.8f2b.b5f7
   Designated port id is 128.23, designated path cost 0
   Timers: message age 16, forward delay 0, hold 0
   Number of transitions to forwarding state: 4
   Link type is point-to-point by default
   BPDU: sent 843, received 3462

 Port 24 (GigabitEthernet0/24) of VLAN0001 is root forwarding
   Port path cost 19, Port priority 128, Port Identifier 128.24.
   Designated root has priority 0, address 00c0.8f2b.b5f7
   Designated bridge has priority 0, address 00c0.8f2b.b5f7
   Designated port id is 0.24, designated path cost 0
   Timers: message age 16, forward delay 0, hold 0
   Number of transitions to forwarding state: 5
   Link type is point-to-point by default
   BPDU: sent 954, received 3663

SW2#

7. タイマーのチューニング

7.1. 設定投入

SW1のスパニングツリーに関するタイマー設定を変更します。

 [SW1:MNO]
spanning-tree rst hello-time 1
spanning-tree rst forward-time 11
spanning-tree rst max-age 6

7.2. 動作確認

SW1のタイマー設定がSW2に伝播した事を確認します。

 [SW2:Cisco]
SW2#show spanning-tree vlan 1

VLAN0001
  Spanning tree enabled protocol rstp
  Root ID    Priority    0
             Address     00c0.8f2b.b5f7
             Cost        19
             Port        24 (GigabitEthernet0/24)
             Hello Time   1 sec  Max Age  6 sec  Forward Delay 11 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              Altn BLK 19        128.23   P2p
Gi0/24              Root FWD 19        128.24   P2p


SW2#