手当たり次第に書くんだ

飽きっぽいのは本能

BGP の基本を復習する – AS、eBGP/iBGP、経路属性、ポリシー制御を整理する

次の仕事で 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 と比較するとわかりやすいです。

項目IGPBGP
代表例OSPF、IS-IS、RIPBGP
主な用途組織内、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種類です。細かい仕様を読む前に、この役割だけでも押さえておくとパケットキャプチャやログを読みやすくなります。

メッセージ役割
OPENBGP セッション開始時の能力や AS 番号などを交換する
KEEPALIVEセッション維持のために送る
UPDATE経路の広告や取り消しを行う
NOTIFICATIONエラーやセッション終了を通知する

通常の運用で重要になるのは UPDATE です。どの経路を受け取り、どの属性を持ち、どの経路が best path として選ばれたかを見ることになります。

BGP 属性を見る

BGP は属性を使って経路を選びます。最短経路というより、属性とポリシーで経路選択を行うと考えた方が実態に近いです。

属性意味
AS_PATH経路が通過してきた AS の列。短い方が好まれやすい
NEXT_HOPその経路へ向かう次の転送先
LOCAL_PREFAS 内でどの出口を優先するかを示す。大きい方が優先される
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 は外部との境界、責任分界、経路ポリシーを整理する技術です。インターネットだけでなく、クラウドやデータセンターでも登場するため、基礎だけでも押さえておく価値があります。

BGP の基本を復習する – AS、eBGP/iBGP、経路属性、ポリシー制御を整理する

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る