【スパニングツリー】ルートブリッジとポート役割を理解するには

 

スパニングツリー(STP)は、スイッチの一部のポートをブロックして、ループのないトポロジを作ります。どのポートをブロックするかは、ルートブリッジ、ルートポート、指定ポートという順番で決まっていきます。

この記事では、3台のスイッチを三角形につないだ構成を例に、これらの用語と決まり方の基本を説明します。スパニングツリーが必要な理由は、【初心者わかりやすく】スパニングツリーを理解する第1歩 もあわせて参照してください。

この記事でわかること
  1. BPDU とブリッジ ID(優先度+MAC アドレス)
  2. ルートブリッジ、ルートポート、指定ポートの決まり方
  3. どのポートがブロッキングになり、ループを防ぐのか

BPDU(Bridge Protocol Data Unit)

3台のスイッチが次の図のように三角形につながり、ループができています。これらのスイッチでスパニングツリーを有効にすると、スイッチどうしで BPDU(Bridge Protocol Data Unit)というフレームをやり取りします。

SW1SW2SW3優先度 32768MAC 0000.0000.0001優先度 32768MAC 0000.0000.0002優先度 32768MAC 0000.0000.0003
図1 3台のスイッチによるループ構成

BPDU には、送信元のスイッチのブリッジ ID、ルートブリッジだと考えているスイッチのブリッジ ID、ルートブリッジまでのパスコストなどが入っています。スイッチは BPDU を比べ合って、ルートブリッジや各ポートの役割を決めます。

ブリッジ ID は、ブリッジ優先度と MAC アドレスを並べた値です。優先度の既定値は 32768 で、0〜61440 の範囲で 4096 の倍数(0、4096、8192 … 61440)に設定できます。

優先度2 バイトMAC アドレス6 バイトブリッジ ID(8 バイト) 例:32768:0000.0000.0001比べるときは、まず優先度、同じなら MAC アドレスの小さい方
図2 ブリッジ ID の構成
補足

Cisco の PVST+ では、優先度の下位の部分に VLAN 番号(拡張システム ID)が入ります。そのため、VLAN 1 では優先度が 32768+1=32769 のように表示されます。優先度を 4096 の倍数でしか設定できないのはこのためです。

ルートブリッジの選定

スパニングツリーでは、まずルートブリッジを1台選びます。ブリッジ ID が最も小さいスイッチがルートブリッジになります。比べるときは、まず優先度を比べ、同じなら MAC アドレスの小さい方が選ばれます。

この構成のブリッジ ID は次のとおりです(ここでは表記上、優先度と MAC アドレスを「:」で区切って並べます)。

スイッチ優先度MAC アドレスブリッジ ID
SW1327680000.0000.000132768:0000.0000.0001(最小)
SW2327680000.0000.000232768:0000.0000.0002
SW3327680000.0000.000332768:0000.0000.0003

優先度はどれも 32768 で同じなので、MAC アドレスで比べます。ブリッジ ID が最も小さいのは SW1(32768:0000.0000.0001)なので、SW1 がルートブリッジになります。

SW1SW2SW3ブリッジ ID32768:0000.0000.0001ブリッジ ID32768:0000.0000.0002ブリッジ ID32768:0000.0000.0003ルートブリッジ
図3 SW1 がルートブリッジになる
実際の運用では

優先度を既定値のままにすると、MAC アドレスが一番小さいスイッチがルートブリッジになります。実際のネットワークでは、ルートブリッジにしたいコアスイッチの優先度を小さくして、意図したスイッチがルートブリッジになるようにします(Cisco では spanning-tree vlan 1 priority 4096 などで設定します)。

ルートポートとは

ルートポートは、そのスイッチからルートブリッジへ最も近いポートです。近い・遠いは、ルートブリッジまでのパスコストの合計で決まります。パスコストはリンクの帯域幅から決まる値で、帯域幅が広いほど小さくなります。

帯域幅パスコスト(IEEE 802.1D の値)
10 Mbps100
100 Mbps19
1 Gbps4
10 Gbps2

ルートポートは、ルートブリッジ以外の各スイッチに必ず1つだけあります。ルートブリッジ自身にはルートポートはありません。この記事では、ルートポートを RP と書きます。

指定ポートとは

指定ポートは、スイッチ間のリンクごとに、ルートブリッジへ最も近い側のポートです。リンクの上に端末を置いたとき、どちらのスイッチを通った方がルートブリッジに近いかを考えるとわかりやすくなります。指定ポートは、各リンクに必ず1つだけあります。この記事では、指定ポートを DP と書きます。

構成例

図1の構成で、すべてのリンクの帯域幅が同じ(パスコストが同じ)という前提で、ルートポートと指定ポートを決めていきます。

ルートポートを決める

SW2 と SW3 は、それぞれ SW1 へ直接つながるポートが、ルートブリッジまでのコストが最も小さいポートです(リンク1本分)。SW2 や SW3 を経由すると2本分になるので、SW1 に直接つながるポートがルートポートになります。ルートブリッジの SW1 にはルートポートはありません。

SW1SW2SW3ルートブリッジRPRP
図4 ルートポート(RP)

指定ポートを決める

SW1〜SW2 間と SW1〜SW3 間のリンクに端末があるとして、どちらのスイッチを通った方がルートブリッジに近いかを考えます。これは当然、ルートブリッジ自身のポートです。そのため、ルートブリッジのポートはすべて指定ポートになります。

では、SW2〜SW3 間のリンクはどうでしょうか。リンクの上に端末を置いても、左右対称なので、SW2 と SW3 のどちらを通ってもルートブリッジまでのコストは同じです。この場合は、ブリッジ ID の小さいスイッチを優先します。SW2 の方がブリッジ ID が小さいので、SW2 側のポートが指定ポートになります。

コストは同じ → ブリッジ ID が小さい SW2 側が DPSW1SW2SW3ルートブリッジDPDPRPRPDP
図5 指定ポート(DP)
順番ルートポートの決め方指定ポートの決め方
1ルートブリッジまでのパスコストが小さいポートルートブリッジまでのパスコストが小さい側のポート
2BPDU を送ってきた隣のスイッチのブリッジ ID が小さいポートブリッジ ID が小さいスイッチのポート
3隣のスイッチのポート ID が小さいポートポート ID が小さいポート

残ったポートをブロックする

ルートポートにも指定ポートにもならなかったポートは、ブロッキングポートになり、データの転送を止めます。この記事では BLK と書きます。この構成では、SW3 の SW2 側のポートがブロッキングポートになり、三角形のループが切れます。

SW1SW2SW3ルートブリッジDPDPRPRPDPBLK
図6 最終的なポートの役割

ブロッキングポートも BPDU の受信は続けています。ほかのリンクが切れて BPDU が届かなくなると、ブロッキングポートが転送を始め、通信を続けられるようにします。

まとめ

役割決まり方この構成
ルートブリッジブリッジ ID(優先度+MAC アドレス)が最も小さいスイッチSW1
ルートポート(RP)ルートブリッジ以外の各スイッチで、ルートブリッジに最も近いポート(1つ)SW2、SW3 の SW1 側
指定ポート(DP)各リンクで、ルートブリッジに近い側のポート(1つ)。ルートブリッジのポートはすべて指定ポートSW1 の2ポート、SW2 の SW3 側
ブロッキングポート(BLK)ルートポートにも指定ポートにもならなかったポートSW3 の SW2 側

コメント

  1. ネットワークエンジニアになるため より:

    指定ポートの説明がすごく分かりやすかったです。