この記事は、 「ネットワーク中級編|構築・検証・障害切り分けを身につける」 の第7回です。
スイッチを冗長化したときに発生するレイヤー2ループと、 そのループを防止するSTPの役割を、三角形の構成図から理解します。
STP(スパニングツリープロトコル)はなぜ必要?L2ループとブロードキャストストームを図解
スイッチ間の回線を冗長化すると、1本のリンクが故障しても別経路を利用できます。 しかし、同じVLANに複数の経路を作っただけではレイヤー2ループが発生する危険があります。 この記事では、STPが必要な理由、ループ発生時の症状、待機ポートの役割、 障害時の経路切り替え、確認コマンドまで順番に解説します。
「障害に備えてスイッチ間を2本以上の経路で接続すれば、安全になる」と考えるのは自然です。 ただし、レイヤー2ネットワークでは、冗長リンクをすべて同時に転送可能な状態にすると、 ブロードキャストなどのフレームが同じ範囲を回り続ける可能性があります。
STPの役割は、冗長性を残しながら、通常時の転送経路をループのない形に整えることです。
この記事を読み終えるとできること
- レイヤー2ループが発生する条件を説明できる
- ブロードキャストストームとMACフラッピングを説明できる
- STPが冗長リンクの一部を待機状態にする理由を説明できる
- 障害時に待機経路が使われる流れを説明できる
show spanning-treeの基本項目を読み取れる- STPとEtherChannelの役割の違いを判断できる
STPとは何か
STP(Spanning Tree Protocol)とは、スイッチ間に複数の経路があるとき、 レイヤー2ループが発生しない論理トポロジーを作るプロトコルです。
STPは、スイッチ同士が制御情報を交換し、どの経路を通常時に利用するかを決めます。 ループを作る余分な経路は、ユーザーデータを転送しない待機状態にします。
重要なのは、ケーブルを物理的に抜くわけではないという点です。 冗長リンクは接続したまま残り、利用中の経路に障害が発生したときに再利用できます。
STPは「冗長化をなくす仕組み」ではありません。
通常時はループを防ぎ、障害時には残しておいた別経路を利用できるようにする仕組みです。
| 状態 | 物理接続 | ユーザーデータの転送 | 役割 |
|---|---|---|---|
| 転送経路 | 接続済み | 転送する | 通常時の通信に利用する |
| 待機経路 | 接続済み | 通常は転送しない | ループを防ぎ、障害時に備える |
冗長化すると、なぜループが発生するのか
次のように、SW1・SW2・SW3を三角形に接続した構成を考えます。 3本のリンクがすべて同じVLANを転送し、すべてのポートがユーザーデータを転送できる状態です。
STPが動作していない三角形構成
SW1 → SW2 → SW3 → SW1という閉じた経路が存在します。
この構成でPCからARP要求などのブロードキャストフレームが送信されると、 スイッチは同じVLANの受信ポート以外へフレームを転送します。 複数のスイッチで同じ処理が繰り返されると、フレームが別経路から戻ってきます。
- SW1がブロードキャストを受信する SW1は、受信ポート以外の対象ポートからSW2とSW3へ転送します。
- SW2とSW3がさらに転送する それぞれが受信ポート以外へ転送するため、同じフレームがネットワーク内に複数できます。
- フレームが元のスイッチへ戻る 別の経路を通ったフレームが再びSW1へ到着します。
- 転送が繰り返される 閉じた経路が残っているため、フレームの複製と転送が続きます。
冗長リンクがあるだけで必ずループになるわけではありません。
同じレイヤー2範囲に閉じた経路があり、その経路上のポートが同時にフレームを転送できると、 ループが成立します。STPやEtherChannelなどで論理的に制御されていれば、物理リンクが複数あっても問題ありません。
STPがないと何が起きるのか
レイヤー2ループが発生すると、単に同じ通信が少し重複するだけではありません。 スイッチの転送処理、MACアドレステーブル、リンク帯域、CPUなどへ連鎖的に影響します。
ブロードキャストストーム
ブロードキャストや未知ユニキャストがループ内で繰り返し転送され、 リンク帯域を大量に消費します。
MACフラッピング
同じ送信元MACアドレスのフレームが複数ポートから届き、 MACテーブル上の接続先が短時間に移動し続けます。
重複フレーム
同じフレームが複数経路を通って端末へ届き、 通信の再送や処理負荷の増加につながります。
スイッチ負荷の増大
大量のフレーム処理やMAC学習が発生し、 管理画面やCLIへ接続しにくくなる場合があります。
通信の断続・停止
正常な通信が大量フレームに埋もれ、pingの欠損、遅延、 セッション切断などが発生します。
影響範囲の拡大
ループが存在するVLANやブロードキャストドメイン全体へ、 短時間で影響が広がる可能性があります。
MACフラッピングが起こる流れ
同じMACアドレスが別ポートから交互に見える
Gi0/1で学習
Gi0/2で受信
Gi0/2へ更新
行き来する
MACアドレステーブルは、本来「端末がどのポートの先にいるか」を示します。 しかし、ループしたフレームが複数方向から戻ると、スイッチは端末が移動したと判断して登録先を更新します。 この状態では、ユニキャストフレームの転送先も安定しません。
現場で同一MACアドレスの移動ログが繰り返し記録されている場合、 レイヤー2ループは重要な原因候補です。
ただし、無線LANのローミング、仮想マシンの移動、冗長化機能など、 正常な理由でMACアドレスが移動することもあります。ログだけで即断せず、構成と発生頻度を確認します。
STPがループを防ぐ基本動作
STPは、スイッチ間でBPDUという制御フレームを交換し、 ループのない転送経路を計算します。三角形構成では、通常、ループを作るリンクの一部が待機状態になります。
STPが1か所を待機状態にした構成
SW2―SW3間の一方のポートが待機状態となり、転送経路は木の枝のようなループのない形になります。
- スイッチ同士がBPDUを交換する 自分自身の情報やルートブリッジまでの経路情報を交換します。
- 基準となるルートブリッジを決める STPトポロジーの中心となるスイッチを選出します。
- ルートブリッジへ向かう最適経路を決める 各スイッチは、パスコストなどを基に利用するポートを選びます。
- 余分な経路を待機状態にする ループを作るポートでは、通常のユーザーデータ転送を止めます。
- トポロジーを継続して監視する リンク障害やスイッチ追加などの変化があれば、経路を再計算します。
「ブロック」は通信不能という意味ではない
STPの待機ポートは、リンクダウンしているわけではありません。 物理リンクはアップしたままで、STPの制御情報を受信しながら待機します。 そのため、通常時にユーザーデータが通らなくても、冗長経路として意味があります。
| 確認項目 | リンクダウン | STPによる待機状態 |
|---|---|---|
| 物理リンク | ダウン | アップ |
| 通常のユーザーデータ | 転送できない | ループ防止のため転送しない |
| STP制御情報 | 交換できない | 交換・受信する |
| 障害時の利用 | そのリンクは利用不可 | 条件を満たせば転送状態へ移行 |
表示される名称はSTP方式やベンダーによって異なります。 従来のSTPではBlocking、RSTPではDiscarding、Ciscoの出力ではAltn/BLKなどと表示される場合があります。
名称だけを暗記せず、「通常のユーザーデータを転送しているか」を読み取ることが重要です。
リンク障害時に待機経路が使われる流れ
STPによって待機経路を残しておくと、現在利用しているリンクが故障したときに、 トポロジーを再計算して別経路へ切り替えられます。
通常時
- SW1―SW2:転送
- SW1―SW3:転送
- SW2―SW3:一部を待機
ループを防ぐため、三角形の一辺を通常の転送経路から外しています。
SW1―SW3障害後
- SW1―SW2:転送
- SW1―SW3:障害
- SW2―SW3:転送へ移行
SW3はSW2を経由してSW1側へ到達できるようになります。
障害検知から経路切り替えまで
ダウン
トポロジー変化を把握
新しい経路を選択
転送可能になる
切り替えに必要な時間は、使用しているSTP方式、リンク障害の種類、タイマー、機器実装、 PortFastなどの関連設定によって異なります。従来のSTPより高速な収束を目的とした方式がRSTPです。 RSTPは中級編第9回で詳しく解説します。
冗長リンクが存在していても、VLAN許可設定、トランク設定、STP状態、EtherChannel設定などが不一致なら、 障害時に期待した経路へ切り替わらない場合があります。
設計時には「ケーブルがあるか」だけでなく、障害後に対象VLANの通信が実際に通るかを試験します。
BPDUとルートブリッジの役割
STPを理解するうえで、BPDUとルートブリッジは避けて通れません。 ただし、この記事では「なぜ必要か」を理解するための最小限に絞ります。
BPDU
スイッチ同士がSTP情報を交換するための制御フレームです。 ルートブリッジの情報や経路情報などを伝えます。
ルートブリッジ
STPトポロジーの基準となるスイッチです。 各スイッチはルートブリッジへ向かう経路を比較します。
パスコスト
経路を比較するための値です。 各スイッチは、基本的にルートブリッジまでのコストが小さい経路を優先します。
STPは、単純に「最後に接続したリンクを止める」わけではありません。 ルートブリッジを基準に、ポートごとの役割を決め、ループのない転送トポロジーを作ります。
次の記事では、ブリッジID、プライオリティ、MACアドレス、ルートポート、指定ポート、代替ポートを使い、 どのスイッチ・ポートが選ばれるのかを具体的に計算します。
STPが防げること・防げないこと
STPは非常に重要ですが、すべてのループやすべての障害を解決する機能ではありません。 適用範囲を正しく理解する必要があります。
| 事象 | STPの役割 | 補足 |
|---|---|---|
| スイッチ間のレイヤー2ループ | 防止する | BPDUが正しく交換され、対象範囲でSTPが動作していることが前提 |
| 冗長リンクの待機経路化 | 実施する | ループを作る余分な経路を通常転送から外す |
| リンク障害後のレイヤー2経路再計算 | 実施する | 収束時間は方式や条件により異なる |
| 大量の正規ブロードキャスト | 直接は抑制しない | Storm Control、VLAN分割、原因端末の調査などが別途必要 |
| レイヤー3のルーティングループ | 防止しない | ルーティング設定や経路制御を確認する |
| BPDUが届かない方向の誤配線・特殊機器 | 防げない場合がある | Loop Guard、BPDU Guard、UDLDなどの併用を検討 |
STPとEtherChannelの違い
物理リンクを複数本接続したいとき、STPだけを使うと一部リンクが待機状態になることがあります。 複数リンクを1本の論理リンクとして同時利用したい場合は、EtherChannelを使用します。
| 項目 | STP | EtherChannel |
|---|---|---|
| 主な目的 | レイヤー2ループを防ぐ | 複数リンクを1本の論理リンクとして扱う |
| 複数リンクの扱い | ループを作る経路を待機させる | 条件を満たす物理リンクを束ねる |
| 帯域利用 | 待機リンクは通常データ転送に使わない | 複数メンバーへ通信を分散できる |
| STPからの見え方 | 物理・論理トポロジーを計算 | ポートチャネルを1本の論理ポートとして扱う |
EtherChannelを構成しても、ネットワーク全体の別経路によるループを防ぐためにSTPは引き続き重要です。 「EtherChannelを使えばSTPは不要」ではありません。
show spanning-treeの読み方
Cisco IOS系スイッチでSTPの状態を確認する代表的なコマンドは、
show spanning-treeです。VLAN単位で確認すると、対象範囲を絞りやすくなります。
最初に確認する3点
- 想定したルートブリッジか Root IDのプライオリティとMACアドレスを構成図・設計値と照合します。
- ルートポートが想定した方向か 上位スイッチへ向かうポートがRootになっているか確認します。
- 待機ポートが想定した場所か Altn/BLKやDiscardingになっているポートが設計どおりか確認します。
よく使う確認コマンド
コマンド構文、出力項目、ポート状態の名称は、ベンダー、機種、OS、STPモードによって異なります。 実機ではヘルプ機能と製品ドキュメントも確認してください。
ループを疑うときの症状
CLI・ログ
- MAC move/MAC flapログが大量に出る
- Topology Changeが短時間に増える
- スイッチへログインしにくい
- CPU使用率が高い
通信・インターフェース
- ブロードキャスト量が急増する
- 複数ポートの受信・送信量が同時に高くなる
- pingが断続的に欠損する
- 複数端末・複数サービスが同時に不安定になる
調査結果の報告例
VLAN 10で通信遅延とパケットロスを確認しました。SW2のGi0/1とGi0/3間で、 同一MACアドレスの学習先が短時間に繰り返し変化しています。 また、対象2ポートのブロードキャスト受信量が通常時より増加しています。 レイヤー2ループの可能性があるため、Gi0/1・Gi0/3の接続先、STP状態、 EtherChannel設定、直近の配線変更を確認します。
設計・運用で確認するポイント
STPが有効であることだけでは、期待どおりの冗長構成になっているとは限りません。 どのスイッチを基準とし、どのリンクを通常利用し、どこを待機させるかを設計します。
- ルートブリッジを意図的に決める:重要な上位スイッチがルートになるようにプライオリティを設計する
- 待機ポートの位置を確認する:低速回線や避けたい経路が通常利用されていないか確認する
- VLANごとの経路を確認する:PVST系ではVLANによってルートや待機ポートが異なる場合がある
- トランクの許可VLANをそろえる:障害時の代替経路に対象VLANが通ることを確認する
- EtherChannelの両端設定をそろえる:不一致はループや通信断の原因になり得る
- 端末向けポートを保護する:PortFast、BPDU Guardなどを役割に応じて検討する
- 障害試験を実施する:主系リンク断、スイッチ停止、復旧時の通信と収束を確認する
- 変更前後のSTP状態を保存する:Root ID、ポート役割、Topology Changeを比較できるようにする
作業前後で最低限取得したい情報
| 確認情報 | 確認目的 |
|---|---|
show spanning-tree |
ルート、ポート役割、転送・待機状態を確認する |
show interfaces status |
物理リンクと接続ポートを確認する |
show interfaces trunk |
トランク状態と許可VLANを確認する |
show etherchannel summary |
ポートチャネルとメンバー状態を確認する |
show mac address-table |
MAC学習先の安定性と接続方向を確認する |
show logging |
MAC移動、STP変更、リンクアップ・ダウンの時刻を確認する |
稼働中のネットワークでルートブリッジのプライオリティやパスコストを変更すると、 STPの再計算によって通信経路や待機ポートが変わる可能性があります。
変更前に現行トポロジー、想定される新トポロジー、影響範囲、切り戻し条件を整理してください。
STPに関するよくある勘違い
同じレイヤー2範囲に閉じた経路ができると、ループが発生する危険があります。 複数リンクを同時利用したい場合は、EtherChannelやレイヤー3構成など、ループを避ける方式を設計します。
物理リンクは正常でも、ループを防ぐためにユーザーデータを転送しない状態になります。 障害時に転送状態へ移行できる待機経路です。
意図しないルートブリッジや待機ポートになると、低速回線を通常利用したり、遠回りの経路になったりします。 ルートとコストを設計し、実際の状態を確認します。
正常なブロードキャストは転送されます。STPが防ぐのは、レイヤー2ループによってフレームが繰り返し増幅される状態です。
EtherChannelは複数リンクを1本の論理リンクとして扱う機能です。 ネットワーク全体に別経路が存在する場合のループ防止には、引き続きSTPが必要です。
通常は一部経路を待機させ、トポロジー変化時に再計算することで、ループ防止と冗長化を両立します。
理解度チェック
次の6問に答えてください。解答を見る前に、 「物理リンク」と「STP上の転送状態」を分けて考えましょう。
問題1.STPの主な目的として最も適切なものはどれですか。
- IPアドレスを自動配布する
- 異なるVLAN間をルーティングする
- 冗長なレイヤー2構成でループのない転送経路を作る
- すべてのブロードキャストを破棄する
解答を見る
STPは、複数経路を持つレイヤー2ネットワークで、ループを作る余分な経路を待機させます。
問題2.レイヤー2ループで発生しやすい事象を3つ選んでください。
- ブロードキャストストーム
- MACフラッピング
- 重複フレーム
- DHCPによる正常なアドレス配布
解答を見る
フレームがループ内で繰り返し転送されることで、帯域消費、MAC学習先の変動、重複受信などが発生します。
問題3.STPで待機状態になったポートについて、正しい説明はどれですか。
- 必ず物理故障している
- リンクはアップしていても、通常のユーザーデータ転送を止めている
- BPDUを一切受信しない
- 障害が発生しても転送状態へ移行しない
解答を見る
待機ポートは物理リンクを残したまま、ループを防ぐためにユーザーデータ転送を制限しています。
問題4.次の出力から、通常のユーザーデータを転送していないポートはどれですか。
解答を見る
RoleがAltn、StateがBLKであるため、代替経路として待機しています。
問題5.STPとEtherChannelの役割の違いを説明してください。
解答例を見る
STPはレイヤー2ループを防ぐために転送経路を制御します。 EtherChannelは複数の物理リンクを1本の論理リンクとして束ね、帯域利用とリンク冗長化を行います。
問題6.同じMACアドレスがGi0/1とGi0/2の間を短時間に何度も移動しています。確認すべき情報を4つ挙げてください。
解答例を見る
- Gi0/1とGi0/2の物理的な接続先
- 対象VLANのSTP状態とポート役割
- EtherChannelの設定とメンバー状態
- 直近の配線・設定変更
- ブロードキャスト量とインターフェース使用率
- 無線ローミングや仮想マシン移動など正当なMAC移動の有無
実践演習:三角形構成の転送経路を判断する
次の構成では、SW1・SW2・SW3がトランクで接続され、VLAN 10を転送しています。 SW1がルートブリッジです。
演習用トポロジー
SW2―SW3間では、どちらか一方のポートを待機状態にする必要があります。
課題1.なぜ待機ポートが必要か説明する
SW2―SW3間の両端を含め、すべてのポートが転送状態になった場合に何が起きるか説明してください。
課題1の解答例を見る
SW1―SW2―SW3―SW1の閉じたレイヤー2経路ができるため、 VLAN 10のブロードキャストや未知ユニキャストが複数経路へ転送され、 フレームの増殖、MACフラッピング、帯域逼迫、通信不安定が発生する可能性があります。
課題2.コマンド出力を読む
SW3で次の出力を確認しました。各ポートの役割を説明してください。
Gi0/2:________________
Gi0/10:_______________
課題2の解答を見る
- Gi0/1:ルートブリッジへ向かうRoot Portで、転送状態
- Gi0/2:別経路として待機するAlternate Portで、ブロック状態
- Gi0/10:接続セグメントへ転送するDesignated Portで、転送状態
課題3.障害後の経路を考える
SW3のGi0/1が接続するSW1直結リンクがダウンしました。 SW3からSW1側へ到達するため、STPトポロジーはどのように変化すると考えられますか。
障害後に転送へ移行する候補:________
新しい経路:SW3 → ____ → SW1
課題3の解答例を見る
SW3のGi0/1が利用できなくなったため、待機していたGi0/2が転送可能な役割へ移行する候補になります。 新しい経路は、SW3 → SW2 → SW1です。
実際の役割と収束時間は、STP方式、BPDU情報、ポートコスト、機器実装などで決まります。
課題4.作業前確認を作る
SW2―SW3間のリンクを増設する作業を担当するとします。 レイヤー2ループを防ぐため、作業前後に確認する項目を5つ以上挙げてください。
2.
3.
4.
5.
課題4の解答例を見る
- 増設する両端ポートと物理接続先
- アクセスポート/トランクポートの設定
- 許可VLANとネイティブVLAN
- STPモードと対象VLANのSTP有効状態
- ルートブリッジと現在のポート役割
- 増設後に待機すると想定するポート
- EtherChannelとして束ねる場合の両端設定
- 作業前後のMACアドレステーブルとログ
- 通信試験とリンク断試験
- 異常時の切り戻し手順
自分の言葉で説明する課題
「回線を冗長化するためにケーブルを追加したのに、なぜSTPが一部ポートを止めるのですか?」と、 ネットワークを詳しく知らない担当者から質問されました。1分程度で説明してください。
説明例を見る
スイッチ間に複数の経路を作ると、1本が故障しても別経路を使えるため可用性が上がります。 ただし、すべての経路で同時にデータを転送すると、同じフレームがネットワーク内を回り続ける レイヤー2ループが発生する可能性があります。
STPは、通常時は余分な経路を待機させてループを防ぎ、利用中の経路が故障したときに 待機経路へ切り替えられるようにします。つまり、ポートを無駄に止めているのではなく、 安全に冗長化するために役割を分けています。
説明には、「複数経路」「レイヤー2ループ」「通常時は待機」「障害時に利用」 の4点を含めると、STPの必要性が伝わりやすくなります。
まとめ
- STPは、冗長なレイヤー2構成でループのない転送トポロジーを作る
- 同じVLANに閉じた転送経路があると、レイヤー2ループが成立する可能性がある
- ループが発生すると、ブロードキャストストーム、MACフラッピング、重複フレーム、通信断が起こり得る
- STPは、ループを作る余分なポートを通常のユーザーデータ転送から外す
- 待機ポートは物理故障ではなく、障害時に利用できる冗長経路
- スイッチはBPDUを交換し、ルートブリッジを基準にポート役割を決める
show spanning-treeでは、Root ID、Root Port、Designated Port、Alternate/Blockingを確認する- STPはループ防止、EtherChannelは複数リンクの論理的な束ねであり、役割が異なる
- 運用では、想定ルート、待機ポート、VLAN、トランク、ログ、障害時経路を確認する
STPを理解する第一歩は、ポート状態の名前を暗記することではありません。 「どこに閉じた経路があり、どのポートを待機させればループがなくなるか」を構成図から考えることです。

コメント