BGP 【Border Gateway Protocol】 ボーダーゲートウェイプロトコル
概要
BGP(Border Gateway Protocol)とは、複数の独立したネットワークを接続したIPネットワークにおいて、ネットワーク間の経路情報を通信機器間で交換する手順を定めたルーティングプロトコルの一つ。EGPs(Exterior Gateway Protocol)の一種で、現在のインターネットで組織間の接続のために標準的に使われている。インターネットのような大規模なIPネットワークは、各組織が運用するネットワークである「自律システム」(AS:Autonomous System)を構成単位として、これを相互に接続した形態となっている。
BGPは異なるAS間を結ぶ境界上のルータ同士がAS単位の経路情報(自ASが他のどのASと繋がっているか等)を交換する「eBGP」(exterior BGP)と、AS内のルータ間でAS間経路の情報を交換する「iBGP」(interior BGP)で構成される。
経路選択の方式
ルーティングプロトコルは経路選択の方法によっていくつかの種類に分類されるが、BGPは「ディスタンスベクタ型」の一部を修正した「パスベクタ型」と呼ばれる方式となっている。
目的地のASまで考えられる複数の経路について、ネットワーク上の距離に相当する「コスト」(物理的な距離とは必ずしも一致しない)に着目する。隣接するAS間で経路表を交換し合い、どの隣接ASを経由すれば最も低いコストで目的地のASに届くかを算出する。
ディスタンスベクタ型ではプロトコル側で経路のホップ数などを元に各経路のコストが機械的に計算されるが、BGPでは各ASの管理者が経路の優先度などを「パス属性」(path attribute)として設定することができ、柔軟に経路選択を制御することができる。
BGP以前に使われていたEGPなどに比べると、経路情報の交換にTCPを用いて信頼性を高めているほか、経路に変更があったときのみ経路情報を交換することでトラフィックを減らしている。CIDR(Classless Inter-Domain Routing)により複数の経路を集約することで経路情報の爆発的な増大を抑制している。
歴史
初期のインターネット上のAS間接続には、1980年代前半に導入された「EGP」(Exterior Gateway Protocol)が用いられてきた。BGPの最初の仕様は1989年にIETFによってRFC 1105として発行され、1990年代初頭にEGPからの切り替えが行われた。
1994年には最新の「BGP-4」(バージョン4)がRFC 1654として発行され、現在のインターネットもBGP-4によって接続されている。その後20年以上に渡りBGP-4の拡張仕様や詳細規定がいくつも発行されており、BGP-4自体の仕様も1995年のRFC 1771、および、2006年のRFC 4271によって刷新されている。