Aumentando o ip_conntrack_max com segurança?

9

Eu vejo o seguinte em meus logs de vez em quando:

kernel: ip_conntrack: tabela cheia, descartando pacotes.

Atualmente, eu tenho o ip_conntrack_max definido como 65536 (padrão, RHEL5).

Tendo em mente o uso da memória, quanto posso aumentar com segurança esse valor? Eu tenho 4 GB de RAM nesta caixa. Uma das funções que esta máquina serve é como um servidor de conteúdo estático, o que provavelmente explica as altas contagens de conexões e também significa que eu gostaria de manter o máximo possível de memória do SO usada para armazenar em cache.

Além disso, qual é a diferença entre os dois seguintes? / proc / sys / net / ipv4 / netfilter / ip_conntrack_max / proc / sys / net / ipv4 / ip_conntrack_max

Qual devo editar?

Obrigado!

Neil
fonte

Respostas:

9

Primeiro, faça uma pergunta a si mesmo: sua configuração requer rastreamento de conexão? Se for apenas um servidor e o firewall / NAT for feito em outro lugar, provavelmente você poderá desativar o conntrack todos juntos.

Segundo, verifique se as entradas do conntrack fazem sentido. Às vezes, as tabelas conntrack são preenchidas com lixo devido a algumas configurações incorretas da rede ou do firewall. Geralmente, essas são entradas para conexões que nunca foram totalmente estabelecidas. Isso pode acontecer, por exemplo, quando o servidor recebe pacotes SYN de conexão de entrada, mas as respostas do servidor sempre são perdidas em algum lugar da rede.

As únicas máquinas que eu tinha mensagens 'ip_conntrack: table full' e que precisavam aumentar ip_conntrack_max (em vez de corrigir a configuração), onde os roteadores executavam o NAT para redes muito grandes (milhares de terminais).

Se você sabe que precisa do conntrack e ele realmente precisa ser maior do que é, aumente o número até não receber mais mensagens de "tabela cheia". E observe o uso da memória.

Algumas estatísticas sobre alocação de memória para objetos conntrack podem ser encontradas no arquivo / proc / slabinfo.

Jacek Konieczny
fonte
6

O caminho com "netfilter" é a maneira antiga de se referir à mesma configuração. Você pode editar qualquer arquivo.

# cat / proc / sys / net / ipv4 / ip_conntrack_max  
655360
# cat / proc / sys / net / ipv4 / netfilter / ip_conntrack_max
655360
# echo 655361> / proc / sys / net / ipv4 / ip_conntrack_max
# cat / proc / sys / net / ipv4 / netfilter / ip_conntrack_max
655361
BrianEss
fonte
No Ubuntu 10.04 / 2.6.32-45-servidor, somente ipv4 / netfilter / ip_conntrack_max existe
OKWAP
Sua resposta é diferente de antmeetspenguin.blogspot.tw/2011/01/…
okwap 03/02