| 確認 |
RSTP(Rapid STP)は,スパニング・ツリーにおける経路切り替え時間を速くした「高速版スパニング・ツリー」です。
通常のスパニング・ツリーのようにタイマーによる経路切り替えはせずに,スイッチ同士が情報を交換してやりとりして切り替えを判断します。
経路切り替えにかかる時間が,BackboneFastで30秒かかるところを,1秒以内に切り替えられます。
●RSTPの特徴
RSTPの特徴は以下の二つです。
・経路切り替え時に各種タイマーを使わない
(各種タイマー…ブロッキングからリスニングに変わるまでの20秒,リスニングの15秒,ラーニングの15秒)
・スイッチ同士のやりとりによって切り替えを判断する
(切り替えを提案する「プロポーザル」と,切り替えを同意する「アグリーメント」のフラグを立てたBPDUをやりとりする)
・あらかじめ代替ポートを決めておく
(2番目のルート・ポート…オルタネート・ポート,2番目の代表ポート…バックアップ・ポート)
こうすることによって,経路を高速に切り替えます。
RSTPは,ルート・ブリッジやコストといった概念は,従来のスパニング・ツリーとまったく同じです。
そのため,RSTPでできるツリー構成は,通常のスパニング・ツリーとまったく同じ構成になります。
※RSTPの動作のしくみは,シスコのWebサイトが参考になります。
●設定の確認
RSTPを動作させるには,全てのスイッチでRSTPを有効にします。
グローバルコンフィグレーション・モードで,以下のコマンドを入力します。
spanning-tree mode rapid-pvst
今回はSwitchA,SwitchB,SwitchCのすべてのスイッチに設定します。
ブリッジ・プライオリティやコストの設定は,通常のスパニング・ツリーと変わりません。
●動作の確認
ネットワークの構成は,3台のスイッチをトライアングル状につないだ構成です。
SwitchCのスパニング・ツリーの状態を見てみましょう。
SwitchC#show spanning-tree
VLAN0001
Spanning tree enabled protocol rstp
Root ID Priority 1
Address 0011.92cc.fc00
Cost 19
Port 5 (FastEthernet1/0/3)
Hello Time 2 sec Max Age
20 sec Forward Delay 15 sec
Bridge ID Priority 12289 (priority
12288 sys-id-ext 1)
Address 0011.92cc.f080
Hello Time 2 sec Max Age
20 sec Forward Delay 15 sec
Aging Time 300
Interface Role Sts Cost Prio.Nbr
Type
---------------- ---- --- --------- --------
---------------
Fa1/0/2 Altn BLK 19 128.4 P2p
Fa1/0/3 Root FWD 19 128.5 P2p
「Spanning tree enabled protocol rstp」とあり,RSTPが動いていることが確認できます(赤字の部分)。
また,Fa1/0/2がブロッキングになっており,代替ポート(オルタネート・ポート)になっているのがわかります。
SwitchAとSwitchBをつないでいるケーブルを抜いたときの動作を確かめてみます。
切り替え時間に,通常のスパニング・ツリーなら50秒,BackboneFastでも30秒かかるケースです。
SwitchBでデバッグ機能をオンにします。
SwitchB#debug spanning-tree events
Spanning Tree event debugging is on
この状態でSwitchAとSwitchBをつないでいるケーブルを抜くと,SwitchBに以下のメッセージが出ます。
SwitchB#
*Mar 1 00:24:27: RSTP(1): updt
roles, root
port Fa1/0/1 going down ←@
*Mar 1 00:24:27: RSTP(1): we become the
root bridge ←A
*Mar 1 00:24:27: RSTP(1): updt
roles, received
superior bpdu on Fa1/0/2 ←B
*Mar 1 00:24:27: RSTP(1): Fa1/0/2
is now
root port ←C
*Mar 1 00:24:27: RSTP(1): synced
Fa1/0/2 ←D
*Mar 1 00:24:27: RSTP(1): transmitting an
agreement on Fa1/0/2 as a response
to a proposal ←E
00:24:28: %LINEPROTO-5-UPDOWN:
Line protocol
on Interface FastEthernet1/0/1,
changed state
to down
00:24:29: %LINK-3-UPDOWN: Interface
FastEthernet1/0/1,
changed state to down
メッセージの内容を解読してみます。
@ルート・ポートだったFa1/0/1がダウンした
A自分がルート・ブリッジなってBPDUを発信する
Bと思ったら,これまでより優先順位の高い(ブリッジID値の小さい)BPDUをFa1/0/2から受信した
Cということは,Fa1/0/2はルート・ポートだ
D同期(再構成)完了
E変更提案の同意(アグリーメント)をFa1/0/2に送る
このメッセージをやりとりしているのはSwitchCです。
SwitchCでは以下のログが出力されます。
SwitchC#
*Mar 1 00:20:53: RSTP(1): updt roles, received
superior bpdu on Fa1/0/2 ←@
*Mar 1 00:20:53: RSTP(1): Fa1/0/2 is now
designated ←A
*Mar 1 00:20:53: RSTP(1): transmitting a
proposal on Fa1/0/2 ←B
*Mar 1 00:20:53: RSTP(1): received an agreement
on Fa1/0/2 ←C
こちらも解読してみます。
@Fa1/0/2の役割変更
AFa1/0/2は代表ポートだ
BFa1/0/2の変更提案(プロポーザル)を送る
CFa1/0/2の変更同意(アグリーメント)を受信した
SwitchBとSwitchCがプロポーザルとアグリーメントをやりとりして,ポートの役割を変更しているのがわかります(青字の部分)。
かかった時間を見てみると,この作業が1秒以内に実行されたことがわかります。
再びSwitchCの状態を見てみましょう。
Fa1/0/2が代表ポート(Degn)になってフォワーディングに変わっています。
SwitchC#show spanning-tree
VLAN0001
Spanning tree enabled protocol rstp
Root ID Priority 1
Address 0011.92cc.fc00
Cost 19
Port 5 (FastEthernet1/0/3)
Hello Time 2 sec Max Age
20 sec Forward Delay 15 sec
Bridge ID Priority 12289 (priority
12288 sys-id-ext 1)
Address 0011.92cc.f080
Hello Time 2 sec Max Age
20 sec Forward Delay 15 sec
Aging Time 300
Interface Role Sts Cost Prio.Nbr
Type
---------------- ---- --- --------- --------
-----------------
Fa1/0/2 Desg FWD 19 128.4 P2p
Fa1/0/3 Root FWD 19 128.5 P2p
●エッジ・ポートにはPortfastを設定する
ここで,SwitchBにパソコンが接続されているケースを見てみましょう。
以下のような構成です。

この状態で,先程と同じように,SwitchAとSwitchBの間のケーブルを抜きます。
するとSwitchBには以下のメッセージが出ます。
SwitchB#
*Mar 1 01:06:20: RSTP(1): updt
roles, root
port Fa1/0/1 going down
*Mar 1 01:06:20: RSTP(1): we
become the
root bridge
*Mar 1 01:06:20: RSTP(1): updt
roles, received
superior bpdu on Fa1/0/2
*Mar 1 01:06:20: RSTP(1): Fa1/0/2
is now
root port
*Mar 1 01:06:20: RSTP(1): syncing
port Fa1/0/10
*Mar 1 01:06:20: RSTP(1): synced
Fa1/0/2
*Mar 1 01:06:20: RSTP(1): transmitting
an
agreement on Fa1/0/2 as a response
to a proposal
*Mar 1 01:06:20: RSTP(1): transmitting
a
proposal on Fa1/0/10
*Mar 1 01:06:20: RSTP(1): transmitting
a
proposal on Fa1/0/10
01:06:21: %LINEPROTO-5-UPDOWN:
Line protocol
on Interface FastEthernet1/0/1,
changed state
to down
01:06:22: %LINK-3-UPDOWN: Interface
FastEthernet1/0/1,
changed state to down
*Mar 1 01:06:22: RSTP(1): transmitting
a
proposal on Fa1/0/10
*Mar 1 01:06:24: RSTP(1): transmitting
a
proposal on Fa1/0/10
*Mar 1 01:06:24: RSTP(1): transmitting
a
proposal on Fa1/0/10
*Mar 1 01:06:26: RSTP(1): transmitting
a
proposal on Fa1/0/10
*Mar 1 01:06:28: RSTP(1): transmitting
a
proposal on Fa1/0/10
*Mar 1 01:06:30: RSTP(1): transmitting
a
proposal on Fa1/0/10
*Mar 1 01:06:32: RSTP(1): transmitting
a
proposal on Fa1/0/10
*Mar 1 01:06:34: RSTP(1): transmitting
a
proposal on Fa1/0/10
*Mar 1 01:06:35: RSTP(1): Fa1/0/10
fdwhile
Expired
*Mar 1 01:06:36: RSTP(1): transmitting
a
proposal on Fa1/0/10
*Mar 1 01:06:38: RSTP(1): transmitting
a
proposal on Fa1/0/10
*Mar 1 01:06:40: RSTP(1): transmitting
a
proposal on Fa1/0/10
*Mar 1 01:06:42: RSTP(1): transmitting
a
proposal on Fa1/0/10
*Mar 1 01:06:44: RSTP(1): transmitting a
proposal on Fa1/0/10
*Mar 1 01:06:46: RSTP(1): transmitting
a
proposal on Fa1/0/10
*Mar 1 01:06:48: RSTP(1): transmitting
a
proposal on Fa1/0/10
*Mar 1 01:06:50: RSTP(1): Fa1/0/10
fdwhile
Expired
先程と違うのは,赤字の部分が付け加わっているところです。
「transmitting a proposal on Fa1/0/10」は,SwitchCから受け取ったプロポーザルを,Fa1/2/10に送信していることを示しています。
でもFa1/0/10にはスイッチはつながっていないので,応答がありません。
なので,30秒間続けてプロポーザルを送り続けているのです。
つまり,SwitchBがポートを切り替えるのに結局30秒かかってしまい,結局,通常のスパニング・ツリーのときの動作と同じになってしまいます。
この問題を解消するには,パソコンがつながっているSwitchBのFa1/0/10にportfastを設定します。
SwitchB(config)#interface fastEthernet 1/0/10
SwitchB(config-if)#spanning-tree portfast
%Warning: portfast should only
be enabled
on ports connected to a single
host. Connecting hubs, concentrators,
switches,
bridges, etc... to this
interface when portfast is enabled,
can
cause temporary bridging loops.
Use with CAUTION
%Portfast has been configured
on FastEthernet1/0/10
but will only
have effect when the interface
is in a non-trunking
mode.
設定すると「portfastコマンドは,ホストがつながっているポートにのみ設定すべき」という警告メッセージが出ます。
portfastを設定したポートには,エッジ・ポートであることを示す「Edge」が表示されます。
SwitchB#show spanning-tree
VLAN0001
Spanning tree enabled protocol
rstp
Root ID Priority 1
Address 0011.92cc.fc00
Cost 19
Port 3 (FastEthernet1/0/1)
Hello Time 2 sec Max Age
20 sec Forward Delay 15 sec
Bridge ID Priority 4097
(priority
4096 sys-id-ext 1)
Address 0011.92cd.0280
Hello Time 2 sec Max Age
20 sec Forward Delay 15 sec
Aging Time 300
Interface Role Sts Cost Prio.Nbr
Type
---------------- ---- --- --------- --------
----------------
Fa1/0/2 Root FWD 19 128.4 P2p
Fa1/0/10 Desg FWD 19 128.12 Edge P2p
エッジ・ポートに設定したポートは,RSTPにおいてBPDUを送信しません。
なので,最初に見たような1秒以内の切り替えが可能になります。
「RSTPを使うときには,パソコンがつながるポートにはportfastを入力してエッジ・ポートにする」と覚えておきましょう。
●高速スパニングツリー プロトコル(802.1w)
http://www.cisco.com/japanese/warp/public/3/jp/service/tac/473/146-j.html
|
|