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

Перенаправить трафик в сеть VPN

У меня есть облачный сервер, работающий на Ubuntu 14.04, который подключен к туннелю IPsec.

Сервер имеет реальный интерфейс с общедоступным IP-адресом x.x.x.x и виртуальным интерфейсом 172.16.100.1. Весь трафик в удаленную сеть должен маршрутизироваться через виртуальный интерфейс с IP-адресом 172.16.100.1. Поэтому я настроил запись маршрутизации. Это правильно работает для всего трафика, генерируемого на этом сервере.

route add -net 172.17.1.2/21 gw 172.16.100.1 dev eth0:1

Но еще одно требование состоит в том, что если облачный сервер получает трафик на свой общедоступный IP-адрес с определенным портом, этот трафик также должен быть перенаправлен в удаленную сеть. Я попробовал это, добавив запись в таблицу IP:

iptables -t nat -A PREROUTING -p tcp --dport 45678 -j DNAT --to-destination 172.17.1.2:29871

но проблема в том, что он каким-то образом игнорирует конфигурацию маршрутизации и просто пересылает запрос со своим исходным IP вместо использования 172.16.x.x

Это правильная конфигурация или я полностью ошибаюсь? Что еще мне нужно настроить для правильной пересылки трафика?

добавление следующей записи POSTROUTING решило проблему:

iptables -t nat -A POSTROUTING -p tcp --dport 29871 -j SNAT --to-source 172.16.100.1