DNS64 y NAT64 - Amazon Virtual Private Cloud

DNS64 y NAT64

Una puerta de enlace NAT admite la traducción de direcciones de red de IPv6 a IPv4, y se la conoce popularmente como NAT64. La NAT64 ayuda a los recursos IPv6 de AWS a comunicarse con los recursos IPv4 en la misma VPC o en una VPC diferente, en la red en las instalaciones o en Internet. Puede utilizar NAT64 con DNS64 en Amazon Route 53 Resolver o puede utilizar su propio servidor DNS64.

¿Qué es DNS64?

Las cargas de trabajo solo de IPv6 que se ejecutan en las VPC solo pueden enviar y recibir paquetes de red IPv6. Sin DNS64, una consulta de DNS para un servicio solo de IPv4 producirá una dirección de destino IPv4 en respuesta, y su servicio exclusivo IPv6 no puede comunicarse con esta. Para reducir esta brecha de comunicación, puede habilitar DNS64 para una subred y se aplicará a todos los recursos de AWS dentro de esa subred. Con DNS64, Amazon Route 53 Resolver busca el registro DNS del servicio para el cual realizó la consulta y realiza una de las siguientes acciones:

  • Si el registro contiene una dirección IPv6, devuelve el registro original y la conexión se establece sin ninguna traducción a través de IPv6.

  • Si no hay ninguna dirección IPv6 asociada al destino en el registro DNS, Route 53 Resolver sintetiza una al anteponer el conocido prefijo /96, definido en RFC6052 (64:ff9b::/96), a la dirección IPv4 del registro. El servicio solo de IPv6 envía paquetes de red a la dirección IPv6 sintetizada. A continuación, deberá dirigir este tráfico a través de la gateway NAT, que realiza la traducción necesaria del tráfico para permitir que los servicios IPv6 de su subred accedan a los servicios IPv4 fuera de esa subred.

Puede habilitar o desactivar DNS64 en una subred mediante modify-subnet-attribute con AWS CLI o la consola de la VPC al seleccionar una subred y elegir Actions > Edit subnet settings (Acciones > Editar configuración de subred).

¿Qué es NAT64?

NAT64 permite que los servicios solo de IPv6 en Amazon VPC se comuniquen con servicios solo de IPv4 dentro de la misma VPC (en distintas subredes) o VPC conectadas, en sus redes en las instalaciones o en Internet.

NAT64 está disponible automáticamente en las gateways NAT actuales o en cualquier gateway NAT nueva que cree. No puede habilitar o desactivar esta característica. La subred en la que se encuentra la puerta de enlace NAT no necesita ser una subred de doble pila para que NAT64 funcione.

Después de habilitar DNS64, si el servicio solo de IPv6 envía paquetes de red a la dirección IPv6 sintetizada a través de la puerta de enlace NAT, ocurre lo siguiente:

  • Desde el prefijo 64:ff9b::/96, la gateway NAT reconoce que el destino original es IPv4 y traduce los paquetes IPv6 a IPv4 al reemplazar:

    • La IPv6 fuente con su propia IP privada, que la gateway de Internet traduce a una dirección IP elástica.

    • La IPv6 de destino a IPv4 al truncar el prefijo 64:ff9b::/96.

  • La gateway NAT envía los paquetes IPv4 traducidos al destino a través de la gateway de Internet, la gateway privada virtual o la gateway de tránsito e inicia una conexión.

  • El host solo de IPv4 envía paquetes de respuesta IPv4. Una vez que se haya establecido una conexión, la puerta de enlace NAT acepta los paquetes IPv4 de respuesta de los hosts externos.

  • Los paquetes IPv4 de respuesta están destinados a la gateway NAT, que recibe los paquetes y revierte la traducción de NAT al reemplazar su IP (IP de destino) por la dirección IPv6 del host y anteponiendo nuevamente 64:ff9b::/96 en la dirección IPv4 fuente. A continuación, el paquete fluye hacia el host siguiendo la ruta local.

De este modo, la puerta de enlace NAT permite que las cargas de trabajo solo de IPv6 de una subred se comuniquen con los servicios solo de IPv4 fuera de la subred.

Configuración de DNS64 y NAT64

Siga los pasos de esta sección para configurar DNS64 y NAT64 a fin de habilitar la comunicación con los servicios solo de IPv4.

Habilitar la comunicación con los servicios solo de IPv4 en Internet con AWS CLI

Si tiene una subred con cargas de trabajo solo de IPv6 que necesita comunicarse con servicios solo de IPv4 fuera de la subred, en este ejemplo se muestra cómo habilitar estos servicios solo de IPv6 para comunicarse con servicios solo de IPv4 en Internet.

Primero debe configurar una gateway NAT en una subred pública (independiente de la subred que contiene las cargas de trabajo solo de IPv6). Por ejemplo, la subred que contiene la puerta de enlace NAT debe tener una ruta 0.0.0.0/0 con dirección a la puerta de enlace de Internet.

Siga estos pasos para permitir que estos servicios solo de IPv6 se conecten con servicios solo de IPv4 en Internet:

  1. Agregue las tres rutas siguientes a la tabla de enrutamiento de la subred que contiene las cargas de trabajo solo de IPv6:

    • Ruta IPv4 (si la hay) en dirección a la gateway NAT.

    • Ruta 64:ff9b::/96 en dirección a la gateway NAT. Esto permitirá que el tráfico de las cargas de trabajo solo de IPv6 destinadas a servicios solo de IPv4 se enrute a través de la gateway NAT.

    • Ruta IPv6 ::/0 en dirección a la gateway de Internet solo de salida (o gateway de Internet).

    Tenga en cuenta que dirigir ::/0 a la gateway de Internet permitirá que los hosts IPv6 externos (fuera de la VPC) inicien la conexión a través de IPv6.

    aws ec2 create-route --route-table-id rtb-34056078 --destination-cidr-block 0.0.0.0/0 --nat-gateway-id nat-05dba92075d71c408

    aws ec2 create-route --route-table-id rtb-34056078 --destination-ipv6-cidr-block 64:ff9b::/96 --nat-gateway-id nat-05dba92075d71c408

    aws ec2 create-route --route-table-id rtb-34056078 --destination-ipv6-cidr-block ::/0 --egress-only-internet-gateway-id eigw-c0a643a9
  2. Habilite la función de DNS64 en la subred que contiene las cargas de trabajo solo de IPv6.

    aws ec2 modify-subnet-attribute --subnet-id subnet-1a2b3c4d --enable-dns64

Ahora, los recursos de su subred privada pueden establecer conexiones con estado con servicios IPv4 e IPv6 en Internet. Configure el grupo de seguridad y las NACL de manera apropiada para permitir el tráfico de salida e entrada a 64:ff9b::/96.

Habilitar la comunicación con los servicios solo de IPv4 en su entorno en las instalaciones

Amazon Route 53 Resolver le permite reenviar consultas de DNS desde la VPC a una red en las instalaciones y viceversa. Para hacerlo, siga estos pasos:

  • Cree un punto de enlace de salida de Route 53 Resolver en una VPC y asígnelo a las direcciones IPv4 desde las que desea que Route 53 Resolver reenvíe las consultas. Para su solucionador de DNS en las instalaciones, estas son las direcciones IP desde las que se originan las consultas de DNS y, por lo tanto, deben ser direcciones IPv4.

  • Cree una o más reglas que especifiquen los nombres de dominio de las consultas de DNS que desea que Route 53 Resolver reenvíe a los solucionadores en las instalaciones. También debe especificar las direcciones IPv4 de los solucionadores en las instalaciones.

  • Ahora que ha configurado un punto de enlace de salida de Route 53 Resolver, debe habilitar DNS64 en la subred que contiene sus cargas de trabajo solo de IPv6 y dirigir los datos destinados a la red en las instalaciones a través de una gateway NAT.

Cómo funciona DNS64 para destinos solo de IPv4 en redes en las instalaciones:

  1. Asigne una dirección IPv4 al punto de enlace de salida de Route 53 Resolver de la VPC.

  2. La consulta de DNS de su servicio IPv6 va a Route 53 Resolver a través de IPv6. Route 53 Resolver coteja la consulta con la regla de reenvío y obtiene una dirección IPv4 para el solucionador en las instalaciones.

  3. Route 53 Resolver convierte el paquete de consulta de IPv6 a IPv4 y lo reenvía al punto de enlace de salida. Cada dirección IP del punto de enlace representa una ENI que reenvía la solicitud a la dirección IPv4 en las instalaciones de su solucionador DNS.

  4. El solucionador en las instalaciones envía el paquete de respuesta a través de IPv4 nuevamente a través del punto de enlace de salida a Route 53 Resolver.

  5. Suponiendo que la consulta se realizó desde una subred habilitada para DNS64, Route 53 Resolver realiza dos cosas:

    1. Verifica el contenido del paquete de respuestas. Si hay una dirección IPv6 en el registro, mantiene el contenido tal cual, pero si contiene solo un registro IPv4. Sintetiza también un registro IPv6 al anteponer 64:ff9b::/96 a la dirección IPv4.

    2. Vuelve a empaquetar el contenido y lo envía al servicio de la VPC a través de IPv6.