テクノロジー解説

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

 レイヤ 2 で動作するネットワーク機器である「LANスイッチ」には、ループ型のトポロジーがあるとフレームが永遠に回り続ける「ブリッジング ループ」と呼ばれる現象が発生するという問題があります。ここでは、ブリッジング ループを回避するテクノロジーのなかで最も基本的な「スパニング ツリー プロトコル(STP)」について説明します。

 スイッチなどのレイヤ 2 で動作するネットワーク機器は、受け取ったフレームの宛先を調べて、適切なポートにフォワードする機能があります。そのためにスイッチでは、宛先(MACアドレス)とポートの対応を管理する「MACアドレステーブル」と呼ばれる対応表を管理しています。ただし、スイッチに電源を入れた直後は、MACアドレステーブルには何も登録されておらず、フレームの送受信を行いながら徐々に学習していきます。具体的には、MACアドレステーブルに登録されていない宛先のフレームを受け取ると、そのフレームを全ポートにフォワードします。これを「フラッディング」と呼びます。

 次の図で、MACアドレステーブルにMACアドレスとポートを学習するようすを見てください。
 「スイッチにはフラッディングが必要」という前提を踏まえて、ループ トポロジーを含むネットワーク構成を考えてみましょう。次の図を見てください。ホストからサーバX宛てのフレームは、スイッチAを経由してサーバに届きます。しかし、ホストがYというネットワーク上に存在しないホスト宛てにフレームを送信したらどうなるでしょうか。フレームはスイッチAに届きますが、宛先がMACアドレステーブルに登録されていないため、スイッチAは全ポートにフレームをフォワードします。ところが、宛先が存在しないために誰もフレームを受け取らず、スイッチBに処理が委託されます。スイッチBにもYというMACアドレスは登録されていないので、スイッチBはそのフレームを全ポートにフォワードします。フォワードされたネットワーク セグメントにもYは存在しませんから、再びスイッチAにフレームが届きます。スイッチAのMACアドレステーブルにはYが登録されていませんので、再度、スイッチAはフレームを全ポートにフォワードします。これが繰り返されると、Y宛てのフレームはスイッチAとスイッチBの間を永遠に循環することになり、最終的にはネットワークのリソースを消費尽くしてネットワーク ダウンを招くことになります。
 ネットワークがビジネスにとって重要となっている現在、LANにも物理的な冗長化は必須であり、ネットワークのどこかにループ トポロジーが発生してしまうのは避けようがありません。そこで、ループ トポロジーがあってもブリッジング ループを回避する手法が重要となります。

 ループ回避のための技術のなかで、もっとも基本的なものに「スパニング ツリー プロトコル」があります。スパニング ツリーは IEEE 802.1d として標準化されているもので、スイッチに割り当てられた優先順位に基づいて、ツリー構造のネットワークを構成します。ツリー構造になっていれば、ループは発生しません。スパニング ツリーを構成する手順は次のようになります。
 スパニング ツリー プロトコルにおいてスイッチ間でやり取りされる情報はBPDU(Bridge Protocol Data Unit)と呼ばれています。ブロッキング状態のポートでは、BPDU以外のパケットは送受信されません。

 このような状態にしておくことで、ループ回避と冗長化を両立させているのです。スイッチ間では定期的に他のスイッチの状態を調べるためにBPDUがやり取りされています。もし、どこかのスイッチに不具合が発生すれば、BPDUによってそれを検知し、もう一度、ツリー構造を構成し直すことで別経路を確保します。
 ただし、スパニング ツリー プロトコルには、「切り替えが遅い」という欠点があります。ルートブリッジは2秒おきにBPDUを送信して各スイッチの状態を確認しているのですが、送信したBPDUに返信がなくても20秒間は待つことになっています。20秒経過しても返事がなければダウンしたと判断し、ツリー構造の再構成して、MACアドレステーブルの学習もし直さなければなりません。そのため、実際にダウン状態になってから復旧するまでに50秒が必要と言われています。

 この欠点を解消するRSTP(Rapid Spanning Tree Protocol)と呼ばれる技術も開発され、2001年にはIEEE 802.1wとして標準化されています。


お問い合わせ