このHPはスパニングツリープロトコルの概要についてまとめたものです。
1-1ネットワークの冗長化
大規模なネットワークでは、
「いつでもネットワークを利用できること」が要求される。この
ようなネ
ットワークを高可用性ネットワークと呼ぶ。高可用性ネットワー
クを実現するためには、ネットワークの冗長化を行う。しかし、
ネットワ
ークの
冗長化は同時に「ブロードキャストストーム」
という重大な問題
が
発生する。
1-2ブロードキャストストーム
「ブロードキャストストーム
」とは、ブロードキャストを流したときスイッチのフラッディングにより、
フレームがループする現象をいう。
1-3スパニングツリープロトコル
スパニングツリー(STP)と
は、ル
ープ状に構
成された冗長ネットワークで、ブロードキャストなどのフレーム
が永遠に循環するのを防ぐためのプロトコルで「
IEEE802.1D」
で標準化されている。スイッチがある特定のポートをブロックす
ることにより、冗長性を失うことなくフレームのループを回避す
る。
スパニングツリープロトコルはスイッチ間で「BPDU」と呼ばれる
特別なフレー
ムをやり取りし、スイッチに与えられているIDやス
イッチに接続されたネットワークの情報を交換する。交換した情
報を元に
ス
イッチの優先度と使用するポートを決定する。
スパニングツリープロトコルは、通常ひとつの経路を使い、それ
以外の経路は障害の代替経路として使う。しかし、障害時の代替
経路の切
り替えには、最大で50秒かかる可能性がある。
★BPDU
スパニングツリープロトコル
では、スイッチで構成されたネットワーク内で、代表となるスイッチ(ルート
ブリッジ)を決定する。ルートブリッジから一番遠くに位置する
ポートが
使用されないポート(ブロッキングポート)と判断
される。 ★スパニングツリーの動作の概要
1ルートブリッジ(スイッチ)の決定
2ルートポート、代表ポートの決定
3ブロックポートの決定
4スパニングツリーの維持と障害検出
まず、ルートブリッジを選定する。スパニング
ツリープロトコ
ルによって、 ループ状のネットワークを、ルート
ブリッジを
中心としたツリー上のネットワークに再構成する。
ルートポートでもなく、代表ポートでもな
いポートがブロッ
クされネットワーク上でループが発生しないように
する。ここまでで、スパニングツリーの完成。 ★ルートブリッジの決定 スイッチの
中で、ブリッ
ジIDが一番小さいスイッチがルートブリッジなる。ブリッジIDは
「ブリッジプライオリティ」と「MACアドレス」を組み合わせた
値。ブリッ
ジプライオリティの値が小さいスイッチが、ルートブリッジにな
る。 起動時のス
イッチは、自分をルートブリッジとしてBPDUを流す。
受信したBPDUのルートブリッジIDと、自分のブリッジIDを比較し
、値の小さいスイッチをルートブリッジと判断し、ルートブリッ
ジが決定
する。 ★RP(ルートポート)の決定
※【コストの値】
IEEE802.1d標準により、
ポ
ートに接続されるリンクスピードに応じたポートコストが定義さ
れている。コストは以下の表から算出される。 ★DP(指定ポート)の決定
各物理セグメント単位に
「
指定ポート(DP
)」を決定する。DPとは物理セグメントからルート
ブリッジに最短で到達できるポートになる。 次の例では
、セグメント1において、スイッチAのポート1はルートブリッジのた
め、スイッチAのポート1がDPになる。 ★ブロッキングポートの決定
@ルートブリッジでは、BPDUを作成し、指定ポート(DP)から送
信する。 ★スパニングツリーポートステータス
1-4 スパニングツリープロトコルのタイマ
スパニングツリープロトコル
によって、ポートが初期のブロッキング状態からフォ
ワーディング状態に至るまでの時間、すなわちコンバージェンス
に要する時間は、スパニングツリーのタイマに影響される。
スパニングツリー(IEEE802.1d)のタイマーは、次
の様に定義されている。 1-5 ラピッドスパニングツリープロトコル
◆ポートの状態 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は,即座に代替ポートをフォワーディングに移行してデータの転送を開始する
ルートブリッジや、ブロッキングポートの決定には「BPDU」
が使用される
。
BPDUには
●
ルートブリッジID
●
パスコスト
●
ブリッジID
などの
情報が格納されている。ルートブリッジの決定にはブリッジIDを
使用し、
ブロッキングポートの決定にはパスコストを使用する。
スパニ
ングツリープロトコルは、IEEE802.1dとして標準化されている。
IEEE802.1
dに準拠したスイッチは、以下の様な手順でスパニングツリーを
構成していく。
ルートブリッジが決まれば次にルートポート、代表ポート
を決定
していく。
そのあとは、スイッチ同士で定期的に制御情報をやりと
りしてネットワークが
正しく動作しているかを確認している。
もし、障害を検出するとスパニングツリーを再計算し、ブロック
されたポートを転送状態にすることによって、ネットワークを引
き続き利
用することができる。
ブリッジプライオリティが同じ場合は、MACアドレスの小さいス
イッチがルートブリッジになる。
ルートブリッジに選ばれなかった非ブリッジでは、ルートブ
リッジに最短で到
達できるポートを決定する。このポートを「ルート
ポート(RP)
」という。最短の判断には、パスコストが使用され、リ
ンク帯域
幅を数値化した値(コスト)が使用される。
パスコストは、ルートブリッジまでの累計コストになる。
次の例で、スイッチ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やポートの優先度、
ポート番号
などの情報を使用する。
セグメント2におい
て、スイッ
チBのポート2はパスコスト10、スイッチCのポート2はパスコ
スト15のため、スイッチBのポート2がDPになる。
RPやDPに選ばれなかったポートを「非指定ポート(NDP)」といい、
このNDPが
ブロッキングポートの候補になる。
BPDUの流れは、次の様になる。
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で標準化されたスパニン
グツリープ
ロトコルになる。
【Helloタイマ】
ス
イッチがポートからBPDUを送信する間隔。
デフォルトでは2秒に設定されているが、1〜10秒の
範囲で任意の値に変更できる。
【最大エージタイマ】
ス
イッチがポートから受信するコンフィグレーションBPDU情報を保
持する最大時間。デフォルトは20秒に設定されている
が、6〜40秒の範囲で任意の値に変更できる。
【転送遅延タイマ】
リ
スニングステータスとラーニングステータスで、次のステータス
へ移行する間に必要となる時間。デフォルトでは15秒に設定され
ているが、4〜30秒の範囲で任意の
値に変更できる。
ポート状態の遷移するタイマは次の様になる。
「
ラピッドスパニングツリープロトコル(RSTP)」とは、
IEEE802.1dのスパニングツリープロトコルの障害対策機能を強化
したプロトコル。
ラ
ピッドスパニングツリープロトコルはIEEE802.1wで標準化されて
いる。
スパニ
ングツリープロトコルよりも、障害時の
快速(Rapid)な切り替えが可能で、代替経路を1秒以内にきりか
える。
ただし、この快速な切り替えを実現するには、すべての
スイッチ
がIEEE802.1wに対応している必要がある。