¿Aumentar ip_conntrack_max de forma segura?

9

He visto lo siguiente en mis registros de vez en cuando:

kernel: ip_conntrack: tabla llena, descartando paquete.

Actualmente, tengo ip_conntrack_max configurado en 65536 (predeterminado, RHEL5).

Teniendo en cuenta el uso de la memoria, ¿cuánto puedo aumentar este valor de manera segura? Tengo 4 GB de RAM en esta caja. Una de las funciones que sirve esta máquina es como un servidor de contenido estático, lo que probablemente explica los altos recuentos de conexiones, y también significa que me gustaría conservar la mayor cantidad de memoria del sistema operativo utilizada para el almacenamiento en caché como sea posible.

Además, ¿cuál es la diferencia entre los dos siguientes? / proc / sys / net / ipv4 / netfilter / ip_conntrack_max / proc / sys / net / ipv4 / ip_conntrack_max

¿Cuál debería estar editando?

¡Gracias!

Neil
fuente

Respuestas:

9

Primero, hágase una pregunta: ¿su configuración requiere el seguimiento de la conexión? Si es solo un servidor y el firewall / NAT se realiza en otro lugar, entonces probablemente pueda deshabilitar conntrack por completo.

Segundo, verifique si sus entradas conntrack tienen sentido. A veces, las tablas conntrack están llenas de basura debido a una configuración incorrecta de la red o el firewall. Por lo general, esas son entradas para conexiones que nunca se establecieron por completo. Eso puede suceder, por ejemplo, cuando el servidor recibe paquetes SYN de conexión entrante, pero las respuestas del servidor siempre se pierden en algún lugar de la red.

Las únicas máquinas que tenía un mensaje 'ip_conntrack: table full' y que necesitaban un aumento de ip_conntrack_max (en lugar de arreglar la configuración), donde los enrutadores realizaban NAT para redes bastante grandes (miles de puntos finales).

Si sabe que necesita conntrack y realmente necesita ser más grande de lo que es, aumente el número hasta que no reciba más mensajes de "tabla llena". Y mira el uso de la memoria.

Algunas estadísticas sobre la asignación de memoria para objetos conntrack se pueden encontrar en el archivo / proc / slabinfo.

Jacek Konieczny
fuente
6

La ruta con "netfilter" es la antigua forma de referirse a la misma configuración. Puedes editar cualquier archivo.

# 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
fuente
En ubuntu 10.04 / 2.6.32-45-server, solo existe ipv4 / netfilter / ip_conntrack_max
okwap
Su respuesta es diferente de antmeetspenguin.blogspot.tw/2011/01/…
okwap