1 分

ラディア・パールマンのスパニングツリー:イーサネットの静かな基盤

ラディア・パールマンと出会い、スパニングツリープロトコルがイーサネットのループを防ぎ、冗長化を可能にして大規模ネットワークを安定化させた仕組みを学びましょう。

ラディア・パールマンのスパニングツリー:イーサネットの静かな基盤

なぜスパニングツリーは静かな必需品になったのか

イーサネットは最初、同じ建物内のコンピュータをつなぐ単純な手段でした。オフィスやキャンパス、データセンターに広がるにつれて期待は変わりました:ローカルネットワークは「あると便利」だったものから、メール、ファイル共有、プリンタ、電話、そして最終的にはビジネスワークフロー全体の配管のような存在になりました。その配管が壊れると、上流のサービスはすべて止まります。

ネットワークを作る人々はまた重要な信頼性の教訓を学びました:デバイス間に一つの経路しか設計していないと、ケーブルやスイッチの単一障害で広範囲がダウンします。明らかな解決策は冗長化—追加のリンクと追加のスイッチです。

しかしレイヤ2の世界では、冗長化には危険な副作用があります:ループです。

ラディア・パールマンの重要な洞察

ラディア・パールマンはスパニングツリープロトコル(STP)を設計しました。これは、イーサネットネットワークがループで壊れることなく冗長性を持てるようにする仕組みです。彼女の貢献は「より太いパイプを作る」ことではなく、スイッチが分散して協調し、安全なフォワーディング構造に合意し、トポロジ変化に自動で適応する実用的手法を示した点にあります。

目立たないインフラは、見えないときが一番良い

STPは、存在しないか誤設定されていないときにのみ意識されるタイプのシステムです。正しく動作していれば特別なことは見えません:トラフィックは流れ、リンクはアップのままで、ネットワークは障害を許容します。STPはループを防ぐために必要最小限の経路をブロックしつつ、アクティブ経路が切れたときに代替経路を準備しておく、そんな静かな働きをします。

このガイドで学べること

イーサネットループがどのように見えるか、なぜストームや障害を引き起こすのかを具体的に示します。次にSTPのコアアイデアを説明します――どのように冗長性を保ちながらループを排除するのか、スイッチがどのようにしてどのリンクをフォワードし、どのリンクを待機状態にするかをわかりやすく解説します。読了までに、STPがなぜレイヤ2スイッチングの基盤となったのか、そしてイーサネットが初期のオフィス用途をはるかに超えて拡張してもパールマンの設計が重要である理由の直感的なモデルが得られるでしょう。

成長するにつれてイーサネットネットワークが直面した問題

初期のイーサネットネットワークは小さくて単純なことが多く、数台のマシンが共有セグメントに接続されていたり、その後いくつかのスイッチ(古い用語では「ブリッジ」)がセグメントをつないでいました。ケーブルが一本抜けても問題は分かりやすかった。

組織が部屋やフロア、ビルを増やすと、ネットワークはきれいな設計図のように成長することは稀です。生き物のように増えていきます:ここにスイッチを追加、あそこに“緊急”配線、いつの間にか恒久化した一時的な回避策。

有機的な成長は予期しない経路を生む

こうした成長の過程で実用上余分なリンクが追加されます:

  • 誰かが性能を上げたいのでスイッチ間にもう一本接続を追加する。
  • チームが「念のため」とバックアップ経路を欲しがりリンクを複製する。
  • 引越しや改装の跡にドキュメントされないレガシー接続が残る。

個々の変更は無害に見えることがありますが、集まると同じスイッチ間に複数の経路ができあがります。

冗長化は有益だがリスクもある

冗長化は稼働時間を改善するため望ましいです。一つのリンクが切れてもトラフィックは別経路を通り、ユーザーは作業を続けられます。

しかしレイヤ2(スイッチング)では、イーサネットは自動的に一つの経路を選んで他を無視する仕組みを持っていません。スイッチは学習したアドレスに基づいてフレームを転送し、調整のないまま複数経路が存在するとループが発生します。

ここが本質的な緊張です:より多くのケーブルがかえってネットワークを壊すことがある。冗長化のために追加した接続自体が、トラフィックが無限に循環する条件を作り出してしまうのです。スパニングツリーは冗長性の利点を保持しつつ、こうした偶発的でネットワーク全体を巻き込む障害を防ぐために生まれました。

イーサネットループがどのように見えるか(そしてなぜ悪いのか)

イーサネットのスイッチングループは、同じスイッチ間に二つ以上の有効なレイヤ2経路があるときに発生します。多くは誰かがバックアップケーブルを追加したり、両方のアップリンクを同じネットワークに差したり、スイッチを制御機構なしにリング状につないでしまったときです。レイヤ2にはホップ制限がないため、フレームは無限に循環できます。

ブロードキャストストーム(騒々しい障害)

一部のトラフィックは意図的にフラッディングされます:ブロードキャスト(ARP要求など)や「宛先不明」フレーム(スイッチがまだMACテーブルにアドレスを学習していない場合)。ループでは、そのフラッディングされたフレームがコピーされてループ内を回り、さらにコピーされ……と増え続けます。

単純な例:PCがARPで「10.0.0.5は誰?」と尋ねると、ループがあると各スイッチがブロードキャストを複数ポートに繰り返し送出し、重複したコピーが他のスイッチに戻ってきます。非常に短時間で、リンクとスイッチのCPUは重複処理で圧迫され、本来のトラフィックの余地がほとんどなくなります。

MACテーブルの不安定化(混乱する障害)

スイッチは送信元MACアドレスがどのポートから来たかを見てデバイスの位置を学習します。ループでは同じデバイスのフレームがミリ秒単位で異なるポートに到着するため、スイッチはそのMACの位置を何度も書き換えて「心変わり」します。その結果、トラフィックは誤ったポートに送られ、次にフラッディングされ、再び誤学習されることになります。

実際に感じる影響:停止、遅延、不可解なフラッピング

これらの影響は人々が認識する症状につながります:突然のネットワーク全体の遅延、断続的な切断、電話の切断、Wi‑Fiが「つながっているが使い物にならない」、場合によってはスイッチが飽和して応答を停止し完全な障害を起こすこともあります。一本の誤ったパッチケーブルが、接続した二台以上の設備に影響を与えるのです。

中核的なアイデア:ループのない冗長性

イーサネットの冗長性は、スイッチ間に「複数の可能な経路」があることから生まれます。ケーブルが切断されたとき、トラフィックは別経路を使えます。問題は余分な経路が偶然円を作ることがあり、そしてイーサネットフレームには循環を止める「TTL(生存時間)」がない点です。

スパニングツリープロトコル(STP)はシンプルな約束でこれを解決します:冗長リンクは物理的に接続したまま、しかし論理的にいくつかを無効にすることで、アクティブなネットワークをループのない木にするのです。

交通制御の例え

余分な道路を作って救急車が迂回できるようにした都市を考えてみてください。すべての道を制約なく開けると、運転者が同じ区画をぐるぐる回る混乱した環状ルートが生まれるかもしれません。

STPは交通規制のように機能します:

  • 複数の道路(リンク)を存在させる。
  • いくつかの“入口”(ポート)を閉じて循環を防ぐ。
  • 主要な道路が塞がれたら、以前閉じていた入口を再開してアクセスを回復する。

自動かつ分散型—中央の頭脳は不要

パールマンの設計の重要な点は、すべてのスイッチを中央コントローラで制御しないことです。各スイッチが参加し、小さなメッセージを交換してどのリンクがフォワードし、どれが待機するかについて独立に同じ結論に達します。

これによりSTPは現実のネットワークで実用的になります:スイッチを追加したり、リンクを外したり、故障が起きてもネットワークは安全なフォワーディングパターンへ収束します。

STPがもたらす約束

正しく運用すればSTPは通常対立する二つの成果を同時に実現します:

  • 通常動作時にレイヤ2ループが発生しないこと。
  • リンクやスイッチが死んだときに代替経路を有効にしてフェイルオーバーできること。

STPがどのように何をフォワードし、何をブロックするかを決めるか

STPの役割は単純です:イーサネットの冗長性を維持しつつトラフィックが永遠に回り続けるのを防ぐこと。これを実現するために、スイッチ全体で「今この瞬間に使うべき最良のリンク集合(スパニングツリー)」を合意し、余剰なリンクは待機状態にします。

ステップ1:リーダーを選ぶ(ルートブリッジ)

STPはまずルートブリッジを選出します。ルートはネットワーク全体の基準点です。優先度(設定値かデフォルト)と固有のスイッチ識別子を組み合わせた値が低い方が勝ちます。

ステップ2:距離をパスコストで測る

各スイッチは「ルートまでの最良経路はどれか?」を求めます。STPは各リンクにパスコストを割り当て(高速リンクは通常より低コスト)、スイッチは経路上のコストを合計して最小の合計となる経路を選びます。

非ルートスイッチがその最良経路でルートに到達するために使うポートがルートポートになります。

ステップ3:セグメントごとに一つのフォワーダを選ぶ(指定ポート)

各共有接続(セグメント)に対して、STPはルートに向かってトラフィックをフォワードするスイッチを一つだけ選びます。これはそのセグメントの指定ポートです。セグメント上でルートへの最良経路を広告する側が、指定ポートの役割を得ます。

「ブロッキング」は実際には何をするか

ルートポートでも指定ポートでもないポートはブロッキング(古い表現)や類似の非フォワーディング状態になります。ブロッキングはケーブルを切るわけではなく、通常のイーサネットフレームをフォワードしないようにするだけです。アクティブなリンクが故障した場合、STPは待機していたバックアップ経路のブロックを解除してネットワークを維持します。

小さなネットワークでの簡単なSTPの流れ

トポロジーの変化を追跡
トポロジーの変化を追跡して早期に不安定性を発見するシンプルなアプリを作る。

四台のスイッチを使った簡単な例でSTPを具体化しましょう:

  • S1, S2, S3, S4
  • リンクは四角形に接続:S1–S2–S3–S4–S1
  • 明らかにループがあり、フレームは四角を回り続ける可能性があります。

ステップ1:ルートスイッチを選ぶ

STPはまず一つの参照点(ルートブリッジ)を選びます。各スイッチはブリッジIDを広告し、最も低いIDが勝ちます。

ここではS1が最も低いブリッジIDを持っていると仮定し、全員がS1がルートであることに合意します。

ステップ2:ルートへの最良経路を選ぶ

非ルートスイッチはそれぞれ一つのルートポートを選びます:S1への最良経路を提供するポートです。

  • S2はS1へ向かうリンクをルートポートに選びます。
  • S4もS1へ向かうリンクをルートポートに選びます。
  • S3はS2経由かS4経由かの二択になります。STPはコストやIDなどで決着をつけて一貫した選択をします。ここではS3がS3 → S2 → S1を選んだとします。

ステップ3:どのポートをフォワードにし、どれをブロックにするか決める

各リンクセグメントごとにSTPは一つの指定ポートを選びます。ルートポートでも指定ポートでもないポートはブロッキングになります。

この例ではループを切るのはS3–S4のリンクです。S3が既にS2経由でルートに到達できるので、STPはS3のS4側ポート(あるいはタイブレーク次第でS4側ポート)をブロッキングにすることができます。

結果:すべてのケーブルは差さったままですが、任意の二点間にアクティブな経路は一つだけになり、ループは発生しません。

リンクが故障したら何が起きるか?

アクティブ経路が切れた場合(例:S2–S3がダウンしたとする)、STPは再評価を行います。以前ブロックされていたS3–S4のリンクはフォワーディングへ移行し、S3 → S4 → S1経由で接続を回復できます。

この変化は瞬時ではありません。STPは安全にフォワード状態を更新してループを再発しないように収束する時間(コンバージェンス)を必要とします。

スイッチが共有する標準とメッセージ

スパニングツリーが機能するためには、ネットワーク内のすべてのスイッチが同じルールに従う必要があります。企業ネットワークはマルチベンダーで構成されることが多いため標準が重要です。共有プロトコルがなければ、あるベンダーの“ループ防止”機能が別のベンダーの機器を理解できず、冗長化が障害に変わる可能性があります。

古典的な基準:IEEE 802.1D

伝統的なSTPはIEEE 802.1Dで定義されています。規格の条文を読む必要はありませんが重要なのは、802.1Dが異なるベンダー間でルートブリッジの選出、パスコストの計算、フォワード/ブロックポートの決定方法について共通の言語を提供している点です。

後でRSTPやMSTPなどの新しい変種に移行しても、振る舞いが標準化されているため機器間で協調できるのです。

BPDU:STPの“ハロー”メッセージ

スイッチは小さな制御フレームである**BPDU(Bridge Protocol Data Unit)**を使って協調します。BPDUはスイッチがルートを誰と見なしているか、ルートまでの距離(コスト)、タイミング情報などを運び、スイッチ同士がトポロジの共通認識を持てるようにします。

BPDUは継続的に交換されるため、リンクが切れればBPDUのやり取りも変わり、スイッチは再収束して以前ブロックされていた経路を開けることができます。

同じ考え方、別名のツール

実務上の曲折として、ベンダーごとに同じ設定に異なる名前を付けることがあります。port costedge/PortFastbpdu guard のような設定はメニューや表現が異なりますが、基礎概念は一貫しています。802.1Dが何を目指すかに翻訳して考えると理解しやすくなります。

STPからRSTP、MSTPへ:何が改善されたか

現場用チェックリストアプリを作る
配線クローゼットでのオンサイト点検用に、シンプルなFlutterアプリを作る。

古典的なSTP(IEEE 802.1D)はループを解消しましたが、リンクやスイッチ障害後の「回復」が非常に遅いことがありました。理由は単純で、STPは保守的だったからです。ポートはすぐにフォワードに移行せず、定められたタイマに従って状態を遷移しました。デフォルトのタイマだと再収束に数十秒(多くは30〜50秒)かかり、音声通話が切れたりアプリがタイムアウトしたり、ユーザーが「ネットワークが落ちている」と判断するほどです。

RSTP:同じ考え方でより高速な回復

Rapid Spanning Tree Protocol(RSTP、IEEE 802.1w)は目的は同じ—冗長性を保ちつつループを防ぐ—ですが、スイッチが合意に達する方法を変えました。

長い固定タイマを待つ代わりに、RSTPはスイッチ間の迅速なハンドシェイクを使ってどのポートが安全にフォワードできるかを確認します。また、以下のような即時遷移が認められます:

  • エッジポート(通常の末端デバイス用) はループを作る可能性が低いためすばやくフォワーディングに移行できる。
  • ラピッドトランジション はスイッチが安全な経路を確認できたときに発生します。

要するに:RSTPは正しいリンクをブロックする点は同じですが、変化ごとに最悪ケースとして扱うのをやめ、より速く回復します。

MSTP:大規模ネットワーク向けのスケーリング

ネットワークが大きくなると、すべてに対して単一のツリーを使うのは制約になります。特に多くのVLANや複雑なトポロジのときです。Multiple Spanning Tree Protocol(MSTP、IEEE 802.1s)は複数のスパニングツリーインスタンスを作成し、VLAN群をそれぞれのインスタンスにマッピングできます。

これにより:

  • 冗長リンク上でトラフィックを賢く分散できる(ループは作らないまま)。
  • 各VLANに対して個別にツリーを運用するより管理負荷を下げられる。

STP → RSTP → MSTP を通じての主要な改善点は一貫しています:冗長性を維持し、ループを防ぎ、より速く予測可能にフォワーディングを回復することです。

大規模での耐障害性を支えるSTP

スパニングツリーの最も過小評価されがちな利点は、"余分なケーブルとスイッチ"を予測可能な信頼性に変える点です。企業規模では多数のクローゼット、多くのアクセススイッチ、絶え間ない移設/追加/変更があり、レイヤ2の冗長性は贈り物にも罠にもなり得ます。STPはそれを前者にしやすくします。

日常的に感じる信頼性

大規模ネットワークが故障する原因は単一リンクの断線よりも、回復操作が混乱することです。STPは何かが変わったときにネットワークが制御された方法で反応する手段を提供します:

  • リンク障害: ファイバが抜けたりスイッチが死んだとき、STPは代替経路のブロックを解除して利用者の作業を継続させる。
  • メンテナンス: チームがアップリンクを停止したり機器を交換しても、ループを作るリスクを減らせる。
  • 絶え間ない変更: 新しいスイッチやパッチ配線、ベンダーのデフォルト設定が日常的に現れる環境で、STPは安全な基準動作を提供する。

多くの企業ネットワークでの“デフォルトの安全網”

多くの組織は自分たちのトポロジがループフリーだと思っていてもSTPを有効にしたままにしています。理由は実用的です:人はミスをするし、ドキュメントは古くなり、予期しないレイヤ2経路が現れる。STPがオンなら、誤って追加されたパッチコードは建物全体の障害ではなく"ブロックされたポート"を生み出す可能性が高くなります。

一部のデータセンターが異なる設計を使う理由

現代のデータセンターはルーティングされたリーフ–スパインファブリック(レイヤ3)や特定のレイヤ2マルチパス技術を好み、クラシックなSTPの収束に頼らずアクティブ/アクティブの帯域を確保することが多いです。それでもSTP(RSTP/MSTPなどを含む)はキャンパスネットワークやエッジセグメント、純粋なレイヤ3が実用的でない場面では広く使われています。

大規模になると、STPの本当の成果は技術的なもの以上に運用性にあります:専門家だけでなく一般的な運用チームが冗長化を扱えるようにした点が重要です。

本番の障害を招く一般的な誤解

STPの概念は単純です—レイヤ2ループを防ぎつつバックアップ経路を残す—しかしいくつかの根強い誤解が人々にSTPを無効化させたり、誤設定させたり、最悪の場合それが障害に繋がるよう“最適化”させてしまいます。

「STPはもう古い」

確かに現代のネットワークはレイヤ3ルーティング、MLAG、オーバーレイ設計に頼ることが増え、古典的なIEEE 802.1Dが不要に思える場合があります。しかしSTP(RSTP/MSTPなどの新形態を含む)は、イーサネットで偶発的にループができる場所すべてに安全網を提供します:アクセススイッチ、イベント用の一時ネットワーク、ラボ、小規模な支店など。STPを無効にすると、単純な配線ミスがネットワーク全体のVLANを巻き込むブロードキャストストームに発展することがあります。

「ブロックされたリンクは帯域の無駄だ」

ブロックポートは“死んでいる”わけではありません。予め検証された待機経路です。STPはある程度の能動容量を犠牲にして安定性を得るトレードオフをしています。STPを切ってすべてのリンクをアクティブにしようとしたり、VLANを平坦化したり、アンマネージドスイッチを追加したりすると、一見効率的に見えるかもしれませんが、最初のループがネットワークを溶かします。

「冗長化は多ければ多いほど良い」

冗長化は設計されている場合にのみ有益です。スイッチ間に余分なクロスリンクを無計画に追加すると、ループの可能性が増えてSTPの振る舞いが予測しづらくなります。結果は意図しないトラフィック経路、ブロックされたアップリンク、障害後の長い再収束時間などです。

設定ミスも障害を引き起こす

STPを有効にしていても、誤った設定は実際の障害を招きます:

  • ルートブリッジの優先度を間違えると、アクセス用クローゼットがルートになり脆弱なポイントにトラフィックが集まることがある。
  • 同じレイヤ2ドメインでSTPモードを混在させたり、MSTPのマッピングを不整合にすると不安定な振る舞いになる。
  • スイッチ間リンクにedge/PortFastを誤適用すると、STPが反応する前にループができることがある。

要点:STPは単なるチェック項目ではなく制御プレーンです。意図を文書化し、変更を展開する前に検証してください。

実践的なヒント:トラブルシューティングと安全な運用

社内ユーティリティをデプロイ
フルな開発パイプラインを構築せずに、社内向けネットワークユーティリティをホストする。

STPの問題は多くの場合「ネットワークが遅い」として現れてからレイヤ2問題だと気づかれます。いくつかの焦点を絞ったチェックで何時間もの推理を省けます。

見分けやすい実際の症状

イーサネットループやSTPの不安定性があると、よく以下が見られます:

  • MACアドレスのフラッピング: 同じMACがスイッチの異なるポート間を何度も移動する。
  • ブロードキャストの急増: ARPやDHCPなどのブロードキャストが劇的に増え、リンクを飽和させる。
  • 断続的な接続不良: ユーザーが短い停電を報告したり、VoIP通話が切れる、プリンタが消えたり現れたりする。
  • スイッチの高CPU使用率: トポロジ変更の頻発で制御プレーンが圧迫される。

原因を突き止める基本チェック

基本から始めましょう:

  1. ルートブリッジの選択を確認:意図したスイッチがルートになっているか。
  2. ポートのロールと状態を確認:重要なアップリンクで予期しないブロックや頻繁な遷移がないかを確認。
  3. トポロジ変更カウンタを見る:繰り返すトポロジ変更は緩いケーブル、誤接続、アンマネージドスイッチによるループなどと相関することが多い。

安全な運用習慣

良いSTPの運用はほとんどがプロセスの問題です:

  • すべての変更を文書化(いつ、どこを、何を動かしたか)。一時的なパッチが恒久化することでループが生まれることが多い。
  • メンテナンス時にフェイルオーバーを意図的にテストして、リンクが落ちたときにどのポートがブロック/フォワードになるかを把握する。
  • 誤接続を避ける:アンマネージドスイッチ、壁面ポートのブリッジ接続、直前の配線変更に注意する。

STP以外のネットワーク診断の幅広いチェックリストが必要なら、/blog/network-troubleshooting-basics を参照してください。

Koder.aiが役立つ場面(ネットワークスタックを置き換えるわけではない)

STPは“静かなインフラ”の良い例で、人為的な失敗(意図の不明確さ、文書化されていない配線、不整合な設定、アドホックなトラブルシュート)で壊れる傾向があります。リスクを減らす実践的な方法の一つは、STP運用のための軽量な内部ツールやルーブックを作ることです。

Koder.ai を使えば、スイッチ出力を取り込んで現在のルートブリッジをハイライトしたり、予期しないブロックポートをフラグ付けしたり、トポロジ変更イベントを時系列で追跡するような小さなダッシュボードやユーティリティを簡単に作れます。Koder.aiはソースコードのエクスポートやアプリのデプロイ/ホスティング(ロールバックとスナップショット付き)をサポートするので、属人的なスクリプトを誰かのノートパソコン上に置くのではなく、保守される内部サービスに変えるのに便利です。

ラディア・パールマンの設計から学べること

ラディア・パールマンのスパニングツリーの仕事は、最も重要なインフラの一部が派手に見えないこと—混乱を防ぐことに尽きる—を思い出させてくれます。イーサネットが冗長リンクを使えるようにしながらループを作らない実用的な方法を与えたことで、STPは「バックアップ経路を追加する」ことを危険な実験ではなく安全なデフォルトに変えました。この変化が、企業やキャンパス、データセンターでより大きく耐障害性の高いレイヤ2ネットワークを可能にしました。

1) 完璧さではなく障害を前提に設計する

STPは必ず何かがうまくいかなくなることを前提にしています:ケーブルが間違ったポートに差される、スイッチが再起動する、リンクがフラップする。運用者がミスをしないことを期待する代わりに、ミスを吸収して安全な状態に収束するシステムを構築しています。この教訓はネットワーキングを超えた普遍的なものです:障害モードを設計要件の第一級に扱いましょう。

2) 少し効率を落としても安全を自動化する

スパニングツリーは意図的に一部のリンクをブロックして全体の安定性を守ります。その“無駄な容量”はトレードオフです。良いシステムはしばしば余裕を残します—時間、チェック、ガードレールを多めにとる—のは破滅的な故障を避けるために有益だからです。

3) 手動調整よりもシンプルで共有されたルールを好む

多数のコンポーネントが協調する必要がある場合、各コンポーネントが同じ分散ルールに従い小さな制御メッセージで合意に達する方が、人が毎回手動で決めるより安全です。STPはこれを実現した好例で、手動でポートを閉じる手間を減らしています。

実務的な持ち帰り

覚えておくべきポイントは少数です:冗長化を作る、人的ミスを想定する、安全な選択を自動化する。これらの考え方こそが、スパニングツリーが静かな必需品になった理由です。

さらにわかりやすいネットワーキング入門が必要なら、/blog をご覧ください。

よくある質問

イーサネットのスイッチングループとは、簡単に言うと何ですか?

レイヤ2のループは、同じセグメント間でスイッチに二つ以上の有効な経路が存在し、閉路(サイクル)が形成される状態を指します。イーサネットフレームはレイヤ2でホップ制限を持たないため、ブロードキャストや宛先不明のユニキャストなどのフラッディングトラフィックが無限に循環・増幅され、リンクとスイッチのCPUを圧迫します。

“バックアップ”リンクを追加すると、なぜイーサネットネットワークが壊れることがあるのですか?

冗長化は代替経路を追加しますが、調整がなければスイッチはすべての経路で転送を行うかもしれません。すると、フラッディングされたフレームが繰り返し複製されるループが生じ、ブロードキャストストームやMAC学習の不安定化を引き起こします。つまり、余分なパッチケーブル一つでネットワーク全体が壊れることがあります。

スパニングツリープロトコル(STP)は、冗長性を維持しながらどのようにループを防ぐのですか?

STPは冗長リンクを物理的に残したまま一部のポートを論理的に無効化し、アクティブなトポロジをループのない木(スパニングツリー)にします。アクティブ経路が障害を起こしたときは、以前にブロックされていたポートをフォワーディングに切り替えて接続を回復します。

ルートブリッジとは何で、どのスイッチがルートになるかはなぜ重要なのですか?

STPはレイヤ2ドメイン全体の参照点としてルートブリッジを選出します。ルートブリッジはブリッジID(優先度+ユニークID)が最も低いスイッチです。意図したコアや配布層スイッチがルートになるよう設定すると、経路が予測しやすくなります。

STPにおける「パスコスト」と「ルートポート」とは何ですか?

各非ルートスイッチは、ルートへの合計経路コストが最も低くなるポートを一つだけ選び、それがルートポートになります。経路コストは通常リンク速度に基づき、速いリンクほど低コストとして扱われます。タイブレークにはID情報が使われ、決定は決定論的になります。

指定ポートとは何で、STPはどの側をフォワードに選ぶのですか?

各スイッチ間の共有セグメント上で、STPはセグメントに対して必ず一つの**指定ポート(designated port)**を選び、そのポートがセグメントのトラフィックをルート方向にフォワードします。セグメント上でルートへの最良経路を広告する側が指定ポートになるというルールで決まります。

STPでポートが“ブロッキング”状態になるとは実際に何を意味しますか?

そのポートは通常のユーザートラフィックを転送しない状態になります。つまりループに参加しないようにフォワーディングを止めるだけで、物理ケーブル自体は接続されたままです。トポロジ変化が起きた場合、そのブロックポートがフォワーディングに昇格して新しい経路を提供できます。

BPDUsとは何で、なぜSTPに不可欠なのですか?

BPDUs(Bridge Protocol Data Units)はSTPの制御フレームで、スイッチ同士がルート候補・ルートまでのコスト・タイミング情報などのトポロジ情報を交換するために使います。BPDUsを継続的にやり取りすることで、障害や変更を検出し、ループのないトポロジへ再収束できます。

なぜ古典的なSTPは「遅い」と言われ、RSTPは何を改善するのですか?

古典的なSTP(IEEE 802.1D)は、ポートが段階的な状態(blocking → listening → learning → forwarding)を順に経るため、再収束に数十秒(典型的には30〜50秒)かかることがありました。RSTP(IEEE 802.1w)は高速なハンドシェイクと急速移行を採用し、特にエッジポートでは即時にフォワーディングできるなど、復旧時間を大幅に短縮します。

STPやループの疑いがあるとき、すぐにできる簡単なチェックは何ですか?

簡単なチェックリスト:

  • 意図したルートブリッジになっているか確認する(アクセススイッチが誤ってルートになると悪化する)。
  • 重要なアップリンクで予期せぬ**ブロッキング/破棄(discarding)**が発生していないか、または頻繁な状態遷移(forwarding ↔ blocking)がないか確認する。
  • MACアドレスのフラッピングやブロードキャスト/ARPの急増、頻繁なトポロジ変更の有無を確認する。
  • edge/PortFastは実際のエンドデバイス接続ポートだけに設定し、スイッチ間リンクには適用しない。

これらはSTPやループ疑いの初期診断で有効です。

STPについてのよくある誤解で、実際に障害を招くものは何ですか?

STPは概念としては単純ですが、いくつかの誤解が原因で人為的な障害を招きます。例えば「STPはもう時代遅れだ」と無効化するのは危険ですし、「ブロックされたリンクは無駄だ」としてSTPを切ると、ループがネットワークを溶かします。設定ミス(ルートのプライオリティ設定ミス、STPモードの混在、edgeポート誤適用など)も実運用で大きな障害になります。STPは単なるチェックボックスではなく制御平面なので、意図を文書化し、変更を検証してから広げることが重要です。

Related posts