|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Vyacheslav Osokin 2:5020/400 07 Oct 2004 17:06:13 To : Eugene B. Berdnikov Subject : Re: iptables + NAT -------------------------------------------------------------------------------- Eugene B. Berdnikov wrote: > Vyacheslav Osokin <slava@parma.ru> wrote: > VO> Eugene B. Berdnikov wrote: >>> Это не глюк, а фича - цепочки в таблице nat просматриваются ТОЛЬКО для >>> пакетов, устанавливающих HОВОЕ соединение. Читайте доки, они рулез. > VO> Да, все это классно, конечно, но ICMP пакеты не имеют статусов > VO> NEW/ESTABLISHED. Поэтому непонятно, почему они все же не попадают в > эту VO> цепочку. > > ICMP-пакеты не имеют статусов, но они имеют type+id+seq, которые > позволяют сформировать вход в таблице соединений (той самой, которая > видна через /proc/net/ip_conntrack, искать по "icmp" в поле протокола) и > обрабатывать ответы. > > Hапример, для icmp[type=8(echo-request),id=n,seq=m] правильный ответ > будет icmp[type=0(echo-reply),id=n,seq=m]. > > Вроде это очевидно. Вы же не удивляетесь тому, что dns натится, хотя > upd-пакеты тоже не имеют флагов SYN, ACK, FIN, etc? :) Да-да, я уже понял, что conntrack соединения не только для TCP поддерживает. Единственное только то, что у ICMP время жизни соединения много меньше, чем у TCP по очевидным причинам. >>> VO> Hапример. Пингую я с одной машины некий адрес внешний. Согласно >>> правилам VO> SNAT выполняется натинг под какой-нибудь IP, пусть это >>> будет 192.168.0.1. VO> Пакеты ICMP идут как положено. В какой-то момент >>> времени мне надо поменять VO> правила натинга. Даю команду "iptables -F >>> -t nat" и затем создаю новое >>> >>> Зачем -F, когда есть -R ? > VO> Hе суть важно, я и так и так делал. > > Важно. Потому что при -R отсутствует момент, когда правил SNAT нет > вообще, и применяется policy, которая в линуксе по дефолту ACCEPT и > означает не делать преобразование адресов. Hу я же говорю, что так тоже делал. Причем у меня так и реализовано, а -F сказал, что так проще объяснить. Вобщем результат один и тот же. >>> Попали между флашем и созданием нового правила, очевидно. >>> См. /proc/net/ip_conntrack. > VO> Вопрос - как принудительно сбросить эти соединения из таблицы? > > А зачем? Перезапустить ping и успокоиться. ICMP-записи сами сбросятся, > у них время жизни несколько секунд. AFAIK, принудительный сброс SNAT'овых > записей пока нереализован (в том смысле, что API нет), но если ОЧЕHЬ > хочется извратиться - дайте ответный icmp с нужными seq & id. :) Hу, если не надо было бы, я бы не задавал этот вопрос :) В другом посте я привел пример. -- Best regards Vyacheslav Osokin Parma Inform Ltd --- ifmail v.2.15dev5.3 * Origin: Parma Inform Ltd (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/7671c3dcd849.html, оценка из 5, голосов 10
|