ボーダーゲートウェイプロトコル (BGP) コミュニティを利用して、AWS から自分のネットワークへの AWS Direct Connect リンクの優先ルーティングパスを変更したいと考えています。
簡単な説明
プライベート仮想インターフェイスと Transit 仮想インターフェイスが、AWS がユーザーのネットワークにトラフィックをルーティングするために使用するインターフェイスを優先するよう構成するには、AS_PATH 属性を使用します。また、Direct Connect は、プライベート仮想インターフェイス、Transit 仮想インターフェイスにおけるルーティング優先度を制御する、ローカルプリファレンス BGP コミュニティタグをサポートします。
注: AWS ルーターは、AS_PATH 属性を評価する前に、ローカルプリファレンス BGP コミュニティタグを評価します。
解決策
コミュニティタグを適用し、AS_PATH を先頭に追加する
Direct Connect は、次のローカルプリファレンス BGP コミュニティタグをサポートします。
- 7224:7100 低優先度
- 7224:7200 中位の優先度
- 7224:7300 優先度が高い
Direct Connect は、ローカルプリファレンス BGP コミュニティタグを優先度の低い方から高い方の順番で評価します。
コミュニティタグと AS_PATH 属性を使用するには、次の手順を実行します。
- BGP セッションでアドバタイズするプレフィックスごとに、関連するパスの戻りトラフィックの優先度を示すコミュニティタグを適用します。
- オンプレミスルーターから AWS にアドバタイズする場合は、プレフィックスにさらに AS_PATH 属性をプリペンドします。Direct Connect は、戻りトラフィックにおいて、AS_PATH 属性が最も少ないパスを優先します。
例: 仮想インターフェイス A と B があり、プレフィックス 10.10.10.0/24 と 10.20.20.0/24 を AWS にアドバタイズする場合。仮想インターフェイス A をネットワーク 10.10.10.0/24 へのトラフィックの優先ルーティングパスにするには、BGP セッションのプレフィックス 10.10.10.0/24 に高優先度タグ 7224:7300 を適用します。仮想インターフェイス B をネットワーク 10.20.20.0/24 へのトラフィックの優先ルーティングパスにするには、BGP セッションのプレフィックス 10.20.20.0/24 に高優先度タグ 7224:7300 を適用します。
BGP コミュニティタグでプライベート仮想インターフェイスのローカルプリファレンスを指定しない場合、外向きルーティングは AWS リージョンのデフォルトで動作します。この場合の動作は、Direct Connect のロケーションと送信元リージョンの相対距離に依存します。相対的な距離コストが異なる場合、自律システム (AS) のプリペンドはルーティングの動作に影響しません。Direct Connect は、AS_PATH をプリペンドする前に、最短距離に基づく相対コストを評価します。
トラフィック負荷を複数の AWS Direct Connect 接続に分散するには、各接続のプレフィックスに同じコミュニティタグを適用します。
AS_PATH と BGP コミュニティタグを構成する
AS_PATH と BGP コミュニティタグは、オンプレミスルーターに構成する必要があります。オンプレミスルーターから Direct Connect ルーターにプレフィックスをアドバタイズします。任意のルーティングデバイスを使用できます。使用するベンダーのルーター固有の構成を使用してください。
一般的なベンダー製のオンプレミスルーター用の AS_PATH プリペンドに関する詳細は、次の資料を参照してください。
一般的なベンダー製のオンプレミスルーター用の BGP コミュニティ構成に関する詳細は、次の資料を参照してください。
次の構成例では、Cisco 製ルーターのプレフィックス 10.0.0.0/8 に AS_PATH をプリペンドし、プレフィックスを AWS にアドバタイズしています。
Router(config)#access-list 10 permit 10.0.0.0 0.255.255.255
Router(config)#route-map cisco permit 10
Router(config-route-map)#match ip address 10
Router(config-route-map)#set as-path prepend 650014 650014
Router(config-route-map)#exit
Router(config)#route-map cisco permit 20
Router(config-route-map)#exit
Router(config)#router bgp LOCAL_AS
Router(config-router)#neighbor NEIGHBOR_IP route-map cisco out
Router(config-router)#end
次の構成例では、プレフィックス 10.0.0.0/8 にコミュニティタグ 7224:7300 を付与し、Cisco 製ルーターから AWS にアドバタイズしています。
Router(config)#access-list 10 permit 10.0.0.0 0.255.255.255
Router(config)#route-map cisco permit 10
Router(config-route-map)#match ip address 10
Router(config-route-map)#set community 7224:7300
Router(config-route-map)#exit
Router(config)#route-map cisco permit 20
Router(config-route-map)#exit
Router(config)#router bgp LOCAL_AS
Router(config-router)#neighbor NEIGHBOR_IP send-community
Router(config-router)#neighbor NEIGHBOR_IP route-map cisco out
Router(config-router)#end
注: 上記の例では、LOCAL_AS を AS 番号に、NEIGHBOR_IP を BGP ピアの IP アドレスに置き換えてください。
関連情報
パブリック仮想インターフェイスの BGP コミュニティ
AWS Direct Connect のルーティングポリシーと BGP コミュニティ
BGP コミュニティを使用し、Direct Connect を使用する AWS パブリック仮想インターフェイス経由でアドバタイズ、受信されるルートを制御する方法を教えてください