【入門編】 スパニングツリープロトコル(STP/IEEE 802.1D)の基本原理とループフリー構成 – インフラ・物理&L2/L3ネットワーク基礎実践ガイド

こんにちは!ネットワークの世界へようこそ。インフラエンジニアの主筆ライターとして、日夜パケットたちのドラマを見つめている私です。

今回は、L2ネットワーク(レイヤー2)の基礎であり、すべてのネットワークエンジニアが最初に直面する「大きな壁」、そして「いぶし銀の守護神」であるスパニングツリープロトコル(STP / IEEE 802.1D)について、とことん優しく、そして現場のリアリティを交えながら紐解いていきブース!

小難しいビット数や英語の仕様書は一旦脇に置いて、身近な例えから一歩ずつ理解していきましょうね。

—

1. なぜL2ネットワークに「ループ」があるとマズいのか?

ネットワークの構築において「冗長化(バックアップ)」は絶対に欠かせない命題です。「メインのケーブルが断線しても、予備のケーブルがあれば通信が止まらない!」というのは、インフラエンジニアにとって最高の安心感をもたらしてくれますよね。

ですが、L2(スイッチングハブの世界)において、この冗長化を「ただケーブルをぐるっと輪っか(ループ)状につなぐだけ」で実現しようとすると、ネットワーク全体が完全にマヒするという恐ろしい現象が起きます。

郵便配達で例える「終わらない手紙のコピー地獄」

想像してみてください。ここに、AさんからBさんへ手紙を届ける郵便配達員たちがいます。
もし、配達ルートが「ぐるっと一周する円(ループ)」になっていたらどうなるでしょうか?

1. Aさんが「この手紙をBさんに届けて!」とスイッチ(郵便局)に手紙を渡します。
2. スイッチは「どっちのルートが早いか分からないから、とりあえず両方のルートに同じ手紙のコピーを投げちゃえ!」と、右と左の両方に手紙を出発させます。
3. ループをぐるっと回って、反対側から「さっき自分が投げたはずの手紙のコピー」が戻ってきます。
4. スイッチは「おっ、新しい手紙だ!」と勘違いし、また両方のルートにコピーを増殖させて送り出します。

……もうお分かりですね? これが、いわゆる「ブロードキャストストーム(放送の嵐)」と呼ばれる現象です。
手紙(フレーム)の数はねずみ算式に爆発し、わずか数秒でネットワーク上の機器(スイッチ)はCPU使用率100%になり、チーンと沈黙してしまいます。実務の現場でこれをやらかすと、一瞬でフロア全体の通信が死に絶え、冷や汗が背中を伝うことになります。

—

2. スパニングツリー(STP)の基本原理:みんなで「木(ツリー)」を作ろう

「冗長化はしたい。でも、ループによる破滅は避けたい……!」
この矛盾を華麗に解決するために生み出されたのが、スパニングツリープロトコル(STP)です。

スパニング(Spanning)とは「またがる」、ツリー(Tree)とは「樹木」のこと。数学のグラフ理論における「全域木」がベースになっていますが、要するに「すべてのスイッチを繋げたまま、論理的にどこか一ヶ所の通路を一時通行止めにして、輪っか(ループ)を断ち切る仕組み」のことです。

郵便局の会議:誰がリーダーになるのか?

STPが動くとき、スイッチたちは次のような手順で「どの通路を通行止めにするか」を話し合います。

1. リーダー(ルートブリッジ)の選出
ネットワーク全体の中で、一番「お偉いさん(優先度の高いスイッチ)」を1台だけ決めます。これをルートブリッジと呼びます。すべての計算の基準点になる、いわばネットワークの総司令官です。
2. コストの計算
すべてのスイッチは、「ルートブリッジ様から一番真っ直ぐ、安く来られるルートはどこか?」を計算します。
3. お邪魔な通路のブロック(ブロッコリー……ではなくブロッキング)
計算の結果、「この通路は、ルートに行くのに遠回りだし、なくても全員と通信できるよね」と判断されたポート(差込口)を、自動的に「通行止め(ブロッキング状態)」にします。

これで、物理的には輪っかになっていても、論理的には端から端まで一本の「木(ツリー)」の形になり、ループが綺麗に消え去るというわけです。すごい仕組みですよね!

—

3. 実務で触れる!STPのステータス遷移と実機設定

実際にスイッチが起動したとき、ポートはすぐに通信を始めません。ループが起きないよう、慎重に周りの状況を確認しながら、いくつかの「段階(ステータス)」を経て通信を許可します。

ポートが通信できるようになるまでの心の準備

  • Disabled(無効): ポートがシャットダウンしている状態。
  • Blocking(ブロッキング): 通行止め。データは流さないけど、ルートからの「お便り(BPDU)」だけは聞いてあげる状態。(ここでループを防ぎます)
  • Listening(リスニング): 「私、リーダーに立候補してもいいですか?」と周りと話し合いを始める状態。
  • Learning(ラーニング): 「どの端末がどこに繋がっているか(MACアドレス)」をメモ帳に書き留める状態。
  • Forwarding(フォワーディング): ようやく通常のデータ通信が許可された状態!

※古い規格(IEEE 802.1D)では、BlockingからForwardingになるまでに約30〜50秒かかっていました。「予備回線に切り替わったのに、通信が復旧するまで1分近く待たされる」というのは、シビアな現場では致命傷になり得ます。そのため、現代のネットワークではこれを劇的に高速化したRSTP(Rapid STP / IEEE 802.1w)や、さらに進化版のMSTPが主流になっています。

—

4. 現場で役立つ!Cisco CatalystスイッチでのSTP設定サンプル

それでは、インフラの現場で実際にどのようにSTPが扱われているのか、Cisco IOSをベースにした設定の基本を見ていきましょう。

現代のCiscoスイッチでは、デフォルトで古いSTPではなく、少し改良されたPVST+(Per-VLAN Spanning Tree Plus)やRSTPベースの挙動(Rapid-PVST+)が有効になっています。

基本的なSTPモードの確認と変更

ネットワークの設計において、「どのスイッチをリーダー(ルートブリッジ)にするか」を人間の手できちんとコントロールしてあげるのが、プロのインフラエンジニアの腕の見せ所です。

! 現在稼働しているSTPのモードや、このスイッチがリーダーになっているかを確認するコマンド
Switch# show spanning-tree summary

! スイッチを特定のVLAN(例: VLAN 10)における「主役(プライマリ・ルートブリッジ)」に指名する設定
Switch(config)# spanning-tree vlan 10 root primary

! 万が一、主役のスイッチが故障したときに備えて、二番手(セカンダリ)を指定しておく設定
Switch(config)# spanning-tree vlan 10 root secondary

【現場の知見】ポートファスト(PortFast)の重要性

エンドユーザーが使うパソコンやプリンターが接続されるアクセスポートに対して、いちいちSTPの「Blocking → Listening → Learning → Forwarding」の安全確認をさせるのは、正直なところ時間の無駄です。「パソコンが繋がった瞬間にすぐ通信させたい!」ですよね。

そんなときは、端末接続用ポートに対してPortFastという機能を有効にします。

! 対象のインターフェース(例: FastEthernet 0/1)を端末接続用として設定
Switch(config)# interface FastEthernet 0/1
Switch(config-if)# switchport mode access

! STPの安全確認(ディレイ)をスキップし、接続と同時に即座にForwarding状態にする
Switch(config-if)# spanning-tree portfast

! ※注意: もしこのポートに、うっかり別のスイッチが接続された場合、ループを検知して遮断する機能もセットで有効にしておくとさらに安全です(BPDUガード)
Switch(config-if)# spanning-tree bpduguard enable

このように、現場では「ループを防ぐための基本の自動計算」を信頼しつつ、エンドポイント(端末)側では無駄な待ち時間を削るためのチューニングを組み合わせて運用しています。

—

5. おわりに

いかがでしたでしょうか?
スパニングツリープロトコル(STP)は、一見すると地味で、何もしなくても勝手に裏側で動いてくれる縁の下の力持ちです。しかし、その裏ではスイッチ同士が絶えず会話(BPDUのやり取り)をし、ネットワークの安全を守り続けています。

「なぜループしちゃいけないのか」
「どうやって無駄なルートを見つけ出して塞いでいるのか」

この基本原理さえ頭の中にイメージできれば、今後さらに複雑なL2・L3のデザインやトラブルシューティングに挑むときも、パケットたちの動きがスルスルと見えてくるはずです。

それでは、また次回のパケット解説でお会いしましょう!快適なネットワークライフを!

コメント

タイトルとURLをコピーしました