【スパニングツリープロトコルの 概要】


このHPはスパニングツリープ ロトコルの概要についてまとめたものです。


1-1ネットワークの冗長化

大規模なネットワークでは、 「いつでもネットワークを利用できること」が要求される。この ようなネ ットワークを高可用性ネットワークと呼ぶ。高可用性ネットワー クを実現するためには、ネットワークの冗長化を行う。しかし、 ネットワ ークの 冗長化は同時に「ブロードキャストストーム」 という重大な問題 が 発生する。




1-2ブロードキャストストーム

「ブロードキャストストーム 」とは、ブロードキャストを流したときスイッチのフラッディングにより、 フレームがループする現象をいう。


1-3スパニングツリープロトコル

スパニングツリー(STP)と は、ル ープ状に構 成された冗長ネットワークで、ブロードキャストなどのフレーム が永遠に循環するのを防ぐためのプロトコルで「 IEEE802.1D」 で標準化されている。スイッチがある特定のポートをブロックす ることにより、冗長性を失うことなくフレームのループを回避す る。



スパニングツリープロトコルはスイッチ間で「BPDU」と呼ばれる 特別なフレー ムをやり取りし、スイッチに与えられているIDやス イッチに接続されたネットワークの情報を交換する。交換した情 報を元に ス イッチの優先度と使用するポートを決定する。 スパニングツリープロトコルは、通常ひとつの経路を使い、それ 以外の経路は障害の代替経路として使う。しかし、障害時の代替 経路の切 り替えには、最大で50秒かかる可能性がある。



★BPDU

スパニングツリープロトコル では、スイッチで構成されたネットワーク内で、代表となるスイッチ(ルート ブリッジ)を決定する。ルートブリッジから一番遠くに位置する ポートが 使用されないポート(ブロッキングポート)と判断 される。
ルートブリッジや、ブロッキングポートの決定には「BPDU」 が使用される 。 BPDUには

● ルートブリッジID
● パスコスト
● ブリッジID

などの 情報が格納されている。ルートブリッジの決定にはブリッジIDを 使用し、 ブロッキングポートの決定にはパスコストを使用する。



★スパニングツリーの動作の概要
スパニ ングツリープロトコルは、IEEE802.1dとして標準化されている。 IEEE802.1 dに準拠したスイッチは、以下の様な手順でスパニングツリーを 構成していく。

1ルートブリッジ(スイッチ)の決定

2ルートポート、代表ポートの決定  

3ブロックポートの決定  

4スパニングツリーの維持と障害検出

   

まず、ルートブリッジを選定する。スパニング ツリープロトコ ルによって、

ループ状のネットワークを、ルート ブリッジを 中心としたツリー上のネットワークに再構成する。
ルートブリッジが決まれば次にルートポート、代表ポート を決定 していく。

ルートポートでもなく、代表ポートでもな いポートがブロッ クされネットワーク上でループが発生しないように する。ここまでで、スパニングツリーの完成。




そのあとは、スイッチ同士で定期的に制御情報をやりと りしてネットワークが 正しく動作しているかを確認している。

もし、障害を検出するとスパニングツリーを再計算し、ブロック されたポートを転送状態にすることによって、ネットワークを引 き続き利 用することができる。




★ルートブリッジの決定

スイッチの 中で、ブリッ ジIDが一番小さいスイッチがルートブリッジなる。ブリッジIDは 「ブリッジプライオリティ」と「MACアドレス」を組み合わせた 値。ブリッ ジプライオリティの値が小さいスイッチが、ルートブリッジにな る。



ブリッジプライオリティが同じ場合は、MACアドレスの小さいス イッチがルートブリッジになる。

起動時のス イッチは、自分をルートブリッジとしてBPDUを流す。 受信したBPDUのルートブリッジIDと、自分のブリッジIDを比較し 、値の小さいスイッチをルートブリッジと判断し、ルートブリッ ジが決定 する。




★RP(ルートポート)の決定
ルートブリッジに選ばれなかった非ブリッジでは、ルートブ リッジに最短で到 達できるポートを決定する。このポートを「ルート ポート(RP) 」という。最短の判断には、パスコストが使用され、リ ンク帯域 幅を数値化した値(コスト)が使用される。 パスコストは、ルートブリッジまでの累計コストになる。

※【コストの値】

IEEE802.1d標準により、 ポ ートに接続されるリンクスピードに応じたポートコストが定義さ れている。コストは以下の表から算出される。





次の例で、スイッチBのルートブリッジまでのパスコストを求め る。 ス イッチBのポート1とポート2のコストは共に10。しかし、ス イッチBのパ スコストを計算する場合、スイッチBが受信するBPDUのパスコス トを加える必要がある。

したがって、スイッチBのパスコストはポート1が10+0=10 、ポート2が10+15=25となるため、値の小さいポート1が RPになる。同様にスイッチCのパスコストはポート1 が15、ポート2が2 0となるため、値の小さいポート1がRPになる。

パスコストで判断できない場合は、ブリッジIDやポートの優先度、 ポート番号 などの情報を使用する。




★DP(指定ポート)の決定

各物理セグメント単位に 「 指定ポート(DP )」を決定する。DPとは物理セグメントからルート ブリッジに最短で到達できるポートになる。

次の例では 、セグメント1において、スイッチAのポート1はルートブリッジのた め、スイッチAのポート1がDPになる。
セグメント2におい て、スイッ チBのポート2はパスコスト10、スイッチCのポート2はパスコ スト15のため、スイッチBのポート2がDP
になる。




★ブロッキングポートの決定
RPやDPに選ばれなかったポートを「非指定ポート(NDP)」といい、 このNDPが ブロッキングポートの候補になる。




BPDUの流れは、次の様になる。

@ルートブリッジでは、BPDUを作成し、指定ポート(DP)から送 信する。
A非ルートブリッジでは、ルートポート(RP)からBPDUを受信し 、更新したBPDUを指定ポート(DP)から送信する。
B非指定ポート(NDP)はBPDUおよびユーザーフレームを送信し ない。

★スパニングツリーポートステータス
スパニングツリープロトコルでは、ポートの状態に応じて5つの ポートステータスがある。

● ブロッキング(Blocking)
ブロッキングとは、冗長構成でループを回避するために、ユーザー フレームの 送受信を行わないポートステータス。ユーザーフレームの受信を しないため、MACアドレスの学習も行わない。障害検出用にBPDU のみを受信 する。

●リスニング(Listening)
リスニングとは、ユーザーフレームの送受信を行わないポー トステータス 。しかし、ルートブリッジやルートポート指定ポー トの計算を行うため、BPDUの送受信を行う。

●ラーニング(Learning)
ラーニングとは、MACアドレステーブルの未登録によるフラッデ ィングを減らすため、MACアドレスの学習を目的にユーザーフレー ムの受信を行うポートステータス。受信したユーザ ーフレーム は転送されずに破棄されるが、BPDUの送受信は行う。

●フォワーディング(Fowarding)
フォワーディングとは、ユーザーフレームの送受信が可能なポート ステータス 。BPDUの送受信も行う。

●ディセーブル(Disabled)
ディセーブルとは、ポートが使用不可能なポートステータス。 管理者が意図的 にポートをシャットダウンした場合は、ディセーブルになる。 ユーザーフレームや、BPDUの送受信は行はない。



障害時の代替経路の切り替えには、ポートステータスがブロッキン グからフォ ワーディングへ移行する必要がある。
このため、代替経路の切り替えに、最大50秒かかる可能性 がある。
これがIEEE802.1dで標準化されたスパニン グツリープ ロトコルになる。



1-4 スパニングツリープロトコルのタイマ

スパニングツリープロトコル によって、ポートが初期のブロッキング状態からフォ ワーディング状態に至るまでの時間、すなわちコンバージェンス に要する時間は、スパニングツリーのタイマに影響される。 スパニングツリー(IEEE802.1d)のタイマーは、次 の様に定義されている。

【Helloタイマ】
ス イッチがポートからBPDUを送信する間隔。 デフォルトでは2秒に設定されているが、1〜10秒の 範囲で任意の値に変更できる。



【最大エージタイマ】
ス イッチがポートから受信するコンフィグレーションBPDU情報を保 持する最大時間。デフォルトは20秒に設定されている が、6〜40秒の範囲で任意の値に変更できる。



【転送遅延タイマ】
リ スニングステータスとラーニングステータスで、次のステータス へ移行する間に必要となる時間。デフォルトでは15秒に設定され ているが、4〜30秒の範囲で任意の 値に変更できる。

ポート状態の遷移するタイマは次の様になる。







1-5 ラピッドスパニングツリープロトコル

「 ラピッドスパニングツリープロトコル(RSTP)」とは、 IEEE802.1dのスパニングツリープロトコルの障害対策機能を強化 したプロトコル。
ラ ピッドスパニングツリープロトコルはIEEE802.1wで標準化されて いる。

スパニ ングツリープロトコルよりも、障害時の 快速(Rapid)な切り替えが可能で、代替経路を1秒以内にきりか える。 ただし、この快速な切り替えを実現するには、すべての スイッチ がIEEE802.1wに対応している必要がある。


◆ポートの状態

RSTPでは、STPのリスニング状態とブロッキング状態をディスカーディング(廃棄)状態に統合している。ディスカーディング状態のポートでは、フレームの転送はできない(ただし、BPDUの受信は行う)。標準STPとRSTPのポートステータスの対応は、以下の様になる。







◆RSTPのポートの役割

STPにはルートブリッジを中心に各ポートの役割が以下のように決まっていた。

1.指定ポート(Designated Port)物理セグメントからルート ブリッジに最短で到達できるポート。

2.ルートポート(Root Port):スイッチからルートブリッジへの経路が、コストが最小となるポート。

3.ディセーブル ポート(Disabled port)

4.ブロッキングポート(Blocking Port)

 

RSTPの場合も同様に各ポートに役割を持たせる。

まず上記1〜3のポートの役割については、RSTPでもまったく同じように使われる。

4番目のブロッキングポートがRSTPでは

 

●代替ポート

●バックアップポート

 

という2つの役割に分けている。

 

【代替ポート(Alternate port)】

ルートポートのバックアップとなるポート。ルートポートがダウンしたとき、すばやくルートポートの役割を引き継ぐ。



 

【バックアップポート(Backup port)】

指定ポートのバックアップとなるポート。指定ポートがダウンしたとき、すばやく指定ポートの役割を引き継ぐ。

バックアップポートは、セグメント上で指定ポートを持つスイッチが、そのセグメントに対して2本以上の接続(冗長リンク)を持っているケースでのみ存在する。







◆プロポーザル(提案)とアグリーメント(合意)

RSTPが通常のスパニング・ツリーと大きく異なる点は,経路の切り替えに関係するスイッチで情報を直接やりとりして,切り替え後のポートの状態を判断する点である。このとき,スパニング・ツリーで使われる各種タイマーは使わない。そのため,高速に切り替え作業が終了する。

プロポーザルとアグリーメントとは、RSTPで高速にコンバージェンスを実現するために使われるBPDUメッセージのひとつ。プロポーザルとアグリーメントメッセージを交換し合ってローカルポートの役割を隣接スイッチとネゴシエートする。

RSTPはSTP(IEEE802.1d)のBPDUと同じ形式のBPDUを使用している。ただし、BPDU内のフラグフィールドの扱いが異なる。






RSTPでは、従来のSTPで未使用だったビットを使用し、隣接するスイッチに自身のポートの役割を「プロポーザルBPDU」で提案し、隣接スイッチがこれに合意すると「アグリーメントBPDU」を返す。

これによって、セグメントごとにコンバージェンスが高速化される。RSTPでは、スイッチ同士をポイントツーポイントで接続している場合、2台のスイッチ間で、ポートの役割をプロポーザルとアグリーメントによってネゴシエーションすることで、タイマーに依存しない1秒程度の高速なコンバージェンスを実現する。

 

以下の図で、RSTPで切り替え情報をやりとりするときの例を見てみる。






@スイッチAとスイッチBの間で障害が発生

AスイッチBはルートブリッジへのルートがなくなったことをとスイッチCに通知する

BスイッチCはスイッチBにつながる代替ポートを有効にした方がいいと判断し,「スイッチCの代替ポートを有効にしていいか?」という事をスイッチBに提案する

C返事を受け取ったスイッチCは,即座に代替ポートをフォワーディングに移行してデータの転送を開始する