Сразу после загрузки модулей conntrack нет (так и должно быть). После efw restart модули появляются. Это плохо на высоконагруженных роутерах - загруженные модули conntrack приводят к тому, что ядро отслеживает все соединения и не создаёт новых при переполнении таблицы conntrack. и что ещё хуже - увеличение таблицы через sysctl не работает, ибо на момент загрузки системы модулей conntrack в системе нет. Необходимо сделать так, что бы перезапуск firewall в etcnet не загружал дополнительных модулей ядра, если в этом нет необходимости. Воспроизводится очень просто на любой системе, не являющейся шлюзом: [root@riderkvmS ~]# lsmod |grep conn [root@riderkvmS ~]# efw restart Interface is "default" Table is "filter" Chain is "" Action is "restart" Firewall type is "iptables" Stopping iptables for default Flushing the "OUTPUT" chain in the "filter" table Flushing the "FORWARD" chain in the "filter" table Flushing the "INPUT" chain in the "filter" table Flushing the "POSTROUTING" chain in the "nat" table Flushing the "OUTPUT" chain in the "nat" table Flushing the "PREROUTING" chain in the "nat" table Flushing the "POSTROUTING" chain in the "mangle" table Flushing the "OUTPUT" chain in the "mangle" table Flushing the "FORWARD" chain in the "mangle" table Flushing the "INPUT" chain in the "mangle" table Flushing the "PREROUTING" chain in the "mangle" table Setting ACCEPT policy for the "INPUT" chain in the "filter" table Setting ACCEPT policy for the "FORWARD" chain in the "filter" table Setting ACCEPT policy for the "OUTPUT" chain in the "filter" table Starting iptables for default Setting ACCEPT policy for the "INPUT" chain in the "filter" table Setting ACCEPT policy for the "FORWARD" chain in the "filter" table Setting ACCEPT policy for the "OUTPUT" chain in the "filter" table [root@riderkvmS ~]# lsmod |grep conn nf_conntrack_ipv4 14110 3 nf_nat,iptable_nat nf_defrag_ipv4 1537 1 nf_conntrack_ipv4 nf_conntrack 83469 3 nf_nat,iptable_nat,nf_conntrack_ipv4
А это не efw, ответственно заявляю как автор ;-) Экспериментально выяснил только что следующее: # lsmod |grep conn # iptables -F OUTPUT -t nat # lsmod |grep conn nf_conntrack_ipv4 10493 3 iptable_nat,nf_nat nf_conntrack 63523 3 iptable_nat,nf_nat,nf_conntrack_ipv4 nf_defrag_ipv4 1205 1 nf_conntrack_ipv4 Именно после этого flush-а начинается эта проблема. Другие flush-и это не делают. Грузит это всё, похоже, модуль iptables_nat. Команда modprobe -r iptable_nat убирает все эти модули. Можете её выполнял где-то в скриптах любых остановки (даже в конфигах). Можно еще что-то придумать, но это уже будет костыль, imho.
если нужно держать в рамках размер conntrack'а -- есть таблица raw и джамп NOTRACK. файрвол же вообще без conntrack -- это как-то хм.
А зачем на файрволле conntrack, объясни пожалуйста ? Файрволл - это же не всегда NAT, верно ? Таблица raw - ещё один костыль. Давайте сделаем хотя-бы так, что если в таблице nat пусто - то и не делаем её -F
А как мы узнаем, пустая она или нет? Встраивать ненужный интеллект в скрипты? Проще, мне кажется, в blacklist запихнуть эти модули, чтобы не грузились. Ну или выяснить, почему iptables их вообще грузит для этого.
(In reply to comment #3) > А зачем на файрволле conntrack, объясни пожалуйста ? > > Файрволл - это же не всегда NAT, верно ? Для RELATED. Вообще, этот наш линупс со времён 2.2 имеет stateful firewall, и conntrack -- это вот оно и есть.