BPDU(Bridge Protocol Data Unit)

BPDUはスパニングツリープロトコルの制御情報です。スパニングツリープロトコルを有効にすると、レイヤ2スイッチはBPDUをやり取りしてスパニングツリープロトコルによるイーサネットフレームの転送経路の冗長化を行います。BPDUの主な役割は、以下のとおりです。

  • ルートブリッジの選出
  • ループ箇所の特定
  • ループを防止するためのポートのブロック
  • トポロジの変更通知
  • スパニングツリーの状態監視

BPDUには、以下の2種類あります。

  • コンフィグレーションBPDU
  • TCN(Topology Change Notification) BPDU

BPDUのカプセル化

BPDUは、IPパケットとはカプセル化が少し異なります。BPDUはIEEE802.3 LLCでカプセル化されます。DSAPとSSAPは「0x42」でControlは「0x03」です。そして、BPDUの宛先MACアドレスは、01-80-c2-00-00-00です。スパニングツリープロトコルを有効にしているレイヤ2スイッチは、宛先MACアドレス01-80-c2-00-00-00のBPDUを受信してスパニングツリープロトコルのさまざまな処理を行います。BPDUはマルチキャストのMACアドレスを指定していますが、スパニングツリープロトコルが有効なスイッチはBPDUをフラッディングするわけではないことに注意してください。

コンフィグレーションBPDU

スパニングツリープロトコルの大部分の制御を行うためのBPDUがコンフィグレーションBPDUです。ルートブリッジとして選出されたレイヤ2スイッチが定期的にコンフィグレーションBPDUを送信します。デフォルトでは、2秒ごとにコンフィグレーションBPDUを送信します。ルートブリッジ以外のレイヤ2スイッチは、ルートブリッジから受信したコンフィグレーションBPDUをもとに必要な情報を書き換えて、あらたたにコンフィグレーションBPDUを生成して他のスイッチへと送信します。

図 コンフィグレーションBPDUの送信の概要
図 コンフィグレーションBPDUの送信の概要

この図では、ポートがブロックされる前の状態を表しています。スパニングツリープロトコルの計算が完了して、ブロッキング状態になったポートからはコンフィグレーションBPDUを送信しません。

次の図は、コンフィグレーションBPDUのフォーマットを表しています。

図 コンフィグレーションBPDU
図 コンフィグレーションBPDU
図ではパディングを省略しています。

フィールド概要
プロトコルID STPでは、「0x0000」で固定
バージョン バージョンの値も「0x00」で固定
BPDUタイプ コンフィグレーションBPDUでは、BPDUタイプは「0x00」
フラグ ビット8-TCACKフラグ ビット1-TCフラグ
ルートID ルートブリッジのブリッジID
パスコスト ルートブリッジまでの累積コスト
ブリッジID BPDUを送信するスイッチのブリッジID
ポートID ポートプライオリティとポート番号から構成されるポートの識別情報
メッセージエージタイマ BPDUが生成されてからの時間
最大エージタイマ コンフィグレーションBPDUの有効時間
ハロータイマ ルートブリッジがBPDUを送信する間隔
転送遅延タイマ リスニング状態、ラーニング状態の時間
表 コンフィグレーションBPDU

TCN BPDU

TCN BPDUは、Topology Change Notificationという名前の通り、トポロジが変更されたことを通知するためのBPDUです。TCN BPDUのフォーマットは、プロトコルID、バージョン、BPDUタイプのみでとてもシンプルです。

図 TCN BPDU
図 TCN BPDU

フィールド概要
プロトコルID STPでは、「0x0000」で固定
バージョン バージョンの値も「0x00」で固定
BPDUタイプ TCN BPDUでは、BPDUタイプは「0x80」
表 TCN BPDU

ブリッジID

スパニングツリープロトコルを有効にしているレイヤ2スイッチを識別するためのIDがブリッジIDです。コンフィグレーションBPDUの中にブリッジIDをブリッジIDを指定しています。ブリッジIDは、次の図のように2バイトのブリッジプライオリティと6バイトのMACアドレスから構成される全体で8バイトのIDです。

図 ブリッジID
図 ブリッジID

レイヤ2スイッチには多くのイーサネットポートが備わっていて、ポートごとにMACアドレスがあります。ブリッジIDのMACアドレスはポートごとのMACアドレスではなく、システムのベースのMACアドレスを利用します。このブリッジIDは、ルートブリッジの選出にも利用されます。ブリッジIDが最小のスイッチがルートブリッジになります。

パスコスト

スパニングツリープロトコルによって、ループ構成になっているネットワークトポロジをルートブリッジ中心のツリー構成とします。つまり、イーサネットフレームは、ルートブリッジを中心として転送するようにします。ルートブリッジ中心のツリー構成を取るために、ルートブリッジまでの最短経路を判断しなければいけません。そこで、ルートブリッジまでの距離を数値化するためのパスコストを考えています。

パスコストはポートの帯域幅から決定されて、帯域幅が大きいほどパスコストの値が小さくなります。そして、パスコストが小さいほど「より近い」とみなします。また、あるレイヤ2スイッチからルートブリッジまでの累積のパスコストをルートパスコストと呼びます。帯域幅ごとのパスコストの値を次の表にまとめています。

帯域幅コスト(16ビット)コスト(32ビット)
10Mbps 100 2000000
100Mbps 19 200000
1Gbps 4 20000
10Gbps 2 2000
表 スパニングツリーのコスト

レイヤ2スイッチの仕組み