BGP

読み:びーじーぴー / 英語表記:Border Gateway Protocol

インターネットを構成する組織(AS)同士が、経路情報を交換するためのルーティングプロトコル。経路情報の交換にTCPを使う。

イマシルちゃんの解説

インターネットは、プロバイダや大学、大企業みたいな、たくさんの「組織のネットワーク」がつながってできてるんだ。

組織の中の道案内はRIPやOSPFにまかせて、
「うちの組織から、あの組織へはこう行けるよ」って、組織と組織の間で道を教え合うのがBGPなんだよ。
インターネット全体の道案内を支える、とっても大事なプロトコルなんだ!

より深い解説

定義

BGP(Border Gateway Protocol)は、AS(Autonomous System:自律システム)の間で経路情報を交換するルーティングプロトコルで、EGP(Exterior Gateway Protocol)の代表である。現在使われているのはBGP-4(RFC 4271)。経路情報の交換にはTCPのポート179番を使う。

ASは、1つの組織が一貫した方針で運用するネットワークのまとまりで、AS番号で識別される。

パスベクトル型

BGPはパスベクトル型のプロトコルで、経路情報に、その経路が通ってきたASの番号の並び(AS_PATH)を含める。受け取った経路のAS_PATHに自分のAS番号が含まれていれば、ループしていると判断して捨てる。

経路の選び方

BGPは、最短の経路を機械的に選ぶのではなく、経路に付けられたパス属性をもとに、組織の方針(ポリシー)に従って経路を選ぶ。

主なパス属性意味
LOCAL_PREF自分のASから出ていくときに、どの経路を優先するか。AS内で共有する
AS_PATH通ってきたASの並び。短いほど優先される
MED隣のASに対して、自分のASへどの入口から入ってほしいかを伝える
NEXT_HOP次に送る先のルータのアドレス

eBGPとiBGP

種類相手
eBGP異なるASのルータ
iBGP同じAS内のルータ

iBGPで受け取った経路は、ほかのiBGPの相手に転送しないという決まりがある(ループ防止のため)。そのため、iBGPではAS内のすべてのルータ同士を接続する(フルメッシュ)か、ルートリフレクタを使う必要がある。

経路情報の送り方

BGPは、最初の接続時に経路表の全体を送り、その後は変化があったときの差分だけを送る。接続が生きていることは、定期的な KEEPALIVE メッセージで確かめる。インターネット全体の経路は数十万にのぼるため、定期的に全体を送り直すRIPのような方式は使えない。

実際の試験ではここに出る!

この用語が出てくる記事

↑