BPDUフレームフォーマット
BPDUのフレームを見ると、STPの仕組みがより詳しく理解出来ます。
本項では、BPDUフレームフォーマットについて説明します。
尚、STPの動作については、「スパニングツリー」をご参照下さい。
BPDUのフレーム形式
BPDUは、「フレーム形式」で説明したIEEE802.3+IEEE802.2形式を利用しています。
SAP値は16進数で42、宛先MACアドレスは01:80:C2:00:00:00です。BPDUは、STPが有効なスイッチでは受信しますが、無効なスイッチはデフォルトでは破棄し、転送しません。
データ部分に、以降に示すバージョン毎の情報が入ります。
BPDUバージョン0
BPDUバージョン0は、IEEE802.1Dで規定されたSTPで使われるBPDUです。以下にフォーマットを示します。
項目 | 英語 | バイト | 説明 |
---|---|---|---|
プロトコル | Protocol Identifier | 2 | 値は0でSTPを示します。 |
バージョン | Protocol Version Identifier | 1 | IEEE802.1D規定のBPDUでは0です。 |
タイプ | BPDU Type | 1 | 通常時は0です。 トポロジーチェンジのTCNでは80になります。 又、TCNではこれ以降の項目はありません。 |
フラグ | BPDU Flags | 1 | 1bit目:Topology Change(TC) 2bit〜7bit:未使用 8bit目:Topology Change Acknowledgment(TCNの応答) |
ルートブリッジID | Root Identifier | 8 | 一番小さいブリッジIDがルートブリッジになります。 |
ルートパスコスト | Root Path Cost | 4 | ルートブリッジからのパスコスト合計です。 |
ブリッジID | Bridge Identifier | 8 | 自身のブリッジID。 |
ポートID | Port Identifier | 2 | ポートプライオリティとポート番号の組み合わせです。 |
メッセージ経過時間 | Message Age | 2 | スイッチを経由する度に1プラスされます。 |
最大エージタイマー | Max Age | 2 | 古い情報が削除される時間。デフォルトは20秒です。 |
ハロータイマー | Hello Time | 2 | BPDU送信間隔。デフォルトは2秒です。 |
転送遅延タイマー | Forward Delay | 2 | リスニング、ラーニングの時間。デフォルトは15秒です。 |
ルートブリッジIDとブリッジIDが同じBPDUは、ルートブリッジが送信したBPDUです。その時、ルートパスコストやメッセージ経過時間は0です。
ルートブリッジIDとブリッジIDが異なる場合、ルートパスコストやメッセージ経過時間はそれまでスイッチが経由したパスコスト合計や段数が入ります。
PVST+では、VLAN単位でSTPを構成出来るため、ブリッジプライオリティは拡張システムID(VLAN ID)が加算されます。例えば、VLAN 2にブリッジプライオリティを8192で設定すると、BPDU上のブリッジプライオリティは8194になります。
STPの動作や仕組みで不明な点があれば、「STP詳細」をご参照下さい。
BPDUバージョン2
BPDUバージョン2は、IEEE802.1wで規定されたRSTPで使われるBPDUです。以下にフォーマットを示します。
尚、赤字部分は、バージョン0と異なる部分です。
項目 | 英語 | バイト | 説明 |
---|---|---|---|
プロトコル | Protocol Identifier | 2 | 値は0でSTPを示します。 |
バージョン | Protocol Version Identifier | 1 | IEEE802.1w規定のBPDUでは2です。 |
タイプ | BPDU Type | 1 | RSTPではTCNが不要なため固定で2です。 |
フラグ | BPDU Flags | 1 | 1bit目:Topology Change(TC) 2bit目:Proposal(役割提案) 3-4bit目:Port Role(役割) 0 Unknown 1 Alternate/Backup Port(代替/バックアップポート) 2 Root Port(ルートポート) 3 Designated Port(指定ポート) 5bit目:Learning(Learning状態を経ると1) 6bit目:Forwarding(Forwarding状態になると1) 7bit目:Agreement(Proposal合意や安定状態の時) 8bit目:Topology Change Acknowledgment(TCNの応答) |
ルートブリッジID | Root Identifier | 8 | 一番小さいブリッジIDのスイッチがルートブリッジになります。 |
ルートパスコスト | Root Path Cost | 4 | ルートブリッジからのパスコスト合計です。 |
ブリッジID | Bridge Identifier | 8 | 自身のブリッジID。 |
ポートID | Port Identifier | 2 | ポートプライオリティとポート番号の組み合わせです。 |
メッセージ経過時間 | Message Age | 2 | スイッチを経由する度に1プラスされます。 |
最大エージタイマー | Max Age | 2 | 古い情報が削除される時間。デフォルトは20秒です。 |
ハロータイマー | Hello Time | 2 | BPDU送信間隔。デフォルトは2秒です。 |
転送遅延タイマー | Forward Delay | 2 | リスニング、ラーニングの時間。デフォルトは15秒です。 |
バージョン1の長さ | Version 1 Length | 1 | 0固定。 |
バージョン0との違いから分かる通り、高速コンバージェンスのためにProposalやAgreementビットがあり、役割や状態も通知可能になっています。
尚、RSTPの動作や仕組みで不明な点があれば、「RSTP詳細」をご参照下さい。
BPDUバージョン3
BPDUバージョン3は、IEEE802.1sで規定されたMSTPで使われるBPDUです。下図の赤で網がけしたCST接続用に使われる部分は、バージョン2と殆ど同じです。
異なる部分は、Protocol Version Identifier(バージョン)が3であり、最後にVersion 3 Lengthが付いている事です。Version 3 LengthはMST Extentionの長さをbyteで示しています。MST Extention部分にISTやインスタンス情報を格納しています。
以下にMST Extention部分のフォーマットを示します。最初は、IST関連のフォーマットです。ISTがインスタンス0です。
項目 | 英語 | バイト | 説明 |
---|---|---|---|
フォーマット | MST Config ID format selector | 1 | 通常は0です。 規定外のフォーマットを使う場合は0以外になります。 |
リージョン名 | MST Config Name | 32 | 同一リージョン内では同じ名前にする必要があります。 |
リビジョン番号 | MST Config revision | 2 | 同一リージョン内では同じ番号にする必要があります。 |
ダイジェスト | MST Config digest | 16 | インスタンスとVLAN割り当てのハッシュ。 同一リージョン内では同じ設定にするため、ハッシュ値は一致します。 |
ルートパスコスト | CIST Internal Root Path Cost | 4 | IST(=CIST Internal)でのルートパスコスト。 |
CISTブリッジID | CIST Bridge Identifier | 8 | ISTでの自身のブリッジID。 |
ホップ数 | CIST Remaining Hops | 1 | 20から始まり、スイッチを1段経由する度に1引かれます。 0になると、そのBPDUは無視されます。 |
ISTのルートブリッジIDは、CST接続用(バージョン2と殆ど同じ)部分で確認出来ます。
次に、各インスタンスの情報を格納するフォーマットを示します。
項目 | 英語 | バイト | 説明 |
---|---|---|---|
フラグ | Flags | 1 | 1bit目:Topology Change(TC) 2bit目:Proposal(役割提案) 3-4bit目:Port Role(役割) 0 Unknown 1 Alternate/Backup Port(代替/バックアップポート) 2 Root Port(ルートポート) 3 Designated Port(指定ポート) 5bit目:Learning(Learning状態を経ると1) 6bit目:Forwarding(Forwarding状態になると1) 7bit目:Agreement(提案合意や安定状態の時) 8bit目:Topology Change Acknowledgment(TCNの応答) |
ルートブリッジID | Regional Root Identifier | 8 |
Priority:ブリッジプライオリティ。0〜15(4bit)で4096の倍数を示します。 MSTID:インスタンスID。0〜4094(12bit)。 MACアドレス:ルートブリッジのMACアドレス |
ルートパスコスト | Internal Root Path Cost | 4 | インスタンスのルートパスコスト。 |
ブリッジプライオリティ | Bridge Identifier Priority | 1 | 自身のインスタンス内ブリッジプライオリティ。0〜15で4096の倍数を示します。 |
ポートプライオリティ | Port Identifier Priority | 1 | パスコストやブリッジIDで役割が決定しない時の優先度です。 |
ホップ数 | Remaining Hops | 1 | 20から始まり、スイッチを1段経由する度に1引かれます。 0になると、そのBPDUは無視されます。 |
MSTIの部分は、インスタンスの数だけ繰り返されます。
RSTPでは、Bridge Identifierは自身のブリッジIDが入りますが、MSTPでCST接続される部分はISTルートブリッジのブリッジIDが入ります。又、ISTルートブリッジがCISTルートブリッジだった場合、ルートパスコストも0で送信します。
このため、CSTから見るとMST内は1つの仮想スイッチに見えます。
尚、MSTPの動作や仕組みで不明な点があれば、「MSTP詳細」をご参照下さい。