BGPは、自律システム間でループのないルーティング情報交換を保証する外部ゲートウェイプロトコル (EGP) です。自律システムは同じ管理下で動作し、内部ではRIPやOSPFなどの内部ゲートウェイプロトコル (IGP) を使用し、外部との接続にはBGPを利用します。
BGPバージョン4は、インターネットでの標準的なドメイン間ルーティングプロトコルであり、RFC 1163、1267、および1771で定義されています。
BGPネットワークトポロジの概要
BGPの種類
- 内部BGP (IBGP): 同じ自律システム (AS) 内のルータ間でルーティング情報を交換。
- 外部BGP (EBGP): 異なるAS間でルーティング情報を交換。
ルーティング情報の交換
- IBGPとEBGPの設定コマンドはほぼ同じ。
- BGPスピーカー: BGPルーティングプロセスを実行するルータ。
- BGPピア: 相互にTCP接続し、ルーティング情報を交換するBGPスピーカー。
特徴と要件
- 完全メッシュ: AS内の全てのBGPスピーカーがピア関係を確立する必要がある。
- コンフェデレーションとルートリフレクタ: 完全メッシュの要件を軽減する手法。
- トランジットAS: 他のAS間でパケットを転送するために使用されるAS。
ルーティングプロセス
- 初期のルーティングテーブル交換: 完全なBGPルーティングテーブルを交換し、その後は増分更新を送信。
- キープアライブメッセージ: 接続が確立されていることを確認。
- 通知メッセージ: エラーや特別な状況に応答。
ネットワーク到達可能性情報
- ASパス: 自律システムのリスト。
- その他のパス属性: ルーティングループの除去やASレベルのポリシー決定に使用。
CIDRのサポート
- クラスレスインタードメインルーティング (CIDR): ルーティングテーブルのサイズ削減。
- IPプレフィックスのアドバタイズ: ネットワーククラスの概念を排除。
BGPはこの情報を基に、ループのない効率的なルーティングを実現します。
ノンストップフォワーディング (NSF) 認識
BGP NSF認識機能は、Network AdvantageライセンスのIPv4でサポートされています。この機能を有効にするには、グレースフルリスタートを有効にする必要があります。
機能の概要
- NSF対応ルータ: 隣接ルータがNSF対応であることが前提。
- RP障害時の動作: ルータのプライマリルートプロセッサ (RP) に障害が発生してバックアップRPが引き継ぐ間、またはプライマリRPがソフトウェアアップグレードのために手動でリロードされている間、隣接ルータからパケットの転送を継続。
この機能により、ネットワークの中断を最小限に抑えることができます。
BGPルーティングの基本情報
BGPルーティングの有効化:
- BGPルーティングプロセスを確立し、ローカルネットワークを定義。
- BGPネイバーを指定する。
ネイバーの種類:
- 内部ネイバー (IBGP): 同じ自律システム (AS) 内に存在。
- 外部ネイバー (EBGP): 異なるAS間に存在し、通常隣接してサブネットを共有。
プライベートAS番号:
- 範囲: 64512~65535。
- 外部ネイバーにアドバタイズされない。
neighbor remove-private-asコマンドで、外部ネイバーにプライベートAS番号を削除させる。
ルートの一貫性:
- ASが他のASにトラフィックを渡す場合、全ルータがIGPを通じてルートを学習する前にBGPがルートをアドバタイズしないようにする。
- BGPとIGPを同期させ、IGPがAS全体に情報を伝播するまでBGPは待機。
同期の設定:
同期を無効にすると、BGPの収束が迅速になり、IGPで運ぶルートが減少する。
デフォルトで同期は有効。
ASが他のASにトラフィックを渡さない場合や、全ルータがBGPを実行している場合は同期を無効にできる。
BGPルーティングポリシーの変更
BGPルーティングポリシーの変更には、着信または発信ルーティングテーブルの更新に影響するすべての設定が含まれます。ルータをBGPネイバーとして定義すると、ルータはBGP接続を形成し、ルーティング情報を交換します。設定変更を有効にするには、BGPセッションをリセットする必要があります。
リセットの種類
- ハードリセット: すべてのセッションを強制的に再起動。
- ソフトリセット: ルータ間で動的にルートリフレッシュ要求とルーティング情報を交換し、セッションを再起動せずにポリシーを更新。
ソフトリセットの詳細
- 動的インバウンドソフトリセット: ネイバーから新しいインバウンド更新を受信。
- アウトバウンドソフトリセット: ネイバーに新しい更新セットを送信。
ソフトインバウンドリセットにより新しいインバウンドポリシーが有効になり、ソフトアウトバウンドリセットにより新しいローカルアウトバウンドポリシーが有効になります。
BGPスピーカーは、複数の自律システム(AS)から同じ宛先への異なるパスを受信した場合、最適なパスを選択する必要があります。選択されたパスはBGPルーティングテーブルに入力され、ネイバーに伝播されます。
BGP決定属性
最適なパスの選択プロセス
- アクセス可能なネクストホップの確認:
- パスがアクセスできない場合、更新をドロップ。
- 重みの評価:
- 最大の重みを持つパスを優先。
- 重みはルータにローカルで設定され、ルーティングアップデートでは伝播されない。
- ローカルプリファレンスの評価:
- 最も高いローカルプリファレンスを持つルートを優先。
- BGPで生成されたルート:
- ローカルルータ上で生成されたルートを優先。
- ASパスの長さ:
- 最短のASパスを持つルートを優先。
- 発信元タイプ:
- 内部ルート(IGP)が外部ルート(EGP)よりも優先される。
- MED(Multi-Exit Discriminator)メトリック:
- 最も低いMEDメトリックを持つルートを優先。
- 外部パス(EBGP) vs. 内部パス(IBGP):
- 外部パスを優先。
- IGPメトリック:
- 最も低いIGPメトリックを持つルートを優先。
- 最大パス数の評価:
- 最適ルートと同じ近隣のASからのルートが最大パス数に達している場合。
- ルータIDの評価:
- マルチパスが有効でない場合、最も低いルータIDのIPアドレスを持つルートを優先。
このプロセスにより、BGPは最も効率的で信頼性の高いルートを選択します。
ルートマップ
BGPでは、ルートマップを使用してルーティング情報を制御および変更し、ルーティングドメイン間でのルート再配布の条件を定義します。ルートマップには、識別用の名前(マップタグ)とオプションのシーケンス番号があります。
BGP フィルタリング
BGPフィルタリングは、ASパスフィルタやアクセスリストを使用して、ルーティング情報を制御します。ASパスフィルタにはas-path access-listやneighbor filter-listコマンドが使用され、neighbor distribute-listコマンドでネットワーク番号に基づくフィルタを適用できます。ルートマップを用いてネイバーごとにアップデートをフィルタリングし、属性を変更することも可能です。ルートマップは、着信および発信アップデートのいずれにも適用でき、ASパス、コミュニティ、ネットワーク番号に基づくマッチングをサポートしています。
BGP フィルタリングのプレフィックス リスト
neighbor distribution-list ルータ設定コマンドを含む多くの BGP ルート フィルタリング コマンドでは、アクセス リストの代わりにプレフィックス リストを使用できます。プレフィックス リストを使用する利点には、大規模なリストのロードと検索のパフォーマンスの向上、増分更新のサポート、CLI 設定の簡素化、柔軟性の向上などがあります。
プレフィックス リストによるフィルタリングでは、アクセス リストの照合と同様に、ルートのプレフィックスとプレフィックス リストにリストされているプレフィックスを照合します。一致した場合は、そのルートが使用されます。プレフィックスが許可されるか拒否されるかは、次のルールに基づきます。
- 空のプレフィックス リストはすべてのプレフィックスを許可します。
- 指定されたプレフィックスがプレフィックス リスト内のどのエントリとも一致しない場合は、暗黙的な拒否が想定されます。
- プレフィックス リストの複数のエントリが特定のプレフィックスと一致する場合、プレフィックス リスト エントリのシーケンス番号は、最も低いシーケンス番号を持つエントリを識別します。
デフォルトでは、シーケンス番号は自動的に生成され、5 単位で増分されます。シーケンス番号の自動生成を無効にする場合は、各エントリのシーケンス番号を指定する必要があります。シーケンス値は任意の増分で指定できます。増分を 1 に指定すると、リストに追加のエントリを挿入できません。増分を非常に大きくすると、値が不足する可能性があります。
BGP コミュニティフィルタリング
BGPコミュニティフィルタリングは、COMMUNITIES属性に基づいてルーティング情報の配布を制御する方法です。この属性により、宛先をコミュニティにグループ化し、ルーティングの決定を簡素化できます。各宛先は複数のコミュニティに属し、AS管理者が定義します。例えば、「internet」、「no-export」、「no-advertise」、「local-as」などのよく知られたコミュニティがあります。コミュニティに基づいて、受け入れる、優先する、または配布するルーティング情報を制御できます。コミュニティリストを使用して、ルートマップの一致条件で使用するコミュニティのグループを作成することができます。