LINUX.ORG.RU
ФорумAdmin

Прохождение пакетов через цепочки при SNAT


0

0

При SNAT транзитный пакет проходит через цепочку POSTROUTING таблицы nat где и происходит подмена адреса источника. В iptables-tutorial написано, что обратная трансляция(возвращение пришедшим транзитным пакетам адреса источника) происходит автоматически.
Другими словами в класическом случае имеем внутреннюю локальную сеть и шлюз с настроенным NAT во внешнюю сеть. Пакеты с локальной сети попадают на шлюз и в цепочке POSTROUTING таблицы nat (например при правиле iptables -t nat -A POSTROUTING -p tcp -s local_net -j SNAT --to-source gate_address) у транзитных пакетов меняется адрес источника. При получении ответа для транзитных пакетов на шлюзе меняется адрес приемника и пакет направляется в локальную сеть нужному хосту.

1) Где при SNAT(в какой цепочке и таблице) происходит изменение адреса приемника(при получении ответа из внешней сети)?
2) Как можно ли отследить(направить в -j ULOG) такие пакеты(вернувщиеся после с внешней сети при использовании NAT), но уже с адресами назначения локальных хостов?

P.S.
Надеюсь, что внятно описал проблему.

Ответ на: комментарий от free_serj

Кажется да, но точно сказать не берусь, не изучал вопрос.

tmp
()
Ответ на: комментарий от free_serj

> на каком этапе меняется ip адрес назаначения
После прохождения пакета по PREROUTING цепочкам, т.е. до INPUT или FORWARD, в них пакет уже попадает с измененным адресом.
Более подробно смотреть здесь: http://www.docum.org/docum.org/kptd/
(схему удобнее смотреть, скопировав в обычный текстовый файл)

spirit ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.