LoginSignup
5
0

BGP勉強録

Last updated at Posted at 2023-11-30

BGPとは

BGPはBorder Gateway Protocolの略で、AS(Autonomous System)間の経路情報をやり取りする際に用いられるプロトコルです。

ルーティングプロトコルでのBGPの位置付け

スクリーンショット 2023-11-30 184638.png
BGPはEGPに分類されるルーティングプロトコルです。

IGPとEGP

BGPを詳しく調べる前に、IGPとEGPについても知っておいた方がいいでしょう。

IGP

IGPはInterior Gateway Protocolの略で、ASの中などの単一ネットワーク内で完結するルーティングのときに使用するプロトコルの総称です。
例として、RIPやOSPFなどが挙げられます。

EGP

EGPはExterior Gateway Protocolの略で、AS内では完結しない場合、つまりAS間同士でのやり取りの際に使用されます。
BGPはここに属します。

BGPのフォーマット

メッセージヘッダ

スクリーンショット 2023-11-30 193949.png

Markerフィールド

このフィールドは16オクテットの長さから構成されています。Markerの値は受信側が計算でき、認証アルゴリズムを使うことができます。

Lengthフィールド

このフィールドには、メッセージ全体の長さが入ります。

Typeフィールド

Typeフィールドには、メッセージ自体の種類を示す値が入ります。
この値は以下の4種類から成ります。

  • OPEN
    TCPコネクション確立後に、BGPルーター間のルーティング情報の交換を行います。
  • UPDATE
    ルーティング情報の交換を行います。
  • NOTIFICATION
    エラーが検出された際に、送信されます。Notificationメッセージを送信した方が、TCPセッションを切断します。
  • KEEPALIVE
    相手の機器が動作しているかを確かめます。

メッセージのフォーマット

次は先程のメッセージのフォーマットを詳しく見ていきましょう。

OPEN

       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)                    |
       |                                                               |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Version

メッセージプロトコルのバージョンを示します。現在使われているBGPのバージョンは 4 です。

My Autonomous System

送信者のAS番号が格納されます。

Hold Time

UPDATEメッセージやKEEPALIVEメッセージの受信を許容するまでの時間を表します。
受け取ったOPENメッセージでの値と自身の値を比較して、小さい方をHold Timeとして使用します。

BGP Identifier

送信元ルーターのIPアドレスの値が入ります。

UPDATE

      +-----------------------------------------------------+
      |   Withdrawn Routes Length (2 octets)                |
      +-----------------------------------------------------+
      |   Withdrawn Routes (variable)                       |
      +-----------------------------------------------------+
      |   Total Path Attribute Length (2 octets)            |
      +-----------------------------------------------------+
      |   Path Attributes (variable)                        |
      +-----------------------------------------------------+
      |   Network Layer Reachability Information (variable) |
      +-----------------------------------------------------+

Withdrawn Routes Length

Withdrawn Routesフィールドの長さをオクテットで示します。
値が 0 だとWithdrawn Routesが無く、Withdrawn Routesフィールドも無いということになります。

Withdrawn Routes

取り消されたルートのコード化したIPアドレスの接頭ビットのリストが格納されます。

Total Path Attribute Length

Total Path Attributeの長さを格納します。

Total Path Attribute

このフィールドには属性のリストが置かれます。

Network Layer Reachability Information

IPアドレスとプレフィックス長を示します。

NOTIFICATION

      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)             |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Error code

エラーコードの通知タイプを示します。

Error subcode

具体的なエラーコードを示します。

Data

エラーの内容を格納します。

KEEPALIVE

KEEPALIVEメッセージは、メッセージヘッダのみで構成されており、他の情報は持っていません。この場合のLengthは19オクテットとなります。

今回を通して

BGPの全体像を少し掴むことができたと感じました。しかし、UPDATEメッセージのTotal Path Attribute部分が今回全然触れられていないので、次回はその部分の詳細に触れていきたいと思います。

5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0