
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
문제는 내가 핑을 보내는 서버가 172.16.0.156이 아니라 172.16.0.125와 비슷하다는 것입니다. 그래서 저는 OpenStack 네트워킹에서 뭔가가 SNAT를 강제하고 있다고 생각합니다. 두 호스트 모두에서 모든 iptable을 플러시했습니다. 두 개의 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