Назад | Перейти на главную страницу

Где правильное место для установки 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

Где это правильно сделать?

Я думаю, что параметр 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