BGP メッセージ
BGPの隣接ルータ間の通信にはTCP 179を使用します。お互いにTCPセッションを確立すると「メッセージ」を交換することで情報を交換します。
下記がBGPメッセージのヘッダーとなります。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + + | | + + | Marker | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Length | Type | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
※Marker は過去との互換性のため存在しています。
タイプ(Type) でメッセージの種類が決まり、パケットの種類のよってさらにメッセージのデータが格納されています。
OPEN メッセージ ( Message Type 1 )
BGPを確立すると最初にOPENメッセージを送信します。接続に必要な情報を交換します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+ | Version | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | My Autonomous System | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Hold Time | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | BGP Identifier | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Opt Parm Len | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Optional Parameters (variable) | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
- メッセージ タイプ(1) OPEN
- バージョン情報(Version) (現在は4)
- AS番号( My Autnoumous System )
- ホールドタイム(Hold Time) Ciscoはデフォルト180秒
- ルータID(BGP Identifier)
- オプション 利用可能なBGPの拡張された機能の能力Capabilitiesを送信 (Multiprotocol , Route Refresh ・・などなど)
OPENメッセージの(AS: 10 ,ホールドタイム:180 ,RouterID: 10.0.1.1)
UPDATE メッセージ ( Message Type 2 )
BGPのテーブル情報に必要なルート情報およびパスアトリビュート情報を送信します。接続時に全ての情報を送信し以降は変更発生時のみ送信します。
1 2 3 4 5 6 7 8 9 10 11 |
+-----------------------------------------------------+ | Withdrawn Routes Length (2 octets) | +-----------------------------------------------------+ | Withdrawn Routes (variable) | +-----------------------------------------------------+ | Total Path Attribute Length (2 octets) | +-----------------------------------------------------+ | Path Attributes (variable) | +-----------------------------------------------------+ | Network Layer Reachability Information (variable) | +-----------------------------------------------------+ |
- メッセージ タイプ(2) UPDATE
- パスアトリビュート( Path Attributes) ORIGIN,AS_PATH,NEXT_HOP,MEDなど
- 経路情報 ( Network Layer Reachability Information )
UPDATEメッセージ(経路 10.0.0.0/8)
経路を削除する情報を送る際は Withdrawn Routes を利用します。
スポンサーリンク
NOTIFICATION メッセージ ( Messagee Type 3 )
エラーを検出した時に通知されるメッセージです。
1 2 3 4 5 |
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Error code | Error subcode | Data (variable) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
- メッセージ タイプ(3) NOTIFICATION
- エラーコード ( Error code )
1 Message Header Error 2 OPEN Message Error 3 UPDATE Message Error 4 Hold Timer Expired 5 Finite State Machine Error 6 Cease - エラーサブコード ( Error subcode )
大まかなエラーは(Error code)でさらに細かな情報は Error subcodeに記載されています。
既定されているコードなどは Border Gateway Protocol (BGP) Parameters で確認することができます。
上記のNOTIFICICATION Messageは neighbor を shutdown コマンドした際に送信したメッセージ 6(Cease)/2(Administratively shutdown) になります。
KEEPALIVE メッセージ (Message Type 4 )
BGP neighborの関係を維持確認用のメッセージになります。 Ciscoでは60秒ごとに送信されます。
- メッセージ タイプ(4) KEEPALIVE
KEEPALIVEメッセージ
BGPのパケットキャプチャーファイル
上記のルータ間にてBGPを接続して最後にneighbor shutdownしてBGPを切断したBGPパケットを抽出したファイルです。
BGP_neighbor_pkt
BGP記事一覧
- BGPとは
- BGP Message (メッセージ)
- BGP neighbor 状態
- BGP i-BGP/e-BGP の違い
- BGP next-hop-self
- BGP ルートリフレクタ ( Route-Reflector )
- BGP パスアトリビュート
BGP RFC/関連サイト
- RFC4271 A Border Gateway Protocol 4 (BGP-4)
- RFC6793 BGP Support for Four-Octet Autonomous System (AS) Number Space
- IANA Border Gateway Protocol (BGP) Parameters
BGP参考図書
私が所持しているBGP関連の本を紹介します。ただし絶版になっている本も紹介していますのでご容赦ください。