企業ネットワークやデータセンターでは、通信の信頼性を高めるために一般的に複数の経路を用意することが多いです。
しかし、経路を増やしすぎるとネットワーク内でループが発生し、ブロードキャストフレームが無限に回り続ける「ブロードキャストストーム」などの深刻な問題を引き起こします。
こうした問題を防ぐために利用される技術がスパニングツリー(Spanning Tree)です。
スパニングツリーは主にレイヤ2スイッチネットワークで使用され、冗長構成を維持しながらループを防止する重要な役割を担っています。
・スパニングツリーの基本概念
スパニングツリーとは、ネットワーク内に存在する複数の接続経路の中から、一部の経路を論理的に停止させてループのないTree構造を作り出す仕組みです。
例えば、3台のスイッチA、B、Cが三角形状に接続されている場合、どのスイッチからどのスイッチへも複数の経路が存在する状態ではパケットが循環し続けてしまう可能性があります。
そこでスパニングツリープロトコル(STP)は、ネットワーク全体を分析し、一部のポートをブロッキング状態に変更します。その結果、物理的には冗長な回線を残しつつ、論理的にはループのないネットワークが構築されます。
この仕組みにより、通常時は不要な経路を停止しておき、障害が発生した場合には待機していた経路を有効化することで通信を継続できます。
・スパニングツリーのの動作の仕組み
スパニングツリーを実現する代表的なプロトコルがSTP(Spanning Tree Protocol)です。STPはIEEE 802.1Dとして標準化されており大きく次の流れで進みます。
ネットワーク内のスイッチは互いにBPDU(Bridge Protocol Data Unit)という制御フレームを交換します。そして最も優先度の高いスイッチをルートブリッジ(Root Bridge)として選出します。
次に、各スイッチはルートブリッジまで最もコストの低い経路を計算し、その経路を利用するポートをルートポートとして決定します。さらに、各セグメントごとに最適なポートを指定ポート(Designated Port)として選出します。
最終的に、ループを形成する可能性のあるポートはブロッキングポートとなり、データ転送を停止します。これによってネットワーク全体でループのない経路が形成されます。
もし通信中の経路に障害が発生した場合は、ブロッキング状態のポートが有効化され、新たな通信経路が自動的に構築されます。
・スパニングツリーの発展と現在の利用
従来のSTPには、経路の再計算に30~50秒程度かかるという課題がありました。この時間はリアルタイム性が求められるシステムでは大きな問題になります。
そこで開発されたのがRSTP(Rapid Spanning Tree Protocol)です。RSTPはIEEE 802.1wとして標準化され、障害発生時の切り替え時間を大幅に短縮し現在では多くの企業ネットワークでRSTPが利用されています。
さらに大規模なネットワーク環境では、VLANごとにスパニングツリーを構成できるMSTP(Multiple Spanning Tree Protocol)も利用されています。これによりネットワーク資源の有効活用と負荷分散が可能になりました。
スパニングツリーは、レイヤ2ネットワークにおいてループを防止しながら冗長性を確保するための不可欠な仕組みです。STPによってルートブリッジの選出やポート制御が行われ、論理的にループのないネットワークが構築されます。また、RSTPやMSTPといった発展形により、高速な障害復旧や大規模環境への対応も実現されています。
リンクアグリゲーションなどのポート冗長の手段はありますが、ネットワーク設計や運用を行うエンジニアにとって、スパニングツリーはスイッチング技術の基礎として理解しておくべき重要な知識の一つですね。