コンテンツにスキップ

BGPの全体像

BGP は、AS 間で経路情報を交換し、経路属性とポリシーに基づいて経路を選ぶ Path Vector 型のルーティングプロトコル。

BGP は Border Gateway Protocol の略で、インターネットの AS 間ルーティングで使われる。OSPF や EIGRP のように組織内の最短経路を求める IGP とは違い、BGP は「どの AS を通るか」「どの経路を優先するか」というポリシー制御が重要になる。


BGP は、組織や事業者の境界を越えて経路情報を交換するために使う。

主な用途は次のとおり。

  • インターネット接続
  • 複数 ISP とのマルチホーム
  • AS 間の経路制御
  • 大規模ネットワーク内の経路ポリシー制御
  • VPN や EVPN などでの経路情報配布

AS は Autonomous System の略で、単一の管理ポリシーで運用されるネットワークの単位である。

AS 65001
↓ eBGP
AS 65002
↓ eBGP
AS 65003

BGP は AS 番号を使って経路の通過経路を表す。AS_PATH 属性には、経路が通ってきた AS の列が入る。


種類 意味
eBGP 異なる AS 間で張る BGP
iBGP 同じ AS 内で張る BGP

eBGP は AS 間で経路を交換するために使う。iBGP は、外部から受け取った BGP 経路を同じ AS 内へ配布するために使う。

iBGP には、学習した iBGP 経路を別の iBGP ピアへそのまま広告しないという重要な性質がある。そのため、大きな AS ではフルメッシュ、Route Reflector、Confederation などを考える必要がある。


BGP は属性を使って経路を選ぶ。

代表的な属性は次のとおり。

属性 役割
AS_PATH 経路が通ってきた AS の列
NEXT_HOP 次に転送すべきルータ
LOCAL_PREF AS 内でどの出口を優先するか
MED 隣接 AS にどの入口を使ってほしいかを伝える値
ORIGIN 経路の由来
COMMUNITY 経路へ付けるタグのような属性

BGP は単純にホップ数や帯域だけで経路を決めるわけではない。属性とポリシーによって、意図した経路制御を行う。


1. TCP 179 で BGP ピアを確立する
2. OPEN メッセージで能力や AS 番号などを確認する
3. UPDATE メッセージで経路情報を交換する
4. 属性に基づいてベストパスを選ぶ
5. 選んだ経路をルーティングテーブルへ反映する
6. 必要に応じて他のピアへ広告する

BGP は TCP を使う。OSPF や EIGRP のように直接 IP 上で独自の隣接関係を作るのではなく、TCP セッション上で経路情報を交換する。


誤解 実際
BGP は常に最短経路を選ぶ BGP は属性とポリシーに基づいて経路を選ぶ
BGP はインターネット専用である 大規模内部ネットワークや VPN / EVPN でも使われる
iBGP と eBGP は AS 番号以外同じである 経路広告ルールや next-hop の扱いなどが異なる
AS_PATH が短ければ必ず勝つ LOCAL_PREF など、より先に評価される属性がある