2

Я понимаю, что делают prerouting postrouting маршрутизации и пост-маршрутизации в IPTables, но я не могу понять, что делают цепочки output и input .
Таким образом, в NAT мы меняем целевой IP или порт, используя DNAT в prerouting , или исходный IP, чтобы получить ответ на правильный интерфейс, используя SNAT или MASQURADE в postrouting .

В этом сценарии я не нахожу использование для цепочек input и output . Может ли кто-нибудь объяснить мне (input и output) быстро мне?

1 ответ1

4

Цепочки 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 , он может быть поврежден и фактически не работать.

Поскольку большинство маскировок происходит в маршрутизаторе, пересылающем пакеты, вы не часто видите подобные приложения.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .