広告
広告
https://www.7key.jp/nw/technology/control/spanningtree.html#bs
スイッチやブリッジを使いネットワークを構成する際は、「スイッチやブリッジではブロードキャストフレームをせき止めることはできない」という注意点がありました。それを踏まえた上で下図(Figure:SPANNINGTREE-01)を見て下さい。
このように、ブリッジやスイッチで異なる機器との間に複数の経路を設けてしまいますと、フレームには寿命がありませんのでブロードキャストフレームはいつまでもこの機器の間をループすることとなります。上図で言いますと「NetworkA」「NetworkB」「NetworkC」は一つのブロードキャストドメインです。ブロードキャストフレームを受け取ったスイッチは自分と繋がっている全てのポートに向けてブロードキャストフレームを送信します。するとこれらのネットワークはブロードキャストフレームで溢れかえってしまい、まともな通信ができない状態となってしまいます。この状態または現象のことをブロードキャストストームと言います。ブロードキャストストームはネットワークに重大な障害をもたらすだけではなく、最終的に通信不能状態となってしまいますので注意が必要です。
https://www.7key.jp/nw/technology/control/spanningtree.html#stp
上記のように、誤ってループができてしまっても自動的に問題を解消するための機能として考案されたのがSTP【Spanning Tree Protocol】で、IEEE 802.1dとして標準化されています。さらに高速化に改良されたRSTPと呼ばれるものもあります。具体的手法は後に説明しますが、ループ上の特定のポートをブロックすることによりループを防止しているのです。ただ、STPはループを防止するという本来の機能を応用して、障害が発生した際に自動的に経路を切り替えるネットワークの冗長性確保の手段として広く用いられています。
https://www.7key.jp/nw/technology/control/spanningtree.html#structure
ではSTPの動きはどうなっているのか、更に言えばスパニングツリーはどのようにして実現されているのかを順番に見ていきましょう(スイッチもブリッジも大差無いので説明はスイッチにてさせてもらいます)。
まず1と2ですが、これはBPDUと呼ばれるフレームのやり取りにて行われます。BPDUにはブリッジIDとパスコストと言う情報が含まれています。ブリッジIDは各スイッチに個別につけられたIDで、スイッチのプライオリティ値とMACアドレスを組み合わせたものとなっています。全てのスイッチのブリッジIDを比較し、ブリッジIDが一番小さいスイッチが自動的にルートブリッジに選ばれます。またパスコストは各ポートの回線速度などを「コスト」と言う数値で表したものとなっています。STPでは各スイッチが定期的にこれらの情報を交換し、トポロジーを把握しています。
ルートブリッジが決定しますと、ルーとブリッジを中心に各ポートの役割が決定します。スパニングツリーのポートは次の3種類に分類されます。
具体的に下図(Figure:SPANNINGTREE-03)のようなネットワークでの各ポート決定動作を見てみましょう(スイッチAがルートブリッジと仮定しています)。
まず、ルートブリッジに直接接続されている2つのセグメントについて考えます。ルートブリッジのポートは全てのポートが指定ポートになります(Figure:SPANNINGTREE-04)。
次に、各スイッチからルートブリッジに一番近いポートがルートポートになります(Figure:SPANNINGTREE-05)。
更にルートブリッジが直接接続されていないセグメントに移ります。各セグメントからルートブリッジへ一番近いポートが指定ポートとなるのですが、ここで前述のコスト値が使われます。A-B間が10Mbps、A-C間が100Mbpsなので、A-C間の方がルートブリッジへ近いと判断されます。よって下図(Figure:SPANNINGTREE-06)のように指定ポートが決定されます。
そして最後に指定ポートにもルートポートにもなっていない残ったポートがブロッキングポートとなり、ブロックされます。こうしてネットワーク全体のループ構造を無くなしているわけです(Figure:SPANNINGTREE-07)。
https://www.7key.jp/nw/technology/control/spanningtree.html#structure2
上記の作業により、どのポートを転送可能とし、どのポートの転送を遮断するかを決定し終わった状態のことを収束(コンバージェンス)と呼んでいます。また、この一連の動作をSPA【Spanning Tree Algorithm】と呼びます。各スイッチの電源が入り収束するまでの時間や、障害が起き最初からSPAを行い収束するまでの時間はネットワークの規模(もっと具体的に言うならばスイッチの数)によって大きく変わります。もちろん規模が大きければ大きいほどSPAに掛かる時間も増えるのです。
ところでスイッチ達はどのようにして障害を検知するのでしょうか。SPAによって決定されました経路ではスイッチ同士が通常は2秒ごとにBPDUを交換しています。即ち、この決められた時間内にBPDUが相手スイッチから戻ってこなければ、何らかの障害が起こっているとみなすわけです。経路の障害を検知したスイッチはスパニングツリーを構成している全てのスイッチ宛にTCN BPDU【Topology Change Notification BPDU】と言うフレームの送信を試みます。TCN BPDUを受信したスイッチは今までの経路を全て破棄し、前述のSPAによって再度ルートブリッジの決定からやり直し新たなスパニングツリーを構成するのです。
ただし、この再構成の間はもちろんネットワーク全体が不通となります(30〜60秒)。この時間を短縮するためにRSTPがSTPに変わる新しいプロトコルとして標準化されています。
広告