ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
概要
スパニングツリープロトコル(STP, IEEE 802.1D)とは、L2 スイッチを冗長(ループ状)に接続したときに発生するループを防止するためのプロトコルです。スイッチを複数台つないでネットワークを構築する際、可用性を高めるために配線を二重化することがあります。しかしレイヤ 2 にはルーティングの TTL のような「ぐるぐる回り続けるフレームを破棄する仕組み」がないため、ループがあるとフレームが永遠に回り続け、ネットワークが麻痺します。STP はこのループを論理的に断ち切る役割を担います。
STP は物理的にはループを保ったまま、一部のポートをブロッキング状態にして論理的にループのない木構造(スパニングツリー)を作ります。普段使っていた経路が障害で切れると、ブロックしていたポートを開放して通信を復旧させます。つまり STP は「冗長配線の利点(障害時の切替)」と「ループの回避」を両立させる仕組みです。
仕組み
L2 ループが危険なのは、おもに次の 3 つの問題を引き起こすためです。
- ブロードキャストストーム — ブロードキャストフレームがループ内を増殖しながら回り続け、帯域と CPU を食い尽くします。
- MAC アドレステーブルの不安定化 — 同じ送信元 MAC が複数ポートから次々に学習され、転送先が定まらなくなります。
- フレームの重複到達 — 同じフレームが複数経路から届き、上位アプリの誤動作を招きます。
STP はこれを防ぐため、スイッチ同士が BPDU(Bridge Protocol Data Unit)という制御フレームを交換してトポロジを計算します。手順の概略は次のとおりです。
STP の経路決定の流れ
1. ルートブリッジの選出
ブリッジ ID(優先度+MAC)が最小のスイッチが「中心」になる
2. 各スイッチでルートポートを決定
ルートブリッジへ最もコストの低いポートを 1 つ選ぶ
3. 各セグメントで指定ポートを決定
そのセグメントでルートに近い側のポートを転送用に残す
4. 残ったポートをブロッキング(非指定ポート)
→ 物理ループは残るが論理的にはループのない木構造になる
ブロッキング中のポートはデータフレームを転送しませんが、BPDU は受信し続けてトポロジを監視します。アクティブな経路が切れると、ブロックされていたポートが Listening → Learning → Forwarding と状態遷移して通信を引き継ぎます。従来の STP ではこの収束に最大 30〜50 秒かかりました。これを大幅に改善したのが RSTP(Rapid STP, IEEE 802.1w)で、ポート役割やネゴシエーションを見直すことで収束を数秒に短縮しています。現在のスイッチは RSTP(やその拡張の MSTP)が標準です。
設定・実用例
Cisco スイッチでの STP/RSTP 関連の代表的なコマンドです。
# 動作モードを RSTP(rapid-pvst)に設定
Switch(config)# spanning-tree mode rapid-pvst
# このスイッチを VLAN1 のルートブリッジに優先設定
Switch(config)# spanning-tree vlan 1 root primary
# 端末直結ポートを高速に Forwarding にする(PortFast)
Switch(config)# interface GigabitEthernet0/1
Switch(config-if)# spanning-tree portfast
# 端末ポートに不正な BPDU が来たら遮断(BPDU Guard)
Switch(config-if)# spanning-tree bpduguard enable
# STP の状態・ルートブリッジ・ポート役割を確認
Switch# show spanning-tree
show spanning-tree で、どのスイッチがルートブリッジか、各ポートが Root/Designated/Blocking のどの役割かを確認できます。PortFast は端末直結ポートで状態遷移を省略して即 Forwarding にする機能で、サーバや PC のポートに使います(スイッチ間ポートには使わないこと)。
主な用途
- 冗長化したスイッチ網のループ防止 — 二重配線で可用性を上げつつ、ループ事故を防ぐ基本機能です。
- 障害時の経路自動切替 — アクティブ経路が切れたとき、待機ポートを開放して通信を継続します。
- 誤接続(ループ)からの保護 — 配線ミスで生じたループを STP が検出・遮断し、ネットワーク全体の停止を防ぎます。
- BPDU Guard によるエッジ保護 — 端末ポートへの不正なスイッチ接続を遮断し、トポロジの乱れを防ぎます。
関連技術との比較
| 項目 | STP(802.1D) | RSTP(802.1w) | MSTP(802.1s) |
|---|---|---|---|
| 収束時間 | 30〜50 秒 | 数秒 | 数秒(RSTP ベース) |
| VLAN の扱い | 全体で 1 ツリー | 全体で 1 ツリー | VLAN をグループ化し複数ツリー |
| ポート状態 | 5 状態 | 3 状態に簡素化 | RSTP 準拠 |
| 負荷分散 | 苦手 | 苦手 | 得意(インスタンスごと) |
| 位置づけ | 原型(旧式) | 現在の標準 | 大規模・多 VLAN 向け |
注意点・落とし穴
- ルートブリッジの自然選出に任せない — 優先度を設定しないと、たまたま MAC が小さい古い機器がルートになり、非効率な木構造になることがあります。中心に置きたいスイッチに明示的に低い優先度を設定します。
- スイッチ間ポートに PortFast を付けない — スイッチ同士のポートに PortFast を設定すると、状態遷移を飛ばすため一時的なループを起こす危険があります。
- STP の無効化は厳禁 — 「収束が遅いから」と STP を切ると、ループ事故で即座にネットワークが落ちます。遅さは RSTP/MSTP で解決します。
- BPDU の遮断・改ざん — 端末側から不正な BPDU が入るとトポロジが乱れます。エッジポートには BPDU Guard を設定して保護します。
- ループ事故の波及 — 1 か所のループが、ブロードキャストストームによりネットワーク全体へ波及します。物理ループは必ず STP/RSTP で管理下に置くこと。
関連リンク
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
- ルーティングの基礎
- デフォルトゲートウェイ
- 静的ルーティング
- 動的ルーティング(RIP/OSPF/BGP)
- VLAN
- スパニングツリープロトコル(STP)
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?