LINUX.ORG.RU
ФорумAdmin

NEW и ESTABLISHED :)


0

1

Скажите, в ответ на пакет NEW всегда ли ESTABLISHED,RELATED идёт по тому же маршруту обратно?
Например, у шлюза есть внешние IP-адреса ext_gw1 и ext_ gw2
Все клиенты за NAT'ом, выходят по дефолту через внутренний адрес int_gw и маскарадятся в IP=ext_gw1.
Но есть проброс портов через ext_gw2 на клиента lan_srv.

Тогда пакет от ext_client за пределами сети к этому lan_srv идёт:
ext_client -> ext_gw2 -> lan_srv
А обратно:
lan_srv -> int_gw <=> ext_gw1 -> ext_client

Или всё же при передаче пакета «туда» маршрут запоминается и пакеты обратно идут:
lan_srv -> ext_gw2 -> ext_client





★★★★★

Тогда пакет от ext_client за пределами сети к этому lan_srv идёт: ext_client -> ext_gw2 -> lan_srv А обратно: lan_srv -> int_gw <=> ext_gw1 -> ext_client

Суть трансляции адресов в том, что lan_srv не знает о существовании ext_client, и думает, что пакет пришёл от ext_gw2

Black_Shadow ★★★★★ ()
Ответ на: комментарий от Black_Shadow

Если так, то почему же я на этот самом lan_srv запускаю wireshark и вижу, что к нему коннектятся внешние адреса (мой дроидофон, ещё Yandex networks'ы ккаие-то)???

В ту сторону это всё-таки DNAT, а не SNAT, вы что-то путаете.

DRVTiny ★★★★★ ()
Ответ на: комментарий от DRVTiny

В этом случае, ответ пойдёт через маршрут по-умолчанию.

Black_Shadow ★★★★★ ()

Нет, маршрутизация в линуксе является stateless и с соединениями никак не связана. В отличие от ната.

Чтобы все работало правильно, нужно маркировать пробрасываемые соединения через iptables -j CONNMARK --set-mark, потом для идущих обратно пакетов копировать ctmark в nfmark (-j CONNMARK --restore-mark, потому что ip rule не знает про ctmark, оно же stateless), и потом через ip rule fwmark заруливать в таблицу с нужным дефолтным гейтом.

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