3
0

More than 1 year has passed since last update.

Direct Connect GatewayでVPC間が疎通してしまうことがある

Posted at

概要

AWSの同一Direct Connect Gateway(以下DXGW)に接続したVPC間で通信が可能になっていました。以下、結論です。

  • ドキュメントを読むと「単一の Direct Connect ゲートウェイにアタッチされた仮想インターフェイス間の直接的な通信」はサポートされていない、となっている
  • 実は、「スーパーネットが、同じ Direct Connect ゲートウェイおよび同じ仮想インターフェイス上に関連付けられている接続された仮想プライベートゲートウェイ(VGW)を持つ 2 つ以上の VPC にわたってアドバタイズされる場合です。この場合、VPC は Direct Connect エンドポイントを介して互いに通信できます。」という仕様により通信できてしまうようだ

Direct Connectのルーティングの仕様はこのように分散して記述されていたため、ちょっとわかりにくかったです。一方、Transit Gatewayを使ったときに疎通する、という仕様については以下の記事があり、これにより「ひょっとして?」と気づくことができました(感謝!)。

構成と対応

AWS_DXGW_20220711_qiita.png

弊組織ではDirect ConnectでAWSと接続しており、DXGWへはBGPでアドバタイズしています。図に示したように、オンプレミスは172.18.4.0/23、172.18.6.0/23というようにいくつかの172.18.xxx.xxxネットワークがあり、それに追加する形でAWSのネットワーク構成も172.18.yyy.yyyとしています。
境界ルーターでルーティングテーブルを設定する際に、オンプレミス側への経路をまとめて172.18.0.0/16と記述していたため、この事象が起こったようです。

この場合、VPC1とVPC2の172.18.16.0/24と172.18.32.0/24が172.18.0.0/16に含まれてしまうため、DXGWによりVPC1とVPC2は疎通するみたいです。最初は境界ルーターで折り返し通信が発生してるのかな?と思ったのですが、pingでTTL=1でも疎通するので、DXGWと判断しました(境界ルーターでパケットフィルタリングしても通ってたというのもあります)。

そこで、最小限の経路にし、広告したところ、VPC間の疎通はブロックされました。今回は想定外で疎通しましたが、逆にVPC1とVPC2を含む経路を広告することで疎通させるという使い方もできるのかもしれません。

ネットワークの専門家ではないので、やり方的にどうするのが正解かはよくわかりませんが、参考になれば。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0