この記事は、 「ネットワーク中級編|構築・検証・障害切り分けを身につける」 の第8回です。
前回学んだSTPの必要性を踏まえ、今回はループを防ぐ構成の基準点となる ルートブリッジの選出方法を学びます。
STPのルートブリッジ選出とは?Bridge ID・優先度・MACアドレスを図解
STPでは、ネットワーク内のスイッチから1台をルートブリッジとして選び、 そのスイッチを基準に転送経路とブロックするポートを決定します。 この記事では、Bridge IDの構造、比較順序、VLANごとの選出、 Cisco IOSの確認・設定コマンドまで順番に解説します。
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が最も小さいスイッチがルートブリッジになる
MAC:0011.1111.1111
MAC:0022.2222.2222
MAC:0000.0000.0001
STPでは「数値が小さい方が強い」と覚えます。
Bridge PriorityもMACアドレスも、比較した値が小さいスイッチほど ルートブリッジとして優先されます。
Bridge IDの構造
ルートブリッジ選出で比較する識別情報を、 Bridge ID(BID:Bridge Identifier)と呼びます。
現在の一般的な実装では、16ビットのPriorityフィールドを Bridge Priorityと拡張システムIDに分けて利用します。 CiscoのPVST+/Rapid PVST+では、拡張システムIDとしてVLAN番号が加わります。
| 要素 | 役割 | 比較の考え方 |
|---|---|---|
| Bridge Priority | 管理者がルートブリッジの選ばれやすさを調整する | 小さい値を優先 |
| 拡張システムID | VLANやSTPインスタンスを識別する | 同じインスタンス内では通常同じ値 |
| MACアドレス | Priorityが同じスイッチ同士の決着に使う | 小さい値を優先 |
Bridge IDは「Priorityだけ」ではありません。
Priorityが同じ場合でも選出が止まることはなく、MACアドレスまで比較して 必ず一意のルートブリッジを決定します。
ルートブリッジの比較順序
学習時は、次の順序で比較すると迷いません。
Priorityを比較
最も小さい値を持つスイッチを残す
同じならMACを比較
左から16進数として比較する
最小BIDがルート
以後、そのスイッチを基準に経路計算する
MACアドレスの大小を比較する方法
MACアドレスは、左側から16進数として比較します。 最初に異なる桁が見つかった時点で、小さい値を持つ方が小さいMACアドレスです。
| スイッチ | MACアドレス | 比較 |
|---|---|---|
| SW1 | 001a.2b00.1000 | 5組目が00のため小さい |
| SW2 | 001a.2b10.0001 | 5組目が10 |
16進数では、0~9の次にA~Fが続きます。
たとえば09は0Aより小さく、0Fは10より小さい値です。
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番号が加わります。
VLAN 10の例
| 項目 | 値 |
|---|---|
| 設定したBridge Priority | 24576 |
| 拡張システムID | 10(VLAN 10) |
| showコマンドで見えるPriority | 24586 |
24586という中途半端な値が表示されても、誤設定とは限りません。
24576 + 10の結果です。
Priorityを4096単位で設定する理由
拡張システムIDを利用する一般的な実装では、設定できるBridge Priorityは
0、4096、8192、12288のように
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を使用します。
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は代替経路としてブロック中であることを示します。
自分自身がルートブリッジの場合
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を直接指定する
SW1(config)# spanning-tree vlan 10 priority 24576
他のスイッチがデフォルト値32768であれば、
SW1はVLAN 10のルートブリッジとして選ばれやすくなります。
root primary/root secondaryを使用する
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へまとめて設定する例
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側の経路を主に利用する。
! 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は新しい情報を基にトポロジーを再計算します。
- 既存ルートからのBPDUが届かなくなる 障害やリンク断によって、現在のルート情報を受信できなくなります。
- 残ったスイッチがBridge IDを比較する 各スイッチが持つ情報から、新しいルートブリッジを選出します。
- ルートポートと指定ポートを再計算する 新しいルートまでの最適経路を選び直します。
- 転送・ブロック状態が変わる 代替リンクが転送状態へ移り、通信経路が切り替わります。
ルートPriorityの変更もトポロジー変更を引き起こす可能性があります。 稼働中ネットワークで変更する場合は、経路の切り替わりと一時的な通信影響を考慮します。
STPの設定変更は「値を変えるだけ」の作業ではありません。 ルートポート、指定ポート、ブロックポートが連動して変わるため、 変更前後の論理トポロジーを構成図へ落として確認します。
設計・変更作業での判断基準
1.ルートの役割を明示する
デフォルト値に任せず、どのスイッチをプライマリ/セカンダリにするか設計書へ記載します。
2.中心に近い機器を選ぶ
通常は処理能力と冗長性を持つディストリビューション層・コア層のスイッチを候補にします。
3.L3ゲートウェイと整合させる
VLANのデフォルトゲートウェイを持つ機器とSTPルートの位置を合わせ、迂回を減らします。
4.セカンダリも設定する
プライマリ障害時に、想定したバックアップ機器が次のルートになるようPriorityを設計します。
5.VLAN単位で確認する
PVST+系では、VLANごとにRoot IDが異なる可能性があります。代表VLANだけでなく対象範囲を確認します。
6.変更後の経路を試験する
Root ID、ポートロール、ブロック位置、障害時の切り替えを確認し、試験結果を残します。
変更前に最低限確認するコマンド
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のルートブリッジ選出でよくある勘違い
STPでは小さい値が優先です。24576は32768より強く、
ルートブリッジに選ばれやすくなります。
MACアドレスは、Priorityが同じ場合の比較に使います。 まずPriorityを比較します。
VLAN 10では、Bridge Priority 32768に拡張システムID 10が加わり、 32778と表示されることがあります。
PVST+系ではVLANごとにルートを選出できます。 VLAN 10ではSW1、VLAN 20ではSW2という構成も可能です。
ルートポートは、非ルートスイッチがルートへ向かうための最適ポートです。 ルートブリッジ自身には存在しません。
上位スイッチをプライマリ/セカンダリとして設計し、 障害時にも意図した機器が次のルートになるよう設定します。
理解度チェック
記事の内容を確認するため、次の6問に答えてください。 解答を見る前に、一度自分で選出結果を考えてみましょう。
問題1.STPのルートブリッジとして選ばれるスイッチはどれですか。
- Bridge IDが最も大きいスイッチ
- Bridge IDが最も小さいスイッチ
- 接続ポート数が最も多いスイッチ
- 起動時間が最も長いスイッチ
解答を見る
同じSTPインスタンス内でBridge IDが最も小さいスイッチが選出されます。
問題2.次のうち、最初に比較する情報はどれですか。
- MACアドレス
- ポート番号
- Bridge Priority
- リンク速度
解答を見る
まずBridge Priorityを比較し、同じ場合にMACアドレスを比較します。
問題3.SW1のPriorityが24576、SW2が32768の場合、MACアドレスに関係なくどちらが優先されますか。
解答を見る
Priorityは小さい値が優先されるため、24576のSW1が選ばれます。
問題4.VLAN 20でBridge Priorityを32768に設定した場合、表示上のPriorityはいくつですか。
解答を見る
32768に拡張システムIDとしてVLAN ID 20を加えます。
問題5.show spanning-treeで、自スイッチのBridge IDを示す項目はどれですか。
- Root ID
- Bridge ID
- Root Cost
- Port ID
解答を見る
Root IDは現在のルート、Bridge IDはコマンドを実行した自スイッチを示します。
問題6.ルートブリッジ自身に存在しないポートロールはどれですか。
- 指定ポート
- ルートポート
- 転送ポート
- STP参加ポート
解答を見る
ルートポートは、非ルートスイッチがルートへ向かうために選ぶポートです。
実践演習:ルートブリッジを判定しよう
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.0001はffff.ffff.ffffより小さいためです。
課題3.表示上のPriorityを計算する
SW3のVLAN 10における、showコマンド上のPriorityを答えてください。
課題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つ以上挙げてください。
課題5の解答例を見る
- VLAN 10のRoot IDがSW1になっているか
- SW1のBridge IDとRoot IDが一致しているか
- SW2が次に小さいPriorityになっているか
- 各スイッチのルートポートが想定どおりか
- ブロックされるポートが設計どおりか
- プライマリ停止時にSW2へ切り替わるか
自分の言葉で説明する課題
最後に、次の質問へ30秒程度で答えてみましょう。
「STPでは、どのようにルートブリッジを決めますか?」と後輩から質問されました。 PriorityとMACアドレスの関係を含めて説明してください。
説明例を見る
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の最初の判断です。 ここを正しく読み取れると、その後のルートポートやブロックポートの選出も追いやすくなります。
中級編では、VLAN・STP・ルーティング・セキュリティ・パケット解析・ 障害切り分けを、構成例と演習を通して学びます。

コメント