LINUX.ORG.RU

Сообщения tvreq

 

DNAT с двух внешних интерфейсов на один внутренний

Форум — Admin

Добрый день. Имеется роутер (Centos7), два провайдера и одна внутренняя сеть. Внешние интерфейсы роутера (собрал макет рабочей системы на vm ws)

внеш ens224 172.16.30.5/29 шлюз 172.16.30.4
внеш ens256 172.16.50.5/28 шлюз 172.16.50.4
внут ens161 10.0.1.1/24
Маршрут по умолчанию default via 172.16.30.4 dev ens224. Из внутренней сетки все идет через ens224. Чтобы снаружи роутер был доступен по обоим адресам, добавил правила
ip route add default via 172.16.30.4 table 30
ip route add default via 172.16.50.4 table 50
ip rule add from 172.16.30.5 table 30
ip rule add from 172.16.50.5 table 50
Все это работает без проблем. Но сейчас понадобилось сделать форвардинг порта с внешки на сервер внутри локальной сети. Добавил правила в iptables
iptables -t nat -A PREROUTING -p TCP -d 172.16.30.5 --dport 25 -j DNAT --to-destination 10.0.1.2:25
iptables -t nat -A PREROUTING -p TCP -d 172.16.50.5 --dport 25 -j DNAT --to-destination 10.0.1.2:25
iptables -A FORWARD -j ACCEPT
По адресу 172.16.30.5:25 внутренний сервер доступен, все работает. А вот по 172.16.50.5:25 - нет. По логам видно, что в nat prerouting пакеты dest 172.16.50.5:25 приходят, но дальше дропаются, DNAT не срабатывает, в mangle forward ничего. Если сменить default route на 172.16.50.4, ситуация противоположная. Может ip rule/route для транзитных пакетов не работает? Куда еще копать?

 , ,

tvreq
()

RSS подписка на новые темы