パス・コストの設定
・インタフェースにパス・コストを設定する
・パス・コストの値によって経路が変わることを確認する
ネットワーク構成(画像を別ウインドウで表示)
SwitchAのコンフィグ
!
version 12.1
no service pad
service timestamps debug uptime
service timestamps log uptime
no service password-encryption
!
hostname SwitchA
!
spanning-tree mode pvst
no spanning-tree optimize bpdu transmission
spanning-tree extend system-id
spanning-tree vlan 1 priority 0 ←プライオリティを0に設定して,このスイッチをルート・ブリッジにする
!
interface FastEthernet0/1
no ip address
!
interface FastEthernet0/3
no ip address
!
interface Vlan1
no ip address
no ip route-cache
shutdown
!
line con 0
line vty 0 4
login
line vty 5 15
login
!
end
SwitchBのコンフィグ
!
version 12.1
no service pad
service timestamps debug uptime
service timestamps log uptime
no service password-encryption
!
hostname SwitchB
!
spanning-tree mode pvst
no spanning-tree optimize bpdu transmission
spanning-tree extend system-id
!
interface FastEthernet0/1
!
interface FastEthernet0/2
!
interface Vlan1
no ip address
no ip route-cache
shutdown
!
line con 0
line vty 0 4
login
line vty 5 15
login
!
end
SwitchCのコンフィグ
!
version 12.1
no service pad
service timestamps debug uptime
service timestamps log uptime
no service password-encryption
!
hostname SwitchC
!
spanning-tree mode pvst
spanning-tree extend system-id
!
interface FastEthernet0/2
switchport mode access
no ip address
!
interface FastEthernet0/3
switchport mode access
no ip address
spanning-tree vlan 1 cost 1 ←パス・コストを「1」に設定する
!
interface Vlan1
no ip address
shutdown
!
line con 0
line vty 0 4
login
line vty 5 15
login
!
end
確認
スパニング・ツリーでは,「パス・コスト」という値を使って,ルート・ブリッジまでの「近さ」を測ります。
デフォルトでは,インタフェースの帯域幅でパス・コストの値が決まります。
このパス・コストを変えることによって,経路を変えることができます。

パス・コストのデフォルト値は,以下のようになっています。
【パス・コストのデフォルト値】
・10Mビット/秒:100
・100Mビット/秒:19
・1Gビット/秒  :4
・10Gビット/秒 :2

●パス・コストでルート・ポートと代表ポートを決める
スパニング・ツリーでは,ルート・ブリッジが2秒間隔でBPDUを送出します。
そして,配下のスイッチがこのBPDUを受け取ることによって,ネットワークをツリー構造にします。
どうやってツリー構造を作るかと言うと,以下の二つの作業を実行します。

・スイッチからルート・ブリッジまで最短で行けるポートを選ぶ(ルート・ポートの選出)
・LANセグメントからルート・ブリッジまで最短で行けるポートを選ぶ(代表ポート選出)

この二つの作業に共通しているのが,「ルート・ブリッジまで最短で行けるポートを選ぶ」ことです。
この判断に使うのが「パス・コスト」です。
パス・コストは,各スイッチのインタフェースに設定します。
BPDUを受け取ったスイッチは,BPDUを受信したインタフェースに設定されているパス・コストを加えて,ほかのスイッチへ転送していきます

例えば,ルート・ブリッジまでの経路が複数あるスイッチは,複数のBPDUを受信することになります。
ですが,このときにBPDUのパス・コストを比較して,パス・コストの最も小さいBPDUを受信したポートが,「ルート・ブリッジから一番近い」と判断するのです。
これが,ルート・ポートの選出です。

代表ポートの選出では,これをLANセグメントごとに考えます。
ルート・ブリッジまで複数の経路があるLANセグメントは,LANセグメント上を複数のBPDUが飛び交います。
このとき,LANセグメント上に飛び交うBPDUのパス・コストを比較して,パス・コストの最も小さいBPDUを送信しているスイッチのポートが,「ルート・ブリッジへ一番近い」と判断します。
これを,LANセグメント上の全スイッチが実行することで,LANセグメント上で1個の代表ポートが決まるわけです。

●設定前の状態を確認
このラボでは,3台のスイッチ同士をすべて100Mビット/秒でつないでいるので,パス・コストはすべて19になります。
まずは,このデフォルトの状態を確認してみましょう。
SwitchBでは,Fa0/2が代表ポートになっており,フォワーディング状態にあることがわかります(赤字の部分)。

SwitchB#show spanning-tree

VLAN0001
 Spanning tree enabled protocol ieee
 Root ID  Priority  1
       Address   000a.8a7e.ebc0
       Cost    19
       Port    1 (FastEthernet0/1)
       Hello Time  2 sec Max Age 20 sec Forward Delay 15 sec

 Bridge ID Priority  32769 (priority 32768 sys-id-ext 1)
       Address   000a.8a0d.4180
       Hello Time  2 sec Max Age 20 sec Forward Delay 15 sec
       Aging Time 300

Interface       Role Sts Cost      Prio.Nbr Type
---------------- ---- --- --------- -------- ---------------
Fa0/1         Root FWD 19       128.1  P2p
Fa0/2         Desg FWD 19       128.2  P2p


そして対向のSwitchCのFa0/2は,ブロッキング・ポートになっています(赤字の部分)。

SwitchC#show spanning-tree

VLAN0001
 Spanning tree enabled protocol ieee
 Root ID  Priority  1
        Address   000a.8a7e.ebc0
        Cost    19
        Port    3 (FastEthernet0/3)
        Hello Time  2 sec Max Age 20 sec Forward Delay 15 sec

 Bridge ID Priority  32769 (priority 32768 sys-id-ext 1)
        Address   000e.d7f6.9180
        Hello Time  2 sec Max Age 20 sec Forward Delay 15 sec
        Aging Time 300

Interface       Role Sts Cost      Prio.Nbr Type
---------------- ---- --- --------- -------- ----------------
Fa0/2         Altn BLK 19       128.2  P2p
Fa0/3         Root FWD 19       128.3  P2p


以上が,パス・コストを設定していないデフォルトの状態です。

●SwitchCにパス・コストを設定する
では,SwitchCのFa0/3のパス・コストをデフォルトの「19」から「1」に変更してみます。
変化の様子を見るために,まずはデバッグ機能をオンにします。

SwitchC#debug spanning-tree events
Spanning Tree event debugging is on


そして,Fa0/3の設定モードに入り,コストを「1」に設定します。

SwitchC(config)#interface fastEthernet 0/3
SwitchC(config-if)#spanning-tree vlan 1 cost 1
SwitchC(config-if)#
00:18:57: STP: VLAN0001 Fa0/2 -> listening
00:19:12: STP: VLAN0001 Fa0/2 -> learning
00:19:27: STP: VLAN0001 sent Topology Change Notice on Fa0/3
00:19:27: STP: VLAN0001 Fa0/2 -> forwarding


すると,これまでブロッキングだったFa0/2が,フォワーディングになった旨のメッセージが出ました。
設定後のSwitchCの状態を確認してみます。

SwitchC#show spanning-tree

VLAN0001
 Spanning tree enabled protocol ieee
 Root ID  Priority  1
        Address   000a.8a7e.ebc0
        Cost    1
        Port    3 (FastEthernet0/3)
        Hello Time  2 sec Max Age 20 sec Forward Delay 15 sec

 Bridge ID Priority  32769 (priority 32768 sys-id-ext 1)
       Address   000e.d7f6.9180
       Hello Time  2 sec Max Age 20 sec Forward Delay 15 sec
       Aging Time 300

Interface       Role Sts Cost      Prio.Nbr Type
---------------- ---- --- --------- -------- ------------------
Fa0/2         Desg FWD 19       128.2  P2p
Fa0/3         Root FWD 1        128.3  P2p


Fa0/3のコストが「1」になっています。
また,Fa0/2が代表ポートになってフォワーディングになっています。

SwitchCのFa0/2の対向にあるSwitchBのFa0/2の状態も見てみましょう。

SwitchB#show spanning-tree

VLAN0001
 Spanning tree enabled protocol ieee
 Root ID  Priority  1
        Address   000a.8a7e.ebc0
        Cost    19
        Port    1 (FastEthernet0/1)
        Hello Time  2 sec Max Age 20 sec Forward Delay 15 sec

 Bridge ID Priority  32769 (priority 32768 sys-id-ext 1)
        Address   000a.8a0d.4180
        Hello Time  2 sec Max Age 20 sec Forward Delay 15 sec
        Aging Time 300

Interface        Role Sts Cost      Prio.Nbr Type
---------------- ---- --- --------- -------- -----------------
Fa0/1         Root FWD 19       128.1  P2p
Fa0/2         Altn BLK 19       128.2  P2p


代わりにこちらがブロッキングになったことがわかります。

●以上の動作のしくみ
ちょっと動作がわかりにかったかもしれないので,図を使って確認しておきましょう。
SwitchBとSwitchCがつながるLANセグメントの代表ポートを決める動作です。

パス・コスト設定前のデフォルトの状態が以下の図です。
ルート・ブリッジは,パス・コスト「0」のBPDUを全ポートに送出します。
これを受け取ったSwitchBとSwitchCは,BPDUを受け取ったポートに設定されているパス・コストを加えて,次のスイッチへ転送します。
そのためこの場合は,SwitchBとSwitchCともにパス・コスト「19」を送出することになり,優劣がつきません。
その場合は,ブリッジ・プライオリティ値の小さいSwitchBのポートを代表ポートにします。

 デフォルトの状態



そして,SwitchCのFa0/3のパス・コストを「1」に変更した状態が以下になります。
パス・コストは,BPDUを受け取ったポートのパス・コスト値を加えて出します。
そのため,SwitchCがSwitchBに出すBPDUのパス・コストは「1」になります。
そのためこの場合は,パス・コスト値の小さいBPDUを出しているSwitchCのポートが代表ポートになるわけです。

 SwitchCのFa0/3のパス・コストを「1」に変更した状態


スパニングツリー・ラボ
STPの基本動作
ルート・ブリッジの設定
パス・コストの設定
PortFast
UplinkFast
BackboneFast
PVST
RSTP
MSTP