BPDU(ビーピーディーユー)とは | 意味や読み方など丁寧でわかりやすい用語解説
BPDU(ビーピーディーユー)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。
読み方
日本語表記
BPDU (ビーピーディーユー)
英語表記
BPDU (ビーピーディーユー)
用語解説
BPDUは、Bridge Protocol Data Unitの略であり、Spanning Tree Protocol (STP) およびその改良版であるRapid Spanning Tree Protocol (RSTP) やMultiple Spanning Tree Protocol (MSTP) といった、レイヤー2ネットワークにおけるループ防止プロトコルが使用する特殊なデータパケットである。このパケットは、ネットワーク上のスイッチ間で情報を交換し、ネットワークに冗長性を持たせつつも、ブロードキャストストームやMACアドレスの不安定化といった問題を引き起こすループの発生を防ぐために不可欠な役割を担う。
より具体的に言えば、BPDUはスイッチ同士が自身の存在や、自身が認識しているネットワークの状態、例えばルートブリッジ(STPツリーの根となるスイッチ)はどれか、特定のパスのコストはどれくらいか、といった情報を互いに通知し合うための「メッセージ」である。このメッセージの交換を通じて、スイッチはネットワーク全体の論理的なツリー構造を決定し、ループを形成する可能性のある一部のポートを意図的にブロック状態に設定する。これにより、物理的な接続の冗長性を保ちながら、データがループすることなく目的地へ到達できる安全なネットワーク環境が構築される。BPDUがなければ、スイッチは自身の周囲の状況を把握できず、STPは正しく機能しないため、ネットワークは容易に不安定な状態に陥ってしまう。
BPDUには主に二つの種類がある。一つは「Configuration BPDU」と呼ばれ、もう一つは「Topology Change Notification (TCN) BPDU」である。
Configuration BPDUは、STPツリーの構造を決定するために最も重要なBPDUである。このBPDUには、送信元のブリッジ(スイッチ)に関する情報だけでなく、ルートブリッジの識別子、ルートブリッジまでのパスコスト、メッセージの送信元であるブリッジの識別子、そしてメッセージが送信されたポートの識別子といった、STPのアルゴリズムを実行する上で必要となる多種多様な情報が含まれている。ルートブリッジと選出されたスイッチは、このConfiguration BPDUを定期的に(デフォルトでは2秒ごと)すべての指定ポートから送信する。ルートブリッジ以外のスイッチは、このConfiguration BPDUを受信すると、自身の持つ情報と比較し、より優れたルートパス情報であればその情報を採用し、自身のConfiguration BPDUを更新して他のスイッチへ転送する。このプロセスを通じて、ネットワーク上のすべてのスイッチは、どのスイッチがルートブリッジであるか、そして自身がルートブリッジに到達するための最適なパスはどれか、という情報を共有し、それに基づいてポートの状態(ルートポート、指定ポート、非指定ポートなど)を決定していく。
一方、TCN BPDUは、ネットワークのトポロジ、つまり接続構成に何らかの変更があったことを他のスイッチに通知するために使用される。例えば、あるスイッチポートがリンクアップしたりリンクダウンしたりするなど、接続状況が変わった場合に、その変化を検知したスイッチはTCN BPDUを生成し、ルートブリッジへ向かって送信する。TCN BPDUを受け取ったルートブリッジは、その情報に基づいて特別なConfiguration BPDU(トポロジ変更フラグが設定されたもの)をネットワーク全体に送信し、トポロジ変更があったことをすべてのスイッチに周知させる。これにより、MACアドレステーブルのエイジングタイム(MACアドレス情報を保持する期間)が一時的に短縮され、ネットワーク内のMACアドレステーブルが迅速に更新される。これは、トポロジ変更によってデータ転送パスが変わった際に、古いMACアドレステーブルの情報が残っていることで発生する可能性のある一時的なデータロスやフラッディング(不必要な大量のデータ転送)を防ぎ、ネットワークの収束時間を短縮するために非常に重要である。
BPDUは、IEEE 802.1Dで定義された特定のマルチキャストアドレス(01:80:C2:00:00:00)を使用して、直接接続されているスイッチ間でのみ交換される。これは、BPDUがローカルリンクでのみ有効な情報交換であり、ルーターを越えて転送されるべきではないためである。スイッチはSTPが有効なポートからBPDUを送信し、また受信したBPDUを処理することで、STPのアルゴリズムを継続的に実行し、ネットワークの健全性を監視している。
STPの安定運用を支援するために、BPDUに関連するセキュリティ機能や制御機能も存在する。「BPDUガード」は、通常は末端のデバイス(PCやサーバーなど)が接続されるアクセスポートで、誤ってBPDUを受信してしまった場合に、そのポートをエラーディセーブル状態にする機能である。これは、意図しない場所にスイッチが接続されてしまうことや、誤った設定によってSTPツリーが予期せず変更されたり、あるいはルートブリッジが乗っ取られたりすることを防ぐのに非常に有効である。BPDUガードが有効なポートでBPDUを受信すると、そのポートは自動的にシャットダウンされ、管理者に問題を通知する。これにより、ネットワーク全体の安定性が維持される。
もう一つの機能として「BPDUフィルター」がある。これは、特定のポートでBPDUの送受信を完全に停止させる機能である。BPDUフィルターは、STPに参加させる必要のないポートや、STPドメインの境界となるポートなどで使用されることがある。例えば、ISPとの接続ポートで自ネットワークのSTP情報が外部に漏れるのを防いだり、逆に外部からのBPDUを受け取らないようにしたりする場合に利用される。しかし、BPDUフィルターを不用意に使用すると、そのポートがSTPのループ検出メカニズムから外れてしまい、予期せぬネットワークループを発生させるリスクがあるため、利用には細心の注意が必要となる。
このように、BPDUは単なるデータパケットではなく、レイヤー2ネットワークの安定性と信頼性を支える基盤となるメッセージングシステムである。これによってスイッチは互いの状態を認識し、協調してネットワークの論理構造を維持することで、ブロードキャストストームやMACアドレスフラッピングといったネットワーク障害を未然に防ぎ、サービスの可用性を高めている。システムエンジニアにとって、BPDUの仕組みと役割を理解することは、ネットワークトラブルシューティングや設計において非常に重要である。