こんにちは!ネットワークの世界へようこそ。インフラアーキテクトの私です。
日頃、私たちは何気なく会社や自宅で無線LANをつなぎ、有線ケーブルを挿してインターネットを楽しんでいますよね。YouTubeで高画質な動画がサクサク見られたり、オンラインミーティングがスムーズにできたりするのは、背後でネットワーク機器たちが「ここを通ってデータを運ぼう!」と賢く道を選んでくれているからです。
さて、そんなネットワークの設計で、絶対に避けて通れないのが「ループ(環状配線)」の恐怖です。
「冗長化(バックアップ)」のために予備のケーブルを挿したら、ネットワーク内でデータが無限ループグルグル回り続け、たった数秒で通信が完全に麻痺してしまう……インフラエンジニアなら誰もが一度は冷や汗をかいたことのある悪夢です。
このループを防ぐための伝統的な仕組みが STP(Spanning Tree Protocol / IEEE 802.1D) ですが、いかんせん「おっとり屋」で有名でした。障害が起きてから新しい道が開通するまでに、なんと30秒〜50秒もかかってしまうのです。「たかが数十秒」と思われるかもしれませんが、ビジネスの現場では致命的なダウンタイムになりますよね。
そこで登場したのが、今回主役として取り上げる RSTP(Rapid Spanning Tree Protocol / IEEE 802.1w) です。「Rapid(素早い)」の名に恥じず、従来のSTPの弱点を根底から覆し、わずか数秒(時には1秒未満)でループフリーパスを確立してくれる頼もしいスーパースターです。
今回は、RSTPがなぜそんなに速いのか、その秘密である「高速収束メカニズム」と「新しいポートロール(役割)」を、身近な例えを交えながら一歩ずつ優しく紐解いていきましょう!
—
1. 従来のSTPとなぜ違う?「郵便配達」で例える高速化の秘密
従来のSTPがなぜ遅かったのかというと、それはまるで「慎重すぎる古い役所の書類手続き」のようなものでした。
支店で何かトラブル(回線の切断など)が起きたとき、現場の人は勝手に判断して動けません。「本当によろしいでしょうか?」とお伺いを立て、それが中央の本部に届き、本部は周りの支店すべてに「今から体制を変えますよ、準備はいいですか?」と確認を取り……と、何段階ものステップ(リスニング、ラーニングといった状態遷移)を踏むため、どうしても時間がかかっていました。
一方、RSTPのやり方は全く違います。これを「現代のスマートな宅配便の仕組み」に例えてみましょう。
RSTPでは、スイッチ同士がダイレクトに会話をします。これを Proposal / Agreement(プロポーサル/アグリーメント)ハンドシェイク と呼びます。
1. 提案(Proposal): スイッチAがスイッチBに向かって、「おい、私とつながっているこの線を『一番のメイン道路(指定ポート)』にするから、お前のほうは『裏口(ブロッキング状態)』として即座にフタをしてくれ!」と提案を投げます。
2. 同意(Agreement): スイッチBは、「よし、そっちがメインなら、こっちはすぐに裏口にフタをしたぜ!」と即座に返事を返します。
このやり取りがパケットのやり取り一発(数ミリ秒の世界)で行われます。「お互いの意思疎通がリアルタイムで取れる」からこそ、RSTPは待ち時間なしで一瞬でネットワークの形を切り替えられるのです。これが高速収束の正体です。
—
2. RSTPで新しくなった「ポートの役割(ポートロール)」
従来のSTPでは、使われていないポートはすべて一括して「お休み中(Blocking)」扱いされていましたが、RSTPではネットワークの構造をより深く理解するために、ポートの役割が細分化されました。
ここでは、新しく登場した重要な2つの役割を見ていきましょう。
① Alternate(オルタネイト)ポート = 「いざという時の第二の道」
メインの道路(Root Port)に万が一の障害が起きたとき、「今か今かとスタンバイしているバックアップ用のポート」です。
従来のSTPであれば、メインが消滅したあとに「さて、どうしようかな」と悩み始めていましたが、RSTPのAlternateポートは「メインが消えたら、私がいまこの瞬間から代わりを務めます!」と控えているため、切り替えが圧倒的に速いのです。
② Backup(バックアップ)ポート = 「同じ部屋への二股ケーブルの用心棒」
これは少しマニアックですが、1つのスイッチから同じハブや別のスイッチへ、冗長化のために2本のケーブルを直接挿しているようなシチュエーションで現れます。
「同じ宛先へ行くなら、2本も同時に使ったらループしちゃうよね。じゃあ、こっちのポートは万が一の予備(Backup)としておとなしくしておこう」という役割を担います。
—
3. 実務で役立つ!Cisco CatalystスイッチでのRSTP(PVST+/Rapid-PVST+)設定例
「理屈はわかったけれど、実際の現場ではどう設定するの?」という声にお応えして、Ciscoスイッチでの具体的な設定例を見ていきましょう。
現代のCiscoスイッチでは、単なるRSTPではなく、VLANごとにRSTPを動かす Rapid-PVST+(Rapid Per-VLAN Spanning Tree Plus) というモードが主流で使われています。これによって、VLAN(仮想ネットワーク)ごとに最適なループフリーパスを構築できます。
以下に、実務でそのまま使える基本コマンドをご紹介します。
! ----------------------------------------------------
! 【Cisco IOS スイッチ設定例】
! スパニングツリーのモードを Rapid-PVST+(RSTPベース)に変更する
! ----------------------------------------------------
! 特権EXECモードへ移行
enable
! グローバルコンフィギュレーションモードへ移行
configure terminal
! スパニングツリーのモードを rapid-pvst に明示的に指定する
! (※デフォルトの古いSTPから、高速収束するRSTPベースの挙動へ切り替えます)
spanning-tree mode rapid-pvst
! ルートスイッチ(ネットワークの中心)のプライオリティを明示的に強める設定
! (※どのスイッチが中心になるかを意図的にコントロールし、安定したトポロジを作ります)
spanning-tree vlan 1,10,20 root primary
! エンドユーザー(PCやプリンターなど)が接続されるポートの高速化設定
! (※PCがつながるたびにSTPの計算が走らないよう、「即座にフォワード状態」にするエッジポート機能を有効化)
interface range GigabitEthernet 0/1 - 24
description === User Access Ports ===
switchport mode access
spanning-tree portfast
spanning-tree portfast bpudefault enable
exit
! 設定を保存する
end
write memory
💡 実務の現場におけるワンポイントアドバイス
上記のコードの最後に出てくる spanning-tree portfast と bpudefault enable は、実務では非常に重要なテクニックです。
PCやサーバーが接続されるポートに対して「ここはルーターや他のスイッチとは繋がらない末端(エッジ)ですよ」と教えてあげることで、ケーブルを挿した瞬間に通信が利用可能になります。さらに、万が一ユーザーが間違えてハブを持ち込み、そこから別のスイッチへループを作ろうとした場合に、BPDU(STPの制御パケット)を検知して自動でポートをシャットダウンさせる bpudefault enable(BPDUガード)を組み合わせるのが、セキュアでモダンなインフラ設計の鉄則です。
—
4. おわりに
いかがでしたでしょうか?
RSTP(IEEE 802.1w)は、一見すると難解なアルゴリズムの塊に見えますが、その本質は「スイッチ同士がスマートに連絡を取り合い、バックアップの道をあらかじめ準備しておくことで、トラブル時に一瞬で道を切り替える思いやりと効率の仕組み」です。
ネットワークの基礎を学ぶ上で、この「ループの恐怖」と「それをスマートに回避する仕組み」を理解しているかどうかは、今後のインフラ設計・運用のスキルアップにおいて大きな分かれ道になります。
ぜひ、お手元の検証環境やシミュレータなどで、実際にポートのロール(Root, Designated, Alternate)がどう切り替わるのかを show spanning-tree コマンドで覗いてみてくださいね。パケットが生き生きと駆け巡るネットワークの姿が、より一層クリアに見えてくるはずです。
それでは、また次回のインフラ深掘り記事でお会いしましょう!
コメント