Aumentando ip_conntrack_max com segurança?

9

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

kernel: ip_conntrack: tabela cheia, descartando pacotes.

Atualmente, tenho ip_conntrack_max configurado para 65536 (padrão, RHEL5).

Pensando no uso de memória, quanto posso aumentar esse valor com segurança? 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 da memória do sistema operacional usada para o armazenamento 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 deles devo editar?

Obrigado!

    
por Neil 09.02.2010 / 09:42

2 respostas

9

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

Em segundo lugar, verifique se as entradas do conntrack fazem sentido. Às vezes, as tabelas do conntrack estão cheias de lixo por causa de alguma configuração incorreta da rede ou do firewall. Geralmente, essas são entradas para conexões que nunca foram totalmente estabelecidas. Isso pode acontecer, e. quando o servidor recebe pacotes SYN de conexão de entrada, mas as respostas do servidor são sempre perdidas em algum lugar da rede.

As únicas máquinas que eu tinha uma mensagem 'ip_conntrack: table full' e que precisava de ip_conntrack_max aumentavam (em vez de corrigir a configuração), onde os roteadores faziam NAT para redes bastante grandes (milhares de endpoints).

Se você sabe que precisa de conntrack e realmente precisa ser maior do que é, aumente o número até não receber mais mensagens 'table full'. 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.

    
por 02.03.2010 / 13:40
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
    
por 02.03.2010 / 10:27