Networking Tips
Blog en espanol destinado a diferentes temas tecnicos principalmente en IT y Networking. Se desea cubrir Linux, DNS, DNSSEC, RPKI, BGP, Cisco, Programacion (Bash, Python, etc), Protocolos de Enrutamiento, Seguridad en Redes, VoIP.
sábado, 5 de julio de 2025
martes, 10 de junio de 2025
7 desafíos que enfrentó IPv6 y cómo fueron resueltos
¿Alguna vez pensaste que IPv6 no lograría despegar realmente? Si tu respuesta es “sí”, este blog es para ti.
En los últimos 20 años IPv6 pasó por muchos obstáculos que hicieron dudar a más de uno sobre su futuro. Desde el principio tuvo que enfrentar desafíos técnicos importantes: no era compatible con IPv4, muchos equipos antiguos no lo soportaban y, como suele pasar, hubo bastante resistencia al cambio por parte de operadores y empresas. A esto se sumaron varios mitos —como que era demasiado complejo o poco seguro— que también jugaron en su contra.
Pero el tiempo y la tecnología hicieron lo suyo. Gracias a herramientas de transición, mejoras en el enrutamiento y el desarrollo de hardware más preparado, IPv6 no solo demostró que puede escalar (¡estamos hablando de 340 undecillones de direcciones disponibles!), sino que también es más eficiente y seguro que el viejo IPv4.
Hoy, IPv6 ya no es una promesa: es una realidad. Está detrás del 5G, del futuro 6G, del Internet de las Cosas a gran escala y de la nube hiperconectada. Y además, soluciona problemas que arrastramos hace años, como la falta de direcciones y la fragmentación de las redes.
En este artículo vamos a desarmar algunos de los mitos más comunes —como que IPv6 baja el rendimiento o que no se lleva bien con sistemas antiguos— y vamos a mostrarte con datos y ejemplos reales por qué migrar a IPv6 no solo es posible: es necesario si querés que tu red esté preparada para lo que viene.
1. Mejora en la conmutación de paquetes a nivel de hardware
En los últimos 15 años los circuitos integrados de aplicación específica (ASICs) para redes han pasado de un soporte marginal a una implementación nativa y optimizada de IPv6. Antes de 2010, el procesamiento de IPv6 dependía de CPUs generales, generando alta latencia y bajo rendimiento. Entre 2010-2015, fabricantes como Cisco y Broadcom integraron tablas de forwarding IPv6 en hardware (TCAM), soporte para NDP/ICMPv6 y lookup eficiente en chips como el Cisco Nexus 7000 o Broadcom StrataXGS. Para 2015-2020, los ASICs alcanzaron madurez con tablas de routing escalables, offloading de extensiones IPv6 (headers, tunneling) e integración con SDN/NFV, ejemplificado por el Broadcom Tomahawk y Cisco Silicon One.
Desde 2020, IPv6 es prioritario en diseños de ASICs, con capacidades avanzadas como: Segment Routing IPv6 (SRv6) acelerado, seguridad nativa (IPsec en hardware), y optimización para IoT/5G. Chips como el Broadcom Jericho2 (2020), Marvell Octeon 10 (2022) e Intel Tofino 3 (2023) soportan millones de rutas IPv6 y procesamiento programable (P4), consolidando IPv6 como estándar en redes modernas. Esta evolución refleja la transición de IPv6 de un complemento software a un componente crítico en el hardware de red.
Período Soporte IPv6 en ASICs Limitaciones
Pre-2010 Mínimo o por software Alto costo de CPU, baja eficiencia
2010-2015 Primeras implementaciones en TCAM/ASICs Tablas IPv6 limitadas
2015-2020 Madurez en switches/routers empresariales
2020-Actualidad IPv6 nativo, optimizado para cloud/5G/SRv6
Comparativa Resumida sobre evolución de las ASICs
2. El dilema del huevo y la gallina en IPv6
El dilema del huevo y la gallina en el contexto de IPv6 se refiere a la paradoja de cómo impulsar la adopción de esta nueva versión del Protocolo de Internet. Es como si nadie quisiera comprar un nuevo tipo de teléfono porque no hay apps para él, pero los desarrolladores no crean apps porque casi nadie tiene ese teléfono.
Por un lado, los proveedores de contenido (como plataformas de streaming y sitios web) necesitan que haya suficientes usuarios que utilicen IPv6 para justificar la inversión en infraestructura y optimización para este protocolo. Por otro lado, los usuarios finales requieren acceso a contenido disponible a través de IPv6 para motivarse a hacer la transición desde IPv4. Sin una base sólida de ambos lados, se crea un ciclo vicioso donde la falta de usuarios limita el contenido disponible y la escasez de contenido desincentiva a los usuarios a adoptar IPv6.
La realidad en 2025 es muy distinta: una larga lista de las principales CDNs (redes de distribución de contenidos) y sitios web a nivel mundial ya soportan IPv6 desde hace varios años. Como resultado, los clientes que aún no implementan IPv6 suelen experimentar un rendimiento de conectividad ligeramente inferior en comparación con aquellos que sí lo utilizan.
Un hecho no menor que ha impulsado considerablemente la adopción de IPv6 entre los proveedores es el impacto del mundo de los videojuegos y la comunidad gamer. Resulta ampliamente conocido el fuerte respaldo que las principales consolas han brindado a IPv6, como es el caso de Xbox (desde 2013) y PlayStation (desde 2020).
CDN/Sitio Web Año de Adopción IPv6
Cloudflare 2011 Primer CDN en soportar IPv6 globalmente
Google (Búsqueda, YouTube) 2012 Habilitación progresiva
Facebook/Instagram 2013 Adopción completa en 2014
Wikipedia 2013 Uno de los primeros sitios en adoptar
Akamai 2014 Soporte gradual por región
Netflix 2015 Prioriza IPv6 para reducir latencia
Amazon CloudFront 2016 Soporte completo en edge locations
Apple (App Store) 2016 Requisito obligatorio para apps iOS
Microsoft Azure CDN 2017
Fastly 2018 Soporte nativo en toda su red
Tabla de adopción IPv6 en contenido .Fuente: Deepseek (Mayo 2025)
3. Enrutamiento con Prefix Delegation
Una situación muy interesante, que ocurrió hace 10-15 años, era la dificultad que muchos proveedores de servicios de Internet (ISPs) enfrentaban al implementar DHCPv6-PD (Prefix Delegation). Era común que surgieran problemas de enrutamiento: por ejemplo, un host o una red remota (CPE) podía recibir correctamente un prefijo IPv6, pero las rutas necesarias para alcanzar ese prefijo no estaban configuradas en el ISP. Era como si el cartero supiera tu dirección, pero no tuviera un mapa para encontrar cómo llegar a tu casa.
Hoy os ISPs han actualizado sus infraestructuras para manejar automáticamente el enrutamiento de los prefijos delegados, mientras que los routers modernos (tanto domésticos como empresariales) incluyen soporte robusto para DHCPv6-PD. Ahora, cuando un cliente recibe su bloque IPv6, el ISP inmediatamente propaga las rutas necesarias, y el router local configura automáticamente las subredes internas. Esto ha hecho que la delegación de prefijos IPv6 sea tan confiable como el DHCP tradicional de IPv4, eliminando uno de los dolores de cabeza iniciales de la transición.
Aspecto Hace 10 Años Actualidad (2024)
Asignación de prefijo DHCPv6-PD sin rutas en el core DHCPv6-PD + auto-anuncio BGP/IGP
Comportamiento del CPE Recibía el prefijo o no configuraba rutas Configura automáticamente LAN + rutas
Conectividad Solo tráfico saliente (entrante perdido) Full bidireccional (entrante/saliente)
Soluciones temporales NAT66, túneles manuales, redistribute connected en el CPE Enrutamiento nativo sin hacks
Comparativa: 2014 vs. 2024
4. Formación y aprendizaje colectivo
Hace dos décadas, adoptar IPv6 era un desafío técnico y educativo. La documentación resultaba escasa, dispersa y a menudo demasiado técnica, dejando a muchos administradores de redes aprendiendo mediante ensayo y error. Los primeros cursos disponibles se limitaban principalmente a especificaciones teóricas del protocolo, con poca orientación práctica sobre implementación real en redes operativas. Esta falta de recursos formativos de calidad ralentizó inicialmente la adopción de IPv6, especialmente en entornos empresariales y operadores pequeños.
Hoy en día, diferentes organizaciones, incluyendo LACNIC, han liderado un esfuerzo educativo masivo para reducir las barreras de entrada a IPv6. Ejemplos de esto son el Campus de LACNIC, con cursos que van desde nivel básico hasta avanzado, publicaciones en blogs, videos, podcasts, y otros recursos didácticos.
Además, iniciativas como LACNOG (y otros NOGs regionales) y los ya clásicos talleres prácticos de IPv6 de LACNIC han contribuido a crear espacios de formación y discusión técnica sobre la implementación de IPv6 en redes reales.
A seu vezmuchas empresas privadas han incluido IPv6 como tema obligatorio en sus programas de formación y certificación, tanto en cursos como en exámenes.
La comunidad técnica tampoco se ha quedado atrás: cientos de personas, desde estudiantes hasta ingenieros de redes senior, comparten regularmente recursos en diferentes redes sociales, generando artículos, videos, blogs y notas técnicas que ayudan a cerrar las brechas de conocimiento y a fortalecer el aprendizaje colectivo sobre IPv6.
5. Compatibilidad con aplicaciones
Veinte años atrás, el soporte IPv6 en aplicaciones era una suerte de lotería. Si existía IPv4 e IPv6 en la red era aún más complicado. Por ejemplo, en una red IPv6 Only si la app usaba direcciones IPv4 literales lógicamente iba a fallar. Muchos desarrolladores asumían que en todas las redes había IPv4 de facto. También en los sistemas operativos existían bibliotecas obsoletas que no soportaban el nuevo protocolo. Esto creaba una situación absurda: incluso cuando un usuario o empresa tenía una red IPv6 perfectamente configurada, sus herramientas cotidianas -como lector de correo electrónico- simplemente dejaban de funcionar.
Hoy la situación ha dado un vuelco radical. Grandes plataformas como la App Store de Apple (desde 2016) y Google Play exigen que las aplicaciones nuevas sean IPv6-compatibles (a pesar de esta última no lo coloca de manera explícita) como requisito obligatorio. Adicionalmente mecanismos como Happy Eyeballs apoyan la transición a IPv6 a nivel de software de manera transparente. Las principales bibliotecas de programación (como las de Python, Java y Node.js) incluyen soporte nativo para IPv6 desde hace años, eliminando excusas para los desarrolladores. Empresas como Microsoft, Google y Cloudflare han liderado este cambio, demostrando que el rendimiento en IPv6 puede ser incluso mejor que en IPv4. Lo que antes era un dolor de cabeza ahora es una ventaja competitiva: las aplicaciones que adoptan IPv6 primero disfrutan de menor latencia, mejor seguridad y acceso a la próxima generación de usuarios conectados.
6. Fragmentación y MTU (Maximum Transmission Unit)
A diferencia de IPv4, IPv6 elimina la fragmentación en los routers intermedios, lo que significa que los paquetes deben respetar el MTU (Maximum Transmission Unit) de toda la ruta desde el origen hasta el destino. Esta decisión de diseño mejora la eficiencia general de la red, pero en sus primeros años (hace 10, 15 o 20 años), generó bastantes dolores de cabeza: muchos dispositivos implementaban de forma incorrecta el mecanismo de Path MTU Discovery (PMTUD), lo que provocaba pérdida de conectividad en situaciones comunes.
En particular, routers antiguos y sistemas operativos sin actualizar no sabían manejar bien los mensajes ICMPv6 “Packet Too Big”, que son esenciales para que el emisor ajuste el tamaño de los paquetes. Como resultado, la comunicación se rompía en redes donde el MTU era más bajo de lo esperado.
Actualmentelos sistemas operativos modernos y los equipos de red actuales ya manejan correctamente el PMTUD, respondiendo y ajustando dinámicamente el tamaño de los paquetes en función de los mensajes ICMPv6. Esto ha hecho que estos problemas sean mucho menos frecuentes y que la red funcione de manera más estable y eficiente bajo IPv6.
7. El envío de DNS vía RA
En los primeros años de IPv6 (hasta aproximadamente 2010), configurar servidores DNS en los clientes de red era un proceso más complejo e indirecto. Los routers enviaban mensajes Router Advertisement (RA) con el flag O (Other Configuration) activado, lo que obligaba a los clientes a hacer una solicitud adicional mediante DHCPv6 para obtener la información de los servidores DNS. Este enfoque, heredado del mundo IPv4, traía consigo varios inconvenientes: mayor latencia en la configuración, dependencia de un servicio adicional y mayor complejidad para redes simples o dispositivos con recursos limitados, como muchos equipos IoT.
Esta limitación se resolvió con la introducción de la opción RDNSS (Recursive DNS Server) dentro de los propios mensajes RA de ICMPv6, formalizada en el RFC 6106 (2010). A partir de entonces, los routers pudieron anunciar directamente los servidores DNS a los clientes, simplificando drásticamente la autoconfiguración.
Aunque al principio hubo cierta resistencia por parte de fabricantes de sistemas operativos y routers, entre 2015 y 2017 el soporte para RDNSS se volvió común: Windows 10, Linux (con systemd-networkd), iOS 9+ y la mayoría de los routers empresariales ya lo implementaban.
Hoy esta funcionalidad está prácticamente universalizada en equipos modernos y se considera una mejor práctica en redes IPv6, eliminando la necesidad de usar DHCPv6 solo para DNS y habilitando despliegues mucho más simples, tipo “plug and play”.
Conclusiones
En retrospectiva, tras más de dos décadas de evolución, IPv6 ha superado obstáculos que en su momento parecían insalvables, pasando de ser un protocolo casi teórico a convertirse en la columna vertebral de la Internet moderna.
Los desafíos técnicos que antes generaban incertidumbre hoy cuentan con soluciones estandarizadas, eficientes y ampliamente adoptadas, fruto de la colaboración entre la industria y organismos como el IETF. Mitos como su supuesta “complejidad” o “incompatibilidad” han sido superados por evidencias concretas de mejor rendimiento, mayor seguridad y capacidad de escalado real.
IPv6 es el presente. Con casi el 50% del tráfico global circulando sobre IPv6 (y cerca del 40% en América Latina y el Caribe), soporte nativo en CDNs, sistemas operativos y aplicaciones, y un papel fundamental en tecnologías como 5G, IoT y cloud hiperconectada, la transición total es solo cuestión de tiempo. Seguir postergando su adopción no solo significa perder ventajas técnicas: es avanzar hacia la obsolescencia.
La lección es clara: adoptar IPv6 es un imperativo estratégico. No implementarlo es correr el riesgo de quedar aislado en una Internet que ya ha dado el siguiente paso.
Referencias:
RFC 6106: https://datatracker.ietf.org/doc/html/rfc6106
Centro de estadísticas de LACNIC: https://stats.labs.lacnic.net/IPv6/graph-access.html
https://developer.apple.com/support/downloads/terms/app-review-guidelines/App-Review-Guidelines-20250430-English-UK.pdf
martes, 18 de marzo de 2025
Se viene esta palabra: noiafobia
noiafobia = No Inteligencia Artificial Fobia
o
noaifobia = No Artificial Intelligence Fobia
martes, 28 de enero de 2025
¿Qué historia hay detrás de las famosas máscaras de red?
Introducción
¿Recuerdas cuando estabas aprendiendo de máscaras de red? Seguro llegaste a pensar: “no sirven para nada”, “no las voy a necesitar”, “¿por qué inventaron esta locura?”. Además de sacarte una sonrisa espero convencerte de la enorme importancia que tienen en el gigantesco ecosistema de Internet.
Objetivo
Este blog post resume la historia y los hitos relacionados detrás de los conceptos de máscara de red en el mundo de IPv4. Comenzamos la historia en un mundo donde no existían las clases (plano-flat), pasamos por un mundo classful y finalizamos en un Internet totalmente classless (CIDR). La información se basa en extractos de los RFC 790, 1338 y 1519, junto con hilos de correo electrónico de la lista de correo ‘Internet-history’.
¿Sabes lo que es la máscara de red?
Asumo que si llegaste a este documento si lo sabes :-) pero aquí va un mini concepto: una máscara de red se utiliza para ubicar y dividir un espacio de dirección de red y una dirección de host, en otras palabras, indica al sistema cuál es el esquema de particionamiento de subred.
¿Cuál es el propósito de la máscara de red?
Enrutamiento: Los enrutadores utilizan la máscara de red para determinar la porción de red y encaminar correctamente los paquetes.
Subnetting: Las máscaras de red se utilizan para crear redes más chicas.
Aggregación: Las máscaras de red permiten la creación de prefijos más grandes.
¿Siempre han existido las máscaras de red?
No, muy interesantemente no siempre existió la máscara de red, al comienzo las redes IP eran planas (flat) y siempre asumían 8 bits para la red y 24 bits para el host. En otras palabras, el primer octeto era la red, y los 3 octetos restantes corresponden al host. Otro aspecto llamativo es que hace muchos años también recibía el nombre de bitmask o solo mask (aún utilizado ampliamente).
Lo anterior conlleva a que no siempre existieron las clases (A, B, C, D)
Las clases no existieron hasta la aparición del RFC (septiembre 1981) de Jon Postel, es decir, incluso era una época antes de classless y classful.
La introducción del sistema classful fue impulsada por la necesidad de acomodar diferentes tamaños de red, ya que el ID de red original de 8 bits era insuficiente (256 redes). El sistema classful fue un intento de abordar las limitaciones de un espacio de direcciones plano, aunque este también tenía limitaciones de escalabilidad. En el mundo de las clases la máscara de red era implícita.
Las clases tampoco solucionaron todo
Si bien el sistema classful fue una mejora sobre el diseño original (plano), no era eficiente. Los tamaños fijos de los espacios de red y hosts de las direcciones IP llevaron al agotamiento del espacio de direcciones, especialmente con el creciente número de redes que eran más grandes que una Clase C, pero más pequeñas que una Clase B. Lo anterior llevó al desarrollo del enrutamiento Inter-Dominio Sin Clases (Classless Interdomain Routing – CIDR), que utiliza máscaras de subred de longitud variable (Variable Length Subnet Mask – VLSM).
¿Sabías que no siempre la máscara se escribió con bits continuos encendidos de izquierda a derecha?
¿Por qué se decidió que los bits luego fueran obligatoriamente encendidos de izquierda a derecha?
Desde esa época ya se agotaban direcciones IPv4
CIDR aborda las soluciones de ayer, que se convirtieron en los problemas de ese momento
Conclusiones
Referencias
martes, 21 de enero de 2025
BGP Dynamic Capabilities / Capacidades Dinámicas en BGP
El video muestra el funcionamiento del concepto "BGP Dynamic Capabilities" donde dos peers BGP pueden comunicarse sus capacidades "on the fly" sin interrupción de la sesión. El demo fue contruido con FRR hablando BGP sobre IPv6 y utilizamos como demostración la capacidad extended-nexthop la cual no es anunciada en el mensaje Open inicial. Un video enriquecedor que demuestra una vez más la enorme flexibilidad del protocolo BGP
sábado, 28 de diciembre de 2024
El Gran Enredo de IPv6 y RPKI
Había una vez, en un mundo digital muy lejano conocido como Netland, un grupo de direcciones IP que estaban hartas de ser ignoradas. Eran las "modernas" direcciones IPv6, que, a pesar de su impresionante capacidad y flexibilidad, siempre se sentían opacadas por su predecesor, el venerable IPv4. Todo el mundo hablaba de él, y los routers lo adoraban. "¡Pero nosotros también somos geniales!", se quejaban las direcciones IPv6. "¡Es hora de mostrarles lo que valemos!"
Así que un día, decidieron organizar una fiesta épica para demostrar su relevancia, la llamaron la YottaFiesta en honor a que las megafiestas ya no son tan grandes 🙂 . Invitaron a todos los routers, switches, firewalls e incluso algunos servidores curiosos. La invitación decía: "¡Ven a la fiesta más grande del ciberespacio! Solo direcciones IPv6, pero no digas nada, ¡es una sorpresa!" Sabían que las loopback no podrían asistir porque no pueden salir de donde están, pero por si acaso, estaban oficialmente invitadas.
El problema fue que, en lugar de sencillamente enviar a los routers a la fiesta, las direcciones IPv6 se dieron cuenta de que no todos sabían cómo llegar. Como los routers estaban tan acostumbrados a trabajar con IPv4, se encontraron totalmente perdidos. "¿Cómo diablos llegamos a esa dirección con 128 bits?" se preguntaban. "¿Dónde está el next-hop para esta dirección?"
Mientras tanto, en otro rincón del mundo cibernético, RPKI intentaba asegurarse de que las rutas IP fueran seguras. Pero cada vez que trataba de verificar una dirección, se encontraba con un caos total. "¿Por qué hay tantas direcciones no válidas flotando por aquí? ¡Esto es un completo lío!" se lamentaba RPKI, mientras sacaba su llave de validación digital.
Sin embargo, NAT64, siempre buscando soluciones creativas, tenía un plan para hacer que IPv6 y IPv4 pudieran convivir. Decidieron crear una puerta secreta entre los dos mundos. Pero, en lugar de simplemente conectarlas, NAT64 y sus amigos decidieron hacer una broma. Se disfrazaron de direcciones IPv4 y comenzaron a enviar mensajes a los routers: "¡Hola! Soy una dirección IPv4, ven a mi fiesta, ¡en la famosa 192.168.1.1!"
Los routers, confiados de que era una dirección conocida, comenzaron a seguir las instrucciones al pie de la letra. Se pusieron sus mejores configuraciones, con el protocolo clásico de IPv4, y comenzaron a enrutar los paquetes hacia ese destino como si nada. Dentro de sí pensaban: "ojalá llegue un paquete IPv4 para enrutarlo de forma nativa en mi red IPv6 only con la elegancia del RFC 8950"
Pero al llegar al lugar, se encontraron con algo muy diferente. En lugar de la fiesta, lo que había era una revisión de seguridad en la puerta. RPKI, que estaba haciendo de portero, tenía instrucciones muy claras: "¡Solo pueden entrar direcciones IPv6 con ROAs válidos!"
Y justo detrás de él, el Firewall, implacable, no dejaba pasar ni a las direcciones bogon. Los pobres routers, que se pensaban que estaban a salvo con una dirección IPv4, fueron redirigidos a un portal que decía: "¡Feliz Día de los Inocentes! ¡Tú eres el verdadero inocente!"
Mientras tanto, RPKI observaba todo el caos y no podía evitar reírse: "Nunca más voy a confiar en estas direcciones traviesas. ¡Son más difíciles de rastrear que una ruta con ASNs descontrolados!" pensó mientras se ajustaba su sombrero de seguridad.
Y así, el mundo digital celebró ese Día de los Inocentes con risas, caos y un recordatorio muy importante: en el ciberespacio, las direcciones IP siempre tienen una sorpresa bajo la manga. ¡Nunca subestimes una IPv6 disfrazada de IPv4!
¡Feliz día de los inocentes!
jueves, 22 de agosto de 2024
Una mejora práctica en el Transporte DNS sobre UDP en IPv6
Por Hugo Salgado y Alejandro Acosta
Introducción y planteamiento del problema
En el presente documento queremos discutir sobre un draft (borrador de trabajo para convertirse en un estándar) existente en IETF que llamó nuestra atención, es un documento que involucra dos mundos muy interesantes: IPv6 y DNS. Este draft introduce algunas mejores prácticas para el transporte de DNS sobre IPv6.
El draft se titula “DNS over IPv6 Best Practices” y se puede encontrar aquí.
¿De qué trata el documento y qué busca solucionar?
El documento describe un enfoque sobre cómo el Protocolo de Nombres de Dominio (DNS) debería transmitirse sobre IPv6 [RFC8200].
Se han identificado algunos problemas operativos al enviar paquetes de DNS a través de IPv6, el draft busca solucionar estos problemas.
Contexto técnico
El protocolo IPv6 exige un tamaño mínimo de unidad de transmisión (MTU) de 1280 octetos. Según la Sección 5 “Problemas de tamaño de paquete” del RFC8200, se establece que cada enlace en Internet debe tener un MTU de 1280 octetos o más. Si un enlace no puede transmitir un paquete de 1280 octetos en una sola pieza, se debe proporcionar el servicio de fragmentación y reensamblaje específicos del enlace en una capa inferior a IPv6.
Funcionamiento exitoso de PMTUD en un ejemplo adaptado a MTU de 1280 bytes
Imagen tomada de: https://www.slideshare.net/slideshow/naveguemos-por-internet-con-ipv6/34651833#2
Utilizando el Descubrimiento de MTU de Ruta (PMTUD) y la fragmentación en IPv6 (solo en el origen), se pueden enviar paquetes más grandes. Sin embargo, la experiencia operativa indica que enviar grandes paquetes de DNS sobre UDP en IPv6 resulta en altas tasas de pérdida. Algunos estudios -ya de muchos años, pero sirven de contexto- han encontrado que aproximadamente 10% de los routers en IPv6 descartan todos los fragmentos IPv6, y 40% de ellos bloquean los mensajes “Packet Too Big”, que hacen imposible la negociación de los clientes. (“M. de Boer, J. Bosma, ”Discovering Path MTU black holes on the Internet using RIPE Atlas”)
La mayoría de los protocolos de transporte modernos, como TCP [TCP] y QUIC [QUIC], incluyen técnicas de segmentación que permiten enviar flujos de datos más grandes sobre IPv6.
Un poco de historia
El Sistema de Nombres de Dominio (DNS) fue definido originalmente en los documentos RFC 1034 y RFC 1035. Está diseñado para funcionar sobre diferentes protocolos de transporte, incluyendo UDP y TCP, y más recientemente se ha extendido para operar sobre QUIC. Estos protocolos de transporte pueden utilizarse tanto en IPv4 como en IPv6.
Al diseñar el DNS, se estableció un límite en el tamaño de los paquetes DNS transmitidos por UDP a 512 bytes. Si un mensaje era más largo, se truncaba y se activaba el bit de Truncamiento (TC) para indicar que la respuesta estaba incompleta, permitiendo que el cliente intentara nuevamente con TCP.
Con este comportamiento original, UDP sobre IPv6 no excedía el MTU (unidad máxima de transmisión) del enlace IPv6, evitando problemas operativos por fragmentación. Sin embargo, con la introducción de las extensiones EDNS0 (RFC6891) se amplió el máximo hasta un teórico de 64KB, con lo que algunas respuestas superaban el límite de 512 bytes para UDP, lo que resultó en tamaños que podrían exceder el Path MTU, ocasionando conexiones TCP y afectó la escalabilidad de los servidores DNS.
Encapsulamiento de un paquete DNS en un frame ethernet
Hablemos de DNS sobre IPv6
DNS sobre IPv6 está diseñado para funcionar sobre UDP, así como TCP o QUIC. UDP solo proporciona puertos de origen y destino, un campo de longitud y una suma de verificación simple, y es un protocolo sin conexión. En contraste, TCP y QUIC ofrecen características adicionales como segmentación de paquetes, confiabilidad, corrección de errores y estado de conexión.
El funcionamiento de DNS sobre UDP en IPv6 es adecuado para tamaños de paquete pequeños, pero se vuelve menos confiable con tamaños más grandes, especialmente cuando se requiere fragmentación de datagramas IPv6.
Por otro lado, DNS sobre TCP o QUIC en IPv6 funciona bien con todos los tamaños de paquete. Sin embargo, el uso de un protocolo con estado como TCP o QUIC exige más recursos del servidor DNS (y otros equipos como Firewall, DPIs, IDS, etc), lo que puede afectar la escalabilidad. Esta puede ser una compensación razonable para servidores que necesitan enviar paquetes de respuesta DNS más grandes.
La sugerencia del draft en cuanto a DNS sobre UDP recomienda limitar el tamaño de los paquetes de DNS sobre UDP en IPv6 a 1280 octetos. Esto evita la necesidad de fragmentación IPv6 o el descubrimiento del MTU del camino (Path MTU Discovery), lo que asegura una mayor confiabilidad.
La mayoría de las consultas y respuestas DNS encajarán dentro de este límite de tamaño de paquete y, por lo tanto, se pueden enviar a través de UDP. Los paquetes DNS más grandes no deben enviarse por UDP; en su lugar, deben ser enviados a través de TCP o QUIC, como se menciona en la siguiente sección.
DNS sobre TCP y QUIC
Cuando se necesitan transportar paquetes DNS más grandes, se recomienda utilizar DNS sobre TCP o QUIC. Estos protocolos manejan la segmentación y ajustan de manera confiable su tamaño de segmento para diferentes valores de MTU del enlace y del camino, lo que los hace mucho más fiables que el uso de UDP con fragmentación IPv6.
La sección 4.2.2 del [RFC1035] describe el uso de TCP para transportar mensajes DNS, mientras que el [RFC9250] explica cómo implementar DNS sobre QUIC para proporcionar confidencialidad en el transporte. Además, los requisitos operativos para DNS sobre TCP están descritos en el [RFC9210].
Seguridad
El cambio de UDP a TCP/QUIC para respuestas grandes implica que el servidor DNS debe mantener un estado adicional para cada consulta recibida a través de TCP/QUIC. Esto consumirá recursos adicionales en los servidores y afectará la escalabilidad del sistema DNS. Además, esta situación puede dejar a los servidores vulnerables a ataques de Denegación de Servicio (DoS).
¿Esta es la manera correcta?
A pesar de que sí creemos que esta solución aportará muchos beneficios al ecosistema de IPv6 y DNS, se trata de un parche operativo temporal, pero que no resuelve la solución de raíz.
Creemos que la solución correcta es que la fragmentación en el origen funcione, que PMTUD no se encuentre roto en el camino, y que las cabeceras de fragmentación sean permitidas por los dispositivos de seguridad. Esto requiere de cambios en distintos actores de Internet que puede tomar bastante tiempo, pero no por eso debemos abandonar la educación y los esfuerzos por lograr hacer lo correcto.
-
Introduccion: En algunas ocasiones es necesario "bajar" o deshabilitar iptables en nuestro Linux, el procedimiento depende de...
-
Debido al crecimiento moderado que ha tenido el presente blog se me ocurrió añadir/integrar las estadisticas de google analytics a mi blog. ...
-
Saludos, Lo primero que debemos de hacer para quitar el stacking entre los switches es desconectar los cables Stack que los unen.... Es buen...