はじめに
L2スイッチを複数の経路で接続すると、一方の回線に障害が起きても別の経路を使えるため、ネットワークの耐障害性を高められます。しかし、複数の経路をそのまま同時に使うと、フレームが同じネットワーク内を循環するL2ループが発生することがあります。
スパニングツリープロトコル(STP)は、冗長な物理接続を残しながら、データ転送に使う経路をループのない形に整理する仕組みです。通常時は一部の冗長経路をデータ転送に使わない状態にし、必要になったときに経路を再計算します。
この記事では、STPがなぜ必要なのか、BPDUを使ってどのように経路を決めるのか、障害時に冗長経路がどのように役立つのかを解説します。
この記事で分かること
- L2ループがネットワークへ与える影響
- STPがループのない経路を作る仕組み
- BPDUとルートブリッジの役割
- ルートポートと指定ポートの考え方
- STPとRSTPの基本的な関係
スパニングツリープロトコル(STP)とは
スパニングツリープロトコル(Spanning Tree Protocol:STP)は、L2ネットワークに複数の経路があるとき、ループを防ぎながら冗長性を持たせるための仕組みです。
たとえば3台のL2スイッチを三角形につなぐと、物理的には複数の経路ができます。STPはその中からデータ転送に使う経路を選び、不要な冗長経路を通常時の転送から外します。これにより、配線自体は冗長なままでも、実際にフレームが流れる経路はループのないツリー状になります。
L2スイッチがMACアドレスを使って通常のフレーム転送先を決める仕組みは、「L2スイッチのMACアドレス学習とは?フレーム転送の仕組みを解説」で解説しています。

L2ループが起きると何が問題なのか
EthernetのL2ネットワークでは、IPパケットのTTLのように、フレームが一定回数中継されたら必ず破棄される仕組みはありません。そのため、ループした経路でブロードキャストなどが繰り返し転送されると、同じフレームがネットワーク内を循環し続けることがあります。
この状態では大量のフレームが流れるブロードキャストストームが発生し、端末やネットワーク機器の処理を圧迫します。また、同じ送信元MACアドレスのフレームが異なるポートから繰り返し届くことで、スイッチのMACアドレステーブルが不安定になることもあります。
STPは、こうしたL2ループが成立しないように、冗長な経路の一部を通常のデータ転送から外します。
STPがループを防ぐ仕組み
STPでは、スイッチ同士が情報を交換し、ネットワーク全体の基準となるスイッチと、そこへ到達するための経路を決めます。その結果、転送に必要なポートだけを使い、ループを作る冗長ポートは通常のデータ転送に使わない状態にします。
BPDUでスイッチ同士が情報を交換する
STPを使用するスイッチは、BPDU(Bridge Protocol Data Unit)と呼ばれる制御用のフレームを交換します。
BPDUには、スイッチを識別する情報や優先度、経路のコストなど、STPが経路を決めるための情報が含まれます。各スイッチは受信したBPDUを比較し、どのスイッチを基準にするか、どのポートを転送に使うかを判断します。
BPDUは通常の利用者データを運ぶフレームではなく、STPがループのない経路を作るために使う制御情報です。
ルートブリッジを決める
STPでは、ネットワークの基準となる1台をルートブリッジとして選びます。選出には、優先度などを含むブリッジIDが使われ、最も小さいブリッジIDを持つスイッチがルートブリッジになります。
ルートブリッジが決まると、他のスイッチは「ルートブリッジへ最も効率よく到達できる経路」を基準にポートの役割を決めていきます。
転送に使うポートと使わないポートを決める
ルートブリッジ以外の各スイッチでは、ルートブリッジへの最適な経路となるポートがルートポートとして選ばれます。また、各LANセグメントでは、そのセグメントからルートブリッジへ向かう代表的なポートが指定ポートとして選ばれます。
ルートポートと指定ポートはデータ転送に使われます。一方、ループを作ることになる余分な経路のポートは、通常の利用者フレームを転送しない状態になります。
このようにSTPは、物理的な接続そのものを削除するのではなく、どの経路でフレームを転送するかを制御することでループを防ぎます。
障害時は冗長経路を利用できる
通常時にデータ転送へ使っていない経路があることは、回線が無駄になっているという意味ではありません。稼働中のリンクやスイッチに障害が起きてネットワークの構成が変わると、STPはトポロジーを再計算します。
利用可能な冗長経路があれば、それまで転送に使っていなかった経路が新しい転送経路として使われます。この仕組みによって、L2ループを防ぎながら、障害に備えた複数の物理経路を用意できます。
つまりSTPは、「冗長な経路をなくす仕組み」ではなく、「冗長な経路を残したまま、同時にループしないよう利用する仕組み」と考えると理解しやすくなります。
RSTPは収束を高速化した方式
従来のSTPでは、ネットワーク構成が変わったときに新しい転送状態へ切り替わるまで時間がかかる場合があります。
RSTP(Rapid Spanning Tree Protocol)は、STPと同じくL2ループを防ぐことを目的としながら、トポロジー変化後により速く新しい状態へ収束できるよう改良された方式です。
この記事ではSTPの基本原理を中心に扱います。RSTPのポート役割や状態遷移などの詳細は、STPの基本を理解するうえでは必須ではないため扱いません。
まとめ
STPは、冗長なL2ネットワークでループを防ぎながら、障害時に利用できる経路を残すための仕組みです。
- スイッチ同士がBPDUで情報を交換する
- ネットワークの基準となるルートブリッジを決める
- ルートブリッジへの経路を基にポートの役割を決める
- ループを作る冗長経路は通常のデータ転送に使わない
- 障害時にはトポロジーを再計算し、利用可能な冗長経路を使う
- RSTPは、基本的な目的を維持しながら収束を高速化した方式である
「物理的には冗長、論理的にはループなし」という考え方を押さえると、STPがL2ネットワークで果たす役割を理解しやすくなります。