En este artículo, daré un ejemplo de optimización de los parámetros nf_conntrack para un servidor NAT con carga alta.
Primero, veamos el número máximo y actual de conexiones monitoreadas (el máximo suele ser 524288):
/sbin/sysctl net.netfilter.nf_conntrack_count/sbin/sysctl net.netfilter.nf_conntrack_maxAumentemos el valor máximo y el tamaño de hash (normalmente tengo hashsize = nf_conntrack_max / 8):
/sbin/sysctl -w net.netfilter.nf_conntrack_max=4194304
echo "524288" > /sys/module/nf_conntrack/parameters/hashsize
Para evitar que el cambio se restablezca después de reiniciar el sistema, especifique en /etc/sysctl.conf:
net.netfilter.nf_conntrack_max = 4194304
Y también hashsize en /etc/rc.local:
echo “524288” > /sys/module/nf_conntrack/parameters/hashsize
Ahora veamos los valores de tiempo de espera actuales:
sysctl -a | grep conntrack | grep timeout
Los valores predeterminados suelen ser:
net.netfilter.nf_conntrack_generic_timeout = 600net.netfilter.nf_conntrack_icmp_timeout = 30net.netfilter.nf_conntrack_tcp_timeout_close = 10net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60net.netfilter.nf_conntrack_tcp_timeout_established = 432000 # 5daysnet.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120net.netfilter.nf_conntrack_tcp_timeout_last_ack = 30net.netfilter.nf_conntrack_tcp_timeout_max_retrans = 300net.netfilter.nf_conntrack_tcp_timeout_syn_recv = 60net.netfilter.nf_conntrack_tcp_timeout_syn_sent = 120net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120net.netfilter.nf_conntrack_tcp_timeout_unacknowledged = 300net.netfilter.nf_conntrack_udp_timeout = 30net.netfilter.nf_conntrack_udp_timeout_stream = 180En servidores muy cargados, es aconsejable reducir ligeramente los valores de tiempo de espera, especialmente durante ataques DDOS, o deshabilitar nf_conntrack si no es necesario y el servidor no se usa para NAT, por ejemplo, cambie algunos valores de tiempo de espera a tales valores (dejé las líneas comentadas sin cambios):
net.netfilter.nf_conntrack_generic_timeout=60net.netfilter.nf_conntrack_icmp_timeout=10#net.netfilter.nf_conntrack_tcp_timeout_close=10net.netfilter.nf_conntrack_tcp_timeout_close_wait=20net.netfilter.nf_conntrack_tcp_timeout_established=1800net.netfilter.nf_conntrack_tcp_timeout_fin_wait=30#net.netfilter.nf_conntrack_tcp_timeout_last_ack=30#net.netfilter.nf_conntrack_tcp_timeout_max_retrans=300net.netfilter.nf_conntrack_tcp_timeout_syn_recv=30net.netfilter.nf_conntrack_tcp_timeout_syn_sent=60net.netfilter.nf_conntrack_tcp_timeout_time_wait=60#net.netfilter.nf_conntrack_tcp_timeout_unacknowledged=300#net.netfilter.nf_conntrack_udp_timeout=30net.netfilter.nf_conntrack_udp_timeout_stream=60
Saludos

