
AWS のリージョンと OpenStack で実装されたデータセンターの間に VPN 接続を確立しました。
|---AWS------------------| |-----OpenStack----------|
Private IP EIP Float. IP Private IP
10.2.10.250 <-> 35.x.255.x TUNNEL 75.x.65.x <-> 172.16.0.156
OpenStack のホストから AWS の別のホストに ping を実行しても、応答がありません。これは、10.2.10.250 VPN サーバーで実行されている tcpdump からの行です。
3:04:01.523351 IP 172.16.0.156 > 10.2.10.27: ICMP echo request, id 9407, seq 8, length 64
問題は、ping 元のサーバーが 172.16.0.156 ではなく、172.16.0.125 のようなアドレスであることです。そのため、OpenStack ネットワークで何かが SNAT を強制しているのではないかと考えています。両方のホストですべての iptables をフラッシュしました。2 つの AWS リージョンで環境を再現しましたが、ping は機能し、送信元 IP は正しいです。
これは /etc/ipsec.conf ファイルです:
config setup
charondebug="all"
uniqueids=yes
strictcrlpolicy=no
conn %default
ike=aes256-sha2_256-modp1024!
esp=aes256-sha2_256!
keyingtries=0
ikelifetime=1h
lifetime=8h
dpddelay=30
dpdtimeout=120
dpdaction=restart
auto=start
keyexchange=ikev2
type=tunnel
conn uswest2-x-to-x-x
leftfirewall=yes
leftcert=device-x-x_cert.pem
leftid="C=CH, O=strongSwan, CN=device-x-x"
rightid="C=CH, O=strongSwan, CN=device-uswest2-x-a"
left=172.16.0.156
leftsubnet=172.16.0.0/24
right=35.x.255.x
rightsubnet=10.2.0.0/16
そして iptables:
# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain DOCKER (0 references)
target prot opt source destination
Chain DOCKER-ISOLATION (0 references)
target prot opt source destination