次の仕事で BGP が中心になりそうだったため、以前に簡単な復習メモを書いていました。この記事では、そのメモをもとに、BGP を読むときに最低限押さえたい考え方を整理します。
BGP は、インターネット全体の経路交換で使われるプロトコルとして有名です。ただ、現在ではインターネット接続だけではなく、データセンター、クラウド接続、Kubernetes のネットワーク、EVPN などの文脈でも出てきます。
BGP は何をするプロトコルか
BGP(Border Gateway Protocol)は、AS(Autonomous System)間で経路情報を交換するためのルーティングプロトコルです。OSPF のようにネットワーク内部の最短経路を計算するというより、どの AS を経由して宛先へ到達するかを制御するプロトコルです。
BGP は TCP の 179 番ポートを使ってピアを張り、経路情報を UPDATE メッセージで交換します。つまり、BGP は IP パケットを直接投げ合うだけのプロトコルではなく、TCP セッション上で経路制御情報をやり取りします。
IGP と BGP の違い
BGP を理解するときは、OSPF などの IGP と比較するとわかりやすいです。
| 項目 | IGP | BGP |
|---|---|---|
| 代表例 | OSPF、IS-IS、RIP | BGP |
| 主な用途 | 組織内、AS 内の経路制御 | AS 間、外部接続、ポリシーベースの経路制御 |
| 経路選択の考え方 | メトリックやトポロジーに基づく | 属性とポリシーに基づく |
| 収束 | 比較的速い | 慎重で遅めになりやすい |
| 設計思想 | 内部ネットワークを正しく到達させる | どの経路を受け入れ、どこへ広告するかを制御する |
BGP は、単に最短経路を選ぶプロトコルではありません。経路を受け取る、選ぶ、広告する、隠す、優先するというポリシー制御が中心になります。
AS と eBGP / iBGP
AS は、単一の管理方針のもとで運用されるネットワークのまとまりです。インターネット上では AS 番号によって識別され、異なる AS 間で経路情報を交換するために BGP が使われます。
- eBGP: 異なる AS 間で張る BGP セッション
- iBGP: 同じ AS 内で張る BGP セッション
- AS_PATH: 宛先へ到達するまでに通過する AS の列
- NEXT_HOP: その経路へ向かう次の転送先
同じ BGP でも、eBGP と iBGP では扱いが変わります。eBGP は AS 間の境界で経路を交換する用途、iBGP は AS 内で外部経路を共有する用途として考えると整理しやすいです。
BGP メッセージの基本
BGP のメッセージは大きく次の4種類です。細かい仕様を読む前に、この役割だけでも押さえておくとパケットキャプチャやログを読みやすくなります。
| メッセージ | 役割 |
|---|---|
| OPEN | BGP セッション開始時の能力や AS 番号などを交換する |
| KEEPALIVE | セッション維持のために送る |
| UPDATE | 経路の広告や取り消しを行う |
| NOTIFICATION | エラーやセッション終了を通知する |
通常の運用で重要になるのは UPDATE です。どの経路を受け取り、どの属性を持ち、どの経路が best path として選ばれたかを見ることになります。
BGP 属性を見る
BGP は属性を使って経路を選びます。最短経路というより、属性とポリシーで経路選択を行うと考えた方が実態に近いです。
| 属性 | 意味 |
|---|---|
| AS_PATH | 経路が通過してきた AS の列。短い方が好まれやすい |
| NEXT_HOP | その経路へ向かう次の転送先 |
| LOCAL_PREF | AS 内でどの出口を優先するかを示す。大きい方が優先される |
| MED | 隣接 AS に対して入口の優先度を伝えるために使われる |
| ORIGIN | 経路の起源を示す属性 |
| COMMUNITY | 経路に意味付けをしてポリシー制御に使う |
BGP の設計では、属性をどう付けるか、どの属性を信用するか、どこで書き換えるかが重要です。設定コマンドよりも、経路にどのような意味を持たせるかが設計の中心になります。
BGP はインターネットだけのものではない
BGP というと、プロバイダー間のインターネット経路交換を連想しがちです。しかし、現在では閉域網、データセンター、クラウド接続、Kubernetes の CNI、EVPN/VXLAN などでも BGP が使われます。
特にクラウドやコンテナ環境では、ルーティングプロトコルとしての BGP だけでなく、サービス到達性やノード間経路の広告手段として BGP が登場します。つまり、BGP は ISP だけの専門技術ではなく、インフラ設計全体で見かける技術になっています。
BGP を読むときの観点
BGP の設定やログを見るときは、まず次の観点で整理すると読みやすくなります。
- どの AS とピアを張っているのか
- eBGP なのか iBGP なのか
- どの経路を受信しているのか
- どの経路を広告しているのか
- best path に選ばれた理由は何か
- 経路フィルタ、prefix-list、route-map などで何を制御しているのか
- 障害時にどの経路へ切り替わる設計なのか
BGP は設定そのものより、経路をどこから受け取り、どこへ渡すのかを追う方が理解しやすいです。経路制御の責任境界を見るプロトコル、と考えると扱いやすくなります。
参考書籍
書籍
マスタリング TCP/IP ルーティング編
OSPF、IS-IS、BGP、経路制御、ルーティング設計の基礎を体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。
関連する記事
まとめ
BGP は、AS 間で経路を交換するためのプロトコルですが、本質は単なる経路交換ではなく、ポリシーベースの経路制御にあります。どの経路を受け取り、どの経路を選び、どの経路を広告するかを制御するのが BGP の中心です。
OSPF などの IGP が内部到達性を整理する技術だとすれば、BGP は外部との境界、責任分界、経路ポリシーを整理する技術です。インターネットだけでなく、クラウドやデータセンターでも登場するため、基礎だけでも押さえておく価値があります。



