Dado que UDP es un protocolo sin conexión, estoy confundido por la configuración de mi firewall de Sonicwall para "Tiempo de espera de conexión UDP". Se establece en un valor predeterminado de 30 segundos, pero ¿qué es exactamente el tiempo de espera después de 30 segundos?
Aquí está mi situación real en el mundo real: tengo un servidor NTP en el grupo ntp.org que atiende alrededor de 3000 consultas por minuto. Esto pone un poco de tensión en mi grado SOZ TZ-200, no en términos de ancho de banda; pero en términos de # de conexiones tiene que pasar a través de él. Me pregunto si las conexiones UDP de alguna manera se 'mantienen vivas' en SonicWall; a pesar de que son (por definición) sin conexión.
¿Que me estoy perdiendo aqui? ¿Qué quiere decir SonicWall cuando habla de un "Tiempo de espera de conexión UDP"?
Respuestas:
Si bien no existe una "conexión" formal con UDP, todavía existe una convención según la cual los clientes envían solicitudes y esperan recibir respuestas con la IP de origen y el puerto intercambiado con la IP y el puerto de Destinatoin.
Por lo tanto, los firewalls con estado y NAT suponen que los paquetes con una combinación dada de IP de origen / puerto de origen / IP de destino / puerto de destino y la combinación correspondiente con el origen y el destino intercambiados forman parte de una "conexión". Esto permite que se apliquen reglas como "solo conexiones salientes" a UDP y permite que se apliquen traducciones inversas a los paquetes de respuesta.
Lamentablemente, el firewall o NAT no tiene forma de saber cuándo el cliente ha terminado de hablar con el servidor. Por lo tanto, tiene que esperar un tiempo de espera antes de eliminar la entrada de sus tablas de seguimiento de estado. Ese es el tiempo de espera que está configurando.
En principio, sería posible construir una caja NAT que usara un enfoque sin estado para el reenvío de puertos mientras se mantiene un enfoque con estado para las conexiones salientes, pero es más simple usar NAT con estado para todo y parece que esto es lo que está haciendo su proveedor.
Desafortunadamente, como ha descubierto, esto es una mierda para los servidores UDP sin estado que atienden grandes cantidades de pequeñas solicitudes. Termina en una situación en la que el firewall consume muchos más recursos que el servidor en sí.
fuente
Su firewall está manteniendo una tabla de conexión para conexiones UDP. Por ejemplo, cuando envía una consulta DNS, el cortafuegos crea una entrada para ese flujo para que la respuesta DNS se permita nuevamente en su red. Las entradas en la tabla expiran después de 30 segundos sin actividad.
fuente
Su servidor NTP está detrás de su NAT (firewall). UDP no tiene conexión desde el punto de vista de la aplicación y el SO y para la mayoría de los dispositivos de red en el camino.
Sin embargo, para su cortafuegos NAT, registra cada vez que se sale un paquete UDP para que una respuesta del otro extremo termine siendo redirigida a la misma computadora dentro de su red. Estos se llaman "conexiones" por el firewall.
Ahora, en teoría, el NAT sabe que el puerto externo será el puerto NTP conocido, pero parece que su firewall no es compatible con eso. Si este es su único uso para UDP a través de este firewall, puede establecer el tiempo de espera de conexión en un número menor. Alternativamente, si le permite configurar por puerto de aplicación, puede configurarlo en un tiempo menor (1 segundo, por ejemplo) para ese puerto específico.
fuente
IPv6 no necesita NAT, sin embargo, todavía parece que los firewalls tienen estado con respecto a UDP.
fuente