メインコンテンツまでスキップ

BGP-4

BGP-4 とは

インターネットの IP アドレスは ICANN が管理しており、AS(Aytibiniys System)と呼ばれる組織(ISP 等)に IP アドレスを割り振っている。 この AS 間でルーティング情報をやり取りするプロトコルを EGP(Exterior Gateway Protocol)と呼び、AS 内でのプロトコルを IGP(Interior Gateway Protocol)と呼ぶ。

AS にもいくつかの種類が存在する

type説明
Multihomed AS複数の他の AS への接続を維持する AS。ある AS から別の AS に向かう途中でトラフィックを通過させることはできない
Stub AS他の 1 つの AS だけに接続されている AS
Transit ASある AS とリンクしている別の AS の間でデータトラフィックを伝送する
Internet Exchange Point ASISP またはコンテンツ配信ネットワーク(CDN) が自律システム間でインターネットトラフィックを交換するための物理インフラストラクチャ

BGP は EGP のプロトコルであり、Border Gateway Protocol の略である。

BGP は TCP を使用しており、AS 間の死活監視は KEEPALIVE メッセージを送信し合い接続できることを確認している。また、 NOTIFICATION メッセージは、エラーまたは特別な条件に応答して送信される。 異なる AS とのピアを EBGP(External BGP)と呼び、同じ AS とのピアを IBGP(Internal BGP)と呼ぶ。

BGP の主な機能は、他の BGP システムとルーティング情報を交換することであり、このルーティング情報には、通過する自律システム(AS)のリストに関する情報が含まれている。

BGP で使用されるメッセージは以下である。

  • OPEN
    • CP 接続が確立された後、両側から送信される最初のメッセージ
  • UPDATE
    • BGP ピア間でルーティング情報を転送
  • KEEPALIVE
    • 死活監視
  • NOTIFICATION
    • エラー時に送信

以後、BGP スピーカという言葉登場するが、これは BGP を実装するルータのことを意味している。また、図に登場する赤色で塗られたものが BGP スピーカを表す。

UPDATE メッセージではネットワーク層到達可能性情報(Network Layer Reachability Information)とパス属性がやり取りされる。 ネットワーク層到達可能性情報とは IP アドレスプレフィックスのことを指し、ネットワークアドレスのことである。メッセージ内では各パス属性は、可変長の 3 つの属性タイプ, 属性長, 属性値で構成されている。

パス属性には様々な種類が存在する。

  • ORIGIN

    パス情報の起点を定義する。IGP, EGP, それ以外(INCOMPLETE)の 3 種類が存在する。

  • AS_PATH

    伝達されるルーティング情報が通過した自律システムを識別する。各 AS_PATH セグメントは、3 つのパスセグメントタイプ, パスセグメント長, パスセグメント値で構成している。

    AS_PATH には 2 種類パスセグメントタイプ存在し、AS_SETAS_SEQUENCEがある。

    • AS_SET

      UPDATE メッセージ内のルートが通過した無順序の AS

    • AS_SEQUENCE

      UPDATE メッセージ内のルートが通過した AS の順序

    BGP スピーカーは、別の BGP スピーカーの UPDATE メッセージから学習したルートを伝播するときに、ルートの送信先の BGP スピーカーの場所に基づいてルートの AS_PATH 属性を変更する。

    • 内部ピアの場合(IBGP)

      AS_PATH を変更しない

    • 外部ピアの場合(EBGP)

      外部ピアの場合は次の 3 パターンに分かれる。AS_PATH は先頭が一番最後とみなされるため、先頭に要素を追加する。

      • AS_PATHの最初のパスセグメントのタイプがAS_SEQUENCEの場合

        独自の AS 番号を最後の要素として付加する。ただし、AS_PATH セグメントでオーバーフローが発生する場合(つまり、255 AS を超える場合)、タイプ AS_SEQUENCE の新しいセグメントを追加し、この新しいセグメントに独自の AS 番号を追加する。

      • AS_PATHの最初のパスセグメントがタイプAS_SETである場合

        タイプ AS_SEQUENCE の新しいパスセグメントを AS_PATH に追加し、そのセグメント内の独自の AS 番号を追加する。

      • AS_PATHが空の場合

        AS_SEQUENCE タイプのパスセグメントを作成し、独自の AS をそのセグメントに配置し、そのセグメントを AS_PATH に配置する。

    BGP スピーカーがルートを発信する場合は次の 2 パターンになる。

    • 内部ピアの場合

      空の AS_PATH 属性を追加する。

    • 外部ピアの場合

      AS_PATH 属性に、タイプ AS_SEQUENCE のパスセグメントの独自の AS 番号を追加する。

  • NEXT_HOP

    次の宛先として使用する必要があるルーターの IP アドレスを定義する。

  • MULTI_EXIT_DISC

    外部(AS 間)リンクで使用して、同じ隣接 AS への複数の出口または入口を区別する。 外部の AS から自 AS へ向かってくる、内向きの通信を制御しており、隣接 AS から受信した MULTI_EXIT_DISC 属性は、他の隣接 AS に送信する UPDATE メッセージにこの属性を含めない。

    送信元から宛先 A へは 1,2 の経路を使った方がよく、宛先 B へは 3,4 の経路を使った方がいい場合などに、MULTI_EXIT_DISC を設定することで宛先に応じて使用する経路を変更することができる。(ここでの宛先は1.1.1.0/24などのネットワークを表す。) MULTI_EXIT_DISC

  • LOCAL_PREF

    BGP スピーカーはこれを使用して、広告されたルートに対する広告するスピーカーの優先度を他の内部ピアに通知する。 外部(AS 間)リンクで使用して、同じ隣接 AS への複数の出口または入口を区別する。 自 AS から外部へ送信される、外向きの通信を制御し、外部ピアに送信する UPDATE メッセージにこの属性を含めない。

    以下の図のように宛先への経路が 2 通りあり、片方が帯域幅が広いということが事前にわかっている場合などに、LOCAL_PREF を設定することで帯域幅の広い経路を優先して使用するようになる。 LOCAL_PREF

  • ATOMIC_AGGREGATE

    プレフィックスが集約されたものであることを表す。(フラグの役割)

  • AGGREGATOR

    プレフィックスを集約した (最後の)AS 番号および BGP スピーカーの BGP 識別子を表す。

経路を決定する優先度は以下の表の上から順に優先的に判断される。(ネットワークスペシャリスト 令和 3 年 午後 2 問 2 より)

評価順説明
1LOCAL_PREF の値が最も大きい経路情報を選択
2AS_PATH の長さが最も短い経路情報を選択
3ORIGIN の値が IGP, EGP, INCOMPLETE の順で選択
4MULTI_EXIT_DISC の値が最も低い経路情報を選択
5eBGP ピアで受信した経路情報, iBGP ピアで受信した経路情報の順で選択
6NEXT_HOP が最も近い経路情報を選択
7ルータ ID が最も小さい経路情報を選択
8ピアリングに使用する IP アドレスが最も小さい経路情報を選択

例えば、同じ宛先ネットワークアドレスの経路情報が 2 つ存在した場合(以下の図)に上から順に評価し、どちらか 1 つに絞ることができた時点で評価を終了する。

BGP4 AS_PATH

AS 1 から AS7 までのパスは 2 つ存在する。

  1. AS1, AS4, AS5, AS7
  2. AS1, AS2, AS3, AS6, AS7

2 つのLOCAL_PREFが同じであった場合に、AS_PATH の長さで経路を判定し、 1 の方が 2 よりも長さが短いので、1 番の経路が選択される。

参考