BGP(Border Gateway Protocol)は、インターネット上で異なるネットワーク(AS:Autonomous System)同士が経路情報を交換するためのプロトコルです。 世界中のインターネットが接続できているのは、このBGPが「どのネットワークを通るか」を調整しているからです。
BGPとは?
BGPは、経路制御の最上位プロトコルであり、インターネット上のAS(自律システム)同士の通信経路を決定します。 OSPFやRIPのような内部ネットワーク用ルーティングプロトコルではなく、外部との通信経路(インターネット全体)を最適化するために使われます。
- RIP/OSPF/EIGRP:社内(LANや拠点間)での経路制御(IGP)
 - BGP:インターネット全体やAS間での経路制御(EGP)
 
このように、BGPは「ネットワークとネットワークをつなぐプロトコル」と言えます。
AS(Autonomous System:自律システム)とは?
ASとは、単一の管理者のもとで運用されているネットワークの集合を指します。 たとえば、ISP(プロバイダ)や大企業などが1つのASを持ちます。
- AS番号(ASN)は、インターネット上で一意に割り当てられます。
 - 例:AS12345、AS4689など
 
AS番号には次の2種類があります。
| 種類 | 範囲 | 用途 | 
|---|---|---|
| Public AS番号 | 1〜64495 | インターネット上で使用 | 
| Private AS番号 | 64512〜65534 | 企業内部などで使用 | 
BGPの基本動作
BGPルータ同士は、TCPポート179を使用してセッション(ピア関係)を確立し、経路情報を交換します。 この通信関係をBGPピアと呼びます。
ピアの種類
- EBGP(External BGP):異なるAS間でのBGPピア
 - IBGP(Internal BGP):同一AS内でのBGPピア
 
IBGPでは、ループ防止のためにフルメッシュ構成(全ルータ間でピアを張る)やルートリフレクタが利用されます。
BGPの経路選択アルゴリズム
複数の経路が存在する場合、BGPは独自の優先ルール(属性)に基づいて最適経路を選択します。 これをBGPの経路選択ルールと呼びます。
主なBGP属性
| 属性 | 説明 | 優先順位 | 
|---|---|---|
| Weight | Cisco独自の属性。数値が大きいほど優先。 | 1 | 
| Local Preference | AS内での優先度。大きい値を優先。 | 2 | 
| AS Path | 通過したASの数。短い経路を優先。 | 3 | 
| Origin | 経路の起点種別(IGP、EGP、Incomplete)を比較。 | 4 | 
| MED(Metric) | 外部ASからの経路比較。小さい値を優先。 | 5 | 
| eBGP > iBGP | 外部からの経路を内部より優先。 | 6 | 
| Router ID | 最終的な決定に使用。 | 7 | 
これらのルールを順に評価し、最も適切な経路がルーティングテーブルに登録されます。
経路選択の例
AS100(自社) ── AS200(ISP1)
      └──── AS300(ISP2)
- ISP1経由:AS_PATH = 200
- ISP2経由:AS_PATH = 300 400
→ AS_PATHの短いAS200経由が選択される。
ルート広告の制御
BGPでは、ポリシーを設定して特定の経路を広告・抑制することができます。 これにより、複数のISPを使ったトラフィック制御や負荷分散が可能になります。
- prefix-list:広告する経路の指定
 - route-map:経路属性を変更・制御
 - filter-list:AS Pathに基づくフィルタリング
 
設定例(Cisco IOS)
router bgp 65001
 bgp log-neighbor-changes
 neighbor 192.168.1.2 remote-as 65002
 network 10.0.0.0 mask 255.255.255.0
上記の例では、AS65001のルータがAS65002とEBGPピアを確立し、自ネットワーク10.0.0.0/24を広告しています。
トラブルシューティングのポイント
- TCPポート179が閉じていないか確認(ファイアウォール設定)
 - neighbor設定でAS番号やIPが一致しているか確認
 - 経路フィルタが誤ってブロックしていないか確認
 
BGPは非常に柔軟ですが、その分構成を誤ると通信断が発生します。 設定変更時は経路広告内容を慎重に確認しましょう。
まとめ
- BGPはAS間で経路を交換するためのプロトコル。
 - AS番号でネットワークを識別し、経路属性で最適経路を決定。
 - IBGPとEBGPを使い分けて内部・外部の経路制御を実現。
 - ポリシー制御(route-map, prefix-list)で詳細なトラフィック調整が可能。
 
BGPはインターネットの「道路標識」を担う重要なプロトコルです。 基本動作と経路選択の仕組みを理解することで、より上級のネットワーク設計にも応用できます。
