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

Linux IPsec VPN и SNAT

Я пытаюсь подключить свою сеть к IPSec VPN, и для этого мои подключения должны исходить из заданного домена. Сеть следующая:

Internal network    eth1:10.0.0.1/14      eth0:1.2.3.4
----------------------------------- MY GW -----------------+
                                                           |
                                                           |
             192.168.178.4               4.5.6.7           |
        SERVER ------------------- VPN GW -----------------+

Сеть VPN должна видеть меня исходящим из 172.30.224.0/28, поэтому на моем шлюзе я добавил следующее правило iptables:

iptables -t nat -A POSTROUTING -d 192.168.178.4 -j SNAT --to-source 172.30.224.1

Затем из моей внутренней сети, когда я пингую 192.168.178.4, я получаю запрос на eth1 и ответ на eth0:

# tcpdump -n -i eth1 host 192.168.178.4
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes
15:49:49.854809 IP 10.2.1.172 > 192.168.178.4: ICMP echo request, id 3472, seq 1, length 64
15:49:52.170758 IP 10.2.1.172 > 192.168.178.4: ICMP echo request, id 3479, seq 1, length 64
15:49:53.178692 IP 10.2.1.172 > 192.168.178.4: ICMP echo request, id 3479, seq 2, length 64
# tcpdump -n -i eth0 host 192.168.178.4
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
15:50:36.492856 IP 192.168.178.4 > 172.30.224.1: ICMP echo reply, id 3494, seq 1, length 64
15:50:37.465803 IP 192.168.178.4 > 172.30.224.1: ICMP echo reply, id 3494, seq 2, length 64

Проблема в том, что мой ответ никогда не доходит до моего хоста (10.2.1.172 в таком случае).

Шлюз также настроен для выполнения SNAT для внутренней сети в Интернет.

Я наверняка что-то здесь упускаю, но я застрял. Любая помощь будет принята с благодарностью.