Iniciativa del Día de la Bandera del DNS 2020 para abordar problemas de fragmentación y soporte de TCP

Hoy, varios grandes servicios DNS y fabricantes de servidores DNS celebrarán un evento conjunto Día de la bandera DNS 2020diseñado para centrar la atención en la decisión проблем con fragmentación de IP al procesar mensajes DNS grandes. Este es el segundo evento de este tipo, el año pasado “Día de la bandera DNS” estaba concentrado sobre el correcto procesamiento de las solicitudes EDNS.

Los participantes en la iniciativa del Día de la Bandera del DNS 2020 exigen que los tamaños de búfer recomendados para EDNS se fijen en 1232 bytes (tamaño de MTU 1280 menos 48 bytes para los encabezados), así como traducir El procesamiento de solicitudes a través de TCP es una característica imprescindible en los servidores. EN RFC 1035 Sólo la compatibilidad con el procesamiento de solicitudes a través de UDP está marcada como obligatoria, y TCP aparece como deseable, pero no requerido para la operación. Nuevo RFC 7766 и RFC 5966 enumerar explícitamente TCP como una capacidad requerida para que DNS funcione correctamente. La iniciativa propone forzar la transición del envío de solicitudes a través de UDP al uso de TCP en los casos en que el tamaño del buffer EDNS establecido sea insuficiente.

Los cambios propuestos eliminarán la confusión al elegir el tamaño del búfer EDNS y resolverán el problema de la fragmentación de mensajes UDP de gran tamaño, cuyo procesamiento a menudo provoca pérdida de paquetes y tiempos de espera en el lado del cliente. En el lado del cliente, el tamaño del búfer EDNS será constante y se enviarán respuestas grandes inmediatamente al cliente a través de TCP. Evitar el envío de mensajes grandes a través de UDP también resolverá los problemas relacionados con la caída de paquetes grandes en algunos firewalls y permitirá el bloqueo. ataques para envenenar el caché DNS, basado en la manipulación de paquetes UDP fragmentados (cuando se divide en fragmentos, el segundo fragmento no incluye un encabezado con un identificador, por lo que puede ser falsificado, para lo cual solo es suficiente que la suma de verificación coincida) .

A partir de hoy, los proveedores de DNS participantes, incluidos CloudFlare, Quad 9, Cisco (OpenDNS) y Google, cambiará gradualmente Tamaño del búfer EDNS de 4096 a 1232 bytes en sus servidores DNS (el cambio EDNS se extenderá a lo largo de 4 a 6 semanas y cubrirá un número cada vez mayor de solicitudes con el tiempo). Las respuestas a las solicitudes UDP que no se ajusten al nuevo límite se enviarán a través de TCP. Los proveedores de servidores DNS, incluidos BIND, Unbound, Knot, NSD y PowerDNS, lanzarán actualizaciones para cambiar el tamaño del búfer EDNS predeterminado de 4096 bytes a 1232 bytes.

En última instancia, estos cambios pueden provocar problemas de resolución al acceder a servidores DNS cuyas respuestas DNS UDP superen los 1232 bytes y no puedan enviar una respuesta TCP. Un experimento realizado en Google demostró que cambiar el tamaño del búfer EDNS prácticamente no tiene ningún efecto en la tasa de fallas: con un búfer de 4096 bytes, el número de solicitudes UDP truncadas es del 0.345% y el número de reintentos inalcanzables a través de TCP es del 0.115%. Con un buffer de 1232 bytes, estas cifras son 0.367% y 0.116%. Hacer que la compatibilidad con TCP sea una característica DNS requerida causará problemas con aproximadamente el 0.1% de los servidores DNS. Cabe señalar que en las condiciones modernas, sin TCP, el funcionamiento de estos servidores ya es inestable.

Los administradores de servidores DNS autorizados deben asegurarse de que su servidor responda a través de TCP en el puerto de red 53 y que este puerto TCP no esté bloqueado por un firewall. Un servidor DNS de buena reputación tampoco debe enviar respuestas UDP que sean mayores que
tamaño de búfer EDNS solicitado. En el propio servidor, el tamaño del búfer EDNS debe establecerse en 1232 bytes. Los solucionadores tienen aproximadamente los mismos requisitos: capacidad obligatoria para responder a través de TCP, soporte obligatorio para enviar solicitudes repetidas a través de TCP al recibir una respuesta UDP truncada y configurar el búfer EDNS en 1232 bytes.

Los siguientes parámetros son responsables de configurar el tamaño del búfer EDNS en diferentes servidores DNS:

  • ENLAZAR

    opciones {
    edns-udp-tamaño 1232;
    tamaño máximo-udp 1232;
    };

  • DNS de nudo

    carga útil máxima-udp: 1232

  • solucionador de nudos

    net.bufsize(1232)

  • PowerDNS autoritativo

    Umbral-truncamiento-udp=1232

  • Recurso de PowerDNS

    edns-saliente-bufsize=1232
    Umbral-truncamiento-udp=1232

  • Sin consolidar

    Tamaño del búfer de edns: 1232

  • NSD

    ipv4-edns-tamaño: 1232
    ipv6-edns-tamaño: 1232

    Fuente: opennet.ru

  • Añadir un comentario