Onde é o local correto para configurar o net.netfilter.nf_conntrack_buckets?

12

Atualmente, estou tentando definir o net.netfilter.nf_conntrack_buckets na inicialização. Inicialmente, assumi que isso poderia ser feito através do sysctl.conf, mas o net.netfilter.nf_conntrack_buckets (e outras configurações do net.netfilter) não foram aplicadas. A adição de sysctl -p ao rc.local permitiu que todas as configurações do net.netfilter fossem aplicadas, com exceção do net.netfilter.nf_conntrack_buckets. Também observarei que tentar definir isso no terminal usando sysctl -w resulta em 'erro: permissão negada na chave' net.netfilter.nf_conntrack_buckets ''

# This should be applied at boot
net.netfilter.nf_conntrack_max=1966080
net.netfilter.nf_conntrack_buckets=245760

Onde é o lugar correto para fazer isso?

KelchM
fonte

Respostas:

11

Eu acho que o parâmetro sysctl é apenas para visualização. Você desejará usar a /sys/module/nf_conntrack/parameters/hashsizeinterface para alterações no tempo de execução e a hashsizeopção do módulo para defini-la durante o carregamento inicial do módulo.

Você deseja uma entrada em um /etc/modprobe.d/arquivo que se parece com isso:

options nf_conntrack hashsize=XXXXX

Andrew B
fonte
Notei que, se você definir o hashsize via / sys / module / nf_conntrack / parameters / hashsize, o net.netfilter.nf_conntrack_buckets sysctl não será atualizado, enquanto se você fizer isso através do modprobe e depois reinicializá-lo, ele será alterado. Isso significa que alterar o valor pelo primeiro método não aplica completamente o novo valor?
andresp 28/05
5

Em resposta à resposta de Andrew B:

Por alguma razão, a documentação do RHEL recomenda a inserção de um script de shell executável com um nome como nf_conntrack_hashsize.modulesextensão /etc/sysconfig/modules. Eu não tenho ideia do porquê. O conteúdo seria semelhante a:

#!/bin/sh
exec /sbin/modprobe nf_conntrack hashsize=262144
Richard Barrell
fonte
Parece que isso é necessário se você deseja carregar módulos adicionais que não teriam sido carregados de outra forma. [quote] Você pode especificar módulos adicionais a serem carregados, criando um novo <nome_do_arquivo> .modules [/ quote]
hbogert
1

Você precisa colocar um arquivo chamado, por exemplo, localhost dentro do diretório /etc/modprobe.d/.

Dentro deste arquivo, adicione estas linhas (o valor é um exemplo):

options nf_conntrack hashsize=333333

E agora, a solução mais rápida é a reinicialização, a outra opção é tentar recarregar o módulo do kernel nf_conntrack, o que é um pouco difícil porque está vinculado a outros módulos em execução.

Verifique o resultado com:

cat /sys/module/nf_conntrack/parameters/hashsize
Ricardo Fraile
fonte