IPv6client64:ff9b::c633:642aNAT64translator+ DNS64IPv4server198.51.100.42v6 client reaches v4 destination, transparently

NAT64 y DNS64

11 lectura mínimaRedes

Algunas redes celulares han estado funcionando solo con IPv6 durante años: T-Mobile US, gran parte de Reliance Jio. Sus usuarios todavía acceden a sitios IPv4 como el resto de la web. La traducción se realiza a través de NAT64 y DNS64, un par de tecnologías que unen los mundos IPv4 e IPv6. Comprender cómo se aclara el silencioso acto intermedio de la transición a IPv6.

El cuerpo completo del artículo se proporciona en inglés a continuación.

NAT64 y DNS64 son las tecnologías que permiten que los clientes solo IPv6 lleguen a servidores solo IPv4. Juntos permiten que las redes implementen únicamente IPv6 sin perder el acceso a la porción IPv4 de Internet. T-Mobile US, varios otros operadores de telefonía móvil importantes y muchas redes empresariales utilizan este patrón en producción.

El problema que resuelven

La transición de IPv4 a IPv6 ha sido gradual. Muchos servidores todavía son sólo IPv4. Si su red funciona solo con IPv6, sus clientes no pueden acceder a esos servidores directamente porque los protocolos no son compatibles con versiones anteriores.

La respuesta ingenua es doble pila: cada dispositivo tiene direcciones IPv4 e IPv6. La pila dual funciona pero requiere mantener dos pilas de red paralelas de forma indefinida. Algunas redes decidieron optar por IPv6 de pila única y utilizar traducción para el alcance restante de IPv4.

Cómo funciona NAT64

NAT64 es un traductor con estado en el límite de la red. Tiene:

  • Una interfaz IPv6 frente a la red solo IPv6
  • Una interfaz IPv4 frente a Internet IPv4 (con un grupo de direcciones IPv4)
  • Una tabla de traducción que asigna fuentes IPv6 a puertos IPv4 asignados

Cuando un cliente IPv6 quiere llegar a un Servidor IPv4:

  1. El cliente envía un paquete IPv6 a una dirección IPv6 especial que codifica el destino IPv4.
  2. El traductor NAT64 recibe el paquete en su interfaz IPv6.
  3. Extrae el destino IPv4 de la dirección IPv6, asigna un puerto de su grupo de IPv4 y reescribe el paquete como un paquete IPv4 con el origen + puerto IPv4 asignado.
  4. El paquete fluye hacia el destino IPv4 normalmente.
  5. El paquete de respuesta regresa a la interfaz IPv4 de NAT64.
  6. NAT64 busca la asignación, reconstruye el paquete IPv6 y lo reenvía al client.

Conceptualmente similar a NAT44 (el tipo normal), pero con traducción de protocolo en cada paso.

La dirección IPv6 con IPv4 integrado

NAT64 utiliza un prefijo IPv6 específico (el prefijo conocido es 64:ff9b::/96) con la dirección IPv4 integrada en el último 32 bits:

  • Para llegar a 198.51.100.42 a través de NAT64, el cliente utiliza la dirección 64:ff9b::c633:642a (cuyos últimos 32 bits codifican 198.51.100.42 en hexadecimal).

El cliente no necesita Sepa que esto es una traducción: solo ve una dirección IPv6. Pero, ¿de dónde obtiene el cliente esta dirección especial?

DNS64 llena el vacío

La mayoría de los clientes no se conectan a direcciones IP directamente: se conectan a nombres de host a través de DNS. DNS64 es un solucionador de DNS modificado que maneja la síntesis:

  1. El cliente consulta DNS, por ejemplo.com.
  2. DNS64 busca el registro AAAA (IPv6). Si existe, devuélvalo normalmente.
  3. Si solo existe un registro A (IPv4), DNS64 sintetiza un registro AAAA falso incrustando la dirección IPv4 en el prefijo NAT64.
  4. El cliente recupera lo que parece un registro AAAA normal.
  5. El cliente se conecta al IPv6 dirección.
  6. El paquete fluye a través de NAT64 y se traduce a IPv4.

El cliente no tiene conocimiento de nada de esto. Ve IPv6, envía IPv6 y recibe respuestas como IPv6. La traducción es invisible.

464XLAT para compatibilidad con clientes

NAT64 + DNS64 funcionan para casi todo, pero algunas aplicaciones fallan, sobre todo aquellas que pasan literales IPv4 (no nombres de host). La solución es 464XLAT (CLAT - Traductor del lado del cliente):

  • El dispositivo cliente ejecuta un CLAT que pretende tener una pila IPv4.
  • Las aplicaciones que necesitan IPv4 se comunican con el CLAT, que se traduce a IPv6.
  • El paquete IPv6 pasa NAT64 normalmente.

Android e iOS admiten 464XLAT. T-Mobile US utiliza esta combinación. El resultado: un teléfono Android en T-Mobile solo tiene IPv6 en la capa de red, pero las aplicaciones se comportan como si IPv4 todavía funcionara.

Dónde está implementado

  • T-Mobile US: ha ejecutado solo IPv6 con NAT64 desde 2014.
  • Reliance Jio (India): implementación solo de IPv6, NAT64 para destinos IPv4.
  • Muchas empresas Redes con redes internas principalmente IPv6 usa NAT64 para servicios heredados solo IPv4.
  • Algunos proveedores de nube ofrecen servicios NAT64 solo para IPv6 VPCs.

Limitaciones

  • State-heavy. El traductor mantiene el estado de cada conexión activa. Los requisitos de recursos crecen con el tráfico.
  • Límites por conexión. Como cualquier NAT, el grupo de puertos establece un límite en las conexiones simultáneas por dirección IPv4.
  • Algunos protocolos tienen dificultades. Los protocolos que incorporan direcciones IP en su carga útil (SIP, FTP más antiguo) necesitan puertas de enlace de capa de aplicación. La mayoría de los protocolos modernos no tienen este problema.
  • Traducción solo DNS. Las aplicaciones que omiten DNS y se conectan a literales IPv4 necesitan complicaciones CLAT.
  • DNSSEC. Los registros AAAA sintetizados no están firmados por el origen; Los clientes que validen DNSSEC pueden rechazarlos. Existen soluciones, pero añaden complejidad.

El final

NAT64 es una tecnología de transición. El estado final esperado es IPv6 lo suficientemente universal como para que los destinos solo IPv4 sean excepciones raras manejadas en los bordes. Hasta entonces, NAT64 + DNS64 + 464XLAT es la forma en que las redes pueden pasar a ser solo IPv6 sin degradación del servicio. La combinación ha estado en producción durante más de una década y está lo suficientemente madura para una implementación seria.

Preguntas frecuentes

¿Estoy detrás de NAT64?
Probablemente no, a menos que estés en T-Mobile US, Reliance Jio o una red específica solo IPv6. La mayoría de las redes domésticas y corporativas son de doble pila (ambos protocolos) en lugar de IPv6 + NAT64 puro.
¿NAT64 afecta el rendimiento?
Modestamente. El paso de traducción agrega microsegundos; la tabla de estado agrega sobrecarga de memoria. Para una navegación web típica, el impacto es inmensurable. Para cargas de trabajo con velocidades de conexión muy altas, los gastos generales son importantes.
¿La VPN funciona con NAT64?
Principalmente. La mayoría de los clientes VPN hacen un túnel IPv4 de forma predeterminada; NAT64 los maneja de forma transparente. Algunos protocolos VPN que no funcionan bien con doble NAT pueden tener problemas; Las configuraciones modernas de WireGuard y OpenVPN lo manejan correctamente.
¿Por qué no todas las redes usan NAT64?
La doble pila es más sencilla desde el punto de vista operativo y se entiende bien. NAT64 añade complejidad para un beneficio marginal cuando IPv4 todavía funciona para los clientes. Solo IPv6 puro con NAT64 es principalmente atractivo cuando una organización no tiene suficientes direcciones IPv4 o quiere comprometerse con IPv6.
¿Cuál es la diferencia entre NAT64 y CGNAT?
CGNAT es una traducción de IPv4 a IPv4 (IPv4 privado en el interior, IPv4 público en el exterior). NAT64 es la traducción de IPv6 a IPv4. Diferentes capas de protocolo; Ambas son tecnologías de transición para la escasez de IPv4, pero resuelven problemas diferentes.
NAT64 y DNS64 explicados: cómo las redes IPv6 se comunican con Internet IPv4