Дано: Шлюз в виде ubuntu с интерфейсами ens0 и ens1
Интерфейс смотрящий в интернет ens0 с ip, допустим, 188.xxx.xxx.130
Интерфейс раздающий сеть в локалку ens1 с ip 192.168.1.1/24
Локальный сервер, принимающий подключения на порту 80, 192.168.1.3
Локальные клиенты в диапазоне 192.168.1.10-192.168.1.20
Раздача интернета на локальную сеть путем forward и
iptables -A FORWARD -o ens0 -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:65495 -j TCPMSS --clamp-mss-to-pmtu
iptables -A FORWARD -i ens0 -o ens1 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i ens1 -o ens0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o ens0 -s 192.168.1.1/24 -j SNAT --to-source 188.xxx.xxx.130
Раздача интернета работает, вопросов нет.
Далее включено перенаправление входящих подключений на порт, допустим, 80 на машину в локальной сети, вот так,
iptables -t nat -A PREROUTING -i ens0 -p tcp --dst 188.xxx.xxx.130 --dport 80 -j DNAT --to 192.168.1.3:80
и если со внешки (с любой другой сети, не локальной) стучаться по 188.xxx.xxx.130:80, то это действительно работает, а как направить подключения из локальной сети с клиентов 192.168.1.10-192.168.1.20 пытающихся стучаться на 188.xxx.xxx.130:80 направить к 192.168.1.3:80 через iptables не прибегая к модификации hosts у клиентов?