AWS Direct ConnectとVPNを併用、冗長化した時に優先されるルートとは?【根拠を示して説明】

冗長化時の優先ルートとは

こんにちは、Daniel (@daniel__blog) です。

AWSとオンプレ間との接続を、Direct ConnectとSite-to-Site VPNの2つを使って冗長化させたい。Direct Connectでの接続を優先させたいけど、デフォルトではどちらの経路が優先されるの?優先順位の設定は必要?他に注意するポイントがあったら、それもを教えてください!

今回は、こんなお悩みにお答えしていきます。

この記事の内容
  1. Direct Connectが優先されます
  2. Direct Connectへの切り替えに、特に対応は必要ないです
  3. Direct Connectへの切り替えで、瞬断は生じるかも

この記事を書いている僕は、現在インフラエンジニア歴4年。AWS経験は2年ほどあり、実際にこれまで複数のプロジェクトで、AWSでのシステム設計・構築をしてきました。

オンプレ間との接続に便利なAWS Direct Connectですが、検証を行うのは難しいですよね、、、

以前、この内容の構築を行ったので、参考にしていただければ幸いです。

Direct Connectが優先されます

結論は、Direct Connectが優先されます。

根拠は以下のとおりです。

前提は、最長プレフィックス一致

まず、前提ルールとして、AWSのルートテーブルでは「最長プレフィックス一致」に基づいてトラフィックのルーティング先を決定します。

下記のとおりですが、簡単に言えば「最も具体的なルート」へ送信するということですね。

AWS では、トラフィックと一致する最も具体的なルートをルートテーブルで使用して、トラフィックをルーティングする方法を決定します (最長プレフィックス一致)。ルートテーブルに重複または一致するルートがある場合は、次のルールが適用されます。

AWSドキュメント『ルートテーブルと VPN ルーティングの優先度

最長プレフィックス一致を前提に、VGW側では下記の優先度が決められています。

Direct Connect接続からのBGPルートを優先

仮想プライベートゲートウェイはルーティング情報を受け取ると、パスを選択してトラフィックをルーティングする方法を指定します。最長のプレフィックス一致が適用されます。プレフィックスが同じである場合、仮想プライベートゲートウェイは、次のようにルートに優先順位を付けます (優先度の高い順)。

・AWS ダイレクトコネクト接続から BGP で伝播されたルート

・Site-to-Site VPN 接続用に手動で追加された静的ルート

・Site-to-Site VPN 接続から BGP で伝播されたルート

・各 Site-to-Site VPN 接続が BGP を使用しているプレフィックスのマッチングでは、AS PATH が比較され、最短の AS PATH を持っているプレフィックスが優先されます。

AWSドキュメント『ルートテーブルと VPN ルーティングの優先度

上記のとおりです。

Direct Connect と Site-to-Site VPN を併用している環境で、どちらのプレフィックスも同じ場合は、Direct Connectへのルートが優先されるとのことでした。

Direct Connectを優先するための設定は、特に不要です

ユーザー側で、優先させるための明示的な設定などは不要です。

前述の優先度の設定は、対象ルートがAWS側で自動的に判断されて選択されるからです。

Site-to-Site VPN接続がすでにある場合

Site-to-Site VPN接続のある環境に、後からDirect Connect接続を追加する場合はどうなるのか。

この場合も、Direct Connectの接続が追加されると同時に、自動的にDirect Connectのルートに切り替わります。

Direct Connectへの切り替えで、瞬断は生じるかも

前述の通り優先度の設定は特に不要ですが、注意点があります。

切り替え時に瞬断が起こる可能性アリ

VPN接続の通信に、一時的な通信断が発生する可能性はあります。

オンプレとAWS間で作業を行っているときなどは、念のため注意が必要です。

ということで、今回は以上です。
最後までお読み頂き、ありがとうございました。