STPのプライオリティが4096刻みなのはなぜ?Bridge IDの仕組みから徹底解説

当ページのリンクには広告が含まれています。

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 ID16bitSTPの優先度やVLAN識別
MAC Address48bitスイッチの識別
合計64bitBridge 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             12bit

Pの部分が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   12bit

8192なら、

0010 0000 0000 0000

12288なら、

0011 0000 0000 0000

となります。

つまり、Priorityとして設定する部分だけを変化させ、下位12bitの領域を空けておくと、

必然的に4096刻みになる

わけです。


設定できるPriorityは16種類

Priorityとして使用できるのは4bitです。

4bitで表現できる組み合わせは、

2⁴ = 16通り

です。

そのため、設定可能なPriorityは基本的に次の16種類になります。

4bit計算Priority
00000 × 40960
00011 × 40964096
00102 × 40968192
00113 × 409612288
01004 × 409616384
01015 × 409620480
01106 × 409624576
01117 × 409628672
10008 × 409632768
10019 × 409636864
101010 × 409640960
101111 × 409645056
110012 × 409649152
110113 × 409653248
111014 × 409657344
111115 × 409661440

普段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)

整理すると次のようになります。

設定PriorityVLAN ID表示される値
32768132769
327681032778
3276810032868
245761024586
40961004196

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ごとに変更できます。

たとえば次の設計です。

VLANSW1SW2Root
VLAN 102457628672SW1
VLAN 202867224576SW2

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
       48bit

Priority側で使えるのは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刻みになる理由を理解できたか確認してみましょう。 解答を見る前に、一度自分で考えてみてください。

問題1

STPのBridge Priorityが4096刻みになる理由として、最も適切なものはどれでしょうか。

  1. MACアドレスが4096種類あるから
  2. STPで利用できるVLANが4096個だから
  3. Bridge IDの下位12bitがExtended System IDとして使われているから
  4. STPのタイマーが4096msだから
解答を見る

正解:C

Bridge IDの先頭16bitのうち、 下位12bitがExtended System IDとして使用されます。

そのため、Bridge Priorityとして変更できる最小の桁は 下位12bitより1つ上になります。

2¹² = 4096

これがBridge Priorityが4096刻みになる理由です。

問題2

Bridge Priorityが32768、VLAN IDが20の場合、 Bridge ID上のPriority値はいくつになるでしょうか。

自分で計算してみましょう。
解答を見る

正解:32788

32768 + 20 = 32788

Bridge IDの先頭16bitには、 設定したBridge Priorityだけでなく Extended System IDも含まれます。

VLAN 20であれば、 Priority 32768にExtended System IDの20が加わるため、 32788と表示されます。

問題3

12bitで表現できる最大値は4095です。 それなのに、なぜBridge Priorityは「4095刻み」ではなく 「4096刻み」なのでしょうか。

「4095」と「4096」の違いを自分の言葉で説明してみましょう。
解答を見る

4095は下位12bitですべて1を設定した場合の最大値だからです。

1111 1111 1111 = 4095

その次の桁を1にすると、

1 0000 0000 0000 = 4096

となります。

Bridge Priorityは下位12bitより上の領域にあるため、 Priority側で変更できる最小単位は4096になります。

問題4

3台のスイッチが次のBridge Priorityを持っています。 Priorityだけで比較した場合、最もRoot Bridgeになりやすいのはどれでしょうか。

  1. SW1:32768
  2. SW2:28672
  3. SW3:24576
解答を見る

正解:C(SW3)

STPではBridge IDが小さいスイッチが優先されます。

したがって、

24576 < 28672 < 32768

となり、SW3が最もRoot Bridgeになりやすくなります。

STPでは「数字が大きいほど優先」ではなく、 Priorityが小さいほど優先される点に注意しましょう。

問題5

次のshow spanning-treeの表示から、 実際に設定されているBridge PriorityとVLAN IDを答えてください。

Bridge ID  Priority 32778
(priority 32768 sys-id-ext 10)
Bridge Priority:______
VLAN ID:______
解答を見る

Bridge Priority:32768
VLAN ID:10

32778というPriorityを直接設定しているわけではありません。

32768 + 10 = 32778

Priority 32768とExtended System ID 10を合わせた値として、 32778と表示されています。

問題6

複数のスイッチがすべてデフォルトのBridge Priority 32768だった場合、 Root Bridge選出では最終的に何が重要になるでしょうか。

  1. IPアドレス
  2. MACアドレス
  3. ポート番号
  4. 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ループやブロードキャストストームの仕組みから復習できます。

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

この記事を書いた人

コメント

コメントする

目次