| 確認 |
レイヤー2レベルで,ループ防止と冗長化を実現するのがスパニング・ツリー(STP)です。
デフォルトでは,何も設定しなくてもCatalystでSTPが動作するようになっています。
どんな動作をするのか見てみましょう。
●スパニング・ツリーのしくみ
スパニング・ツリーでは,スイッチ同士がBPDUという制御情報をやりとりして,ループのないツリー構成を作ります。
ツリー構成を作るときの流れは,以下のようになります。
1.ルート・ブリッジを決める
2.スイッチからルート・ブリッジまで最短で行けるポート(ルート・ポート)を選ぶ
3.LANセグメントからルート・ブリッジまで最短で行けるポート(代表ポート)を選ぶ
4.ルート・ポートにも代表ポートにもならなかったポートを遮断する
各スイッチが以上の動作を実行することで,ループのないツリー構成ができます。
専門用語が出てきました。確認しておきましょう。
・ルート・ブリッジ…ツリー構成の根(ルート)になるスイッチ
・パス・コスト………ルート・ブリッジまでの「近さ」を表す値
・ルート・ポート……スイッチからルート・ブリッジに一番近いポート
・代表ポート………LANセグメントからルート・ブリッジに一番近いポート
●ルート・ブリッジと各ポートの状態を確認する
3台のスイッチを三角形に接続したときの動作の例を見てみましょう。
シスコのCatalystは,デフォルトで,以下のコマンドが入っています。
spanning-tree mode pvst
これは,PVST(per VLAN spanning tree)の機能をオンにするコマンドです。
PVSTは,VLANごとにスパニング・ツリーを実行する機能です。
VLANごとにスパニング・ツリーを指定しないのであれば,通常のスパニング・ツリーと動作は同じになります。
では,ツリー構成の根となるルート・ブリッジを確認します。
show spanning-treeコマンドを入力すると,スパニング・ツリーの状態が表示されます。
今回は,ルート・ブリッジと,各ポートのステータス/役割に注目します。
最初にSwitchAを見てみましょう。
SwitchA#show spanning-tree
VLAN0001
Spanning tree enabled protocol
ieee
Root ID Priority 32769
Address 000a.8a0d.4180
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.8a7e.ebc0
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/3 Desg FWD 19 128.3 P2p
スイッチ同士でBPDUを交換し,BPDUに記述されているブリッジID値が最も小さいスイッチがルート・ブリッジになります。
ブリッジIDは,「プライオリティ」と「MACアドレス」の二つの値によって成り立っています。
プライオリティは,何も設定しなければ32769という値がデフォルトで入ります。
もう一方のMACアドレスは,スイッチが確保している最小のMACアドレスになります。
そして,下に表示されたのが,スイッチのポートの状態です。
「Sts」の項目にあるのが,ポートのステータスで,「FWD」はフォワーディング(転送可能)を表しています。
「Role」の項目にあるのが,ポートの役割で,Fa0/1がルート・ポート(Root)で,Fa0/3が代表ポート(Desg)になっていることがわかります。
次に,SwitchBを調べてみます。
SwitchB#show spanning-tree
00:21:00: %SYS-5-CONFIG_I: Configured
from
console by console
VLAN0001
Spanning tree enabled protocol
ieee
Root ID Priority 32769
Address 000a.8a0d.4180
This bridge is the root
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 Desg FWD 19 128.1 P2p
Fa0/2 Desg FWD 19 128.2 P2p
表示の中ほどに「This bridge is
the root」とあるのがわかります。
つまり,このスイッチがルート・ブリッジであることを表しています。
ポートのステータスを見ると,このSwitchBも二つともフォワーディングになっていることがわかります。
ポートの役割は,Fa0/1とFa0/2が代表ポート(Desg)になっています。
SwitchCも調べてみましょう。
SwitchC#show spanning-tree
VLAN0001
Spanning tree enabled protocol
ieee
Root ID Priority 32769
Address 000a.8a0d.4180
Cost 19
Port 2
(FastEthernet0/2)
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 Root FWD 19 128.2 P2p
Fa0/3 Altn BLK 19 128.3 P2p
ポートのステータスを見ると,Fa0/3が「BLK」となっており,ブロッキング(転送不可)になっています。
役割の「Altn」というのは,「代替ポート」という意味です。
3台のスイッチのブリッジIDを見ると,プライオリティは皆32769で同じです。
そのため,スイッチのMACアドレスが一番小さかったSwitchBがルート・ブリッジに決まったわけです。
これで,各スイッチの状態が,冒頭の図のようになっていることが確認できました。
●経路の切り替わりを確認する
次に,障害時に経路が切り替わることを確認します。
SwitchAとSwtchBがつながるケーブルをわざと抜きます。
そこで,SwitchCのブロッキング・ポートがフォワーディングになる様子を見てみます。
SwitchCに動作の様子を表示させるために,debug
spanning-tree eventsコマンドを入力します。
SwitchC#debug spanning-tree events
Spanning Tree event debugging is on
この状態で,SwitchAとSwtchBがつながるケーブルを抜きます。
00:23:06: STP: VLAN0001 heard
root 32769-000a.8a7e.ebc0
on Fa0/3
00:23:08: STP: VLAN0001 heard
root 32769-000a.8a7e.ebc0
on Fa0/3
00:23:10: STP: VLAN0001 heard
root 32769-000a.8a7e.ebc0
on Fa0/3
00:23:12: STP: VLAN0001 heard
root 32769-000a.8a7e.ebc0
on Fa0/3
00:23:14: STP: VLAN0001 heard
root 32769-000a.8a7e.ebc0
on Fa0/3
00:23:16: STP: VLAN0001 heard
root 32769-000a.8a7e.ebc0
on Fa0/3
00:23:18: STP: VLAN0001 heard
root 32769-000a.8a7e.ebc0
on Fa0/3
00:23:20: STP: VLAN0001 heard
root 32769-000a.8a7e.ebc0
on Fa0/3
00:23:22: STP: VLAN0001 heard
root 32769-000a.8a7e.ebc0
on Fa0/3
00:23:24: STP: VLAN0001 heard
root 32769-000a.8a7e.ebc0
on Fa0/3
00:23:24: STP: VLAN0001 Fa0/3
-> listening
00:23:24: STP: VLAN0001 Topology
Change rcvd
on Fa0/3
00:23:24: STP: VLAN0001 sent
Topology Change
Notice on Fa0/2
00:23:39: STP: VLAN0001 Fa0/3 -> learning
00:23:54: STP: VLAN0001 sent Topology Change
Notice on Fa0/2
00:23:54: STP: VLAN0001 Fa0/3 -> forwarding
ブロッキングになっているFa0/3のポートが,リスニング→ラーニング→フォワーディングと遷移しているのがわかります。
(ポートの遷移については,シスコのWebページなどを参考にして下さい。)
最初に出ている10個のメッセージは,これまでSwitchA経由で来ていたBPDUが来なくなったことを表しています。
BPDUは2秒に1回の間隔でルート・ブリッジが送ります。
スイッチは,このBPDUが20秒間来なくなってはじめて経路が変わったと判断するわけです。
リスニングは,BPDUを改めて送受信して経路を計算する時間で,これは15秒。
ラーニングは,MACアドレスを学習してアドレス・テーブルを作る時間で,これも15秒です。
つまり,経路が切り替わるまでに50秒(20秒+15秒+15秒)かかったわけです。
ちなみに,この20秒間は「Max Age」,二つの15秒間は「Foward
Delay」などと呼ばれています。
次に,三角形の状態から,SwitchBとSwtchCがつながるケーブルを抜いてみます。
00:30:25: %LINEPROTO-5-UPDOWN:
Line protocol
on Interface FastEthernet0/2,
changed state
to down
00:30:25: %LINK-3-UPDOWN: Interface
FastEthernet0/2,
changed state to down
00:30:25: STP: VLAN0001 new root
port Fa0/3,
cost 38
00:30:25: STP: VLAN0001 Fa0/3
-> listening
00:30:27: STP: VLAN0001 sent
Topology Change
Notice on Fa0/3
00:30:40: STP: VLAN0001 Fa0/3
-> learning
00:30:55: STP: VLAN0001 Fa0/3
-> forwarding
今度は,最初の20秒間を飛ばして,30秒(15秒+15秒)で経路が切り替わりました。
というのも,SwitchBとSwtchC間のリンクがダウンしたことは,SwitchCは知ることができます。
なので,BPDUが来なくなったことを20秒間待つことなく,すぐにラーニングに移行したわけです。
スパニング・ツリーの用語や基本については,以下のページが参考になります。
●Catalyst2950/2955スイッチ ソフトウエア
コンフィギュレーションガイド
http://www.cisco.com/japanese/warp/public/3/jp/service/manual_j/sw/cat29/50dscg/chapter13/11380_12_13.shtml
|
|