BGP-4 仕様


1. BGP-4について

1.1. BGPの位置づけ

現在のインターネットでは、さまざまな経路制御プロトコルが用いられています。 経路制御プロトコルにはそれぞれに固有の特徴がありますが、扱うネットワークの 規模に着目すると、IGPEGPというグループに 分類することができます。

IGPは、Interior Gateway Protocolの略で、主に組織内のネットワークを 制御するために用いられます。 よく知られているIGPには、RIP、OSPF、IS-ISがあります。

EGPは、Exterior Gateway Protocolの略であり、IGPで運用される組織の間を 取り持ちます。 EGPは、IGPで管理されるネットワークを結びつけ、 インターネット全体の接続性を提供します。 よく知られているEGPとしてはBGPがあります。

従来は、BGPといえば一般のユーザではなくISPが使用するものでしたが、 最近では、IP-VPNサービスに代表されるように、一般のユーザがBGPを 使用するケースが増えています。

1.2. BGPの特徴

BGPでは、インターネットがAS(Autonomous System)という 部分から構成されているものと考えます。 ASは、特定の管理主体が統一的に管理するネットワークの範囲です。

ASには、AS番号という16bitの識別子が一意に割りあてられます。 ただし、64512から65535の範囲の番号は、プライベートな利用を想定しており、 重複して割りあてられる可能性があります。

BGPにはいくつかのバージョンがありますが、現在のインターネットでは、 バージョン4がよく使われており、これをBGP-4とよびます。 BGP-4に関する基本的な仕様はRFC1771として提案されています。

BGP-4は、BGP-3(BGP version 3)の拡張で、 CIDR(Classless Inter-Domain Routing)をサポートしていることが大きな特徴です。 他の経路制御プロトコルと比べると、次のような特徴があります。

1.3. IBGPとEBGP

以下の例では、100番のASと200番のASがルータで接続されています。 RFC1771では、BGPに関係するルータなどをBGPスピーカ(speaker)とよんでいますが、 この文書ではBGPルータとよびます。

なお、実際のネットワーク構成では、ASの外へ接続するルータが3つ以上あったり、 1つのBGPルータが2つ以上のASと接続することもあります。

         +----------------+                +----------------+
         | AS 100         |                | AS 200         |
         |                |                |                |
         |                |                |                |
      +-----+          +-----+          +-----+          +-----+
   ==>|  R1 |<========>|  R2 |<========>|  R3 |<========>|  R4 |<===
      +-----+   IBGP   +-----+   EBGP   +-----+   IBGP   +-----+
         |                |                |                |
         |                |                |                |
         |                |                |                |
         +----------------+                +----------------+

      R1〜R4: BGPルータ

この図の中の矢印は、BGPルータ間のTCPコネクションを示しています。このうち、 同じASに属するBGPルータの間のTCPコネクションを IBGP (Internal BGP)といいます。 一方、異なるASに属するBGPルータの間のTCPコネクションを EBGP (External BGP)といいます。

BGP-4では、他のBGPルータから教わった経路を、他のBGPルータに伝えようとしますが、 IBGPから教わった経路を他のIBGPへ伝えることはありません。 したがって、ASの中に複数のIBGPがあるときには、 それらをフルメッシュで接続する必要があります。

IBGPでは、ルータが直接につながっている必要はなく、 一般的には、複数のルータを経由してつながっています。 したがって、IBGP間の通信に必要な経路は、 OSPFなどのIGPによって用意されることになります。

一方、EBGPについては、間にルータをはさむことはなく、直接につながります。 実装によっては、直接につながらない場合を扱うものがありますが、 この文書では言及しません。

1.4. パス属性

BGPの経路情報には、パス(Path)の情報が含まれています。パスとは、 宛先に至るまでに通過するASを列挙したものです。 BGPでは、経路を表現する情報の要素をパス属性(Path Attribute)とよんでいます。 主要なパス属性をいくつか説明します。

1.5. BGP-4のメッセージ

BGPルータはTCPの179番ポートに対してコネクションを接続します。 自分側のポート番号については、179番以外の空いている番号を使います。 2つのBGPルータが同時に接続を要求したときには、そのうちの1つを残し、 もう1つを終了します。

BGPルータは、 OPENUPDATEKEEPALIVENOTIFICATIONという4種類のメッセージを交換します。

KEEPALIVEメッセージを送信する間隔は、 HoldTimeというパラメータで決まります。 RTシリーズの実装では、HoldTimeパラメータのデフォルト値を180秒としています。 BGPルータは、 HoldTimeパラメータの1/3程度の間隔(つまり60秒のデフォルト値) でKEEPALIVEメッセージを送信します。 そして、 HoldTimeパラメータの時間だけ待ってもKEEPALIVEメッセージを受信できなかったら、 コネクションがダウンしたものと判断します。

UPDATEには、パス属性、 NLRI(Network Layer Reachability Information)Withdrawn Routesの3つが含まれます。 パス属性は、前述のとおり、 経路の通り道となるパスの情報です。そして、NLRIは到達可能な宛先を、 Withdrawn Routesは到達不可能な宛先を示します。


2. RTシリーズの実装

2.1. 機能の概要

RTシリーズは、RFC1771で規定される基本的な処理に対応します。 ただし、RFC1771に記述される機能の一部には対応していないものがあります。 また、RFC1771よりも新しいRFCで規定される機能 (ConfederationやRoute Refrectorなど)には対応していません。

機能や属性の対応状況は以下のようになっています。

RTシリーズが対応しているもの


RTシリーズがまだ対応していないもの


RTシリーズが対応しないもの

制限事項


3. 関連ドキュメント

以下のドキュメントを用意しています。