Сохранение nf_conntrack_max через перезагрузки

10

У /procменя есть две записи для nf_conntrack_max:

/ Труды / системы / нетто / Netfilter / nf_conntrack_max
/ Труды / системы / нетто / nf_conntrack_max

Кажется, это указывает на то же значение, что и изменение одного и другого. С обоими из них установлено /etc/sysctl.conf:

net.netfilter.nf_conntrack_max = 65528
net.ipv4.netfilter.ip_conntrack_max = 65535

Значение остается 32764 после перезагрузки, поэтому изменения не работают. Кто-нибудь сталкивался с этим раньше? Я предполагаю, что эти значения применяются до загрузки соответствующих модулей, но я надеялся, что кто-то уже знает решение.

Кайл Брандт
источник
Вы когда-нибудь находили решение для этого?
Стю Томпсон
@Stu: Нет, я просто стал ленивым и написал задание cron, чтобы установить их :-P
Кайл Брандт

Ответы:

11

это потому, что /proc/sys/net/nf_conntrack_maxполагаться на модуль nf_conntrack. но этот модуль не будет загружен по умолчанию при запуске системы.

но если вы бежите

iptables -t nat -L

или

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

этот модуль загрузится автоматически и установит максимальное число, которое поддерживает ваша система (максимальное число составляет 65536, если у вас больше 4 Гб, но оно отличается в разных системах.) вы можете установить большее значение (например, 6553600) в /etc/sysctl.conf) ,

Решение :

добавьте одну строку в конец файла /etc/modules:

nf_conntrack

эти модули будут загружены при запуске системы перед sysctlвыполнением.

Итан Сюй
источник
спасибо :) - хотя у меня также был плохой конфиг, который остановил его загрузку
Christian
3

Потому что это должно быть:

net.netfilter.nf_conntrack_max = 65535

И теперь вы можете установить это без перезапуска: sysctl -p /etc/sysctl.conf

Мацей Ласык
источник
2

Я не использую Ubuntu, но, думая об этом в своем настроении CentOS, я выдвинул ту же гипотезу, что и вы, - sysctl применяются слишком рано. Некоторые поиски показали, что это ошибка с 2006 года .

Похоже, что размещение еще одной символической ссылки с приоритетом> S40 для повторного запуска сценария procps, вероятно, сделает то, что вам нужно. Согласно сводке об ошибках, похоже, что некоторая реорганизация методологии Ubuntu sysctl в порядке (и, что забавно, ошибка была назначена кому-то, кто не знал, что она была назначена и не может помочь с этим).

Эван Андерсон
источник