CiscoスイッチなどでSTPを設定していると、Bridge Priorityに次のような値が使われていることに気づきます。
- 0
- 4096
- 8192
- 12288
- 16384
- 24576
- 28672
- 32768
- 40960
- 61440
「なぜ1000刻みではなく、4096刻みなのか?」
「なぜ5000や30000のような値を自由に設定できないのか?」
STPを勉強していると、一度は疑問に思うポイントです。
結論から言うと、Bridge IDの先頭16bitのうち、下位12bitがExtended System IDとして使われているからです。
その結果、Bridge Priorityとして変更できる最小単位が、
2¹² = 4096
になります。
この記事では、単に「STPのPriorityは4096刻み」と暗記するのではなく、
なぜ4096になるのかをBridge IDのビット構造から理解する
ことを目標にします。
STPそのものの役割がまだ曖昧な場合は、先にSTPの必要性を確認しておくと理解しやすくなります。
この記事で分かること
この記事を読むと、次の内容を説明できるようになります。
- STPでBridge Priorityが使われる理由
- Bridge IDの構造
- Priorityが4096刻みになる理由
- 32768がデフォルト値としてよく使われる理由
- Extended System IDとは何か
- VLAN IDとBridge IDの関係
- 「Priority 32778」と表示される理由
- Root Bridge設計でPriorityをどう使うか
結論:4096の正体は「2の12乗」
最初に答えを整理します。
現在のSTPでは、Bridge IDの先頭16bitを大きく次のように使用します。
上位4bit:Bridge Priority
下位12bit:Extended System ID
PVST+やRapid PVST+では、Extended System IDとしてVLAN IDが使用されます。
つまり、Priority側から見ると下位12bitは自由に変更できません。
Priorityとして変更できる最も小さい桁は、その1つ上です。
その値は、
2¹² = 4096
です。
したがって、Bridge Priorityは、
0 → 4096 → 8192 → 12288 → ……
という4096刻みになります。
これがこの記事で最も重要なポイントです。
そもそもSTPのPriorityとは?
STPでは、スイッチが冗長に接続されたネットワークでループを防止するために、ネットワークの基準となるスイッチを1台選びます。
それが**Root Bridge(ルートブリッジ)**です。
Root Bridgeの選出に使用されるのが、
Bridge ID(BID)
です。
基本的には、
Bridge IDが最も小さいスイッチがRoot Bridgeになる
と考えます。
Bridge IDを構成する重要な情報が、今回のテーマであるBridge Priorityです。
Root Bridgeの選出方法そのものについては、STPのルートブリッジ選出で詳しく解説しています。
Bridge IDの構造を理解しよう
Bridge IDは、大きく見ると次の情報で構成されています。
| 項目 | サイズ | 役割 |
|---|---|---|
| Priority + Extended System ID | 16bit | STPの優先度やVLAN識別 |
| MAC Address | 48bit | スイッチの識別 |
| 合計 | 64bit | Bridge ID全体 |
イメージすると次のようになります。
Bridge ID
┌──────────────────┬────────────────────────────────────┐
│ 16bit │ 48bit │
│ Priority + │ │
│ Extended Sys ID │ MAC Address │
└──────────────────┴────────────────────────────────────┘
STPでは、このBridge IDを比較してRoot Bridgeを決定します。
最初にPriority側で差がつけば、その時点で優劣を判断できます。
Priorityが同じであれば、その後のMACアドレスまで含めてBridge IDが比較されます。
Bridge Priorityは本来16bitだった
4096を理解するには、まずBridge IDの歴史的な構造を知っておくと分かりやすくなります。
もともとBridge IDの先頭16bitは、Bridge Priorityとして使用されていました。
16bit
┌───────────────────────────────────┐
│ Bridge Priority │
└───────────────────────────────────┘
16bitで表現できる値は、
0~65535
です。
これだけを見ると、
「それならPriorityを1刻みで設定できてもよさそう」
と思います。
しかし、現在よく使われるSTPでは、この16bitすべてをPriorityとして利用しているわけではありません。
Extended System IDが追加された
VLANごとにSTPを動作させる環境では、
「このBridge IDがどのVLANに対応しているのか」
を識別する必要があります。
そこでBridge IDの先頭16bitが、次のように分割されます。
16bit
┌────────────┬──────────────────────────────┐
│ Priority │ Extended System ID │
│ 4bit │ 12bit │
└────────────┴──────────────────────────────┘
つまり、
- 上位4bit → Bridge Priority
- 下位12bit → Extended System ID
という構造です。
PVST+やRapid PVST+では、Extended System IDにVLAN IDが使用されます。
ここが4096刻みになる最大の理由です。
12bitが使われていることが重要
下位12bitがExtended System IDとして使われているということは、Bridge Priorityとして自由に変更できません。
ビットの位置を簡単に表すと次のようになります。
PPPP VVVV VVVV VVVV
^^^^ └──────┬──────┘
Priority Extended System ID
4bit 12bitPの部分がPriorityです。
Vの部分はExtended System IDとして使用されます。
つまりPriorityのすぐ右側には、12個のbitがあります。
Priorityを1段階変更するときは、この12bitよりも上の桁を変更しなければなりません。
なぜ4096なのかを2進数で考える
ここからが本題です。
2進数では、各bitに次の値があります。
1
2
4
8
16
32
64
128
256
512
1024
2048
4096
...下位12bitをすべてExtended System IDに使用しているため、その次のbitの値は、
4096
になります。
計算すると、
2¹² = 4096
です。
したがって、Priorityの最小変更単位が4096になります。
2進数で見るともっと分かりやすい
たとえば4096を16bitの2進数で表すと、次のようになります。
0001 0000 0000 0000下位12bitはすべて0です。
0001 | 0000 0000 0000
^^^^ ^^^^^^^^^^^^^^^
Priority 12bit8192なら、
0010 0000 0000 000012288なら、
0011 0000 0000 0000となります。
つまり、Priorityとして設定する部分だけを変化させ、下位12bitの領域を空けておくと、
必然的に4096刻みになる
わけです。
設定できるPriorityは16種類
Priorityとして使用できるのは4bitです。
4bitで表現できる組み合わせは、
2⁴ = 16通り
です。
そのため、設定可能なPriorityは基本的に次の16種類になります。
| 4bit | 計算 | Priority |
|---|---|---|
| 0000 | 0 × 4096 | 0 |
| 0001 | 1 × 4096 | 4096 |
| 0010 | 2 × 4096 | 8192 |
| 0011 | 3 × 4096 | 12288 |
| 0100 | 4 × 4096 | 16384 |
| 0101 | 5 × 4096 | 20480 |
| 0110 | 6 × 4096 | 24576 |
| 0111 | 7 × 4096 | 28672 |
| 1000 | 8 × 4096 | 32768 |
| 1001 | 9 × 4096 | 36864 |
| 1010 | 10 × 4096 | 40960 |
| 1011 | 11 × 4096 | 45056 |
| 1100 | 12 × 4096 | 49152 |
| 1101 | 13 × 4096 | 53248 |
| 1110 | 14 × 4096 | 57344 |
| 1111 | 15 × 4096 | 61440 |
普段Ciscoスイッチで見かける値がそのまま並んでいます。
なぜ4095刻みではないの?
ここもよく混乱するポイントです。
12bitで表現できる最大値は、
4095
です。
そのため、
「12bitなら4095なのに、なぜPriorityは4096刻みなの?」
と思うかもしれません。
12bitをすべて1にすると、
1111 1111 1111となります。
これは10進数では、
4095
です。
しかし、その次の桁は、
1 0000 0000 0000となります。
10進数では、
4096
です。
つまり、
- 4095 → 下位12bitで表現できる最大値
- 4096 → 13bit目の最小値
という違いがあります。
Bridge Priorityは下位12bitより上の領域にあるため、変更できる最小単位が4096になるのです。
なぜExtended System IDは12bitなの?
ここまで理解すると、今度は、
「なぜ12bitなの?」
という疑問が出てきます。
大きな理由の1つがVLAN IDです。
IEEE 802.1Qで使用されるVLAN IDも12bitです。
12bitなら、
2¹² = 4096通り
の値を表現できます。
通常利用できるVLAN IDは1~4094です。
そのため、12bitのExtended System IDを使うことで、VLANごとのSTPインスタンスをBridge ID上で識別できます。
VLANタグやVLAN IDのビット構造については、IEEE 802.1Qの仕組みもあわせて読むと理解がつながります。
32768を設定したのに32778と表示されるのはなぜ?
実機でSTPを確認すると、さらに不思議な表示に遭遇することがあります。
たとえばVLAN 10でPriorityを32768に設定します。
Switch(config)# spanning-tree vlan 10 priority 32768<br>しかしshow spanning-treeを確認すると、次のように表示されることがあります。
VLAN0010
Bridge ID Priority 32778
(priority 32768 sys-id-ext 10)設定したのは32768なのに、
32778
と表示されています。
なぜでしょうか。
32768 + VLAN ID 10
答えは非常にシンプルです。
Bridge IDの16bitには、
- Bridge Priority
- Extended System ID
の両方が含まれています。
VLAN 10なら、
Priority
32768
+
Extended System ID
10なので、
32768 + 10 = 32778
となります。
つまり32778をPriorityとして設定したわけではありません。
実際には、
Priority 32768 + VLAN ID 10
をBridge ID内の16bitとして見た結果が32778です。
VLAN 100ならどうなる?
Priorityが同じ32768でも、VLAN 100なら、
32768 + 100 = 32868
です。
そのため、次のような表示になります。
Bridge ID Priority 32868
(priority 32768 sys-id-ext 100)整理すると次のようになります。
| 設定Priority | VLAN ID | 表示される値 |
|---|---|---|
| 32768 | 1 | 32769 |
| 32768 | 10 | 32778 |
| 32768 | 100 | 32868 |
| 24576 | 10 | 24586 |
| 4096 | 100 | 4196 |
show spanning-treeを読むときは、
表示された値 = 自分が設定したPriorityとは限らない
ことを覚えておきましょう。
デフォルトPriorityが32768なのはなぜ?
STPでは32768という値を非常によく見ます。
多くの環境でデフォルトPriorityとして使用される値です。
32768を4096で割ると、
32768 ÷ 4096 = 8
です。
Priority領域を4bitで表すと、
1000となります。
つまり、16段階あるPriorityの中央付近に設定されています。
設定可能な範囲が、
0 ~ 61440なので、その中間付近からスタートすることで、
- よりRootにしたい → 小さい値へ
- Rootにしたくない → 大きい値へ
という調整ができます。
Priorityは数字が小さい方が強い
STPで特に注意したいのが、
数字が小さい方が優先される
ということです。
たとえば、
SW1:Priority 24576
SW2:Priority 28672
SW3:Priority 32768なら、Priorityだけで比較した場合、
SW1
が最もRoot Bridgeになりやすくなります。
数字が大きい方が優先されるわけではありません。
Priorityを設定しないと何が起こる?
複数のスイッチがすべてデフォルトの32768だった場合、Priorityでは差がつきません。
その場合はBridge IDのMACアドレス側まで比較されます。
すると、
MACアドレスが小さいスイッチがRoot Bridgeになる
可能性があります。
問題なのは、そのスイッチが設計上Root Bridgeに適しているとは限らないことです。
たとえば、
Core-SW1
│
Core-SW2
│
Access-SWという構成なのに、Access-SWがRoot Bridgeになってしまえば、意図しないLayer 2経路になる可能性があります。
そのため実務では、Root Bridgeを設計者が意図的に決めることが重要です。
実務ではPriorityをどう設計する?
たとえば次のように設計します。
Core-SW1
Priority 24576
│
│
Core-SW2
Priority 28672
│
│
Access-SW
Priority 32768この場合、
- Core-SW1 → 第一Root候補
- Core-SW2 → 第二Root候補
- Access-SW → Rootにしない
という意図を持たせられます。
STP設計では単に小さいPriorityを設定するのではなく、
どのスイッチを通常時のRootにするか
そのスイッチが停止したとき、次にどのスイッチをRootにするか
まで考えることが重要です。
VLANごとにRoot Bridgeを変えることもできる
PVST+やRapid PVST+では、VLANごとにSTPを動作させられます。
そのため、PriorityもVLANごとに変更できます。
たとえば次の設計です。
| VLAN | SW1 | SW2 | Root |
|---|---|---|---|
| VLAN 10 | 24576 | 28672 | SW1 |
| VLAN 20 | 28672 | 24576 | SW2 |
VLAN 10ではSW1をRoot。
VLAN 20ではSW2をRoot。
このようにVLANによってRoot Bridgeを分ける設計もできます。
VLANの仕組みそのものを確認したい場合は、VLANの仕組みも参考にしてください。
RSTPでも4096刻み?
「STPでは4096刻みだけど、RSTPなら違うのでは?」
と思う人もいるかもしれません。
RSTPでもRoot Bridgeを選出するためのBridge IDという基本的な考え方は共通しています。
STPからRSTPになったことで大きく変わったのは、
- ポートロール
- ポート状態
- 収束方法
- 障害発生時の切り替え
などです。
Priorityを好きな数値で設定できるようになるわけではありません。
RSTPの仕組みについては、RSTPの基本で詳しく解説しています。
show spanning-treeでは何を見ればいい?
実務では、今回の知識がshow spanning-treeの読み取りに直結します。
たとえば次の出力があったとします。
Bridge ID Priority 32778
(priority 32768 sys-id-ext 10)この表示から、
- 対象はVLAN 10
- 設定Priorityは32768
- Extended System IDは10
- 32778を直接設定したわけではない
と読み取れます。
さらにRoot IDとBridge IDを比較すれば、
自分自身がRoot Bridgeなのか
別のスイッチがRoot Bridgeなのか
も判断できます。
実際の障害調査でどの項目を確認するかは、STP障害の切り分けで詳しく解説しています。
「4096刻み」を丸暗記しない
試験勉強では、
STP Priorityは4096刻み
と覚えてしまいがちです。
もちろん結論としては正しいのですが、それだけでは32778などの値が出てきた瞬間に混乱します。
次の流れまで理解しておくことが重要です。
Bridge IDの先頭は16bit
↓
PriorityとExtended System IDで共有
↓
Priorityは上位4bit
↓
Extended System IDは下位12bit
↓
下位12bitはPriorityとして使えない
↓
その次のbitは2¹²
↓
4096
↓
Priorityは4096刻みこの流れを理解していれば、4096という数字を忘れても自分で導き出せます。
4096とVLAN IDの関係を整理
最後に、今回の内容を1枚で整理します。
Bridge ID
合計64bit
├─ 先頭16bit
│
│ ├─ Bridge Priority
│ │ 4bit
│ │
│ └─ Extended System ID
│ 12bit
│ 例:VLAN ID
│
└─ MAC Address
48bitPriority側で使えるのは4bit。
その下には12bitのExtended System IDがあります。
したがって、
2¹² = 4096となり、
Bridge Priorityは4096刻み
になります。
よくある疑問
Q1. Priorityに5000は設定できないの?
Bridge Priorityは4096単位で設定するため、5000のような値をBridge Priorityとして指定することはできません。
4096、8192、12288などの値から選択します。
Q2. 32778というPriorityを設定しているの?
いいえ。
たとえばVLAN 10なら、
32768 + VLAN ID 10 = 32778
としてBridge ID上に表示されています。
実際に設定したPriorityは32768です。
Q3. VLAN IDが大きいとRoot Bridge選出で不利になる?
同じSTPインスタンス内では各スイッチのExtended System IDは同じです。
たとえばVLAN 10のRoot Bridge選出なら、各スイッチともVLAN 10の値を持ちます。
そのため、通常はVLAN IDの違いによって同一VLAN内のスイッチ同士の優劣が変わるわけではありません。
Q4. Priorityを0にすれば必ずRoot Bridgeになる?
Priorityだけを見れば非常にRootになりやすくなります。
ただし、STP設計では「とにかく0にする」のではなく、PrimaryとSecondaryの役割や既存ネットワークの設計を考慮して決定することが重要です。
理解度チェック
STPのPriorityが4096刻みになる理由を理解できたか確認してみましょう。 解答を見る前に、一度自分で考えてみてください。
STPのBridge Priorityが4096刻みになる理由として、最も適切なものはどれでしょうか。
- MACアドレスが4096種類あるから
- STPで利用できるVLANが4096個だから
- Bridge IDの下位12bitがExtended System IDとして使われているから
- STPのタイマーが4096msだから
解答を見る
正解:C
Bridge IDの先頭16bitのうち、 下位12bitがExtended System IDとして使用されます。
そのため、Bridge Priorityとして変更できる最小の桁は 下位12bitより1つ上になります。
これがBridge Priorityが4096刻みになる理由です。
Bridge Priorityが32768、VLAN IDが20の場合、 Bridge ID上のPriority値はいくつになるでしょうか。
解答を見る
正解:32788
Bridge IDの先頭16bitには、 設定したBridge Priorityだけでなく Extended System IDも含まれます。
VLAN 20であれば、 Priority 32768にExtended System IDの20が加わるため、 32788と表示されます。
12bitで表現できる最大値は4095です。 それなのに、なぜBridge Priorityは「4095刻み」ではなく 「4096刻み」なのでしょうか。
解答を見る
4095は下位12bitですべて1を設定した場合の最大値だからです。
その次の桁を1にすると、
となります。
Bridge Priorityは下位12bitより上の領域にあるため、 Priority側で変更できる最小単位は4096になります。
3台のスイッチが次のBridge Priorityを持っています。 Priorityだけで比較した場合、最もRoot Bridgeになりやすいのはどれでしょうか。
- SW1:32768
- SW2:28672
- SW3:24576
解答を見る
正解:C(SW3)
STPではBridge IDが小さいスイッチが優先されます。
したがって、
となり、SW3が最もRoot Bridgeになりやすくなります。
STPでは「数字が大きいほど優先」ではなく、 Priorityが小さいほど優先される点に注意しましょう。
次のshow spanning-treeの表示から、 実際に設定されているBridge PriorityとVLAN IDを答えてください。
(priority 32768 sys-id-ext 10)
VLAN ID:______
解答を見る
Bridge Priority:32768
VLAN ID:10
32778というPriorityを直接設定しているわけではありません。
Priority 32768とExtended System ID 10を合わせた値として、 32778と表示されています。
複数のスイッチがすべてデフォルトのBridge Priority 32768だった場合、 Root Bridge選出では最終的に何が重要になるでしょうか。
- IPアドレス
- MACアドレス
- ポート番号
- VLAN名
解答を見る
正解:B(MACアドレス)
Priorityが同じ場合は、 Bridge IDのMACアドレス部分まで含めて比較されます。
そのため、すべてのスイッチをデフォルトPriorityのままにすると、 設計者が意図していないスイッチがRoot Bridgeになる可能性があります。
まとめ
今回のポイントを整理します。
- STPではBridge IDを比較してRoot Bridgeを選出する
- Bridge IDはPriority情報とMACアドレスなどから構成される
- Bridge ID先頭16bitのうち、上位4bitがPriorityとして使われる
- 下位12bitはExtended System IDとして使用される
- PVST+やRapid PVST+ではVLAN IDがExtended System IDに入る
- Priorityとして変更できる最小単位は2¹²
- 2¹² = 4096なのでPriorityは4096刻みになる
- 32768はよく使われるデフォルトPriority
- VLAN 10なら32768 + 10 = 32778と表示されることがある
- Root Bridgeは設計者が意図的に決めることが重要
最も重要なのは、
「STPのPriorityは4096刻み」と暗記するのではなく、Bridge IDの下位12bitが別の用途に使われているため4096になる
と説明できることです。
次におすすめの記事
今回の内容を理解したら、次はSTPの選出・動作・障害対応までつなげて学習すると理解が深まります。
STPのルートブリッジ選出
PriorityとMACアドレスを比較して、どのスイッチがRoot Bridgeになるのかを詳しく解説しています。
IEEE 802.1Qの仕組み
VLAN IDがなぜ12bitなのか、802.1Qタグの構造から理解できます。今回のExtended System IDとの関係を理解するうえでもおすすめです。
RSTPの基本
STPを理解した後は、現在のネットワークで広く利用されるRSTPの高速収束の仕組みを学びましょう。
STP障害の切り分け
show spanning-treeの出力からRoot Bridgeやポート状態を読み取り、STP障害を調査する実践編です。
STPの必要性
STPがなぜ必要なのか、Layer 2ループやブロードキャストストームの仕組みから復習できます。

コメント