BGP ルートポリシーの概要
このガイドは、Cloud Router Border Gateway Protocol(BGP)ルートポリシーの概要です。
BGP ルートポリシーを使用すると、BGP ルートをフィルタするルールを設定できます。また、BGP ルートの属性を変更することもできます。BGP ルートポリシーは、インバウンドとアウトバウンドの両方の BGP ルートに適用できます。BGP ルートに適用する BGP ルートポリシーを定義するには、Common Expression Language(CEL)を使用します。
BGP セッションの Cloud Router で、学習したルートまたはアドバタイズ ルートに BGP ルートポリシーを適用できます。BGP ルートポリシーはポリシーベースのルートとは別のものです。ポリシーベースのルートは、宛先アドレスに基づくものではありません。ソースアドレスに基づくネクストホップ ルートを割り当てることで Virtual Private Cloud ネットワークに適用されます。詳細については、ポリシーベースのルートをご覧ください。
BGP ルートポリシーとは
BGP ルートポリシーは、順序付きの用語リストとして定義されます。各キーワードは指定した順序で評価されます。これには、ルートが用語に一致するとみなされる場合の条件と対応するアクションの両方が含まれます。特定の BGP ルートポリシーは、学習したルートのインバウンドまたはアドバタイズ ルートのアウトバウンドのいずれか一方にのみ適用できます。同時に両方に適用することはできません。ただし、BGP ルートポリシーは Cloud Router 上の複数の BGP ピアに適用できます。
BGP ルートポリシーのユースケース
BGP ルートポリシーを使用すると、BGP ルートが他の BGP ピアにアドバタイズされる前、または VPC ルーティング テーブルにインポートされる前に、受け入れる BGP ルート、拒否する BGP ルート、変更する BGP ルートを制御できます。
BGP ルートポリシーのユースケースの例を次に示します。
BGP の最優先ルートの変更: BGP ルートポリシーを使用して BGP の最優先ルートを変更できます。これにより、ネットワークを通過するトラフィックの経路に影響を与えることができます。たとえば、BGP ルートポリシーを使用して、BGP MED 属性の値を変更することで、特定のピアからの BGP ルートが他の BGP ルートよりも優先されるようにできます。
不要な BGP ルートのフィルタリング: BGP ルートポリシーを使用して、不要な学習ルートをフィルタしたり、BGP ピアに特定のルートをアドバタイズしないようにすることができます。これは、不要なパスにトラフィックを送信するルーティング ループやルートの防止に役立ちます。たとえば、BGP ルートポリシーを使用して、サブネット内のプレフィックスをフィルタできます。
トラフィック エンジニアリングの目標の達成: BGP ルートポリシーを使用して、特定のトラフィック エンジニアリングの目標を達成できます。トラフィック分散に影響を与えるには、ルートの AS-PATH に 1 つ以上の値を追加します。たとえば、プレフィックス
192.168.2.0/24
の場合、Cloud Router は 2 つのピアからプレフィックスを学習しますが、各ピアからは異なる AS-PATH 値を学習します。peer1
が AS-PATH 値[1010]
を返し、peer2
が AS-PATH 値[2020]
を返す場合があります。BGP ルートポリシーでは、AS-PATH 値の前に 1 つ以上の値を追加できます。
BGP ルートポリシーの適用方法
Cloud Router の BGP 構成に BGP ルートポリシーを適用します。各 BGP ピアには、0 個以上のルートのインポート ポリシーとエクスポート ポリシーが適用されます。インポート ルートポリシーはインバウンド ルートに適用され、エクスポート ルートポリシーはアウトバウンド送信に適用されます。
次の図は、インバウンド ルートのルート インポート ポリシーと、アウトバウンド ルートのルート エクスポート ポリシーを示しています。
以下に、BGP ルートポリシーを適用するときに Cloud Router が従う一般的なルールを示します。
BGP ルートポリシーは、リスト内の順序で評価されます。
各 BGP ルートポリシーの条件は、指定された優先順に評価されます。
条件により BGP ルートを変更できます。後続の条件は、前の条件で作成された BGP ルートを変更できます。
BGP ルートが受け入れられるかドロップされると、評価は終了します。すべてのポリシーと条件が評価され、BGP ルートがドロップされなかった場合に、そのルートが受け入れられます。
BGP ルートポリシーの 1 回の実行で、ルートに対して条件が 2 回評価されることはありません。
BGP ルートポリシーの評価は、デフォルトでフェイルオープンになります。つまり、明示的にドロップされていないルートは、BGP ルートポリシーの評価中に受け入れられます。この動作を直接変更することはできませんが、最後のピアに適用する「すべてドロップ」ポリシーを作成できます。これにより、事実上、フェイルクローズ BGP ルートポリシーが作成されます。
次の図は、ルートに適用された一連のポリシーがどのように評価されるかを示しています。
BGP コミュニティと Cloud Router
コミュニティ値は、32 ビット フィールドで、2 つの 16 ビット セクションに分かれています。通常、値の最初の 16 ビットは、コミュニティの送信元となるネットワークの自律システム(AS)番号をエンコードしますが、Cloud Router はこの規則を強制しません。値の 2 番目の 16 ビットは、送信元 AS によって割り当てられた一意の番号をエンコードします。
BGP ルートポリシーは、標準の BGP コミュニティ属性と照合して、その属性に基づいて動作させることができます。BGP ルートポリシーでは、拡張コミュニティ属性を照合または変更できません。
Cloud Router のルート選択プロセスでは、プレフィックスの BGP コミュニティ属性は使用されません。たとえば、NO_EXPORT
または NO_ADVERTISE
BGP コミュニティは考慮されません。
BGP ルートポリシーがインポートされると、Cloud Router は学習したルートから BGP コミュニティを削除します。つまり、Cloud Router はコミュニティを再アドバタイズしません。Cloud Router はコミュニティを非推移的属性として扱います。BGP コミュニティは、Cloud Router 上り(内向き)一致ポリシーにのみ影響します。アドバタイズされたルートの BGP コミュニティを追加、削除、置換して、ピアルーターの動作に影響を与えることができます。
Cloud Router は既知のコミュニティを認識しないため、BGP の既知のコミュニティにはリテラル値を使用する必要があります(たとえば、NO_EXPORT
の場合は 65535:65281
、NO_ADVERTISE
の場合は 65535:65282
など)。
BGP ルートポリシー リソース間の関係
それぞれの Cloud Router で、BGP ピアと BGP ルート ポリシーの独自のリストが維持されます。特定の Cloud Router リソースに属する BGP ピアのリストは、名前で BGP ルートポリシーを指し示すことができます。
親 Cloud Router が存在する限り、BGP ルートポリシーを作成、変更、削除できます。
他の Cloud Router 機能との連携
以降のセクションでは、BGP ルートポリシーが他の Cloud Router 機能とどのように連携するかについて説明します。
- カスタム アドバタイズ ルート
- BGP ルートポリシーをエクスポートすると、BGP ピアにアドバタイズされる前に、カスタム アドバタイズ ルートをドロップまたは変更できます。BGP ルートポリシーは、受信したカスタムルートを照合または変更できません。
- プレフィックスの上限
Cloud Router がピアから受け入れるプレフィックスの上限は 5,000 です。ピアが 5,000 を超えるプレフィックスをアドバタイズすると、Cloud Router は BGP セッションをリセットします。
プレフィックスの上限は、BGP ルートポリシーが適用される前にインバウンド ルートに適用されるため、BGP ルートポリシーを使用しても、この動作は変わりません。
- サブネット
BGP ルートポリシーをエクスポートすると、BGP ピアにアドバタイズされる前に Virtual Private Cloud サブネットのサブネット ルートをフィルタまたは変更できます。
- 中継ルート。
BGP ルートポリシーを使用すると、中継ルートを変更できます。
Cloud Router は、
NO_EXPORT
とNO_ADVERTISED
BGP コミュニティの動作を考慮しません。