我刚刚在 Strongswan 实例和 AWS VPN 网关之间设置了站点到站点的 VPN,如下所示:
1.1.1.1 <-----> Strongswan (2.2.2.2) <---> AWS (VPC 172.0.0.0/8)
从 AWS,我可以 ping 1.1.1.1 中的 IP。从 Strongswan 实例,我也可以 ping VPC 上的 EC2。问题是,如果我尝试从 EC2 建立到 Strongswan 实例的连接,连接总是会失败。
The routes on 2.2.2.2:
172.0.0.0/16 dev Tunnel1 scope link metric 100
172.0.0.0/16 dev Tunnel2 scope link metric 200
Iptables mangle rules:
Chain INPUT (policy ACCEPT)
target prot opt source destination
MARK esp -- <aws-endpoint> 2.2.2.2 MARK set 0x64
MARK esp -- <aws-endpoint> 2.2.2.2 MARK set 0xc8
Chain FORWARD (policy ACCEPT)
target prot opt source destination
TCPMSS tcp -- anywhere anywhere tcp flags:SYN,RST/SYN TCPMSS clamp to PMTU
TCPMSS tcp -- anywhere anywhere tcp flags:SYN,RST/SYN TCPMSS clamp to PMTU
使用 2.2.2.2 上的 tshark 检查后,我注意到 SYN/ACK 没有到达 EC2,从而导致重新传输并最终导致失败。
知道为什么 SYN/ACK 没有到达发起连接的 EC2 吗?