Вечер добрый сообществу! Ситуация: надо перенаправлять трафик с 80-го порта с одного сервера на другой, который не находится в локальной сети. Сервер должен знать адрес клиента, нужно просто выполнить подстановку адреса получателя. Как я понимаю, это задача DNAT.
Делаю следующее:
iptables -t nat -A PREROUTING --dst 192.168.1.12 -p tcp --dport 80 -j DNAT --to-destination 91.100.100.100:80
Добавил еще следующие правила:
iptables -A FORWARD -p tcp -m state --state NEW -d 91.100.100.100 --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW --dport 80 -i eth0 -j ACCEPT
и SNAT:
iptables -t nat -A POSTROUTING -p tcp --dst 91.100.100.100 --dport 80 -j SNAT --to-source 192.168.1.12
Проблема: В переадрессованных пакетах remote address - адрес сервера, который их перенаправил, а не клиента.
Такой рецепт не подходит если сервер находится не в локальной сети? Как быть?