resumen del problema
estamos teniendo una configuración en la que una gran cantidad (800 a 2400 por segundo (de las conexiones entrantes a una máquina Linux y tenemos un dispositivo NAT entre el cliente y el servidor. por lo que quedan tantos sockets TIME_WAIT en el sistema. Para superar eso, habíamos configurado tcp_tw_recycle en 1, pero eso llevó a una caída en las conexiones entrantes. después de navegar a través de la red encontramos las referencias de por qué fotogramas con tcp_tw_recycle y ocurre el dispositivo NAT.caída de las conexiones con tcp_tw_recycle
resolución intentado
luego intentamos establecer tcp_tw_reuse a 1 funcionó bien sin ningún problema con la misma configuración y configuración.
Pero la documentación dice que tcp_tw_recycle y tcp_tw_reuse no deben utilizarse cuando las conexiones que pasan por nodos de estado de TCP, como firewalls, dispositivos NAT o balanceadores de carga pueden ver fotogramas perdidos. Cuantas más conexiones haya, es más probable que vea este problema.
consultas
1) pueden tcp_tw_reuse usarse en este tipo de escenarios? 2) En caso negativo, ¿qué parte del código de linux impide que tcp_tw_reuse se utilice para dicha situación? 3) en general, ¿cuál es la diferencia entre tcp_tw_recycle y tcp_tw_reuse?
Enlace en la parte inferior roto – nhed
Gracias. Encontré exactamente este caso: los hosts detrás de NAT no podrán conectarse aleatoriamente, y la desactivación de net.ipv4.timestamps acaba de conseguir todo bien (tcp_tw_recycle y tcp_tw_reuse están habilitados en ambas máquinas). – Yurii
Creo que debería ser 'tcp_fin_timeout' y no' tcp_timewait_len'. Pero tal vez cambió en las versiones de kernel? – Trendfischer