はじめに
L2(レイヤー 2)ネットワークでスイッチを冗長構成にすると、経路がループを形成し、ブロードキャストフレームが回り続ける「ブロードキャストストーム」や、MAC アドレステーブルの不安定化を招くことがあります。スパニングツリープロトコル(STP)は、こうした L2 ループを防ぐために、冗長経路の一部を論理的にブロックし、ループのない 1 本の経路へ収束させる仕組みです。
本記事は、STP の基礎(仕組み・BPDU・ポートの役割と状態遷移)から、STP・RSTP・MSTP の違い、ベンダー別の実装差、そして実際にポートがブロックされた際の切り分けの起点までを、実務目線で整理するハブ記事です。
- STP がループを防ぐ仕組みと、BPDU が果たす役割
- ルートブリッジの選出と、ルートポート・指定ポート・非指定ポートの違い
- ポートが Forwarding に至るまでの状態遷移(802.1D と RSTP)
- STP・RSTP・MSTP の違いと使い分けの考え方
- Cisco・FortiSwitch・Arista・ALAXALA などベンダー別の実装差と、ポートブロック時の切り分け
要点を先に示すと、STP は冗長経路を持つ L2 網で、2 点間の有効な経路を常に 1 本だけにするためのプロトコルです。スイッチ同士が BPDU を交換してルートブリッジを選び、各ポートの役割と状態を決めることで、ループのないツリー構造を作ります。RSTP(802.1w)はこの収束を高速化した拡張、MSTP(802.1s)は複数 VLAN をインスタンス単位でまとめて扱う拡張にあたります。
スパニングツリー(STP)とは|仕組みと BPDU
STP は、IEEE 802.1D で標準化された L2 のループ防止プロトコルです。複数経路で相互接続されたスイッチ群の中から、ループを生まない経路だけを残し、残りの経路を待機(ブロック)状態に置きます。
参考: Cisco — Cisco Nexus 3548 Layer 2 Switching Configuration Guide
“STP provides a loop-free network at the Layer 2 level.”
(STP は Layer 2 レベルでループのないネットワークを提供する)
https://www.cisco.com/c/en/us/td/docs/switches/datacenter/nexus3548/sw/layer_2_switching/60x/b_Cisco_N3548_Layer_2_Switching_Config_602_A1_1/b_Cisco_N3548_Layer_2_Switching_Config_602_A1_1_chapter_010.pdf
L2 ループが発生すると、次のような問題が連鎖的に起きます。
- ブロードキャストフレームが経路内を回り続け、帯域と CPU を消費するブロードキャストストーム
- 同一フレームが複数経路から届くことによる MAC アドレステーブルの不安定化(MAC フラッピング)
- 同報フレームの重複受信によるアプリケーション側の誤動作
STP はこれらを防ぐため、スイッチ間で BPDU(Bridge Protocol Data Unit) と呼ばれる制御フレームを定期的に交換し、ネットワーク全体のトポロジを把握したうえで、ループになる経路を 1 つずつブロックします。BPDU はユーザーデータではなく STP 専用の制御情報で、スイッチはこれを転送せず、自身のトポロジ計算に使います。

ルートブリッジとポートの役割
STP はまず、ネットワーク内で基準となる 1 台の ルートブリッジ を選びます。選出では、各スイッチが持つブリッジ ID(ブリッジプライオリティと MAC アドレスの組)を比較し、最小のものがルートブリッジになります。
ルートブリッジが決まると、各スイッチのポートに役割が割り当てられます。
- ルートポート: 各スイッチからルートブリッジへ最短(最小パスコスト)で到達するポート。スイッチごとに 1 つ
- 指定ポート: 各セグメント(リンク)でルートブリッジ側へフレームを転送する役割を持つポート
- 非指定ポート: 上記以外のポート。ループを防ぐためにブロック状態に置かれる
パスコストはリンク帯域に基づく値で、帯域が広いほど小さくなります。STP はパスコストの合計が最小になる経路を有効化し、それ以外をブロックします。
ポートの状態遷移
802.1D の STP では、ポートは次の状態を順に遷移して Forwarding(転送)に至ります。
- Blocking(ブロッキング): BPDU は受信するが、データフレームは転送しない。
- Listening(リスニング): トポロジ計算に参加し、ポートの役割を確定する。
- Learning(ラーニング): MAC アドレスの学習を始めるが、まだ転送はしない。
- Forwarding(フォワーディング): データフレームの転送を始める。
802.1D の既定タイマーでは、Listening と Learning にそれぞれ Forward Delay(既定 15 秒)を要し、リンク障害の検知には Max Age(既定 20 秒)が関わります。このため、トポロジ変化からの収束に 30〜50 秒程度かかる点が、802.1D の実務上の弱点でした。
この収束時間を短縮したのが RSTP(802.1w)で、状態は Discarding(破棄)・Learning・Forwarding の 3 つに整理され、隣接ポート間の合意(Proposal/Agreement)により数秒で収束します。RSTP の詳細は次セクションで扱います。

STP・RSTP・MSTP の違い
STP には世代があり、収束の速さやインスタンスの扱いが異なります。ここでは 802.1D(STP)・802.1w(RSTP)・802.1s(MSTP)の違いと、実務での使い分けの考え方を整理します。
RSTP(802.1w)による収束の高速化
RSTP は 802.1D を高速化した規格で、802.1D との後方互換性を保ちつつ、トポロジ変化からの収束を数秒程度まで短縮します。前述のとおり、ポートの状態は Discarding(破棄)・Learning・Forwarding の 3 つに整理されています。
収束が速くなる主な要因は、ポートの役割が増えたことと、リンク種別に応じた遷移方式です。RSTP では、802.1D のルートポート・指定ポートに加え、次の 2 つの役割が定義されます。
- Alternate ポート: ルートポートに対する代替経路。通常はブロックされ、ルートポートが失われた際に素早く切り替わる。
- Backup ポート: 同一セグメント上の指定ポートに対する予備。ハブなどの共有メディア接続でのみ現れる。
さらに RSTP は、ポートのリンク種別を区別します。全二重で 1 対 1 接続される point-to-point ポートでは、隣接ポート間の合意(Proposal/Agreement)によりタイマーを待たずに転送へ移行できます。端末を接続する edge ポート(Cisco の PortFast に相当)は即座に Forwarding になります。半二重の shared ポートでは、従来どおりタイマーに依存します。
このため、現在の L2 ネットワークでは 802.1D の素の STP ではなく、RSTP または Cisco の Rapid-PVST+ が動作しているのが一般的です。
MSTP(802.1s)とインスタンス設計の考え方
RSTP は高速ですが、ネットワーク全体で 1 つのスパニングツリーしか持ちません。一方、Cisco の PVST+/Rapid-PVST+ は VLAN ごとに独立したインスタンスを動かすため、VLAN 数が増えると BPDU と CPU の負荷が増大します。
この中間として、複数の VLAN を少数のインスタンス(MSTI)にまとめて扱うのが MSTP(802.1s)です。例えば「VLAN 10・20・30 をインスタンス 1」「VLAN 40・50・60 をインスタンス 2」のようにグループ化し、インスタンスごとに異なるルートブリッジを設定することで、冗長リンクをまたいだ負荷分散ができます。
MSTP では、同じ設定を持つスイッチ群が 1 つの MST リージョン を形成します。リージョンに属する条件は、次の 3 つがすべて一致することです。
参考: Cisco — Cisco Nexus 5000 Series Configuring Multiple Spanning Tree
“they must have the identical MST name, VLAN-to-instance mapping, and MST revision number.”
(同一 MST リージョンに属するには、同じ MST 名・VLAN-instance マッピング・MST リビジョン番号を持つ必要がある)
https://www.cisco.com/c/en/us/td/docs/switches/datacenter/nexus5000/sw/configuration/guide/cli/CLIConfigurationGuide/MST.html
この 3 要素(リージョン名・リビジョン番号・VLAN-instance マッピング)のいずれかがずれていると、スイッチは別リージョンの境界と見なされます。リージョン外からは、内部構成が見えない 1 つの論理ブリッジ(ブラックボックス)として扱われます。なお、1 つのリージョンで扱えるインスタンス数には上限があり、その値はベンダーや機種・バージョンに依存します。具体的な上限や設定コマンドは、後続の MST 個別記事で扱います。

3 規格の使い分け
実務での位置づけを整理すると、次のようになります。
| 規格 | 収束の速さ | インスタンスの扱い | 主な位置づけ |
|---|---|---|---|
| STP(802.1D) | 遅い(30〜50 秒) | ネットワークで 1 つ | 原型。現在は基礎理解の対象 |
| RSTP(802.1w) | 速い(数秒) | ネットワークで 1 つ | 標準的な高速化版 |
| Rapid-PVST+(Cisco) | 速い(数秒) | VLAN ごとに 1 つ | Cisco 既定。VLAN 数が多いと負荷増 |
| MSTP(802.1s) | 速い(数秒) | VLAN をインスタンスへ集約 | 大規模・多 VLAN 環境の標準 |
VLAN 数が少なければ RSTP や Rapid-PVST+ で十分な場合が多く、VLAN 数が多くマルチベンダーで負荷分散も求める環境では MSTP が選択肢になります。各ベンダーが具体的にどの規格を既定で採用しているかは、次セクションで整理します。
ベンダー別の STP 実装と相互接続
同じ STP でも、既定モードや対応規格、独自拡張の有無はベンダーごとに異なります。ここでは代表的な 4 ベンダーの実装を整理し、異なる実装が混在する区間での注意点をまとめます。
Cisco(PVST+/Rapid-PVST+/MST)
Cisco の Catalyst では、15.2(4)E 以降 Rapid-PVST+ が既定モードです。対応するのは次の 3 つです。
- PVST+: VLAN ごとに独立したスパニングツリーを動かす Cisco 拡張(802.1D ベース)。
- Rapid-PVST+: PVST+ と同じく VLAN 単位だが、802.1w ベースで収束が速い。
- MST: 802.1s に基づき、複数 VLAN をインスタンスへ集約する。
PVST+/Rapid-PVST+ は VLAN ごとにタグ付き BPDU を送る点が、後述の相互接続で重要になります
(参照: Cisco Catalyst 9300 Layer 2 Configuration Guide, IOS XE 17.17 — https://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst9300/software/release/17-17/configuration_guide/lyr2/b_1717_lyr2_9300_cg/configuring_spanning_tree_protocol.html )
FortiSwitch・Arista EOS・ALAXALA AX の実装
この 3 ベンダーは、いずれも IEEE 標準(STP/RSTP/MSTP)をベースにしています。
FortiSwitch は、FortiGate 配下(FortiLink)で運用される L2 スイッチで、MSTP(802.1s)と Per-VLAN RSTP(RPVST/RPVST+)に対応します。MSTP は STP/RSTP と後方互換で、1 つのリージョンで 15 個の MST インスタンスを扱えます。運用上の注意として、FortiLink モードでは FortiGate と FortiSwitch の間で STP は動作しません。この区間のループ防止は STP に依存しない設計になります。
(参照: FortiSwitchOS Administration Guide — https://docs.fortinet.com/document/fortiswitch/7.6.5/fortiswitchos-administration-guide/364614/stp )
Arista EOS は、既定で MSTP が動作します。RSTP・Rapid-PVST にも対応し、1 リージョンあたり最大 65 インスタンスを扱えます。
参考: Arista — EOS Spanning Tree Protocol
“By default, Arista switches use MSTP.”
(Arista のスイッチは既定で MSTP を使用する)
https://www.arista.com/en/um-eos/eos-spanning-tree-protocol
Arista はデータセンターでの採用が多く、ログメッセージの形式(小文字の Stp: プレフィックス)が Cisco とは異なります。この差は障害切り分けで混同しやすいため、後続のトラブルセクションで触れます。
ALAXALA AX は、PVST+・シングルスパニングツリー(802.1D/802.1w)・マルチプルスパニングツリー(802.1s)に対応します。国内のエンタープライズや公共系で採用が多いベンダーです。ただし、マルチプルスパニングツリーは他のツリー種別と併用できないという制約があります。(参照: ALAXALA AX シリーズ コンフィグレーションガイド — https://www.alaxala.com/jp/techinfo/archive/manual/AX3630S/HTML/11_10/CFGUIDE/0356.HTM )
PVST+ 系への対応はベンダーで分かれます。Cisco と ALAXALA は PVST+/Rapid-PVST+ に対応し、Arista は Rapid-PVST に対応、FortiSwitch は MSTP をベースに RPVST+ との相互接続に対応します。
異なる実装をまたぐ相互接続の注意
混在で最も注意が必要なのが、Cisco の PVST+/Rapid-PVST+ と、IEEE 標準の単一インスタンス(RSTP/MSTP)機器をまたぐ区間です。
Cisco の PVST+/Rapid-PVST+ は、VLAN ごとに BPDU を送出します。一方、IEEE 標準の機器は、ネイティブ VLAN(通常 VLAN 1)を流れる IEEE 標準 BPDU を共通スパニングツリー(CST)として処理し、それ以外の VLAN の PVST+ BPDU は理解せず、通常フレームとしてフラッディング(透過)します。この非対称性が、ネイティブ VLAN の不一致や境界ポートの不整合を招きやすい点が、混在区間の最大の落とし穴です。
FortiSwitch の公式ドキュメントでも、CIST のルートが RPVST+ 側にある場合、境界の FortiSwitch は VLAN 1 の情報のみを処理し、VLAN 2 以上の BPDU は整合性チェックにのみ使う、と整理されています。
(参照: FortiSwitch Configuring STP settings — https://docs.fortinet.com/document/fortiswitch/8.0.0/fortilink-guide/173292/configuring-stp-settings )
実務では、混在区間で次の点を押さえると、ループや片寄せ(全トラフィックが 1 リンクに集中する状態)を避けやすくなります。
- 両端でネイティブ VLAN を一致させる。
- 境界における既定ルートブリッジの位置を意識し、PVST+ 側と IEEE 標準側のルートの関係を設計で決めておく。
なお、Cisco 機器側で発生する Type/PVID 不整合は、こうした混在や設定不一致の典型的な兆候です。具体的な切り分けは、後続のトラブルセクションで扱います。

STP で多いトラブルと切り分けの地図
STP 関連のトラブルは、いくつかの典型パターンに分かれます。ログとコマンドで種類を見分け、該当する個別記事へ進むための地図として整理します。切り分けの起点となるコマンドはベンダーで異なりますが、Cisco であれば show spanning-tree summary で動作モードを、show spanning-tree inconsistentports で不整合の種別を確認するのが第一歩です。
ポートが Blocking/Inconsistent になる(Type/PVID 不整合)
設定変更をしていないのにポートが遮断され、ログに不整合系のメッセージが出るパターンです。Cisco の PVST+/Rapid-PVST+ では、ポートの種別(アクセス/トランク)が両端で食い違う Type 不整合と、両端トランクでネイティブ VLAN がずれる PVID 不整合が代表的です。
参考: Cisco — Troubleshoot Spanning Tree PVID- and Type-Inconsistencies
“Type inconsistency—A PVST+ BPDU is received on a non-802.1Q trunk.”
(Type 不整合: PVST+ BPDU が非 802.1Q トランクで受信された)
https://www.cisco.com/c/en/us/support/docs/lan-switching/spanning-tree-protocol/24063-pvid-inconsistency-24063.html
これらは前セクションの PVST+ と IEEE 標準 STP の混在区間でも起きやすく、不整合 BPDU の受信が止まれば自動的にブロックが解除されます。詳しい原因と対処は、既存記事『Cisco スイッチで Inconsistent port type が出る原因と対処』で扱っています。
BPDU Guard と err-disable
PortFast と BPDU Guard を有効にしたポートで BPDU を受信すると、ポートは err-disable 状態でシャットダウンします。これは Inconsistent ブロックとは挙動が異なり、不整合が解消しても自動では戻らず、手動操作または errdisable recovery の設定で復旧します。ログメッセージも別系統のため、混同しないことが切り分けの要点です。
ループ検出機能との併用と無効化の是非
STP とは別に、ベンダー独自のループ検出機能を備える機器もあります。これらは STP を補完するもので、STP を無効化する口実にするものではありません。STP を無効化してループ検出だけに頼る構成は、誤配線時のループ防止を運用側の責任に移すことになるため、慎重な検討が求められます。

まとめ
スパニングツリー(STP)は、冗長な L2 ネットワークでループを防ぐための基盤技術です。世代やベンダーによって既定モードや挙動が異なり、その差を押さえることが障害切り分けの速さにつながります。本記事では、基礎から実装差、トラブルの地図までを整理しました。
- STP は冗長な L2 経路のループを防ぎ、有効経路を 1 本に収束させる仕組み
- 802.1D は収束が遅く、RSTP は数秒に高速化、MSTP は VLAN をインスタンスへ集約
- 動作の基礎はルートブリッジの選出と、ポートの役割および状態遷移
- 既定モードはベンダーで異なり、Cisco は Rapid-PVST+、Arista は MSTP
- PVST+ と IEEE 標準 STP の混在区間はネイティブ VLAN の不一致に注意
- Inconsistent ブロックは自動回復、BPDU Guard の err-disable は手動復旧が基本
- 具体的なエラー対処とベンダー別の設定は各スポーク記事を参照
以上、最後までお読みいただきありがとうございました。
