DNAT (Destination Network Address Translation) на уровне сети работает следующим образом: 5
- Узел отправляет пакет на внешний адрес роутера. 1 Адресом источника будет являться адрес узла, а адресом назначения — внешний адрес роутера. 1
- Получив такой пакет, брандмауэр находит нужное правило и изменяет адрес назначения пакета на внутренний адрес целевого узла и отправляет его в локальную сеть. 1
- Узел назначения видит, что ему пришёл пакет от удалённого узла, и формирует ответный пакет с этим адресом в качестве назначения, а в качестве источника подставляет собственный адрес. 1
- Так как удалённый узел не принадлежит локальной сети, пакет будет направлен основному шлюзу, то есть назад роутеру. 1
- На шлюзе в любом случае включён SNAT или MASQUERADE. 1 Поэтому локальный адрес источника будет заменён адресом внешнего интерфейса, и такой пакет будет отправлен назад удалённому узлу. 1
Таким образом, удалённый узел общается только с внешним адресом роутера и не имеет представления о сети за ним, а локальный узел продолжает считать, что работает с удалённым узлом напрямую. 1