LINUX.ORG.RU
ФорумAdmin

CONNTRACK: сбросить всё в NEW


0

1

После применения правила, маскарадинг срабатывает только для новых соединений. Те соединения, которые успели послать пару пакетиков до применения маскарада(возьмем к примеру даже пинг) - продолжают щимиться в интерфейс без маскарада :(
проверено, что дело сто процентов в conntrack. оно и логично, потому что в первоисточнике написано, что натятся только первые пакеты (т.е. пока state = NEW)
Вот если бы одним разом сбросить состояние всех соединений в NEW..

Видел в интернетах грязный хак: прописать в /proc таймауты conntrack в 0, применить правила, а потом вернуть таймауты на место...
Но я верю, что должен быть более стандартный способ.

Может кто подскажет?

Спасибо.


погуглил старательнее...

нашел способ
#aptitude install conntrack

а потом сброс таблицы
#conntrack -F

вроде работает.

сам проект:
http://conntrack-tools.netfilter.org/

метод вроде немного красивее записи нуля в таймаут, но всё равно требует установки доп. пакета.
Ещё более красивый и стандартный способ есть?

а, да, забыл: Debian 6 linux 2.6.32-5-686

dx
() автор топика
Ответ на: комментарий от true_admin

ничего не понял.
можно конкретнее?
какая разница будет подгружаться модуль при загрузке или его зацепит iptables?

кстати вот сейчас смотрю, что до применения правила -j MASQUERADE lsmod не показывает nf_conntrack. хм... значит выглядит всё так:

1. изначально nf_conntrack не загружен, применяется правило -j MASQUERADE, модуль nf_conntrack загружается и всё прекрасно работает
2. обрывается vpn линк, down скрипт удаляет из iptables правило маскарадинга, но nf_conntrack всё ещё загружен(и с ним в компани ещё всякие nf_nat, ipt_MASQUERADE, iptable_nat и т.д)
3. vpn переконнекчивается, up скрипт добавляет правило маскарадинга в iptables, но модулл nf_conntrack всё это время как сидел в памяти так и сидит, а значит непрерывно отслеживал состояние соединений и по новой маскарадить старые линки не хочет. Вот и выходит что нет пинга туда-же куда он был до переконнекта vpn'a(на другие машины естественно есть, ибо там уже состояние NEW и это дело идет уже через маскарад).

т.е. тут даже не в автозагрузку nf_conntrack надо, а в «автоВЫГРУЗКУ» чтоли )) но это надо их всех по очереди выгружать и список этот может меняться в зависимости от правил фаервола(iptables модулей надёргает себе).. тоже кривой вариант получается.

хм. странно. должно быть простое решение. это же элементарный сброс состояние коннтрэка... ооочень странно всё это.. одни извращения какие-то нагугливаются!

dx
() автор топика
Ответ на: комментарий от dx

Вот ещё ещё почитал
http://robert.penz.name/96/nf_conntrack-and-the-conntrack-program/

А в 2002 была проблема с пингом у кого-то
http://lists.netfilter.org/pipermail/netfilter-devel/2002-October/009559.html

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

dx
() автор топика
Ответ на: комментарий от dx

1) Маскарадинг только с conntrack будет работать.

2) Если conntrack будет уже при старте системы то все соединения будут им трэкаться. Соотв. это может решить проблему.

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

в этом то и беда, что они трэкаются гады)
-трэкнул он соединение ещё ДО прописывания маскарада
-ну там стартанули VPN, всю фигню....
-прописали маскарад
-трэкнутое соединение продолжает идти мимо маскарада..ибо через NAT правила проходят только соединения с состоянием NEW.

dx
() автор топика
Ответ на: комментарий от dx

они трэкаются гады

в данном случае это может быть не conntrack а кэширование на уровне tcp-соединений. Ядро смотрит на таблицу маршрутизации только один раз при установке соединения. Дальше найденный гейт кэширует в параметрах соединения и маршрутизацию больше не трогает.

Т.е. тут может быть проблема не в conntrack.

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