はじめに
インターネットは世界中の組織が自分のネットワーク同士をつなぎ合わせて成り立っています。各組織は独立して運用されるため内部の事情やビジネス方針に合わせて経路を選びたいというニーズがあります。そこで使われるのがBGPです。
BGPはBorder Gateway Protocolの略で、異なる組織同士の境界で経路情報を交換するための仕組みです。
本記事では、専門用語をできるだけ噛み砕きながら、BGPの役割、動作の基本、設計や運用のポイントまでを丁寧にご説明します。
この記事のゴール
以下の三点が腑に落ちる状態を目指します。
- BGPがどんな場面で必要になるのか
- BGPがどのように経路を選ぶのか
- 実運用でどのような注意点があるのか
BGPの基本概念
BGPは経路制御のためのプロトコルで、ルーター同士が「どのIPプレフィックスにどうやって到達できるか」という情報を交換します。BGPは到達性だけでなく、経路に付くさまざまな属性をもとに「どの経路を使うか」を決めます。最短距離だけで判断しないため、ビジネス上の方針、回線コスト、トラフィックの分散などを反映した柔軟な制御が可能です。
BGPが解決する課題
社内やデータセンターの中では、OSPFのような内部向けのルーティングプロトコルがよく使われます。
OSPFはリンクの状態を元に最短経路を高速に計算でき、同じ管理下にあるネットワークで効率よく動作します。しかし、組織の外に出ると事情は異なります。回線の契約条件やトラフィックエンジニアリングの意図を反映させながら相手先に到達するためには、最短経路だけでは不十分です。
ここでBGPが登場し、組織の境界に立つルーター、すなわちゲートウェイ間で、方針を加味した経路交換を実現します。
ASとAS番号のイメージ
BGPの世界では、インターネットを多数の自律した組織の集合として捉えます。この組織を自律システムと呼び、ASと略します。各ASは重複しない識別子であるAS番号を持ちます。AS番号はインターネットレジストリから割り当てられ、近年は三十二ビットの番号も一般的です。
ASは国や企業、クラウド事業者、大学など多様で、BGPはASとASの間をつなぐための共通言語として働きます。BGPが交換する経路情報には「この経路はどのASを通ってきたか」という履歴が含まれ、これを基に経路の良し悪しを評価できます。
経路という情報の形
BGPでやりとりされる基本単位はIPプレフィックスです。例えば十個のサブネットをまとめて一つの大きなブロックとして広告する集約もできます。
経路には次ホップ、ASの通過順序、出自、優先度を左右する各種属性が付きます。ルーターはそれらの属性を比較し、もっとも望ましい一本を選んで経路表に反映します。
BGPとOSPFの違い
OSPFは同じASの内部で完結する前提で設計されたリンクステート型のプロトコルです。各リンクにコストを貼り、トポロジ全体を把握して最短経路木を計算します。
対してBGPは経路ベクトル型で、経路に方針を表す属性を積み上げながら選択します。OSPFは速い収束と均一な制御が得意、BGPは異なる組織間でのポリシー表現が得意、と覚えていただくと整理しやすいでしょう。
両者は競合ではなく補完関係にあります。社内の到達性はOSPFで、インターネットや複数拠点間の外向きはBGPで、と役割分担する構成が一般的です。
ゲートウェイという言い方
境界に立つルーターはしばしばゲートウェイと呼ばれます。外部のASとBGPセッションを張る機器で、回線や対向先ごとに方針を設定します。同じASの中でも外向きの方針を統一するために、内部のルーター間でiBGPという形でBGP情報を共有します。外部とのやりとりはeBGP、内部はiBGPと呼び分ける点が運用の基本です。
経路選択の考え方
BGPは複数の候補経路があるとき、属性の比較順序にもとづいて一本をベストとみなします。一般的な流れを要点で押さえると次の通りです。
- 管理者が最優先で付ける重みやローカルプリファレンスを比較し、数値が大きいものを優先します。これはAS内の優先度を明示する手段です。
- 自ASで起点となった経路を好みます。
- ASの通過数が少ない経路を選びます。AS_PATHが短いほど、論理的に近い経路と見なされます。
- 出自やMEDなどの属性を比較し、細かな優先度を付けます。MEDは複数の接続点がある相手ASに「こちら側から入ってきてほしい」というヒントを与える値です。
- それでも差が付かない場合は、eBGPの経路をiBGPより優先し、次ホップへの内部コストが小さいものを選びます。最終的にはルーターIDなどで決着します。
属性の例
扱う属性には、ローカルプリファレンス、AS_PATH、オリジンタイプ、MED、コミュニティ、次ホップなどがあります。コミュニティは経路にタグを添える仕組みで、受け取った側がタグに応じて優先度や経路の扱いを変える、といった柔軟な設計が可能になります。
eBGPとiBGPの役割
異なるAS間で張るのがeBGP、同じAS内のルーター同士で張るのがiBGPです。iBGPは外部から学んだ経路をAS内に広め、どの出口から外へ出るかを統一的に決めるために使います。規模が大きくなると、iBGPの全台メッシュは現実的ではなくなります。そのためルートリフレクターを配置して集約的に配布したり、コンフェデレーションでASを内部的に分割したりする設計が行われます。
実運用での設計ポイント
BGPは自由度が高いぶん、設計での考慮事項も多岐にわたります。重要な観点をいくつか挙げます。
- フィルタリングの徹底
誤った経路を広告しないことは最優先です。受信側でも、許可したプレフィックスだけを受け入れる陽的なリストを用意します。 - 経路の集約
細切れのプレフィックスを必要に応じて集約し、経路表の肥大化とフラップの影響を抑えます。 - 優先度の設計
複数回線の使い分けやバックアップ経路の準備には、ローカルプリファレンスやAS_PATHの調整が有効です。トラフィックを片系に寄せたい場合はAS_PATHプリペンドで遠回りに見せ、逆に積極的に受けたい経路は値を高くして選ばせます。 - 収束と監視
BFDなどでピアダウンを素早く検知し、経路変化を可観測化します。ログとメトリクスを合わせて、どの属性が選択に効いたかを追えるようにしておくと分析が楽になります。 - スケーラビリティ
iBGPはルートリフレクターで階層化し、ポリシーはテンプレート化します。設定の重複はヒューマンエラーの温床です。
セキュリティの基本
BGPは設計当初から認可や暗号化が強いわけではありません。そこで近年は、経路の正当性を検証するRPKIの導入が広がっています。ROAを登録して自組織のプレフィックスとAS番号の紐付けを公開し、検証に成功した経路だけを優先して受け入れる運用が推奨されています。ピアごとのTTLやMD5認証の設定、最大受信数の制限など、基本的な衛生管理もあわせて実施します。
OSPFとの連携
現実のネットワークでは、BGPで学んだ外向きのデフォルトや特定のプレフィックスを、OSPFへ再配布する設計がよくあります。ただし再配布し過ぎると、内部の最短経路計算とBGPの方針が干渉することがあります。境界ルーターでの再配布範囲を最小限に保ち、OSPF側ではエリア設計とコスト設計を丁寧に行うことが肝要です。
よくあるトラブルと考え方
- 経路が選ばれない
次ホップに到達できない、あるいはローカルプリファレンスの設定が想定外で低い、といった原因が多いです。まずは次ホップ解決と属性値の確認から始めます。 - 片方向の経路不一致
送りはA回線、戻りはB回線になる現象は少なくありません。AS_PATHやMED、コミュニティを用いて往復を合わせる方針を設計します。 - 経路フラップ
不安定な回線や誤設定があると経路が頻繁に上下します。抑止にはフラップダンピングや、上流側との調整が有効です。 - 経路表の肥大化
受信する範囲を明確に絞り、必要ならデフォルトルートだけを受ける構成も検討します。内部のメモリとCPUに見合う規模で運用することが重要です。
マルチクラウドやCDNでのBGP
近年はクラウド接続やCDNでもBGPが不可欠です。専用線やインターネットVPNでクラウドに接続する際、BGPで到達性を動的にやりとりすれば、障害時に自動で別経路へ切り替えられます。
複数地域にデプロイしたサービスでは、外向きの広告経路を調整することで、ユーザーから近い拠点へ自然に誘導することも可能です。ビジネス的な要件を経路の優先度に落とし込むことで、コストと体感性能の両立が図れます。
具体的なイメージ
都市間を結ぶ高速道路網を思い描いてください。
OSPFは市内の道路整備に近く、距離や渋滞度合いで最短ルートを素早く見つけます。
BGPは都市間の物流計画に似ています。距離だけでなく、通行料金や契約、混雑時の振り分け、災害時の迂回といった要素を総合評価し、「どの入口から出入りするか」を決めます。境界にある料金所がゲートウェイ、自治体に相当する単位がAS、自治体に割り当てられた番号がAS番号、と読み替えると全体像がつかみやすくなります。
BGPメッセージとピアリングの確立
BGPはTCPでセッションを張り、四種類のメッセージで動作します。最初にパラメータを交換するオープン、経路の新設や撤回を伝えるアップデート、状態維持のためのキープアライブ、異常を通知するノーティフィケーションです。
ピアリング時は相手のAS番号と接続インターフェース、アドレス族を正しく指定し、片側だけに設定が入っていないといった単純な齟齬を避けることが重要です。
設定の基本項目
初学者がつまずきやすい点として、更新元インターフェースや送信元アドレスの明示、近隣の保持数があります。
テンプレート化して、意図したプレフィックスにのみタグやコミュニティを付与し、優先度の調整は変更履歴を残しながら少しずつ進めると安全です。ぜひ覚えてください。
小規模拠点での活用と段階的な導入
一つの回線だけを持つ小規模拠点でも、将来の二重化を見据えてBGPを導入する利点があります。
最初はデフォルトルートだけを受け取り、外部へは必要最小限のプレフィックスだけを広告します。その後、回線を追加した時点でローカルプリファレンスやAS_PATHの調整により、主系と待機系の優先度を分けます。
障害試験を計画的に実施し、切り替え時間やアプリケーションの体感を計測しておくと、移行時の不安を減らせます。
運用ドキュメントの作り方
BGPは設定の一行でトラフィックの流れが大きく変わるため、意図と根拠を残す文化が重要です。
ピアごとの合意内容、フィルター方針、コミュニティの意味、優先度の基準、計画停止や障害時の手順を一枚の運用台帳にまとめ、変更前後で差分が読みやすい形に整えておきます。教育用には、OSPFのコスト設計との対比図や、AS間の接続構成図を併記すると理解が深まります。
まとめ
BGPはインターネットという巨大な分散システムを支える要の仕組みです。最短経路ではなく方針に基づく選択を行うことで、組織の意図を経路に反映できます。
ASとASの境界に立つゲートウェイで経路を交換し、属性の優先度に従って最適な一本を選ぶ。この一連の流れを押さえれば、マルチホームやマルチクラウド、CDN、拠点間接続など、さまざまな設計課題に応用できます。
内部はOSPF、外部はBGPという補完関係も忘れずに、フィルタリングとセキュリティ、監視を合わせて堅牢なネットワークを育てていきましょう。