Где правильное место для установки net.netfilter.nf_conntrack_buckets?


12

В настоящее время я пытаюсь установить 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

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

Ответы:


11

Я думаю, что параметр sysctl предназначен только для просмотра. Вы захотите использовать /sys/module/nf_conntrack/parameters/hashsizeинтерфейс для изменений во время выполнения и hashsizeопцию модуля, чтобы установить его во время начальной загрузки модуля.

Вы хотели бы запись в /etc/modprobe.d/файле, который выглядит примерно так:

options nf_conntrack hashsize=XXXXX


Я заметил, что если вы установите размер хеша через / sys / module / nf_conntrack / parameters / hashsize, то net.netfilter.nf_conntrack_buckets sysctl не обновляется, в то время как если вы сделаете это через modprobe, а затем перезагрузите его, он будет изменен. Означает ли это, что изменение значения с помощью первого метода не полностью применяет новое значение?
andresp

5

В дополнение к ответу Эндрю Б.

По какой-то причине в документации RHEL рекомендуется помещать вместо этого исполняемый сценарий оболочки с nf_conntrack_hashsize.modulesрасширением, подобным имени /etc/sysconfig/modules. Понятия не имею почему. Содержание будет выглядеть так:

#!/bin/sh
exec /sbin/modprobe nf_conntrack hashsize=262144

Похоже, это необходимо, если вы хотите загрузить дополнительные модули, которые не были бы загружены в противном случае. [quote] Вы можете указать дополнительные модули для загрузки, создав новые <file_name> .modules [/ quote]
hbogert

1

Вам нужно поместить файл с именем, например, localhost, в каталог /etc/modprobe.d/.

Внутри этого файла добавьте эти строки (значение является примером):

options nf_conntrack hashsize=333333

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

Проверьте результат с помощью:

cat /sys/module/nf_conntrack/parameters/hashsize
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.