Цепочки INPUT
и OUTPUT
просматриваются для пакетов, доставляемых и отправляемых из приложений, работающих на локальном компьютере.
Если приложение отправляет пакет, оно проходит
app -> OUTPUT -> POSTROUTING -> interface
И наоборот, пакет, доставленный приложению, пересекает
interface -> PREROUTING -> INPUT -> app
Пока пересылаемый пакет проходит
interface -> PREROUTING -> FORWARD -> POSTROUTING -> interface
Обратите внимание, что MASQUERADE
- это особый случай SNAT
, когда адрес источника берется из интерфейса.
Также посмотрите эту картинку или много похожих, которые вы можете найти в руководствах по iptables
.
редактировать
Если вы хотите выполнить DNAT
для пакетов, отправленных из приложения, вы должны использовать OUTPUT
, поскольку DNAT
работает только в PREROUTING
, а исходящие пакеты из приложения никогда не пересекают PREROUTING
.
Аналогично для SNAT
, INPUT
и POSTROUTING
в случае приложений, отправляемых приложениям, хотя я не уверен в текущем состоянии SNAT
в INPUT
, он может быть поврежден и фактически не работать.
Поскольку большинство маскировок происходит в маршрутизаторе, пересылающем пакеты, вы не часто видите подобные приложения.