Где правильное место для установки net.netfilter.nf_conntrack_buckets?
В настоящее время я пытаюсь установить net.netfilter.nf_conntrack_buckets при загрузке. Сначала я предполагал, что это можно сделать через sysctl.conf, но net.netfilter.nf_conntrack_buckets (и другие конфигурации net.netfilter) вообще не применялись. Добавление sysctl -p в rc.local позволило применить все конфигурации net.netfilter, за исключением net.netfilter.nf_conntrack_buckets. Также отмечу, что попытка установить это с терминала с помощью sysctl -w приводит к ошибке: в ключе net.netfilter.nf_conntrack_buckets отказано в разрешении
# This should be applied at boot
net.netfilter.nf_conntrack_max=1966080
net.netfilter.nf_conntrack_buckets=245760
Где правильное место для этого?
3 ответа
Я думаю, что параметр sysctl предназначен только для просмотра. Вы хотите использовать /sys/module/nf_conntrack/parameters/hashsize
интерфейс для изменений во время выполнения, и hashsize
опция модуля, чтобы установить его во время начальной загрузки модуля.
Вы хотели бы запись в /etc/modprobe.d/
файл, который выглядит примерно так:
options nf_conntrack hashsize=XXXXX
В дополнение к ответу Эндрю Б.
По какой-то причине в документации RHEL рекомендуется помещать исполняемый скрипт оболочки с именем вроде nf_conntrack_hashsize.modules
расширение в /etc/sysconfig/modules
вместо. Понятия не имею почему. Содержание будет выглядеть так:
#!/bin/sh
exec /sbin/modprobe nf_conntrack hashsize=262144
Вам нужно поместить файл с именем, например, localhost, в каталог /etc/modprobe.d/.
Внутри этого файла добавьте эти строки (значение является примером):
options nf_conntrack hashsize=333333
И теперь, более быстрое решение - перезапуск, другой вариант - попытаться перезагрузить модуль ядра nf_conntrack, который немного сложен, потому что он связан с другими работающими модулями.
Проверьте результат с помощью:
cat /sys/module/nf_conntrack/parameters/hashsize