Читаю этот мануал http://www.opennet.ru/docs/RUS/iptables/#DNATTARGET
В примере по DNAT написано:
Проблема решается довольно просто с помощью SNAT. Ниже приводится правило, которое выполняет эту функцию. Это правило вынуждает HTTP сервер передавать ответы на наш брандмауэр, которые затем будут переданы клиенту.
iptables -t nat -A POSTROUTING -p tcp --dst $HTTP_IP --dport 80 -j SNAT --to-source $LAN_IP
Я не понял пример. Веб-сервер у нас в локальной сети. Чтобы извне перенаправить пакет, мы на маршрутизаторе меняем поле назначения на ip http - сервера. Это логично и понятно. Затем, чтобы был доступ из локальной сети, мы меняем адрес source.
В результате мы поменяли у пакета и destination и source. Этот пакет приходит на веб-сервер в нашей сети. Как он поймёт, куда направлять пакет, если у нас source = маршрутизатор?
я так понимаю, что пакет пойдёт на маршрутизатор и всё. Больше он никуда не отправится дальше. По крайней мере, в этом примере.
Где ошибка в моих рассуждениях?