STP(スパニングツリープロトコル) すぱにんぐつりーぷろとこる
簡単に言うとこんな感じ!
ネットワークの「無限ループ防止係」だよ!スイッチを複数つないで冗長化すると、パケットがぐるぐる回り続ける「ブロードキャストストーム」が起きちゃう。STPはその危険な経路を自動的にふさいで、ループのないツリー状の安全な経路だけを使えるようにしてくれるプロトコルなんだ!
STPとは
STP(Spanning Tree Protocol) は、複数のスイッチで構成されるネットワークにおいて、パケットが無限に循環する「ループ」を自動的に防ぐレイヤー2のプロトコルです。IEEE 802.1Dとして標準化されており、現代のLAN設計に欠かせない基礎技術の一つです。
スイッチを冗長構成(障害に備えて複数の経路を用意すること)にすると、物理的にループが生まれます。このループにパケットが流れ込むと、同じデータが何度も転送され続けるブロードキャストストームが発生し、ネットワーク全体がダウンしてしまいます。STPはこの問題を解決するために、論理的にループを断ち切り、使用するポートと遮断するポートを自動で決定します。
仕組みとしては、スイッチ同士が BPDU(Bridge Protocol Data Unit) と呼ばれる制御メッセージを交換し合い、ネットワーク全体を「木(ツリー)構造」に整形します。障害が発生すると、遮断していたポートを再び有効化して自動的に経路を切り替えます。
STPの仕組みと動作フロー
STPは以下のステップで動作し、ループのないツリー構造を構築します。
① ルートブリッジの選出
全スイッチが BPDU を交換
↓
Bridge ID(プライオリティ + MACアドレス)が
最も小さいスイッチが「ルートブリッジ」に選ばれる
↓
ルートブリッジがツリーの「根っこ」になる
② ポートの役割決定
| ポートの種類 | 役割 | 状態 |
|---|---|---|
| ルートポート | ルートブリッジへの最短経路ポート | 転送(Forwarding) |
| 指定ポート | セグメントへの最適ポート | 転送(Forwarding) |
| 非指定ポート(ブロックポート) | ループになる経路を遮断 | ブロッキング(Blocking) |
③ ポートの状態遷移
STPのポートは段階的に状態が変わります。収束(ループのないツリーが完成すること)まで最大50秒かかるのが旧来STPの弱点です。
Blocking(受信のみ)
↓ 15秒(リスニングタイマー)
Listening(BPDU送受信)
↓ 15秒(ラーニングタイマー)
Learning(MACアドレス学習)
↓
Forwarding(通常転送)
STPの覚え方
「ブロッキング → リスニング → ラーニング → フォワーディング」は
「ブ・リ・ラ・フォ」(ブリラフォ)と覚えよう!
STPのバリエーションと進化
STPは長い歴史の中で改善されてきました。
各バージョンの比較
| プロトコル | 規格 | 収束時間 | VLAN対応 | 備考 |
|---|---|---|---|---|
| STP | IEEE 802.1D | 最大50秒 | 非対応 | 最初の標準。現在は非推奨 |
| RSTP | IEEE 802.1w | 1〜2秒 | 非対応 | STPの改良版。現在の主流 |
| PVST+ | Cisco独自 | 最大50秒 | ○(VLAN別) | Cisco機器で広く使われる |
| Rapid PVST+ | Cisco独自 | 1〜2秒 | ○(VLAN別) | RSTP+PVST+の組み合わせ |
| MSTP | IEEE 802.1s | 1〜2秒 | ○(グループ単位) | 大規模環境向け |
STPの重要な用語まとめ
| 用語 | 意味 |
|---|---|
| ルートブリッジ | ツリーの起点となるスイッチ。Bridge IDが最小のもの |
| Bridge ID | プライオリティ(既定値32768)+MACアドレスで構成 |
| BPDU | スイッチ間でやり取りする制御メッセージ |
| パスコスト | ルートブリッジまでの経路の「コスト」。帯域幅が高いほど低い |
| ブロードキャストストーム | ループによりパケットが無限に増殖する障害 |
| PortFast | エンドデバイス接続ポートでSTP待ち時間を省略するCiscoの機能 |
歴史と背景
- 1985年頃 — Digital Equipment Corporation(DEC)のRadia Perlman氏がスパニングツリーアルゴリズムを考案。「STPの母」と呼ばれる
- 1990年 — IEEE 802.1DとしてSTPが標準化。LAN設計の基礎技術として普及
- 1990年代 — Ciscoが独自拡張のPVST(Per-VLAN Spanning Tree)を開発。VLAN単位でツリーを管理できるように
- 2001年 — 収束時間の遅さを解決したRSTP(IEEE 802.1w)が標準化。1〜2秒での収束を実現
- 2002年 — 複数VLANをグループ管理できるMSTP(IEEE 802.1s)が標準化
- 2004年 — IEEE 802.1DがRSTPを取り込む形で改訂。旧STPは事実上置き換えられる
- 現在 — 多くのスイッチでRSTpまたはMSTPがデフォルト。大規模DCではSTPを使わない設計(SPB・TRILL・VXLAN等)も増加
実務上の注意点
STPが原因の障害あるある
【よくあるトラブル】
① ループ検出されずにブロードキャストストーム発生
→ 原因: STPが無効化されていた、または設定ミス
② 収束に時間がかかりネットワーク断が長引く
→ 原因: 旧STP(802.1D)を使用中。RSTPへ移行を検討
③ 意図しないポートがブロックされる
→ 原因: ルートブリッジが意図しないスイッチに選出された
→ 対策: 重要なスイッチのプライオリティを低く設定する
④ サーバーやPCをつないだら30秒ほどつながらない
→ 原因: STPの収束待ち
→ 対策: エンドデバイス接続ポートにPortFast(RSTP: Edge Port)を設定
発注・選定時のチェックポイント
| 確認事項 | ポイント |
|---|---|
| 対応バージョン | RSTPまたはMSTP対応か確認。旧STPのみは避ける |
| PortFast / Edge Port | サーバー・PC接続ポートに設定可能か |
| BPDU Guard | 誤接続によるループを防ぐ保護機能があるか |
| ルートブリッジ制御 | プライオリティ手動設定で意図したスイッチをルートに固定できるか |
関連する規格・RFC
| 規格・RFC番号 | 内容 |
|---|---|
| IEEE 802.1D | STPの原規格(現在はRSTPを包含) |
| IEEE 802.1w | RSTP(Rapid Spanning Tree Protocol) |
| IEEE 802.1s | MSTP(Multiple Spanning Tree Protocol) |
| IEEE 802.1Q | VLANの標準規格。STPと組み合わせて使われる |
関連用語
- VLAN — ネットワークを論理的に分割する技術。STPと組み合わせてVLAN単位でループ管理を行う
- [レイヤー2ス