IPv6

DNS sobre IPv6: Soluciones a los Problemas de Fragmentación y Mejores Prácticas

En la era del internet moderno, las direcciones IPv6 están siendo implementadas cada vez más, ya que el espacio de direcciones IPv4 se agota. Sin embargo, esta transición no está exenta de desafíos, y uno de los principales se relaciona con cómo el protocolo de nombres de dominio (DNS) se lleva a cabo sobre IPv6. Este blog busca explicar, con ejemplos cotidianos, los problemas operativos que han surgido al transmitir paquetes DNS sobre IPv6 y cómo se están resolviendo.

¿Qué es DNS y cómo se transmite?

El DNS es como una agenda telefónica de Internet, que convierte nombres de dominio legibles (como www.ejemplo.com) en direcciones IP que las computadoras utilizan para comunicarse. Al igual que el correo físico, los paquetes de información (DNS en este caso) deben viajar de un lugar a otro a través de la red, ya sea utilizando la versión antigua (IPv4) o la nueva (IPv6) del protocolo de Internet.

El Desafío: Fragmentación en IPv6

Imagina que necesitas enviar un paquete grande por correo, pero solo tienes sobres pequeños. Entonces, debes dividir tu paquete en varios sobres para poder enviarlo, lo que puede provocar que algunos sobres se pierdan en el camino. Algo similar ocurre en IPv6. IPv6 tiene un límite mínimo de tamaño de paquete de 1280 octetos, pero los paquetes DNS pueden ser más grandes, especialmente cuando hay seguridad adicional involucrada (como en DNSSEC).

Para superar esto, se utiliza la fragmentación. Sin embargo, estudios recientes han mostrado que cuando se transmiten paquetes DNS grandes sobre IPv6 utilizando UDP, las tasas de pérdida son bastante altas debido a problemas con la fragmentación. Esto afecta la fiabilidad de la comunicación DNS.

Piensa en el envío de un paquete grande desde una tienda en línea. Si el paquete es demasiado grande para pasar por la puerta de tu casa, el transportista deberá abrirlo y dividirlo en partes para que pase. Si alguna de las partes se pierde, es posible que recibas un producto incompleto o dañado. De manera similar, cuando los paquetes DNS son fragmentados, algunas partes pueden perderse en la red, lo que resulta en una comunicación fallida.

Solución: Usar TCP o QUIC en lugar de UDP

El documento «IP Fragmentation Avoidance in DNS over UDP» recomienda evitar la fragmentación en IPv6 cuando se utiliza UDP. En cambio, se propone enviar los paquetes más grandes a través de TCP o QUIC, que son protocolos más robustos y permiten la transmisión de datos en segmentos más pequeños sin necesidad de fragmentar.

Como ejemplo puede ser cuando una tienda en línea decide no enviar productos en una sola caja grande, sino en varias cajas más pequeñas. De esta forma, aseguran que cada caja llega completa y sin daños. TCP y QUIC hacen algo similar al dividir los datos en segmentos manejables y confiables, asegurando que todo llegue correctamente.

¿Cuándo usar UDP y cuándo TCP/QUIC?

UDP (para paquetes pequeños): En la mayoría de los casos, las consultas DNS pueden enviarse a través de UDP, ya que la mayoría de los paquetes encajan en el límite de 1280 octetos, como si pudieras enviar tu producto en un sobre pequeño sin problema.

TCP/QUIC (para paquetes grandes): Si el paquete DNS es demasiado grande (por ejemplo, cuando incluye datos de seguridad como en DNSSEC), entonces debe usarse TCP o QUIC, que proporcionan un sistema más confiable para asegurar que los datos lleguen completos, como si tu envío fuese cuidadosamente empaquetado y supervisado.

Conclusión

Con la creciente adopción de IPv6, es importante asegurarse de que el DNS funcione sin problemas. Evitar la fragmentación en UDP y optar por TCP o QUIC para paquetes más grandes es una estrategia efectiva para mantener la fiabilidad y escalabilidad del sistema DNS. Así, igual que una tienda en línea optimiza su sistema de entrega, las redes también deben optimizar la forma en que manejan los datos para evitar pérdidas.

Bibliografía

  • Hinden, B. & Krishnan, S. (2024). DNS over IPv6 Best Practices. Internet-Draft. Disponible en: https://tools.ietf.org/html/draft-hinden-ipv6-v6ops-00

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *