Ich habe eine VPN-Verbindung zwischen einer Region in AWS und einem mit OpenStack implementierten Rechenzentrum hergestellt:
|---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
Wenn ich versuche, von einem Host in OpenStack zu einem anderen Host in AWS zu pingen, erhalte ich keine Antwort. Dies ist eine Zeile von tcpdump, das auf dem VPN-Server 10.2.10.250 ausgeführt wird:
3:04:01.523351 IP 172.16.0.156 > 10.2.10.27: ICMP echo request, id 9407, seq 8, length 64
Das Problem ist, dass der Server, von dem ich den Ping ausführe, nicht 172.16.0.156 ist, sondern so etwas wie 172.16.0.125. Ich denke also, dass im OpenStack-Netzwerk etwas SNAT erzwingt. Ich habe alle iptables auf beiden Hosts geleert. Ich habe die Umgebung in zwei AWS-Regionen reproduziert und der Ping funktioniert, die Quell-IP ist korrekt.
Dies ist die Datei /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
Und 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