スパニングツリー【Spanning Tree】

広告

広告

ブロードキャストストーム

最終更新
2005-06-27T00:00:00+09:00
この記事のURI参照
https://www.7key.jp/nw/technology/control/spanningtree.html#bs

スイッチブリッジを使いネットワークを構成する際は、「スイッチやブリッジではブロードキャストフレームをせき止めることはできない」という注意点がありました。それを踏まえた上で下図(Figure:SPANNINGTREE-01)を見て下さい。

SPANNINGTREE-01

このように、ブリッジスイッチで異なる機器との間に複数の経路を設けてしまいますと、フレームには寿命がありませんのでブロードキャストフレームはいつまでもこの機器の間をループすることとなります。上図で言いますと「NetworkA」「NetworkB」「NetworkC」は一つのブロードキャストドメインです。ブロードキャストフレームを受け取ったスイッチは自分と繋がっている全てのポートに向けてブロードキャストフレームを送信します。するとこれらのネットワークはブロードキャストフレームで溢れかえってしまい、まともな通信ができない状態となってしまいます。この状態または現象のことをブロードキャストストームと言います。ブロードキャストストームはネットワークに重大な障害をもたらすだけではなく、最終的に通信不能状態となってしまいますので注意が必要です。

STP【Spanning Tree Protocol】

最終更新
2005-06-27T00:00:00+09:00
この記事のURI参照
https://www.7key.jp/nw/technology/control/spanningtree.html#stp

上記のように、誤ってループができてしまっても自動的に問題を解消するための機能として考案されたのがSTPSpanning Tree Protocol】で、IEEE 802.1dとして標準化されています。さらに高速化に改良されたRSTPと呼ばれるものもあります。具体的手法は後に説明しますが、ループ上の特定のポートをブロックすることによりループを防止しているのです。ただ、STPはループを防止するという本来の機能を応用して、障害が発生した際に自動的に経路を切り替えるネットワークの冗長性確保の手段として広く用いられています。

SPANNINGTREE-02

STP の動作

最終更新
2005-06-27T00:00:00+09:00
この記事のURI参照
https://www.7key.jp/nw/technology/control/spanningtree.html#structure

ではSTPの動きはどうなっているのか、更に言えばスパニングツリーはどのようにして実現されているのかを順番に見ていきましょう(スイッチブリッジも大差無いので説明はスイッチにてさせてもらいます)。

  1. STPに対応するスイッチは相互にBPDU【Bridge Protocol Data Unit】と呼ばれるフレームをやり取りし、ルートブリッジと呼ばれるスパニングツリーの中心となるスイッチを1台だけ決定します。
  2. ブロードキャストドメイン内のネットワークトポロジーを把握します。
  3. スイッチのどのポートを開け、どのポートを閉じるか決定します。
  4. 現在構成されているネットワークトポロジーに問題が発生していないかを監視します。
  5. もし監視中のネットワークトポロジーに問題があれば1に戻りあらたな経路を構成し直します。

まず1と2ですが、これはBPDUと呼ばれるフレームのやり取りにて行われます。BPDUにはブリッジIDパスコストと言う情報が含まれています。ブリッジIDは各スイッチに個別につけられたIDで、スイッチのプライオリティ値とMACアドレスを組み合わせたものとなっています。全てのスイッチのブリッジIDを比較し、ブリッジIDが一番小さいスイッチが自動的にルートブリッジに選ばれます。またパスコストは各ポートの回線速度などを「コスト」と言う数値で表したものとなっています。STPでは各スイッチが定期的にこれらの情報を交換し、トポロジーを把握しています。

ルートブリッジが決定しますと、ルーとブリッジを中心に各ポートの役割が決定します。スパニングツリーのポートは次の3種類に分類されます。

指定ポート(Designated Port)
各セグメントからルートブリッジに一番近いポート
ルートポート(Root Port)
各スイッチからルートブリッジへ一番近いポート
ブロッキングポート(Blocking Port)
通信が遮断されるポート

具体的に下図(Figure:SPANNINGTREE-03)のようなネットワークでの各ポート決定動作を見てみましょう(スイッチAがルートブリッジと仮定しています)。

SPANNINGTREE-03

まず、ルートブリッジに直接接続されている2つのセグメントについて考えます。ルートブリッジポートは全てのポートが指定ポートになります(Figure:SPANNINGTREE-04)。

SPANNINGTREE-04

次に、各スイッチからルートブリッジに一番近いポートルートポートになります(Figure:SPANNINGTREE-05)。

SPANNINGTREE-05

更にルートブリッジが直接接続されていないセグメントに移ります。各セグメントからルートブリッジへ一番近いポート指定ポートとなるのですが、ここで前述のコスト値が使われます。A-B間が10Mbps、A-C間が100Mbpsなので、A-C間の方がルートブリッジへ近いと判断されます。よって下図(Figure:SPANNINGTREE-06)のように指定ポートが決定されます。

SPANNINGTREE-06

そして最後に指定ポートにもルートポートにもなっていない残ったポートブロッキングポートとなり、ブロックされます。こうしてネットワーク全体のループ構造を無くなしているわけです(Figure:SPANNINGTREE-07)。

SPANNINGTREE-07

STP の動作2

最終更新
2005-06-27T00:00:00+09:00
この記事のURI参照
https://www.7key.jp/nw/technology/control/spanningtree.html#structure2

上記の作業により、どのポートを転送可能とし、どのポートの転送を遮断するかを決定し終わった状態のことを収束コンバージェンス)と呼んでいます。また、この一連の動作をSPASpanning Tree Algorithm】と呼びます。各スイッチの電源が入り収束するまでの時間や、障害が起き最初からSPAを行い収束するまでの時間はネットワークの規模(もっと具体的に言うならばスイッチの数)によって大きく変わります。もちろん規模が大きければ大きいほどSPAに掛かる時間も増えるのです。

ところでスイッチ達はどのようにして障害を検知するのでしょうか。SPAによって決定されました経路ではスイッチ同士が通常は2秒ごとにBPDUを交換しています。即ち、この決められた時間内にBPDUが相手スイッチから戻ってこなければ、何らかの障害が起こっているとみなすわけです。経路の障害を検知したスイッチはスパニングツリーを構成している全てのスイッチ宛にTCN BPDU【Topology Change Notification BPDU】と言うフレームの送信を試みます。TCN BPDUを受信したスイッチは今までの経路を全て破棄し、前述のSPAによって再度ルートブリッジの決定からやり直し新たなスパニングツリーを構成するのです。

ただし、この再構成の間はもちろんネットワーク全体が不通となります(30〜60秒)。この時間を短縮するためにRSTPがSTPに変わる新しいプロトコルとして標準化されています。

広告

Copyright (C) 2005 七鍵 key@do.ai 初版:2005年03月19日 最終更新:2005年06月27日