我已在 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 中的主機 ping 到 AWS 中的另一台主機,我不會收到回覆。這是來自 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。我在兩個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