Iniciativa DNS flag day 2020 para abordar problemas de fragmentación y soporte TCP

Hoy, varios importantes servicios de DNS y fabricantes de servidores DNS llevarán a cabo un evento conjunto DNS flag day 2020, destinado a centrar la atención en la solución problemas sobre la fragmentación de IP en el procesamiento de mensajes DNS de gran tamaño. Este es el segundo evento de este tipo, el año pasado fue el 'día de la bandera DNS' se centró en el procesamiento correcto de las solicitudes EDNS.

Los participantes de la iniciativa del día de la bandera DNS 2020 instan a fijar los tamaños de búfer recomendados para EDNS hasta valores de 1232 bytes (tamaño MTU 1280 menos 48 bytes para encabezados), así como traducir el procesamiento de solicitudes por TCP como un requisito obligatorio en los servidores. En RFC 1035 se señala que solo se requiere la capacidad de proceso de solicitudes por UDP, mientras que TCP se menciona como deseable, pero no obligatorio para su funcionamiento. Nuevas RFC 7766 y RFC 5966 definitivamente clasifican TCP como una de las capacidades obligatorias necesarias para un funcionamiento correcto de DNS. En el marco de la iniciativa, se propone forzar la transición del envío de solicitudes por UDP a la aplicación de TCP en casos cuando el tamaño del búfer EDNS establecido no es suficiente.

Los cambios propuestos eliminarán la confusión sobre la elección del tamaño del búfer EDNS y resolverán el problema de la fragmentación de grandes mensajes UDP, cuyo procesamiento a menudo conduce a la pérdida de paquetes y tiempos de espera del lado del cliente. Del lado del cliente, el tamaño del búfer EDNS será constante, y las respuestas grandes se enviarán de inmediato al cliente por TCP. La exclusión del envío de grandes mensajes por UDP también resolverá problemas con la eliminación de grandes paquetes en ciertos cortafuegos y permitirá bloquear del ataque la manipulación del caché DNS basada en la manipulación de paquetes UDP fragmentados (al dividirse en fragmentos, el segundo fragmento no incluye el encabezado con el identificador, por lo que puede ser falsificado siempre que coincida la suma de verificación).

A partir de hoy, los proveedores de DNS participantes en la iniciativa, incluidos CloudFlare, Quad 9, Cisco (OpenDNS) y Google, cambiarán gradualmente el tamaño del búfer EDNS de 4096 a 1232 bytes en sus servidores DNS (el cambio de EDNS se extenderá durante 4-6 semanas y con el tiempo abarcará un número cada vez mayor de solicitudes). Las respuestas a solicitudes UDP que no se ajusten al nuevo límite se enviarán por TCP. Los fabricantes de servidores DNS, incluyendo BIND, Unbound, Knot, NSD y PowerDNS, lanzarán actualizaciones cambiando el tamaño del búfer EDNS por defecto de 4096 a 1232 bytes.

En última instancia, los cambios introducidos pueden llevar a problemas de resolución al acceder a servidores DNS cuyas respuestas DNS por UDP superan los 1232 bytes y que no pueden enviar respuestas por TCP. Un experimento realizado por Google mostró que cambiar el tamaño del búfer EDNS no impactará significativamente en el nivel de fallos; con un búfer de 4096 bytes, el número de solicitudes UDP truncadas es del 0.345%, y el número de respuestas de reintento inalcanzables por TCP es del 0.115%. Con un búfer de 1232 bytes, estas cifras son del 0.367% y 0.116%. Hacer que el soporte de TCP sea obligatorio para las capacidades de DNS causará problemas al interactuar con alrededor del 0.1% de los servidores DNS. Se observa que, en las condiciones actuales, sin TCP, el funcionamiento de dichos servidores ya es inestable.

Los administradores de servidores DNS autoritativos deben asegurarse de que su servidor responda por TCP en el puerto 53 de la red y que este puerto TCP no esté bloqueado por un firewall. Un servidor DNS autoritativo tampoco debería enviar respuestas UDP que superen
el tamaño solicitado del búfer EDNS. En el propio servidor, el tamaño del búfer EDNS debe ser fijado en 1232 bytes. Los resolutores tienen requisitos similares: la capacidad de responder por TCP es obligatoria, el soporte obligatorio para el reenvío de solicitudes por TCP al recibir una respuesta UDP truncada y establecer el búfer EDNS en 1232 bytes.

Los siguientes parámetros son responsables de la configuración del tamaño del búfer EDNS en diferentes servidores DNS:

  • BIND

    options {
    edns-udp-size 1232;
    max-udp-size 1232;
    };

  • Knot DNS

    max-udp-payload: 1232

  • Knot Resolver

    net.bufsize(1232)

  • PowerDNS Authoritative

    udp-truncation-threshold=1232

  • PowerDNS Recursor

    edns-outgoing-bufsize=1232
    udp-truncation-threshold=1232

  • Unbound

    edns-buffer-size: 1232

  • NSD

    ipv4-edns-size: 1232
    ipv6-edns-size: 1232

    Fuente: opennet.ru

  • Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster