スパニングツリープロトコル(STP)

【図解】Cisco STP (PVSTP+) の BackboneFast 機能と設定

BackboneFast 機能の理解のための前提知識

STP はルートブリッジを最上流とし、下位スイッチに対して BPDU を送信します。

BPDU を送信するポートは下位スイッチに繋がるので "DownLink (ダウンリンク)"、BPDU を受信するポートは上位スイッチに繋がるので "UpLink (アップリンク)" と呼びます。

UpLink のうち、ルートブリッジに一番近い 1 ポートは "Root Port : ルートポート" として開放し、その他のポートは Block Port : ブロックポート (RSTP で言う "Alternate Port : 代替ポート") になります。

DonwLink は基本的に全て "Designated Port : 指定ポート" として開放します。例外的に、自分のスイッチ内でループするときは 1 ポートが Block Port (RSTP で言う "Backup Port : バックアップポート") となります。

このあたりの説明がしっくりこない方は、下記ページをまずは参照下さい。

【暗記いらず】分かりやすいSTP(スパニングツリー)の本質とアルゴリズム
スパニングツリーとは STP とは、Spanning Tree Protoco...

BackboneFast とは

Cisco の BackboneFast 機能は、通常規格の STP の add-on 機能 (PVST+ のプラス部分) で、間接障害に対する経路の切替時間短縮を実現できます。

具体的に言うと、間接障害は基本的に 50 秒の切替時間が必要 (MaxAge = 20 秒, Listen = 15 秒, Learn = 15 秒) ですが、Backbone Fast を有効にすることにより 30 秒に短縮 (MaxAge の省略) ができます。

なお、RSTP にはネゴシエーション機能があるため、BackboneFast は不要であり、BackboneFast よりもはるかに高速切り替えが可能です。

さて、BackboneFast の具体例として以下の構成を考えます。SW1 がルートブリッジであり、SW4 の port 2 が Uplink の Block 状態 (いわゆる代替ポート) となっています。

ここで SW1 と SW3 に障害が発生したとします。SW4 にとってはこのような障害は「間接障害」と呼び、すぐに障害内容が分かりません。

SW3 にとっては Root Port である Port 1 がリンクダウンするという「直接障害」ですので直ちに「自分が RootBridge である」と主張して SW4 に BPDU を送信します。

Backbone Fast が設定されていない場合、この劣性の BPDU は MaxAge の 20 秒間、無視され続けます。

一方、BackboneFast が設定されている場合、この劣性の BPDU に反応し、このポート以外の全てのアップリンクポート (Root Port, 代替ポート) に対して Root Link Query (RLQ) を送信します (今回のケースでは Port 1 だけですが)。RLQ は通常の BPDU と同じフレームフォーマットですが、SNAP に特殊なアドレスを設定することで RLQ として認識されます。RLQ には今までの RootBridge が格納されています。

その RLQ を受信したスイッチは、RLQ 内にある RootBridge が自分の RootBridge と一致している場合は、さらに Root Port から上流スイッチへ転送され、RootBridge にたどり着くまで転送が繰り返されます。

もし今まで認識していた RootBridge に辿り着いた場合は RootBridge は RLQ Ack を全てのダウンリンク (つまり Designated Port) からフラッディングします。そして RLQ を生成したスイッチがその RLQ Ack を受信したら、受信したポートを Root Port とみなし、MaxAge を待つことなく Port 2 の Block を Listen 状態にします。(その後 Learn を経て Forward へ。)

ただし、もし SW1 自体に障害が発生した場合は、SW2 から通知される RootBridge が変更になります。全ポートで RLQ Ack の Bridge ID が変わっていた場合、SW4 は初期状態となります。つまり、全ポートが Listen 状態になり「自分が RootBridge である」と主張する BPDU を送信し始めます。

BackboneFast の設定

BackboneFast はインタフェース単位ではなく、Global 設定によりスイッチ全体で有効化します。

SW1(config)# spanning-tree backbonefast

設定対象のスイッチは RLQ , RLQ ack を送受信が想定されるスイッチ全てです。

設定状態は以下コマンドで確認できます。

SW1# show spanning-tree backbonefast

Uplink Fast と Backbone Fast と RSTP の比較

UplinkFastBackboneFastRSTP
短縮できる障害直接障害間接障害直接と間接の両方
対応方法代替ポートの
Listen/Learn
状態を飛ばす
RLQにて現在の
RootBridge を
確認する
ネゴシエーション
短縮時間30秒⇒1秒50秒⇒30秒30秒or50秒⇒1,2秒

コメント

タイトルとURLをコピーしました