| 確認 |
BackboneFastは,直接接続していない間接リンクの障害を検知して,通常のスパニング・ツリーのときよりも速く経路を切り替える機能です。
通常ならば,経路の切り替えに50秒かかるところを30秒にまで短縮できます。
●通常のスパニング・ツリーの動作を確認
最初に,BackboneFastを設定していないときの動作を見てみましょう。
ネットワークの構成は逆三角形の構成で,動作検証の主人公は,一番下のSwitchCです。
ネットワーク上に何も障害が発生していないときの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 15
Interface Role Sts Cost Prio.Nbr
Type
---------------- ---- --- --------- --------
----------------
Fa0/2 Altn BLK 19 128.2 P2p
Fa0/3 Root FWD 19 128.3 P2p
この状態で,SwitchAとSwitchBをつないでいるケーブルを抜いたときのSwitchCの動作を調べます。
そのため,SwitchCにデバッグ・コマンドを入力しておきます。
SwitchC#debug spanning-tree events
Spanning Tree event debugging
is on
準備は整いました。SwitchAとSwitchBをつないでいるケーブルを抜きます。
06:53:52: STP: VLAN0001 heard root 32769-000a.8a0d.4180
on Fa0/2
06:53:54: STP: VLAN0001 heard
root 32769-000a.8a0d.4180
on Fa0/2
06:53:56: STP: VLAN0001 heard
root 32769-000a.8a0d.4180
on Fa0/2
06:53:58: STP: VLAN0001 heard root 32769-000a.8a0d.4180
on Fa0/2
06:54:00: STP: VLAN0001 heard
root 32769-000a.8a0d.4180
on Fa0/2
06:54:02: STP: VLAN0001 heard
root 32769-000a.8a0d.4180
on Fa0/2
06:54:04: STP: VLAN0001 heard
root 32769-000a.8a0d.4180
on Fa0/2
06:54:06: STP: VLAN0001 heard
root 32769-000a.8a0d.4180
on Fa0/2
06:54:08: STP: VLAN0001 heard
root 32769-000a.8a0d.4180
on Fa0/2
06:54:10: STP: VLAN0001 heard
root 32769-000a.8a0d.4180
on Fa0/2
06:54:10: STP: VLAN0001 Fa0/2
-> listening
06:54:11: STP: VLAN0001 Topology
Change rcvd
on Fa0/2
06:54:11: STP: VLAN0001 sent
Topology Change
Notice on Fa0/3
06:54:25: STP: VLAN0001 Fa0/2
-> learning
06:54:40: STP: VLAN0001 sent
Topology Change
Notice on Fa0/3
06:54:40: STP: VLAN0001 Fa0/2
-> forwarding
赤字の部分は,これまでルート・ブリッジから来ていたBPDUが来なくなったことを示すメッセージです。
32769-000a.8a0d.4180という数値は,SwitchBのブリッジIDです。
「Fa0/2の先にあるSwitchBからルート・ブリッジがあると聞いていた(けど来なくなった)」というわけです。
これまでSwitchCは,ルート・ブリッジ(SwitchA)からBPDUを,SwitchAから直接受信するのと,SwitchB経由で受信していました。
ところが,SwitchAとSwitchB間のリンクを切断したことによって,SwitchB経由でBPDUを受信できなくなりました。
SwitchCはそれを検知して,20秒間BPDUが来なくなったらネットワーク上に経路変更があったとみなして,ブロッキングだったポートをリスニングに移行します。
その後,リスニング(15秒)とラーニング(15秒)を経て,最終的にフォワーディングになっています(青字の部分)。
経路切り替え後のSwitchCの状態を確認してみます。
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 Desg FWD 19 128.2 P2p
Fa0/3 Root FWD 19 128.3 P2p
Fa0/2がフォワーディングになっているのがわかります。
●BackboneFastを設定する
BackboneFastを使うとどうなるでしょうか。
SwitchCにBackboneFastを設定します。
SwitchC#configure terminal
Enter configuration commands,
one per line. End
with CNTL/Z.
SwitchC(config)#spanning-tree backbonefast
BackboneFastは,他のスイッチとメッセージをやりとりするため,ネットワークにあるすべてのスイッチでBackboneFastを有効にする必要があります。
そのため,SwitchAとSwitchBも同様にBackboneFastを設定します。
SwitchA(config)#spanning-tree backbonefast
SwitchB(config)#spanning-tree backbonefast
以上で準備はOKです。
●BackboneFast設定時の切り替え動作を確認
それでは,BackboneFast設定時の切り替え動作を見てみます。
SwitchCのBackboneFasの動作を確認するため,デバッグ・コマンドを入力します。
SwitchC#debug spanning-tree backbonefast
Spanning Tree backbonefast general
debugging
is on
先程と同じように,SwitchAとSwitchB間のケーブルを抜きます。
06:58:00: STP: VLAN0001 heard
root 32769-000a.8a0d.4180
on Fa0/2
06:58:00: STP FAST: received inferior BPDU
on VLAN0001 FastEthernet0/2. ←@
06:58:00: STP FAST: sending RLQ request PDU
on VLAN0001 FastEthernet0/3 ←A
06:58:00: STP FAST: Received RLQ response
PDU on VLAN0001 FastEthernet0/3. ←B
06:58:00: STP FAST: received RLQ response
PDU was expected on VLAN0001 FastEthernet0/3
- resp root id 1-000a.8a7e.ebc0 . ←C
06:58:00: STP FAST: received_rlq_bpdu on
VLAN0001 FastEthernet0/2 - making FastEthernet0/2
a designated port ←D
06:58:00: STP: VLAN0001 Fa0/2
-> listening
06:58:01: STP: VLAN0001 Topology
Change rcvd
on Fa0/2
06:58:01: STP: VLAN0001 sent
Topology Change
Notice on Fa0/3
06:58:15: STP: VLAN0001 Fa0/2
-> learning
06:58:30: STP: VLAN0001 sent
Topology Change
Notice on Fa0/3
06:58:30: STP: VLAN0001 Fa0/2
-> forwarding
赤字部分の5行のメッセージがBackboneFastのメッセージです。
上から順番に解読してみると,以下のようになります。
@.優先順位の低い(inferior)BPDUをFa0/2から受信した
A.RLQリクエストをFa0/3に送信した
B.RLQレスポンスをFa0/3から受信した
C.RLQレスポンスを受信したことによって,Fa0/3の先にルート・ブリッジ(ブリッジIDが1-000a.8a7e.ebc0)があると考えられる
D.Fa0/2を代表ポートにした
SwitchBは,ルート・ポートのリンクがダウンしたので,ルート・ブリッジへの道がなくなりました。
そのためSwitchBは,「自身がルート・ブリッジです」という内容のBPDUを全ポートに送信します。
このBPDUを受信したSwitchCは,BackboneFast機能を使い,RLQ(root
link query)メッセージをスイッチ同士でやりとりして,ルート・ブリッジまでの経路が存在するかを確認します。
ルート・ブリッジまでの経路が確認できたSwitchCは,ブロッキング・ポートを即座にリスニングに移行します。
このため,BPDUが来なくなったことを確かめるための20秒間をカットできます。
BackboneFastを使うと,通常ならば50秒かかっていた切り替え時間を,30秒に短縮できるわけです。
最終的に,ブロッキング・ポートだったFa0/2は代表ポートになりました。
「ポートを代表ポートにする」ということを言い換えると,「配下のスイッチにルート・ブリッジへの道を提供する」ということでもあります。
SwitchCは,ルート・ブリッジへの道がなくなったとSwitchBから報告がありました。
そこでSwitchCは,自分自身がルート・ブリッジにつながっているかどうかを確した上で,SwitchBがつながっているFa0/2を代表ポートにして,SwitchBをツリー構造の配下に加えたわけです。
これが,BackboneFastの動作のしくみです。
show spanning-treeコマンドにbackbonefastオプションを付けると,RLQリクエストやRLQレスポンスをやりとりした数を確認することができます。
SwitchC#show spanning-tree backbonefast
BackboneFast is enabled
BackboneFast statistics
-----------------------
Number of transition via backboneFast (all
VLANs) : 1
Number of inferior BPDUs received (all VLANs)
: 1
Number of RLQ request PDUs received (all
VLANs) : 0
Number of RLQ response PDUs received
(all
VLANs) : 1
Number of RLQ request PDUs sent (all VLANs)
: 1
Number of RLQ response PDUs sent (all VLANs)
: 0
●おまけ SwitchAとSwitchBのメッセージも確認
SwitchAとAwitchB間のケーブルを外したときに,SwitchAとAwitchBにどんなメッセージが表示されるか見てみましょう。
SwitchBのメッセージは以下です。
07:03:35: STP: VLAN0001 we are
the spanning
tree root
07:03:36: %LINEPROTO-5-UPDOWN:
Line protocol
on Interface FastEthernet0/1,
changed state
to down
07:03:36: STP: VLAN0001 heard
root 1-000a.8a7e.ebc0
on Fa0/2
07:03:36: supersedes 32769-000a.8a0d.4180
07:03:36: STP: VLAN0001 new root is 1, 000a.8a7e.ebc0
on port Fa0/2, cost 38
07:03:36: STP: VLAN0001 sent
Topology Change
Notice on Fa0/2
07:03:37: %LINK-3-UPDOWN: Interface
FastEthernet0/1,
changed state to down
最初に「自分がルートだ」というBPDUを送信しているのがわかります(赤字の1行目)。
その後Fa0/2でBPDUを受信し,SwitchA(ブリッジID:1-000a.8a7e.ebc0)がルート・ブリッジと認識しました(赤字の2行目)。
SwitchAのメッセージは以下です。
07:06:53: STP FAST: Received
RLQ request
PDU on VLAN0001 FastEthernet0/3.
07:06:53: STP FAST: VLAN0001
FastEthernet0/3:
sending requested RLQ response
PDU
07:06:53: STP FAST: sending RLQ
response
PDU on VLAN0001 FastEthernet0/3
07:06:53: STP: VLAN0001 Topology
Change rcvd
on Fa0/3
07:06:54: %LINEPROTO-5-UPDOWN:
Line protocol
on Interface FastEthernet0/1,
changed state
to down
07:06:55: %LINK-3-UPDOWN: Interface
FastEthernet0/1,
changed state to down
07:07:23: STP: VLAN0001 Topology
Change rcvd
on Fa0/3
RLQリクエストをFa0/3で受信しています(赤字の1行目)。
これは,SwitchCが送信したRLQリクエストです。
これに応えて,RLQレスポンスをFa0/3に送信しています(赤字の2行目)。
BackboneFastの動作の詳細は,以下のシスコのWebページが参考になります。
●CatalystスイッチのBackboneFastの説明と設定
http://www.cisco.com/support/ja/473/18.shtml
|
|