BGPの基本原理とインターネットにおける役割
BGPとは何か 自律システム(AS)の概念
BGP(Border Gateway Protocol)は、現在のグローバルなインターネットを支える上で不可欠な基幹的な経路制御プロトコルです。これは、ISPや大規模な企業ネットワークといったネットワーク運用組織、すなわち**自律システム(AS:Autonomous System)**と呼ばれるドメイン間で経路情報を交換するために開発されました。
ASには、世界中で一意な識別番号であるAS番号が割り当てられています。BGPルーターは、このAS番号に基づいて、どのネットワークを経由して宛先に到達できるかを判断し、最適な経路を選択します。現在広く使用されているのはバージョン4(BGP4)ですが、マルチプロトコル拡張(BGP4+)により、IPv4経路制御だけでなくIPv6のユニキャスト経路制御にも対応しています。
BGPの重要な役割は、単に最短の経路を見つけることにある内部経路制御プロトコル(IGP、例:OSPFやEIGRP)とは異なり、ネットワーク管理者が設定した独自のルーティングポリシーを実装できる柔軟性を提供することにあります。特定のASを通過させたくない、あるいは特定のASへの接続を優先したいといった、ビジネス要件やセキュリティ要件に基づいた政策的判断をルーティングに反映させることが、BGPの真の使命です。この政策的な側面こそが、BGPがインターネットにおいて最も重要なプロトコルである理由です。
eBGPとiBGP 接続形態の違い
BGPは、接続する相手のASによって、大きく二つの形態に分類されます。
-
eBGP (External BGP):異なるAS間を接続する際に使用されます。組織がその企業ネットワークをグローバルインターネットに接続するためには、eBGPの使用が事実上必須となります。
-
iBGP (Internal BGP):同一AS内部のルーター間で、eBGPから学習した外部の経路情報を内部全体に伝達するために使用されます。
組織はインターネット接続のためにeBGPを使用する必要がありますが、iBGPについては義務ではなく、AS内の要件に基づいて他の内部ルーティングプロトコルを選択することも可能です。
iBGPの設計上の重要な要求事項として、AS内部の全てのルーターに外部経路を確実に伝達するため、ルーター間で論理的なフルメッシュ接続を確立する必要があるという点があります。しかし、大規模ASにおいてフルメッシュを物理的・論理的に構築し維持することは、設定の複雑さやルーターの負荷の観点から非常に困難です。このスケーラビリティの課題を解決するための設定方法のキーワードが、**ルートリフレクター(RR)**です。RRは、AS内部のルーター群(クラスタ)の中央ハブとして機能し、他のRRやeBGPルーターとのみ通信することで、接続の数を大幅に削減し、iBGPの拡張性を高めています。
eBGPとiBGPの役割と特徴をまとめると、以下のようになります。
eBGPとiBGPの比較と適用シーン
| 比較要素 | eBGP (External BGP) | iBGP (Internal BGP) |
| 目的 | 異なるAS間での経路交換 (グローバルポリシー) | 同一AS内での外部経路の伝達 (内部ポリシー) |
| 接続相手 | 他のASに所属するルーター | 同一ASに所属するルーター |
| ASパス処理 | 経路広告時に自身のAS番号をパスに追加 | ASパスは変更しない |
| 推奨トポロジー | 直接接続(ネイバー) |
フルメッシュまたはルートリフレクター (RR) |
| 設置要件 |
インターネット接続には必須 |
組織の要件に応じて選択可能 |
BGPピアリングの確立プロセスと設定の基礎
BGPピアリングの設定キーワード
BGPルーターが他のルーター(ピアまたはネイバー)と経路情報の交換を開始するためには、まずピアリング関係を確立する必要があります。BGPの基本的な設定方法のキーワードと手順は非常にシンプルです。
基本的な設定の流れは、BGPプロセス自体を有効化し、その後、通信相手となるBGPピアのIPアドレスとリモートのAS番号を指定してネイバーを設定することです。例えば、特定のルーターにおけるiBGPネイバーの設定では、グループに対して内部タイプを指定し、接続するピアのIPアドレスを指定する形式が用いられます。
# BGPの有効化 (ベンダー固有コマンド)
# AS内部iBGPグループ設定のキーワード例
set protocols bgp group INT type internal
set protocols bgp group INT local-address [自分のIPアドレス]
set protocols bgp group INT neighbor [ピアのIPアドレス]
BGPネイバー関係の状態遷移とEstablishedの重要性
BGPピアリングが設定された後、ルーター間では接続確立のためのメッセージ交換が行われ、複数の状態(Idle, Connect, Active, OpenSent, OpenConfirmなど)を経て、最終的にEstablished状態に移行します。BGPネイバー関係がEstablished状態になって初めて、ルーターはUpdateメッセージを介して実際に経路情報を交換し、利用可能なルートを決定できるようになります。したがって、運用上、「Established」状態であることを確認することが、BGPの機能が正常に動作していることの最も重要な指標となります。
ピアリングがEstablished状態に到達しない場合、いくつかの一般的なトラブルシューティングのキーワードが存在します。これらは、BGP設定における基本的な要件の不一致に起因することが大半です。具体的には、ピアリングセッションの両側でピアIPアドレスが正しく構成されているかというIP構成の不一致、リモートAS番号の指定が相手と異なっているAS番号の不一致、そして後述する認証鍵の不一致などが挙げられます。
セキュリティを担保するネイバー認証のキーワード
BGPセッションの信頼性とセキュリティを確保するためには、ルーター間のメッセージを認証することが極めて重要です。この目的のために、ネイバー認証が使用されます。これは、事前に設定されたパスワード(MD5認証鍵)を使用してメッセージの正当性を検証する手法です。
ネイバー認証は、不正なトラフィックを排除し、正規の自律システムから送信されたBGPメッセージであることを検証するセキュリティレイヤーを追加します。この設定方法のキーワードは、一般にネイバーのIPアドレスに対してパスワードを設定する形式で実現されます。もしMD5認証鍵が一方にのみ設定されていたり、両側のパスワードが一致していなかったりすると、ピアリングは失敗し、Established状態に移行することはできません。この設定は、基幹プロトコルのセキュリティを担保する上で不可欠な要素です。
運用効率を高めるBGPピアグループの設定キーワード
大規模なASにおいて、多数のiBGPネイバーまたはeBGPネイバーを設定する場合、多くの場合、それらのネイバーに対して共通のルーティングポリシーや設定(例えば、Local Preferenceやフィルタリング設定など)を適用することが求められます。このような状況で運用効率を高めるための設定方法のキーワードが**ピアグループ(Peer Group)**です。
ピアグループは、共通の設定をまとめたテンプレートとして機能します。ピアグループを使用することの主なメリットは以下の二点です。まず、BGPネイバーの設定が簡素化され、コンフィグレーションのメンテナンスが容易になります。次に、ルートをBGPネイバーへアドバタイズする際の処理負荷を軽減する効果も期待できます。これは、設定の一貫性を保ちつつ、ルーターの資源効率を高めるための重要な設計手法です。
BGP経路属性と最適経路選択のメカニズム
BGPが他のルーティングプロトコルと決定的に異なるのは、その高度な経路選択能力です。BGPルーターは、宛先への複数のパスが存在する場合、厳格な階層構造を持つベストパス選択アルゴリズムに基づき、最適な経路を決定します。このアルゴリズムは、AS管理者が設定したポリシーを優先できるように設計されています。
BGPベストパス選択アルゴリズムの概要
BGPルーターは、ローカルに設定された属性から、グローバルに伝播される属性、そして最終的なタイブレークのためのローカル情報に至るまで、定義された順番で経路属性を評価します。この厳格な評価順序を理解することは、BGPの「説明」において最も重要な部分であり、トラフィックエンジニアリングを行う際の基礎となります。
このアルゴリズムの最も重要な原則は、AS内部のポリシーが外部の情報よりも優先されるという点です。これは、WeightやLocal PreferenceといったAS内部で設定・伝播される属性が、評価順序の最上位に位置していることから明らかです。AS管理者は、グローバルなインターネットの経路情報がどうであれ、自社の内部ポリシーを最優先してトラフィックの方向を決定できる仕組みになっています。
BGPベストパス選択アルゴリズム 主要評価属性の優先順位(詳細)
| 優先度 | 属性名 | 評価基準 | スコープ | 説明と重要性 |
| 1 | Weight (ウェイト) | 値が高い方を優先 |
ローカルルーターのみ |
ルーター単位のアウトバウンド制御に利用され、最も優先度が高い属性です。 |
| 2 | LOCAL_PREF (ローカルプリファレンス) |
値が高い方を優先 |
AS内部全体 |
AS全体のアウトバウンド制御の主要属性です。iBGPネイバー間で伝播されます。 |
| 3 | Local Origin (ローカル生成) |
|
AS内部 | 自身がBGPに注入した経路を優先します。 |
| 4 | AS_PATH (ASパス長) |
ASパスが短い方を優先 |
グローバル (トランジティブ) | 経由するASの数が少ないほど良い経路と判断されます。 |
| 5 | Origin (オリジンコード) |
IGP(I) > EGP(E) > Incomplete(?) の順に優先 |
グローバル (トランジティブ) |
経路がBGPにどのように注入されたかを示します。 |
| 6 | MED (Multi Exit Discriminator) |
値が低い方を優先 |
受信ASに対してローカル |
外部ASに対して、自身のASへの優先的な出口を通知するために使用されます。 |
| 7 | eBGP over iBGP |
eBGPで学習したパスを優先 |
接続タイプ | AS境界ルーターの判断基準です。 |
| 8 | IGP Metric |
BGPネクストホップまでのIGPメトリックが低い方を優先 |
iBGPパスのみ | iBGP接続におけるネクストホップ到達性を評価します。 |
| … | (以降、Router ID, Cluster List Length, Neighbor IP) |
最終的なタイブレークに使用されます。 |
主要なBGP経路属性の説明
経路属性の中でも、特に経路の制御ポリシーを設定する際に中心となるのがAS PathとMEDです。
AS Path
AS Path属性は、特定の宛先に到達するためにその経路情報が通過してきたAS番号のリストを示します。これはトランジティブ属性(AS間を伝播する)であり、ベストパス選択においては、ASパスが短い方(経由するASが少ない方)が優先されます。この属性は、トラフィックエンジニアリングにおいて、意図的に経路の優先度を下げる操作を行うための鍵となります。
MED (Multi Exit Discriminator)
MEDは、隣接する外部ASのルーターに対して、自身のASへのトラフィックの**最適な進入ポイント(出口)**を通知するために使用される属性です。AS境界ルーターが複数の接続を持っている場合、外部ASはMEDの値が最も低い出口を優先して利用します。ただし、MEDは受信したAS内でのみ有効であり(ノントランジティブ)、他のASへ伝播することはありません。
BGP設定方法の主要キーワードとルーティングポリシー
経路情報のBGPへの注入方法のキーワード
BGPがインターネットに経路を広告するためには、まずその経路情報がローカルなBGPルーティングテーブルに注入される必要があります。この経路注入を行うための主要な設定方法のキーワードは二つあります。
-
Networkコマンド:特定のプレフィックスとサブネットマスクを正確に指定し、そのルートがローカルルーティングテーブルに存在する場合にBGPに注入します。この方法で注入されたルートは、通常、Origin属性が「IGP (I)」となり、ベストパス選択において高い優先度を持ちます。
-
Import/再配布:OSPFやRIP、スタティックルート、直結ルートなど、他のルーティングプロトコルから学習した経路をBGPへ導入する方法です。この方法で注入されたルートは、通常、Origin属性が「Incomplete (?)」となることが多く、Networkコマンドによる注入よりも優先度が低くなります。
NetworkコマンドとImport/再配布のどちらの方法も、その経路をBGPルーティングテーブルに注入する際に、ルーティングポリシーを通じてフィルタリングや属性の変更を行うことが可能です。
ルーティングポリシーの実現 Route-mapとフィルタリングのキーワード
BGPが提供する最も強力な機能の一つは、きめ細やかなルーティングポリシーの制御です。この制御を実現するための主要な設定方法のキーワードが、Route-mapとPrefix-listです。
-
Prefix-list/Access-list:これらは、宛先ネットワーク(プレフィックス)だけを条件として、経路情報の許可または拒否を行うために使用されるフィルタリングキーワードです。
-
Route-map:BGP設定における最も重要な「ポリシーエンジン」です。Prefix-listが単なるフィルタリング機能であるのに対し、Route-mapは、宛先ネットワークだけでなく、AS Path、Origin、MEDといった主要な経路属性のほとんどを条件にフィルタリングし、さらにその属性値を変更することができます。この属性変更機能こそが、BGPによるトラフィックエンジニアリングを可能にしています。
AS Path Prependingによる経路操作の設定方法
Route-mapを利用した代表的なトラフィック操作技術がAS Path Prependingです。これは、ASパス長の評価基準(短い方が優先)を逆手に取ります。特定の外部ネイバーに対してルートを広告する際、自身のAS番号を意図的に複数回追加(prepend)することで、その経路が長く見せかけられ、他ASがその経路の利用を避けるよう誘導できます。
これは、複数のISP接続を持っている場合において、帯域の小さい接続を意図的にバックアップ回線として使わせたいといった、不等な帯域幅を持つ接続を管理する際の重要な設定キーワードとなります。
# AS Path Prependingの設定方法キーワードのイメージ
route-map BGP-PEER-2 permit 10
set as-path prepend 100 100 100 100 100 (AS番号100を5回追加)
neighbor [IPアドレス] route-map BGP-PEER-2 out
経路情報の集約 アグリゲーションの設定方法のキーワード
BGPルーティングテーブルの規模が膨大になることを防ぎ、ルーターの処理負荷を軽減するためには、**経路集約(アグリゲーション)**が有効です。集約とは、複数の具体的なルートを一つの大まかなルート(集約ルート)として表現することです。
-
自動集約:BGPにインポートされたルートを、クラスフルアドレス(A、B、Cクラス)の境界に基づいて自動的に集約する機能です。
-
手動集約:よりきめ細やかな制御を可能にする方法です。手動集約では、集約されたルートの属性を管理者が制御できるだけでなく、集約元の個別ルート(具体ルート)を併せて広告するかどうかを選択できます。
BGPネットワークのセキュリティと高可用性
BGPセキュリティ確保のためのキーワードと対策
BGPはインターネットの基盤であるため、そのセキュリティ確保は極めて重要です。不正な経路情報の注入やルーターへのアクセスを防ぐために、複数のセキュリティ対策を講じる必要があります。
まず基本となるのが、前述の**ネイバー認証(MD5認証)**です。ルーター間のメッセージをパスワードで認証することにより、不正なピアがBGPセッションを確立しようとする試みを防ぎます。MD5認証鍵は、エッジルーターとピアリング相手側で完全に一致している必要があります。
次に、ルーティングポリシーに基づくフィルタリングが不可欠です。外部から不正に広告された、あるいは意図しない小さなプレフィックスの経路(具体的なルート)を学習しないように、学習側(Inbound)で厳格なprefix-listまたはroute-mapによるフィルタリングポリシーを適用します。同様に、自身のASから外部に意図しない経路を広告しないよう、広告側(Outbound)にもフィルタリングポリシーを設定します。
高可用性(HA)とBGPの連携
BGPは、ネットワークの可用性を最大化するための重要な要素でもあります。特に、企業ネットワークとクラウドサービスなどを接続するVPNゲートウェイにおいて、高可用性(HA)を確保する場合、BGPによる動的ルーティングの使用が強く推奨されます。
BGPを使用するHA VPNゲートウェイをデプロイすることで、複数の接続トンネル間で経路情報が動的に交換され、片側の接続に障害が発生した場合でも、自動的に生きている経路へトラフィックを切り替えることが可能です。これにより、静的ルートに依存する構成と比較して、経路の冗長性が確保され、より高いSLA(Service Level Agreement)を実現できるのです。BGPは、単に経路を選択するだけでなく、障害発生時の迅速なリカバリを可能にする、高可用性のための設定方法のキーワードの一つです。
実環境におけるBGP設定と運用管理
トラブルシューティングのキーワード
BGPの運用において、ピア関係がEstablished状態にならない、あるいは意図した経路が学習されないといったトラブルは頻繁に発生します。設定の複雑さにも関わらず、トラブルシューティングの主な原因は、設定の基本要素の不一致に集約されます。
BGPのトラブルシューティングは、設定時に入力した設定方法のキーワードがそのまま確認すべきトラブルシューティングのキーワードに直結します。
-
レイヤ3の到達性:まず、BGPピアIPアドレス間のIP到達性が確保されていることを確認します。
-
AS番号の不一致:リモートAS番号の指定が、相手側ルーターのAS番号と正確に一致しているか確認します。
-
認証鍵の不一致:MD5認証を設定している場合、両ルーターでパスワードが完全に一致していることを確認します。
-
BGP設定の有効化:BGPプロセス自体が正しく起動し、インターフェースにIPv6アドレスを設定している場合はIPv6ルーティング機能が有効化されているかを確認します。
これらの基本要素が一つでも欠けていると、BGPセッションはEstablished状態に移行できず、経路情報の交換は開始されません。
主要コマンドとステータス確認のキーワード
BGPの動作状況を把握するためには、適切なステータス確認コマンド(キーワード)を理解しておく必要があります。
-
show bgp neighbor(またはベンダー固有の類似コマンド):これは、特定のピアとのBGPセッションの状態がEstablishedであるかを確認するための主要なキーワードです。Establishedでなければ、前述のトラブルシューティングに移ります。 -
show ip bgp summary(または類似コマンド):現在、BGPプロセスが有効であるか、ピアとの接続状態、およびピアから学習している経路の数などを概要で確認できます。
これらの確認作業を通じて、設定が意図通りに機能しているか、そして自律システムがインターネットに対して期待通りの振る舞いをしているかを検証していきます。BGPの安定稼働は、設定方法のキーワードを正確に適用し、その結果を詳細に検証する能力にかかっています。


コメント