こんにちは!ネットワークの世界へようこそ。インフラやネットワークの勉強を始めると、必ずと言っていいほどぶつかる壁がありますよね。「スイッチが勝手にループを防いでくれるらしいけれど、中で何が起きているの?」という疑問です。
今回は、ネットワークの信頼性を保つための心臓部、STP(スパニングツリープロトコル)のポート状態遷移について、一緒にじっくり紐解いていきましょう!
難しいパケットの構造や複雑な英語の頭字語はいったん脇に置いて、「もしスイッチが郵便局員だったら?」という現実世界の視点から、一歩ずつ優しく解説していきますね。
—
1. なぜSTPが必要なの?(郵便配達で例えるループの恐怖)
ネットワークの世界で最も恐れられているトラブルの一つが「ブロードキャストストーム(ループ)」です。
例えば、オフィスに2台のスイッチがあったとします。信頼性を高めるために、スイッチ同士を2本のケーブルで繋いで「冗長化(お助けルート)」をしました。人間なら「あ、2本あるから片方は予備だな」と判断できますが、機械であるスイッチはそうはいきません。
これを郵便配達に例えてみましょう。
あなたが「全員にお知らせです!」という手紙(ブロードキャスト)を投函したとします。ルートが2本あると、郵便局員AとBが「おっ、新しい手紙だ!」と互いに相手のポストに手紙を投げ込み合います。すると、たった1通の手紙が無限にコピーされ続け、郵便局(ネットワーク)の中は手紙の山で大パニックになり、ついには機能停止してしまいますよね。
この「無限ループの暴走」を防ぐために、あえて普段は1本のケーブルを「お休み(ブロック)」させておく仕組み、それがSTP(Spanning Tree Protocol)なんです。
—
2. 眠れる森のポートたち:BlockingからForwardingまでの道のり
スイッチのポートは、電源が入った瞬間からすぐに通信を始めるわけではありません。ネットワークのループが起きていないかを慎重に確認しながら、段階的に「お仕事モード」へと移行していきます。
その状態遷移のステップがこちらです。
1. Blocking(ブロッキング状態:待機)
2. Listening(リスニング状態:耳をすます)
3. Learning(ラーニング状態:お勉強中)
4. Forwarding(フォワーディング状態:通常営業!)
それぞれの状態を、もう少し詳しく見ていきましょう!
① Blocking(ブロッキング状態):「今はじっと我慢の子」
スイッチの電源が入った直後、あるいは予備のルートとして選ばれたポートは、この Blocking 状態になります。
- できること: ループを防ぐため、ユーザーのデータ(パケット)は一切通しません。ただし、スイッチ同士が状況を確認し合うための合図(
BPDUと呼ばれる制御メッセージ)を「受信」することだけはできます。 - 郵便の例え: 「今は予備の扉だから、まだお客さんは入れません。でも、本局からの連絡事項(指示書)だけはポストで受け取りますね」という状態です。
② Listening(リスニング状態):「周囲の状況を聴く」
「よし、そろそろネットワークに参加してもいいか?」と確認を始めるのが Listening 状態です。
- できること: ユーザーのデータはまだ流しませんが、他のスイッチと
BPDUを送り合い、「本当にここにループはないか?」を本格的に議論し始めます。 - 郵便の例え: 扉は閉まったままですが、外の様子や他の配達員の声に耳をすませ、「おい、あっちのルートは混雑してないか?」と無線で確認し合っているところです。
③ Learning(ラーニング状態):「住所録を作り始める」
議論の末、「どうやらこのポートを使ってもループは起きなそうだ」と分かると、次は Learning 状態に進みます。
- できること: まだユーザーのデータ転送は始めませんが、「このケーブルの向こう側には、一体どんな機器(MACアドレス)がいるんだっけ?」というメモ書き(MACアドレステーブル)の作成を始めます。
- 郵便の例え: まだ一般の人は入れませんが、窓口のスタッフが「あそこのアパートには〇〇さんが住んでいるんだな」と、あらかじめ配達エリアの住所録を予習している状態です。準備万端ですね!
④ Forwarding(フォワーディング状態):「いよいよ通常営業!」
長かった準備期間をへて、ついに最後の扉が開きます。
- できること: ユーザーのデータを自由に送受信できるようになり、MACアドレスの学習も継続します。晴れてネットワークの正式な一員です!
- 郵便の例え: 「お待たせいたしました!これより通常業務を開始します!」と、元気よくお客さんを迎え入れて手紙を配り始める状態です。
—
3. 「待ち時間が長すぎる!」を解決するモダンな仕組み
ここまで読んで、「あれ? 安全なのは分かったけど、電源を入れてから実際に通信できるようになるまで、結構時間がかかりそう…」と思いましたよね?
その通り!従来のクラシックなSTP(IEEE 802.1D)では、Blocking から Forwarding にたどり着くまでになんと約30〜50秒もの時間がかかっていました。「パソコンを繋いだのに、なかなかネットにつながらない!」というイライラの原因はこれです。
そこで現代のネットワークでは、この収束時間(コンバージェンス)を劇的に短縮する救世主が登場しています。それが RSTP(Rapid Spanning Tree Protocol / IEEE 802.1w) です!
RSTPで何が変わったの?
RSTPは、先ほどの面倒なステップをすっきりと整理し、不要な待ち時間をカットしました。
- 「話し合い」の効率化: 従来は「他からの指示を待つ」受動的な姿勢でしたが、RSTPではスイッチ同士が「こっちは準備できたぞ!」「そっちはどうだ?」とダイレクトに確認(ハンドシェイク)し合います。
- 結果どうなる?: なんと、数秒(約数秒〜数秒以内)で
Forwarding状態に移行できるようになりました。これなら、オフィスのレイアウト変更でケーブルを抜き差ししても、ストレスなくすぐにネットワークが復旧しますよね。
—
4. 実務で役立つ!Cisco Catalystスイッチでの設定と確認
それでは、実際の現場でどのように設定されているか、Ciscoのコマンドを例に覗いてみましょう。
近年のネットワーク機器では、古いSTPではなく、高速なRSTPをベースにした Rapid-PVST+ などのモードがデフォルトで動いていることが多いです。
設定例:STPモードの確認と変更
もしスイッチが古いモードで動いていたら、次のようなコマンドでRSTP(またはそれに準ずるモード)に明示的に変更します。
# 特権EXECモードからグローバルコンフィギュレーションモードに入ります
Switch> enable
Switch# configure terminal
# スパニングツリーのモードを「rapid-pvst(RSTPベース)」に指定します
Switch(config)# spanning-tree mode rapid-pvst
# 設定を保存します
Switch# write memory
状態の確認:ポートが今どこにいるかチェック!
現場で「あれ、あそこのポート通信できないぞ?」とトラブルシューティングする際、最もよく使うのが次のコマンドです。
Switch# show spanning-tree interface gigabitethernet 0/1
# 実行結果のイメージ
Interfaceaddr : Gi0/1
Role : Designated <-- 役割(ルートポートや指定ポートなど)
Sts : FWD <-- 現在の状態(FWD = Forwarding, BLK = Blocking)
Cost : 4
Prio.Nbr : 128.1
ここで Sts の項目が FWD (Forwarding)になっていれば正常に通信できています。もしここが BLK (Blocking)になっていて「通信できない!」と慌てている場合は、STPの仕様通りの正常な挙動である可能性が高いので、まずは落ち着いて全体のトポロジーを確認しましょう。
—
まとめ
いかがでしたでしょうか?今回はSTPのポート状態遷移について、郵便配達のたとえを交えながらお送りしました。
- Blocking: 予備ルートとしてじっと待機(データは通さない)
- Listening / Learning: 周囲と協議し、データの受け入れ準備を進める
- Forwarding: 準備完了!元気に通常営業開始
ネットワークの裏側では、スイッチたちがこうして目に見えないところで会話を交わし、ループという大事故から私たちの通信を守ってくれています。
難解に見えるプロトコルも、役割とストーリーを紐解いていくとぐっと身近に感じられるはずです。日々のインフラ運用の現場で、ぜひ今回の知識を思い出してみてくださいね。それではまた次回の技術解説でお会いしましょう!
コメント