BGP

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セッションをリセットする必要があります。

リセットの種類

  1. ハードリセット: すべてのセッションを強制的に再起動。
  2. ソフトリセット: ルータ間で動的にルートリフレッシュ要求とルーティング情報を交換し、セッションを再起動せずにポリシーを更新。

ソフトリセットの詳細

  • 動的インバウンドソフトリセット: ネイバーから新しいインバウンド更新を受信。
  • アウトバウンドソフトリセット: ネイバーに新しい更新セットを送信。

ソフトインバウンドリセットにより新しいインバウンドポリシーが有効になり、ソフトアウトバウンドリセットにより新しいローカルアウトバウンドポリシーが有効になります。

BGPスピーカーは、複数の自律システム(AS)から同じ宛先への異なるパスを受信した場合、最適なパスを選択する必要があります。選択されたパスはBGPルーティングテーブルに入力され、ネイバーに伝播されます。

BGP決定属性

最適なパスの選択プロセス

  1. アクセス可能なネクストホップの確認:
    • パスがアクセスできない場合、更新をドロップ。
  2. 重みの評価:
    • 最大の重みを持つパスを優先。
    • 重みはルータにローカルで設定され、ルーティングアップデートでは伝播されない。
  3. ローカルプリファレンスの評価:
    • 最も高いローカルプリファレンスを持つルートを優先。
  4. BGPで生成されたルート:
    • ローカルルータ上で生成されたルートを優先。
  5. ASパスの長さ:
    • 最短のASパスを持つルートを優先。
  6. 発信元タイプ:
    • 内部ルート(IGP)が外部ルート(EGP)よりも優先される。
  7. MED(Multi-Exit Discriminator)メトリック:
    • 最も低いMEDメトリックを持つルートを優先。
  8. 外部パス(EBGP) vs. 内部パス(IBGP):
    • 外部パスを優先。
  9. IGPメトリック:
    • 最も低いIGPメトリックを持つルートを優先。
  10. 最大パス数の評価:
    • 最適ルートと同じ近隣のASからのルートが最大パス数に達している場合。
  11. ルータIDの評価:
    • マルチパスが有効でない場合、最も低いルータIDのIPアドレスを持つルートを優先。

このプロセスにより、BGPは最も効率的で信頼性の高いルートを選択します。

ルートマップ

BGPでは、ルートマップを使用してルーティング情報を制御および変更し、ルーティングドメイン間でのルート再配布の条件を定義します。ルートマップには、識別用の名前(マップタグ)とオプションのシーケンス番号があります。

BGP フィルタリング

BGPフィルタリングは、ASパスフィルタやアクセスリストを使用して、ルーティング情報を制御します。ASパスフィルタにはas-path access-listneighbor 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」などのよく知られたコミュニティがあります。コミュニティに基づいて、受け入れる、優先する、または配布するルーティング情報を制御できます。コミュニティリストを使用して、ルートマップの一致条件で使用するコミュニティのグループを作成することができます。

参考文献

Configuring BGP

BGP Configuration Guide