STPとは


STP(Spanning Tree Protocol)は、ネットワークにおけるループを防止するために使用されるプロトコルです。

IEEE規格では IEEE 802.1D として定義されています。

STPの目的
・ネットワークループの防止
・冗長経路の管理

STPがない場合

ループ構成を取るとフレームが永遠に回り続けてしまうという問題があります。

PC-Aから送付されたARPはPC-Bに到着するが、
他経路を通じて、SW-Aに戻ってきてしまうものもあり、
更にそれをフラッディングするため、ループが発生する
これをブロードキャストストームと言う
このように冗長構成を作ると、もしSTPがなければ:
フレームが無限に回り続ける
MACアドレステーブルが不安定(上書きされ続ける)
CPU負荷上昇・ネットワーク停止
STPはこのループを自動的に検出・防止します。

STPの基本動作

STPは、スイッチ同士で「BPDU(Bridge Protocol Data Unit)」という制御フレームをやり取りし、
ネットワーク全体で**1本のツリー構造(Spanning Tree)**を形成します。

●ステップ1:ルートブリッジ(Root Bridge)の選出

ネットワーク全体で、最も優先度(Bridge ID)が低いスイッチ
「ルートブリッジ(Root Bridge)」として選出します。

Bridge ID = 優先度(Priority) + MACアドレス

デフォルトの優先度は 32768 です。
(優先度が同じなら、MACアドレスが小さい方が勝ち)

●ステップ2:各スイッチが経路コストを計算

ルートブリッジまでの**経路コスト(Path Cost)**を計算し、
最短経路を選びます。

リンク速度コスト値(IEEE推奨)
10 Mbps100
100 Mbps19
1 Gbps4
10 Gbps2

●ステップ3:ポートの役割を決定

各スイッチのポートには、STPによって次の役割が決まります。

ポート役割意味
Root Port (RP)ルートブリッジへ最短経路のポート(各スイッチに1つ)
Designated Port (DP)セグメント内でフレーム転送を担当するポート
Non-Designated Port (Blocking)ループ防止のためブロックされるポート

ステップ4:ポート状態遷移

STPポートは、以下のステップで動作状態を変えます。

Blocking → Listening → Learning → Forwarding

状態内容
Blockingフレーム転送せず、BPDUだけ受信
ListeningSTP情報を処理、MAC学習はまだ行わない
LearningMACアドレスを学習するが転送はしない
Forwardingフレームを転送する通常状態
Disabled手動で無効化(shutdown)
STPで使われる制御フレーム:BPDU

BPDU(Bridge Protocol Data Unit) とは、
スイッチ同士でSTP情報を交換するための制御フレームです。

BPDUには以下の情報が含まれます:

  • ルートブリッジID
  • 経路コスト
  • 送信元ブリッジID
  • タイマー情報(Hello、Max Age、Forward Delay)

タイマー設定

タイマー名内容デフォルト値
Hello TimeBPDU送信間隔2秒
Forward DelayListening/Learningの時間15秒
Max AgeBPDU情報の保持時間20秒

➡ 合計で約30〜50秒かけて収束するため、
再構築時に通信が一時停止する。

RSTP(Rapid STP)への進化

STPは再収束に時間がかかるため、改良版が登場しました。

名称規格特徴
STPIEEE 802.1D約30秒で再収束
RSTPIEEE 802.1w数秒で再収束(高速STP)
MSTPIEEE 802.1sVLANをグループ化してSTP負荷を軽減
まとめ
項目内容
名称Spanning Tree Protocol
規格IEEE 802.1D
目的L2ループ防止
仕組み一部ポートをブロックし、1本のツリーを構築
キー概念ルートブリッジ、BPDU、ポート役割、状態遷移
問題点再収束が遅い(30秒前後)
改良版RSTP(高速)、MSTP(複数VLAN対応)