複数のスイッチがループ状につながっているとき、STPは「どのポートをブロックするか」をどうやって決めているのでしょう?
全スイッチが好き勝手に判断してはうまくいきません。何か基準となる中心点を決めて、そこからの距離をもとに判断する必要がありそうです。選挙で「代表」を決める場面を思い浮かべながら読み進めてください。
STPは「選挙」から始まる
前回、STPは冗長リンクの一部を論理的にブロックしてループを防ぐ仕組みだと学びました。では、どのポートをブロックするかは、どうやって決まるのでしょうか。答えは、まずルートブリッジという「基準点」となるスイッチを1台選挙で決め、そこからの距離をもとに各ポートの役割を決める、という流れです。
BPDUという「選挙運動のはがき」
スイッチ同士はBPDU(Bridge Protocol Data Unit)という特殊なフレームを定期的にやり取りし、お互いの情報を交換します。BPDUには「私のブリッジIDはこれです」「ルートブリッジまでのコストはこれです」といった情報が含まれています。選挙のはがきを配って、お互いの立候補情報を確認し合うようなイメージです。
ステップ1:ルートブリッジの選出
STPネットワーク全体で、基準点となるルートブリッジを1台だけ選びます。この選出基準がブリッジIDです。ブリッジIDは次の2つの要素からなります。
- ブリッジプライオリティ(優先度、デフォルト32768、設定で変更可能)
- MACアドレス
判定は「ブリッジIDが最も小さいスイッチがルートブリッジになる」というシンプルなルールです。まずプライオリティの数値が小さい方が勝ち、プライオリティが同じ場合はMACアドレスが小さい方が勝ちます。選挙で「若い番号の候補者が有利」というようなイメージで覚えるとよいでしょう。
2台のスイッチのブリッジプライオリティが同じ値だった場合、ルートブリッジはどちらになるでしょうか?
答えを見る
ブリッジプライオリティが同じ場合は、MACアドレスが小さい方がルートブリッジになります。ブリッジIDは「プライオリティ+MACアドレス」で構成されており、プライオリティが同点のときはMACアドレスで決着をつけます。
ステップ2:ポート役割の決定
ルートブリッジが決まったら、他のすべてのスイッチ(非ルートブリッジ)は、自分のポートに次の役割を割り当てていきます。
- ルートポート:ルートブリッジに最も近い(コストが最小の)ポート。各非ルートブリッジに必ず1つだけ存在し、常に転送状態
- 指定ポート:各セグメント(リンク)ごとに、ルートブリッジへのコストが最小のポート。転送状態
- 非指定ポート(ブロッキングポート):ルートポートにも指定ポートにもならなかったポート。ブロッキング状態で、フレームを転送しない
ここで使われるコストは、リンクの帯域幅から決まる値で、帯域幅が大きい(速い)ほどコストは小さくなります。つまりSTPは「一番近い道」「一番速い道」を優先的に使う道として選び、余った道をブロックする、という発想です。
なお、ルートブリッジ自身のポートはすべて指定ポートになります。基準点であるルートブリッジには「ルートポート」という概念自体がないためです。
非ルートブリッジのスイッチにおいて、ルートブリッジまでのコストが最小のポートを何と呼ぶでしょうか?
答えを見る
ルートポートです。各非ルートブリッジのスイッチには、ルートブリッジに最も近い(コスト最小の)ポートが1つだけ存在し、常に転送状態になります。
ポートの状態遷移
STPのポートは、いきなり転送状態になるわけではなく、次のような状態を経て遷移します(初期のSTPの場合)。
- ブロッキング:フレームを転送しない、BPDUだけ受信
- リスニング:BPDUの送受信を行いネットワーク構造を把握する
- ラーニング:MACアドレステーブルの学習を開始する
- フォワーディング:フレームの転送を開始する
この移行には時間がかかり、伝統的なSTPでは最大50秒程度を要することもあります。この「切り替わりの遅さ」が後述するPortFastなどの改良機能につながっていきます。
試験でのポイント
CCNA試験では、ブリッジID(プライオリティ+MAC、デフォルトプライオリティ32768)とルートブリッジ選出の判定順序、そしてルートポート・指定ポート・非指定ポート(ブロッキング)の3つのポート役割の違いが頻出です。「最小のブリッジIDを持つスイッチがルートブリッジになる」「非ルートブリッジには必ずルートポートが1つ存在する」という2点を軸に、図を見て役割を判定する問題に備えましょう。コストは帯域幅が大きいほど小さくなる、という向きを逆に覚えないよう注意してください。
ルートブリッジの選挙、ポート役割の割り当て、なんとなくイメージつかめたかな。ブリッジIDが一番小さいスイッチが基準になって、そこから近い道・速い道が生き残る。逆に余った道はブロックされる。この考え方さえ押さえれば図の問題も怖くないよ。次はPortFastやBPDUガードといった、STPをさらに便利にする機能を見ていくよ。