STPのルートブリッジ選出とは?Bridge ID・優先度・MACアドレスを図解

ネットワーク中級編 08/全50記事

この記事は、 「ネットワーク中級編|構築・検証・障害切り分けを身につける」 の第8回です。

前回学んだSTPの必要性を踏まえ、今回はループを防ぐ構成の基準点となる ルートブリッジの選出方法を学びます。

STPのルートブリッジ選出とは?Bridge ID・優先度・MACアドレスを図解

STPでは、ネットワーク内のスイッチから1台をルートブリッジとして選び、 そのスイッチを基準に転送経路とブロックするポートを決定します。 この記事では、Bridge IDの構造、比較順序、VLANごとの選出、 Cisco IOSの確認・設定コマンドまで順番に解説します。

対象レベル Level 2・中級
想定読了時間 約25分
身につく成果 Bridge IDからルートを判定できる
前提知識 VLAN・STPの必要性
演習環境 ブラウザ/Packet Tracer任意

STPを有効にすると、自動的にポートがブロックされます。 しかし、どのスイッチを中心として経路を計算するかによって、 実際に利用されるリンクやブロックされる場所は変わります。

ルートブリッジを意図的に設計していないと、 性能の低いアクセススイッチや、ネットワークの端にあるスイッチが中心になる 可能性があります。

この記事を読み終えるとできること

  • ルートブリッジの役割を説明できる
  • Bridge IDを構成する情報を説明できる
  • 優先度とMACアドレスから選出結果を判断できる
  • 拡張システムIDを含むPriority表示を読める
  • show spanning-treeのRoot IDとBridge IDを区別できる
  • ルートプライオリティを設計・設定できる

ルートブリッジとは何か

最初に覚える定義

ルートブリッジとは、STPが転送経路を計算するときの基準となるスイッチです。 STPインスタンス内でBridge IDが最も小さいスイッチが選出されます。

STPは、冗長なレイヤー2ネットワークからループのない論理トポロジーを作ります。 その計算を始めるためには、「どのスイッチを中心として考えるか」を1台に決める必要があります。 その中心となるスイッチがルートブリッジです。

ルートブリッジが決まると、他のスイッチはルートブリッジまでの経路コストを比較し、 ルートポートや指定ポート、ブロックするポートを決定します。

「ルート」という名前でも、IPルーティングを行うルーターではありません。

ここでのルートは、スパニングツリーという木構造の根を意味します。 レイヤー2スイッチがルートブリッジになることも一般的です。

ルートブリッジ上のポート

ルートブリッジ自身には、「ルートブリッジへ向かうためのポート」は必要ありません。 そのため、ルートブリッジにはルートポートが存在しません。 通常、ルートブリッジ上でSTPに参加している各セグメント向けポートは指定ポートになります。

選出の全体像を1枚の図で理解する

3台のスイッチが同じSTPインスタンスに参加している場合、 各スイッチはBPDUを交換し、自分と相手のBridge IDを比較します。

Bridge IDが最も小さいスイッチがルートブリッジになる

ROOT BRIDGE 🔀 SW1 Priority:24576
MAC:0011.1111.1111
🔀 SW2 Priority:32768
MAC:0022.2222.2222
🔀 SW3 Priority:32768
MAC:0000.0000.0001
SW3のMACアドレスが最小でも、優先度がより小さいSW1が先に選ばれる

STPでは「数値が小さい方が強い」と覚えます。

Bridge PriorityもMACアドレスも、比較した値が小さいスイッチほど ルートブリッジとして優先されます。

Bridge IDの構造

ルートブリッジ選出で比較する識別情報を、 Bridge ID(BID:Bridge Identifier)と呼びます。

設定する値 Bridge Priority ルートにしたい度合い
インスタンス識別 拡張システムID PVST+ではVLAN ID
同値時の決着 MACアドレス スイッチ固有の識別情報
Bridge ID = Priorityフィールド + MACアドレス

現在の一般的な実装では、16ビットのPriorityフィールドを Bridge Priorityと拡張システムIDに分けて利用します。 CiscoのPVST+/Rapid PVST+では、拡張システムIDとしてVLAN番号が加わります。

要素 役割 比較の考え方
Bridge Priority 管理者がルートブリッジの選ばれやすさを調整する 小さい値を優先
拡張システムID VLANやSTPインスタンスを識別する 同じインスタンス内では通常同じ値
MACアドレス Priorityが同じスイッチ同士の決着に使う 小さい値を優先

Bridge IDは「Priorityだけ」ではありません。

Priorityが同じ場合でも選出が止まることはなく、MACアドレスまで比較して 必ず一意のルートブリッジを決定します。

ルートブリッジの比較順序

学習時は、次の順序で比較すると迷いません。

1

Priorityを比較

最も小さい値を持つスイッチを残す

2

同じならMACを比較

左から16進数として比較する

3

最小BIDがルート

以後、そのスイッチを基準に経路計算する

MACアドレスの大小を比較する方法

MACアドレスは、左側から16進数として比較します。 最初に異なる桁が見つかった時点で、小さい値を持つ方が小さいMACアドレスです。

スイッチ MACアドレス 比較
SW1 001a.2b00.1000 5組目が00のため小さい
SW2 001a.2b10.0001 5組目が10

16進数では、0~9の次にA~Fが続きます。 たとえば090Aより小さく、0F10より小さい値です。

3台のスイッチでルートブリッジを選出する例

例1:Priorityが異なる場合

スイッチ Bridge Priority MACアドレス 結果
SW1 32768 0000.0000.0001 対象外
SW2 24576 ffff.ffff.ffff ルートブリッジ
SW3 32768 0011.2233.4455 対象外

SW2のMACアドレスは最も大きい値ですが、Bridge Priorityが最も小さいため、 MACアドレスの比較まで進まずSW2がルートブリッジになります。

例2:全スイッチがデフォルトPriorityの場合

スイッチ Bridge Priority MACアドレス 結果
SW1 32768 00aa.0000.0001 非ルート
SW2 32768 0011.ffff.ffff ルートブリッジ
SW3 32768 0099.0000.0001 非ルート

Priorityがすべて同じため、MACアドレスを比較します。 左から比較すると、0011...のSW2が最小です。

デフォルトのままでは、機器の役割ではなくMACアドレスでルートが決まります。

交換や増設によってMACアドレスの小さいスイッチが参加すると、 想定外のルートブリッジへ変わる可能性があります。

拡張システムIDとVLAN番号

CiscoのPVST+やRapid PVST+では、VLANごとにSTPを動作させます。 このとき、PriorityフィールドにはBridge Priorityだけでなく、 拡張システムIDとしてVLAN番号が加わります。

表示上のPriority = 設定したBridge Priority + VLAN ID

VLAN 10の例

項目
設定したBridge Priority 24576
拡張システムID 10(VLAN 10)
showコマンドで見えるPriority 24586

24586という中途半端な値が表示されても、誤設定とは限りません。 24576 + 10の結果です。

Priorityを4096単位で設定する理由

拡張システムIDを利用する一般的な実装では、設定できるBridge Priorityは 04096819212288のように 4096単位です。デフォルト値は通常32768です。

出力を読むときは、合計値と内訳を分けて確認します。

Cisco IOSの出力では、Priority 24586 (priority 24576 sys-id-ext 10) のように表示される場合があります。

show spanning-treeの読み方

Cisco IOS系スイッチでは、VLAN 10のSTP状態を確認する代表的なコマンドとして show spanning-tree vlan 10を使用します。

Cisco IOS|VLAN 10の確認例
SW2# show spanning-tree vlan 10

VLAN0010
  Spanning tree enabled protocol ieee
  Root ID    Priority    24586
             Address     0011.1111.1111
             Cost        4
             Port        25 (GigabitEthernet1/0/25)
             Hello Time  2 sec  Max Age 20 sec  Forward Delay 15 sec

  Bridge ID  Priority    32778  (priority 32768 sys-id-ext 10)
             Address     0022.2222.2222
             Hello Time  2 sec  Max Age 20 sec  Forward Delay 15 sec
             Aging Time  300 sec

Interface           Role Sts Cost      Prio.Nbr Type
------------------- ---- --- --------- -------- --------------------------------
Gi1/0/25            Root FWD 4         128.25   P2p
Gi1/0/26            Altn BLK 4         128.26   P2p

Root ID

現在のルートブリッジのBridge IDです。 この例では、Priorityが24586、MACアドレスが 0011.1111.1111のスイッチがルートです。

Bridge ID

コマンドを実行した自スイッチのBridge IDです。 この例のSW2はPriorityが32778のため、ルートではありません。

Cost/Port

自スイッチからルートブリッジまでのルートパスコストと、 ルートへ向かうルートポートを示します。

Role/Sts

Root FWDはルートポートで転送中、 Altn BLKは代替経路としてブロック中であることを示します。

自分自身がルートブリッジの場合

Root IDとBridge IDが一致する例
SW1# show spanning-tree vlan 10

VLAN0010
  Spanning tree enabled protocol ieee
  Root ID    Priority    24586
             Address     0011.1111.1111
             This bridge is the root

  Bridge ID  Priority    24586  (priority 24576 sys-id-ext 10)
             Address     0011.1111.1111

This bridge is the rootと表示され、Root IDとBridge IDが一致していれば、 そのスイッチ自身が対象VLANのルートブリッジです。

ルートブリッジを指定する設定

ルートブリッジにしたいスイッチでは、他のスイッチより小さいPriorityを設定します。

Priorityを直接指定する

Cisco IOS|VLAN 10のPriorityを24576へ変更
SW1(config)# spanning-tree vlan 10 priority 24576

他のスイッチがデフォルト値32768であれば、 SW1はVLAN 10のルートブリッジとして選ばれやすくなります。

root primary/root secondaryを使用する

Cisco IOS|簡易設定例
SW1(config)# spanning-tree vlan 10 root primary
SW2(config)# spanning-tree vlan 10 root secondary

root primaryは、そのスイッチがルートになりやすいPriorityへ調整するための Cisco IOSの便利な設定です。root secondaryは、プライマリ障害時の 次候補にしやすいPriorityへ調整します。

設定後は、実際に適用されたPriorityと選出結果を必ず確認してください。

既存ルートのPriorityや機種・OSの動作によって、想定した値になるとは限りません。 show spanning-tree vlan 10でRoot IDとBridge IDを確認します。

複数VLANへまとめて設定する例

Cisco IOS|VLAN 10、20、30を指定
SW1(config)# spanning-tree vlan 10,20,30 priority 24576

VLANごとに異なるルートを選ぶ考え方

PVST+やRapid PVST+では、VLANごとに独立したSTPインスタンスが動作します。 そのため、VLAN 10とVLAN 20で別のルートブリッジを選ぶことができます。

VLAN 10

SW1をルート

SW1側の経路を主に利用する。

VLAN 20

SW2をルート

SW2側の経路を主に利用する。

Cisco IOS|VLANごとのルート分散例
! SW1
SW1(config)# spanning-tree vlan 10 root primary
SW1(config)# spanning-tree vlan 20 root secondary

! SW2
SW2(config)# spanning-tree vlan 20 root primary
SW2(config)# spanning-tree vlan 10 root secondary

このようにVLAN単位でルートを分けると、冗長リンクをVLANごとに使い分けられます。 ただし、上位のデフォルトゲートウェイやInter-VLAN Routingを担当する機器との位置関係が重要です。

STPのルートとデフォルトゲートウェイは、できるだけ近づけます。

VLAN 10のデフォルトゲートウェイがSW1にあるなら、VLAN 10のSTPルートもSW1へ寄せると、 不必要な迂回を減らしやすくなります。

MSTPでは、VLANをMSTインスタンスへ割り当て、そのインスタンスごとにルートを設計します。 「必ずVLANごとに1つのSTPが動く」とは限らないため、利用中のSTPモードも確認してください。

障害時と設定変更時の再選出

ルートブリッジが停止した場合や、より小さいBridge IDを持つスイッチが参加した場合、 STPは新しい情報を基にトポロジーを再計算します。

  1. 既存ルートからのBPDUが届かなくなる 障害やリンク断によって、現在のルート情報を受信できなくなります。
  2. 残ったスイッチがBridge IDを比較する 各スイッチが持つ情報から、新しいルートブリッジを選出します。
  3. ルートポートと指定ポートを再計算する 新しいルートまでの最適経路を選び直します。
  4. 転送・ブロック状態が変わる 代替リンクが転送状態へ移り、通信経路が切り替わります。

ルートPriorityの変更もトポロジー変更を引き起こす可能性があります。 稼働中ネットワークで変更する場合は、経路の切り替わりと一時的な通信影響を考慮します。

STPの設定変更は「値を変えるだけ」の作業ではありません。 ルートポート、指定ポート、ブロックポートが連動して変わるため、 変更前後の論理トポロジーを構成図へ落として確認します。

設計・変更作業での判断基準

1.ルートの役割を明示する

デフォルト値に任せず、どのスイッチをプライマリ/セカンダリにするか設計書へ記載します。

2.中心に近い機器を選ぶ

通常は処理能力と冗長性を持つディストリビューション層・コア層のスイッチを候補にします。

3.L3ゲートウェイと整合させる

VLANのデフォルトゲートウェイを持つ機器とSTPルートの位置を合わせ、迂回を減らします。

4.セカンダリも設定する

プライマリ障害時に、想定したバックアップ機器が次のルートになるようPriorityを設計します。

5.VLAN単位で確認する

PVST+系では、VLANごとにRoot IDが異なる可能性があります。代表VLANだけでなく対象範囲を確認します。

6.変更後の経路を試験する

Root ID、ポートロール、ブロック位置、障害時の切り替えを確認し、試験結果を残します。

変更前に最低限確認するコマンド

Cisco IOS|確認例
show spanning-tree root
show spanning-tree vlan 10
show spanning-tree vlan 20
show spanning-tree summary
show interfaces trunk
show etherchannel summary

顧客・上司への説明例

「STPは冗長リンクの一部を待機状態にしますが、どのリンクを通常利用するかは ルートブリッジの位置に左右されます。今回は上位スイッチをルートとして明示し、 通信の迂回を防ぎながら、障害時にはもう一方の上位スイッチへ切り替わる設計にします。」

STPのルートブリッジ選出でよくある勘違い

Priorityの数値が大きいスイッチほど優先される

STPでは小さい値が優先です。2457632768より強く、 ルートブリッジに選ばれやすくなります。

最も小さいMACアドレスのスイッチが必ずルートになる

MACアドレスは、Priorityが同じ場合の比較に使います。 まずPriorityを比較します。

Priority 32778は設定ミスである

VLAN 10では、Bridge Priority 32768に拡張システムID 10が加わり、 32778と表示されることがあります。

1台がルートなら、すべてのVLANでも同じルートになる

PVST+系ではVLANごとにルートを選出できます。 VLAN 10ではSW1、VLAN 20ではSW2という構成も可能です。

ルートブリッジにはルートポートがある

ルートポートは、非ルートスイッチがルートへ向かうための最適ポートです。 ルートブリッジ自身には存在しません。

ルートはネットワーク設計として明示する

上位スイッチをプライマリ/セカンダリとして設計し、 障害時にも意図した機器が次のルートになるよう設定します。

理解度チェック

記事の内容を確認するため、次の6問に答えてください。 解答を見る前に、一度自分で選出結果を考えてみましょう。

問題1.STPのルートブリッジとして選ばれるスイッチはどれですか。

  1. Bridge IDが最も大きいスイッチ
  2. Bridge IDが最も小さいスイッチ
  3. 接続ポート数が最も多いスイッチ
  4. 起動時間が最も長いスイッチ
解答を見る
正解:B

同じSTPインスタンス内でBridge IDが最も小さいスイッチが選出されます。

問題2.次のうち、最初に比較する情報はどれですか。

  1. MACアドレス
  2. ポート番号
  3. Bridge Priority
  4. リンク速度
解答を見る
正解:C

まずBridge Priorityを比較し、同じ場合にMACアドレスを比較します。

問題3.SW1のPriorityが24576、SW2が32768の場合、MACアドレスに関係なくどちらが優先されますか。

解答を見る
正解:SW1

Priorityは小さい値が優先されるため、24576のSW1が選ばれます。

問題4.VLAN 20でBridge Priorityを32768に設定した場合、表示上のPriorityはいくつですか。

解答を見る
正解:32788

32768に拡張システムIDとしてVLAN ID 20を加えます。

問題5.show spanning-treeで、自スイッチのBridge IDを示す項目はどれですか。

  1. Root ID
  2. Bridge ID
  3. Root Cost
  4. Port ID
解答を見る
正解:B

Root IDは現在のルート、Bridge IDはコマンドを実行した自スイッチを示します。

問題6.ルートブリッジ自身に存在しないポートロールはどれですか。

  1. 指定ポート
  2. ルートポート
  3. 転送ポート
  4. STP参加ポート
解答を見る
正解:B

ルートポートは、非ルートスイッチがルートへ向かうために選ぶポートです。

実践演習:ルートブリッジを判定しよう

VLAN 10で、次の3台のスイッチがSTPへ参加しています。 各情報からルートブリッジを判定してください。

スイッチ 設定Priority MACアドレス
SW1 32768 0010.aaaa.0001
SW2 28672 ffff.ffff.ffff
SW3 28672 0001.bbbb.0001

課題1.最初の比較で除外されるスイッチ

Priorityの比較だけで、ルート候補から外れるスイッチを答えてください。

ここに自分の回答を書いてみましょう。
課題1の解答を見る

SW1です。

32768より28672の方が小さいため、SW2とSW3が残ります。

課題2.ルートブリッジを決定する

残ったスイッチのMACアドレスを比較し、ルートブリッジを答えてください。

ルートブリッジ:______
課題2の解答を見る

SW3です。

SW2とSW3のPriorityは同じです。MACアドレスを比較すると、 0001.bbbb.0001ffff.ffff.ffffより小さいためです。

課題3.表示上のPriorityを計算する

SW3のVLAN 10における、showコマンド上のPriorityを答えてください。

28672 + 10 = ______
課題3の解答を見る

28682です。

Bridge Priority 28672へ、拡張システムIDとしてVLAN ID 10を加えます。

課題4.設計を改善する

SW1が高性能なコアスイッチ、SW2とSW3がアクセススイッチだったとします。 SW1をプライマリ、SW2をセカンダリのルートにするための設定例を書いてください。

設定コマンドを書いてみましょう。
課題4の解答例を見る
! SW1
spanning-tree vlan 10 root primary

! SW2
spanning-tree vlan 10 root secondary

Priorityを直接設計する場合は、SW1を24576、SW2を28672、 その他を32768にする方法も考えられます。

課題5.確認コマンドを考える

設定後に確認すべき項目を3つ以上挙げてください。

例:VLAN 10のRoot ID
課題5の解答例を見る
  • VLAN 10のRoot IDがSW1になっているか
  • SW1のBridge IDとRoot IDが一致しているか
  • SW2が次に小さいPriorityになっているか
  • 各スイッチのルートポートが想定どおりか
  • ブロックされるポートが設計どおりか
  • プライマリ停止時にSW2へ切り替わるか

自分の言葉で説明する課題

最後に、次の質問へ30秒程度で答えてみましょう。

「STPでは、どのようにルートブリッジを決めますか?」と後輩から質問されました。 PriorityとMACアドレスの関係を含めて説明してください。

STPでは、________________________________。
説明例を見る

STPでは、各スイッチがBPDUを交換し、Bridge IDが最も小さいスイッチを ルートブリッジとして選びます。まずBridge Priorityを比較し、 同じ場合はMACアドレスを比較します。どちらも数値が小さい方が優先です。 CiscoのPVST+ではVLAN番号が拡張システムIDとしてPriority表示に加わります。

「Bridge IDが最小」「Priorityを先に比較」「同じならMAC」 の3点を含めて説明できれば、この記事の目標は達成です。

まとめ

  • ルートブリッジは、STPの論理トポロジーを計算する基準となるスイッチ
  • 同じSTPインスタンス内で、Bridge IDが最も小さいスイッチが選出される
  • 比較はBridge Priorityを先に行い、同じ場合にMACアドレスを比較する
  • PriorityもMACアドレスも、数値が小さい方が優先される
  • 一般的なBridge Priorityは4096単位で設定し、デフォルトは32768
  • PVST+系では、VLAN IDが拡張システムIDとしてPriority表示に加わる
  • show spanning-treeのRoot IDは現在のルート、Bridge IDは自スイッチを示す
  • ルートブリッジ自身にはルートポートが存在しない
  • 設計ではプライマリとセカンダリを明示し、L3ゲートウェイとの位置を整合させる
  • Priority変更後はルート、ポートロール、ブロック位置、障害時切り替えを確認する

ルートブリッジ選出は、STPの最初の判断です。 ここを正しく読み取れると、その後のルートポートやブロックポートの選出も追いやすくなります。

次の記事:RSTPの基本

今回は、STPがBridge IDを比較してルートブリッジを選出する仕組みを学びました。

次の記事では、従来のSTPより高速な収束を目指したRSTPについて、 ポートロール、ポート状態、Proposal/Agreementの考え方を解説します。

ネットワーク中級編 08/全50記事

中級編では、VLAN・STP・ルーティング・セキュリティ・パケット解析・ 障害切り分けを、構成例と演習を通して学びます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次