【入門編】 STPブリッジID(Bridge ID)の構造とルートブリッジ選出アルゴリズム – インフラ・物理&L2/L3ネットワーク基礎実践ガイド

こんにちは!ネットワークの世界へようこそ。

LANケーブルをスイッチに挿すだけで、PC同士が通信できるようになる……普段は何気なく使っているイーサネットですが、その裏側では「ブロードキャストストーム」というネットワーク崩壊の危機を避けるため、スイッチたちが常に緊迫したやり取りを繰り広げています。

その主役となる技術がSTP(Spanning Tree Protocol:スパニングツリープロトコル)です。

STPの目的は、ケーブルが輪っか(ループ)状に繋がっていても、どこか1箇所を論理的に「通行止め」にしてパケットの暴走を防ぐこと。そして、その通行止めを決めるためには「ネットワーク全体のリーダー(中心となる親玉スイッチ)」を1台決めなければなりません。このリーダーを「ルートブリッジ」と呼びます。

今回は、ネットワーク初心者が最初につまずきやすい「ブリッジID(Bridge ID)の構造」と「ルートブリッジが選ばれるアルゴリズム」について、身近な例えを交えながら世界一わかりやすく紐解いていきます。一歩ずつ一緒に理解していきましょう!

—

1. ルートブリッジ選出は「クラスの生徒会長選挙」と同じ!

スイッチの世界では、電源が入った瞬間に「誰がリーダー(ルートブリッジ)になるか」を決める選挙が始まります。

この選挙で使われるのが、各スイッチが持っている「名刺」= ブリッジID(Bridge ID: 略してBID)です。

スイッチたちは、BPDU(Bridge Protocol Data Unit)という「選挙ハガキ」のようなパケットをお互いに送り合い、「僕の名刺はこれです!」「私の名刺はこれよ!」と名刺交換を行います。

では、どんな名刺を持っているスイッチがリーダーに選ばれるのでしょうか?
日常の感覚だと「数字が大きい方が強そう」と思いがちですが、ネットワークの世界(特にルーティングやSTP)では「数字が小さい(若い)方が偉い(優先度が高い)」というゴルフスコアのようなルールが基本になります。

【ルートブリッジ選出の大原則】
全スイッチの中で、最も「ブリッジID(BID)」の数値が小さいスイッチが勝者(ルートブリッジ)になる!

とてもシンプルですよね。では、その「ブリッジID」の中身はどうなっているのでしょうか?

—

2. ブリッジID(BID)の解剖図:名刺に書かれた2つの情報

ブリッジIDは、合計64ビット(8バイト)のデータで構成されています。
難しく聞こえますが、中身を分解すると次の2つが合体しているだけです。

1. ブリッジプライオリティ(Priority):16ビット
2. MACアドレス(MAC Address):48ビット

郵便配達で例えるなら、「速達度(プライオリティ)」+「固有の住所(MACアドレス)」のような組み合わせです。

+-----------------------------+------------------------------------+
|  プライオリティ (16ビット)  |        MACアドレス (48ビット)      |
+-----------------------------+------------------------------------+
  ← 先頭(ここを最初に見る)→   ← 同点だったときの判定に使う →

① ブリッジプライオリティ(設定で変えられる「やる気度」)

名刺の先頭に書かれている「優先度」です。標準的な初期値は 32768 に設定されています。
エンジニアがコマンドを入力することで、「このスイッチをリーダーにしたいから、数値を小さくしよう!」とコントロールできる値です。

※なお、現代のネットワーク(PVST+など)では、この16ビットの内訳が「プライオリティ値(4ビット)」+「VLAN ID(12ビット:拡張システムID)」に分かれていますが、まずは「全体で数字が小さいほど優先される」と覚えておけば現場でも困りません。

② MACアドレス(世界に1つだけのマイナンバー)

スイッチの基板に焼き付けられた、世界で重複しない固有のハードウェア番号です。
もし複数のスイッチでプライオリティが同じ(全員初期値の 32768 など)だった場合、このMACアドレスを比較して、一番数字が小さいスイッチがルートブリッジに選ばれます。

—

3. 選出アルゴリズム:いざ、開票シミュレーション!

具体例で見てみましょう。3台のスイッチ(Switch-A, Switch-B, Switch-C)が三角形に接続されているとします。

| スイッチ名 | プライオリティ | スイッチのMACアドレス | 合計のブリッジID(BID) |
| :— | :— | :— | :— |
| Switch-A | 32768 | 00:11:11:11:11:11 | 32768.00:11:11:11:11:11 |
| Switch-B | 32768 | 00:22:22:22:22:22 | 32768.00:22:22:22:22:22 |
| Switch-C | 4096 | 00:33:33:33:33:33 | 4096.00:33:33:33:33:33 |

ステップ1:プライオリティを比較する

まずスイッチたちは、名刺の先頭にある「プライオリティ」を比べます。

  • Switch-A: 32768
  • Switch-B: 32768
  • Switch-C: 4096

一番小さい値はどれでしょうか?
そうですね、Switch-Cの 4096 です!

この時点で、Switch-Cが文句なしのルートブリッジ(リーダー)に決定します。MACアドレスを比べるまでもありません。

もしプライオリティが全員同じだったら?

もしエンジニアが何も設定せず、Switch-Cのプライオリティも 32768 のままだった場合はどうなるでしょうか?

1. プライオリティは全員 32768 で同点
2. 次の判定基準であるMACアドレスを比較する

  • Switch-A: 00:11:...
  • Switch-B: 00:22:...
  • Switch-C: 00:33:...

3. 一番値が小さい Switch-A がルートブリッジに決定!

このように、ルールさえ分かってしまえば判定は驚くほどロジカルです。

—

4. 実践編:Ciscoスイッチでの設定と確認コマンド

現場のエンジニアは、MACアドレスの偶然の大小でルートブリッジが決まってしまうのを嫌います。なぜなら、性能が低くて古いスイッチが、たまたまMACアドレスが小さかったせいでネットワーク全体の中心(ルートブリッジ)になってしまうと、通信のボトルネックや遅延の原因になるからです。

そのため、必ず「意図してプライオリティを小さく設定」します。

Cisco IOSでのルートブリッジ固定コマンド例

! ========================================================
! VLAN 1 において、Switch-A を絶対にメインのリーダーにする設定
! ========================================================

! 設定モードに入る
Switch-A# configure terminal

! プライオリティを直接小さな値(4096)に指定する場合
! (※プライオリティは4096の倍数で設定するルールがあります)
Switch-A(config)# spanning-tree vlan 1 priority 4096

! または、Cisco独自のお手軽コマンドで自動的に下げることも可能です
! Switch-A(config)# spanning-tree vlan 1 root primary

Switch-A(config)# end
Switch-A# write memory

状態確認コマンド:show spanning-tree を読み解く

設定が反映されたか確認してみましょう。現場で毎日叩く重要コマンドです。

Switch-A# show spanning-tree vlan 1

VLAN0001
  Spanning tree enabled protocol ieee

  !--- ここから上:現在選ばれている「ルートブリッジ」の情報 ---!
  Root ID    Priority    4097                     <-- 設定値4096 + VLAN 1 の合計値
             Address     0011.1111.1111
             This bridge is the root              <-- 「自分がリーダーです!」という宣言
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

  !--- ここから下:コマンドを叩いている「自分自身」の情報 ---!
  Bridge ID  Priority    4097  (priority 4096 sys-id-ext 1)
             Address     0011.1111.1111
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

(以下、ポートの状態が続きます...)

上記のように

コメント

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