Всем доброго времени суток, может быть то я туплю, но хочется уточнить. Есть две сервера на Ubuntu оба настроены как шлюз для выхода в инет, но так как ядро сети не умеет работать с двумя шлюзами по умолчанию постоянно шлюзом работает только один, а второй выполняет роль горячего резерва. Внутри сети стоит почтовик который пробросом портов выглядывает в интернет. Проброс портов делал так
iptables -t nat -A PREROUTING -d $EXT_IP -p tcp -m tcp --dport $EXT_PORT -j DNAT --to-destination $LAN_IP:$SRV_PORT
#iptables -t nat -A POSTROUTING -d $LAN_IP -p tcp -m tcp --dport $SRV_PORT -j SNAT --to-source $INT_IP
iptables -t nat -A OUTPUT -d $EXT_IP -p tcp -m tcp --dport $SRV_PORT -j DNAT --to-destination $LAN_IP
iptables -I FORWARD 1 -i $EXT_IF -o $INT_IF -d $LAN_IP -p tcp -m tcp --dport $SRV_PORT -j ACCEPT
И вот тут главная проблема. В таком виде с закомментированной строкой все работает на текущем дефаултном шлюзе, но совсем не работает на том который стоит в резерве. Если на резервном выполнить и вторую строку, то проброс порта начинает работать, но на почтовый сервер приходит IP шлюза, а не IP источника и почтовик начинает откидывать почту ругаясь на SPF что с его стороны логично.
Собственно вопрос, можно ли заставить сервер на линукс пробрасывать порт в локалку без изменения адреса источника если он не является шлюзом по умолчанию или нужно смотреть куда-то в другую сторону.