Назад | Перейти на главную страницу

Проблема Strongswan с исходным IP

Я установил VPN-соединение между регионом в AWS и центром обработки данных, реализованным с помощью OpenStack:

|---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, я не получу ответа. Это строка из tcpdump, запущенного на VPN-сервере 10.2.10.250:

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. Я сбросил все iptables на обоих хостах. Я воспроизвел среду в двух регионах AWS, пинг работает, исходный 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