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シリーズが対応しないもの

2.2. IBGPの対応機種とファームウェアリビジョン

RTシリーズでは、以下の機種およびファームウェアで、IBGPをサポートしています。

機種 ファームウェア
RTX830 Rev.15.02.01以降
NVR700W Rev.15.00.02以降
RTX1210 Rev.14.01.05以降
RTX5000 Rev.14.00.08以降
RTX3500 Rev.14.00.08以降
FWX120 Rev.11.03.02以降
RTX810 Rev.11.01.09以降
RTX1200 Rev.10.01.42以降
RTX3000 Rev.9.00.56以降

2.3. TCP MD5認証の対応機種とファームウェアリビジョン

RTシリーズでは、以下の機種およびファームウェアで、TCP MD5認証をサポートしています。

機種 ファームウェア
RTX830 Rev.15.02.01以降
NVR700W Rev.15.00.02以降
RTX1210 Rev.14.01.11以降
RTX5000 Rev.14.00.18以降
RTX3500 Rev.14.00.18以降
FWX120 Rev.11.03.22以降
RTX810 Rev.11.01.28以降

制限事項


3. 関連ドキュメント

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