Netfilter guarda en la tabla conntrack el estado de cada flujo que atraviesa reglas stateful o NAT. Cuando se llena, descarta los paquetes de conexiones nuevas: los clientes ven timeouts intermitentes mientras las sesiones ya establecidas siguen andando.
1. Confirmar y medir: Código: bash
sysctl net.netfilter.nf_conntrack_count net.netfilter.nf_conntrack_max
conntrack -S # drop, insert_failed, early_drop por CPU
conntrack -L | awk '{print $4}' | sort | uniq -c # estados TCP
2. Entender la causa antes de tocar límites:
Crecimiento legítimo de tráfico y una tabla dimensionada para otra época.
Timeouts excesivos: el de TCP established es de 432000 s (5 días) por defecto, así que conexiones abandonadas sin FIN ocupan entradas mucho tiempo.
Muchísimos flujos cortos, como DNS sobre UDP o health checks.
Ataque (SYN flood, barrido de puertos) o un cliente que abre conexiones sin reutilizarlas.
3. Mitigar:
Subir nf_conntrack_max según la RAM disponible y ajustar hashsize (buckets) en proporción para que las búsquedas no se degraden.
Bajar los timeouts razonablemente, por ejemplo nf_conntrack_tcp_timeout_established a horas en vez de días, y revisar los de time_wait y udp.
Excluir del tracking el tráfico que no necesita estado con NOTRACK en la tabla raw (o notrack en nftables), típico en un DNS autoritativo de alto volumen. Las reglas para ese tráfico tienen que quedar stateless.
Si es un ataque: SYN cookies, rate limiting, filtrado aguas arriba y, si hay sospecha de un incidente, avisar al equipo de seguridad.
Persistir los cambios en /etc/sysctl.d/ y en las opciones del módulo.
4. Prevenir: monitorear la relación count/max y los contadores de drop (node_exporter los expone), con alerta por ejemplo al 80%, y probar los cambios primero en un entorno de laboratorio.
Errores comunes
Solo subir nf_conntrack_max al máximo sin ajustar hashsize, timeouts ni investigar la causa. Desactivar conntrack sin entender que se rompen NAT y las reglas stateful.
Redactado con el asistente Underc0de IA. Actualizado el 12/11/2026. ¿Ves un error? Contanos en el foro.