0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

VPCピアリングでVPC間のTCP接続ができなかった

Posted at

VPCピアリングでVPC間のTCP接続ができなかった現象の解決に20時間弱を要したので、今後のために記録に残しておきます。

背景

目的

VPC①のプライベートサブネットに配置されたEC2Ⓐから、VPC②のプライベートサブネットに配置されたEC2ⒷのHTTPサーバーに接続したい。

環境

  1. VPC①とVPC②をVPCピアリングで繋いでいた
    1. VPC①→VPC②のピアリング設定済み
    2. VPC②→VPC①のピアリング設定済み
  2. VPC①からVPC②へのルート設定済み
    1. VPC①のサブネットについて
  3. VPC②からVPC①へのルート設定済み
    1. なし(反対方向は不要と思った)
  4. EC2Ⓑのセキュリティグループ設定はHTTPについてVPC①のCIDR丸ごと許可

調査に使ったもの

現象

UDPは接続できるのにTCPやICMPが接続できずタイムアウトになる。
以下は EC2Ⓐ から EC2Ⓑ に ping や netcat で送信した結果。

Protocol Port VPC セキュリティグループ 結果
ICMP n/a 同じVPC /32
HTTP 80 同じVPC /32
TCP 1234 同じVPC /16
UDP 1234 同じVPC /16
ICMP n/a 違うVPC /16
HTTP 80 違うVPC /16
TCP 1234 違うVPC /16
UDP 1234 違うVPC /16
  • VPCフローログは、接続時に全て ACCEPT OK だった
  • curl の計測結果は内訳は全て 0 でトータルだけ130秒くらいかかってタイムアウト
  • Reachbility Analyzer でも送信元のEC2から相手先のVPCに接続できていた
  • もちろん接続先のHTTPサーバーにはアクセスログは形跡なし

VPCフローログで拒否されていないことからEC2上のOSの設定を疑い、iptables や ufw 、hosts.deny を確認したが問題なし。
ここまでで、インスタンス内の問題でもセキュリティグループ設定の問題でもない...

対応

VPC②からVPC①へのルート設定で、該当EC2のサブネットについてVPC①へのルート設定を追加した。
その結果、VPC①からvPC②へのHTTP通信ができるようになった。

結論

VPCピアリングしている環境で TCP接続 する場合は、双方向のルート設定が必要。

0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?