【BGP入門】BGPで使われるメッセージタイプについて

  • URLをコピーしました!
目次

はじめに

こんにちは。ネットワークエンジニアの「だいまる」です。

今回は、BGPで利用されるメッセージタイプについて、まとめていきたいと思います。

5種類のBGPメッセージ

本記事では、BGPで利用される5種類のメッセージについて、説明していきます。

共通フォーマット

5つのメッセージを説明する前に、BGPのメッセージで利用される共通フォーマットについてまとめたいと思います。

BGPメッセージはTCP 179番ポートが使われます!

フィールド名オクテット長用途
Marker16BGPピアの同期が完了しているかどうかを示す
Length2BGPメッセージの長さを示す
Type2BGPメッセージのタイプを示す(1~5)

Type1:OPENメッセージ

OPENメッセージとは、「BGPセッション開始時に送信されるメッセージ」です。

OPENメッセージには、BGPバージョンや属するAS番号、Holdtime、ルータIDを保持しています。

フィールド名オクテット長用途
バージョン1BGPのバージョン表記(4が多い)
My AS2 送信元のAS番号
Holdtime2ピア維持の閾値時間(通常:180秒)
Identifier4BGPルータの識別子(ルータID)
Option1オプション
Anker 622 Magnetic Battery (MagGo)
〜マグネット式ワイヤレス充電対応 5000mAh コンパクト モバイルバッテリー〜

Type2:UPDATEメッセージ

UPDATEメッセージ」は、BGPピアを確立したルータ同士で経路情報を交換するために利用します。

このメッセージには、追加や変更となった経路情報を保持し、各ルータに送信しています。

フィールド名オクテット長用途
Unfeasible routes length2Withdrawnとなる経路の長さ
* 0の場合は対象となる経路無し
Withdrawn Routes可変Withdrawnとなる経路のリスト
– Length:1オクテット(Prefix長を示す)
*0の場合はall match
– Prefix:16進数で表記
Total Path Attribute Length2Path Attributeの長さ
*0の場合、広報する経路やAttributeがない
Path Attribute可変各経路に対するAttributeのリスト
*TLVで表記
Network Layer Reachability Information (NLRI)可変Prefix List(2-Tuple LVでの表記)

Type3:NOTIFICATIONメッセージ

「NOTIFICATIONメッセージ」は、BGPピア間でエラーが発生した際にピア切断を行うために利用しています。

このメッセージに定義されているエラー理由を示すコードは、数がかなり多いのが特徴です。

フィールド名オクテット長用途
Error Code1エラー内容のコードが格納(エラーコードは次の表に記載)
Error Subcode1エラー内容の詳細コードが格納(エラーコードは次の表に記載)
Data可変エラーデータを格納
エラーコードSubcode用途
1: Message Header Error1接続が非同期状態
2メッセージ長にエラー
3メッセージタイプにエラー
2: Open Message Error1未サポートバージョン
2Peer ASにエラー
3BGP IDにエラー
4未サポートのオプションパラメータ
5認証失敗
6ホールドタイムが受け取れていない
7未サポートのCapability
3: Update Message Error1Malformed attirubteのリスト
3Well-known attributeの欠如
7ASルーティングループ
8Next Hopが無効
4: Hold Timer Expire0Subcodeなし
5: FSM Error0Subcodeなし(1~3があり、各メッセージ種別に対するエラー)
6: Cease1最大Prefix数の超過
2Admin Down
3Peer削除
5接続失敗
エラーコード表(代表例)

Type4:KEEPALIVEメッセージ

KEEPALIVEメッセージ」は、OPENメッセージに対する返答や確立したBGPピアを維持するために利用されます。

このメッセージは、通常60秒毎にBGPピアの相手となるネイバーに送信され、セッションの確立状況を確認しています。

フィールド名Byte長用途
Marker16BGPピアの同期が完了しているかどうかを示す
Length2 BGPメッセージの長さを示す
Type1メッセージタイプ(1~5) Keepaliveのため「4」

Type5:ROUTE REFRESHメッセージ

ROUTE REFERESHメッセージ」は、経路更新を必要とする際に再要求するために利用されます。

このメッセージは、主にOPENメッセージのOptionフィールドを利用しています。

フィールド名Byte長用途
AFI2Address Family IDの格納(IPv4/IPv6等の定義)
Res1デフォルト値:0(このフィールドは利用されない)
SAFI1Subsequent AFIの格納(ユニキャストやVPNv4等の用途)
インターネットルーティング入門 第3版
〜図解でわかる経路制御の仕組み!〜

最後に

この記事では、BGPで利用されるメッセージタイプについて、概要的な部分をまとめてみました。

次回の記事では、BGPの基本設定と実機確認をまとめてます。

ここではパケットキャプチャを利用し、細かい部分まで見てるので、参照いただければと思います。

  • URLをコピーしました!

この記事を書いた人

目次