DNS64

La función Citrix ADC DNS64 responde con un registro AAAA DNS sintetizado a un cliente IPv6 que envía una solicitud AAAA para un dominio solo IPv4. La función DNS64 se utiliza con la función NAT64 para permitir una comunicación perfecta entre los clientes solo IPv6 y los servidores solo IPv4. DNS64 permite la detección del dominio IPv4por parte de los clientes solo IPv6, y NAT64 permite la comunicación entre los clientes y los servidores.

Para sintetizar un registro AAAA, el dispositivo Citrix ADC obtiene un registro DNS A de un servidor DNS. El prefijo DNS64 es un prefijo IPv6 de 96 bits configurado en el dispositivo Citrix ADC. El dispositivo Citrix ADC sintetiza el registro AAAA mediante la concatenación del prefijo DNS64 (96 bits) y la dirección IPv4 (32 bits).

Para habilitar la comunicación entre clientes IPv6 y servidores IPv4, un dispositivo Citrix ADC con configuración DNS64 y NAT64 se puede implementar en el lado del cliente IPv6 o en el lado del servidor IPv4. En ambos casos, la configuración DNS64 del dispositivo Citrix ADC es similar e incluye un servidor virtual de equilibrio de carga que actúa como servidor proxy para servidores DNS. Si el dispositivo Citrix ADC se implementa en el lado del cliente, el servidor virtual de equilibrio de carga debe especificarse, en el cliente IPv6, como servidor de nombres de un dominio.

Considere un ejemplo en el que un dispositivo Citrix ADC con configuración DNS64 y NAT64 está configurado en el lado IPv4. En este ejemplo, una empresa aloja el sitio www.example.com en el servidor S1, que tiene una dirección IPv4. Para habilitar la comunicación entre los clientes IPv6 y el servidor IPv4 S1, el dispositivo Citrix ADC NS1 se implementa con una configuración DNS64 y NAT64 con estado.

La configuración DNS64 incluye el servidor virtual de equilibrio de carga DNS LBVS-DNS64-1, en el que está habilitada la opción DNS64. Una directiva DNS64 denominada DNS64-Policy-1 y una acción DNS64 asociada denominada DNS64-Acción1, también se configuran en NS1, y DNS64-Policy-1 está enlazada a LBVS-DNS64-1. LBVS-DNS64-1 actúa como servidor proxy DNS para los servidores DNS DNS-1 y DNS-2.

Cuando el tráfico que llega a LBVS-DNS64-1 coincide con las condiciones especificadas en DNS64-Policy1, el tráfico se procesa de acuerdo con la configuración de DNS64-Acción1. DNS64-acción1 especifica el prefijo DNS64 utilizado, con el registro A recibido de un servidor DNS, para sintetizar un registro AAAA.

El parámetro DNS global cacherecords está habilitado en el dispositivo Citrix ADC, por lo que el dispositivo almacena en caché los registros DNS. Esta configuración es necesaria para que el DNS64 funcione correctamente.

En la tabla siguiente se enumeran los parámetros utilizados en el ejemplo anterior: Configuración de ejemplo de DNS64.

A continuación se presenta el flujo de tráfico en este ejemplo:

  1. El cliente IPv6 CL1 envía una solicitud AAAA DNS para la dirección IPv6 del sitio www.example.com.
  2. La solicitud la recibe el servidor virtual de equilibrio de carga DNS LBVS-DNS64-1 en el dispositivo Citrix ADC NS1.
  3. NS1 comprueba sus registros de caché DNS para el registro AAAA solicitado y encuentra que el registro AAAA para el sitio www.example.com no existe en la caché DNS.
  4. El algoritmo de equilibrio de carga de LBVS-DNS64-1 selecciona el servidor DNS DNS-1 y reenvía la solicitud AAAA a él.
  5. Dado que el sitio www.example.com está alojado en un servidor IPv4, el servidor DNS DNS-1 no tiene ningún registro AAAA para el sitio www.example.com.
  6. DNS-1 envía una respuesta DNS AAAA vacía o un mensaje de error a LBVS-DNS64-1.
  7. Dado que la opción DNS64 está habilitada en LBVS-DNS64-1 y la solicitud AAAA de CL1 coincide con la condición especificada en DNS64-policy-1, NS1 envía una solicitud DNS A a DNS-1 para la dirección IPv4 de www.example.com.
  8. DNS-1 responde enviando el registro DNS A de www.example.com a LBVS-DNS64-1. El registro A incluye la dirección IPv4 de www.example.com.
  9. NS1 sintetiza un registro AAAA para el sitio www.example.com con:
    • Dirección IPv6 para el sitio www.example.com = Concatenación del prefijo DNS64 (96 bits) especificado en la acción DNS64asociada y dirección IPv4 del registro DNS A (32 bits) = 2001:DB 8:300: :192.0.2.60
  10. NS1 envía el registro AAAA sintetizado al cliente IPv6 CL1. NS1 también almacena en caché el registro A en su memoria. NS1 utiliza el registro A almacenado en caché para sintetizar registros AAAA para solicitudes AAAA posteriores.

Puntos a considerar para una configuración DNS64

Antes de configurar DNS64 en un dispositivo Citrix ADC, tenga en cuenta los siguientes puntos:

  • La función DNS64 del dispositivo Citrix ADC es compatible con RFC 6174.

  • La función DNS64 del dispositivo Citrix ADC no admite DNSSEC. El dispositivo Citrix ADC no sintetiza un registro AAAA a partir de una respuesta DNSSEC recibida de un servidor DNS. Una respuesta se clasifica como una respuesta DNSSEC, solo si contiene registros RRSIG.

  • El dispositivo Citrix ADC admite el prefijo DNS64 de longitud de solo 96 bits.

  • Aunque la función DNS64 se utiliza con la función NAT64, las configuraciones DNS64 y NAT64 son independientes en el dispositivo Citrix ADC. Para un flujo determinado, debe especificar el mismo valor de prefijo IPv6 para el prefijo DNS64 y los parámetros de prefijo NAT64, de modo que las direcciones IPv6 sintetizadas recibidas por el cliente se enrutan a la configuración NAT64 concreta. Para obtener más información sobre la configuración de NAT64 en un dispositivo Citrix ADC, consulte NAT64 con estado.

  • A continuación se presentan los diferentes casos de procesamiento de DN64 por parte del dispositivo Citrix ADC:

    • Si la respuesta AAAA del servidor DNS incluye registros AAAA, cada registro de la respuesta se comprueba para el conjunto de reglas de exclusión configurado en el dispositivo Citrix ADC para la configuración concreta de DNS64. Citrix ADC quita de la respuesta las direcciones IPv6, cuyo prefijo coincide con la regla de exclusión. Si la respuesta resultante incluye al menos un registro IPv6, el dispositivo Citrix ADC reenvía esta respuesta al cliente; de lo contrario, el dispositivo sintetiza una respuesta AAAA del registro A del dominio y la envía al cliente IPv6.

    • Si la respuesta AAAA del servidor DNS es una respuesta vacía, el dispositivo solicita registros de recursos A con el mismo nombre de dominio o busca en sus propios registros si el dispositivo es un servidor de nombres de dominio auténtico para el dominio. Si la solicitud da como resultado una respuesta vacía o un error, el mismo se reenvía al cliente.

    • Si la respuesta del servidor DNS incluye RCODE=1 (error de formato), el dispositivo Citrix ADC reenvía el mismo al cliente. Si no hay respuesta antes del tiempo de espera, el dispositivo Citrix ADC envía una respuesta con RCODE=2 (error del servidor) al cliente.

    • Si la respuesta del servidor DNS incluye un CNAME, se sigue la cadena hasta que se alcanza el registro A o AAAA de terminación. Si CNAME no tiene ningún registro de recursos AAAA, el dispositivo Citrix ADC obtiene el registro DNS A que se utilizará para sintetizar el registro AAAA. La cadena CNAME se agrega a la sección de respuesta junto con el registro AAAA sintetizado y luego se envía al cliente.

  • La función DNS64 del dispositivo Citrix ADC también admite responder a solicitudes PTR. Cuando se recibe una solicitud PTR para un dominio de una dirección IPv6 en el dispositivo y la dirección IPv6 coincide con cualquiera de los prefijos DNS64 configurados, el dispositivo crea un registro CNAME que asigna el dominio IP6-ARPA en el IN-ADDR correspondiente. El dominio ARPA y el nuevo dominio IN-ADDR.ARPA se utilizan para la resolución. El dispositivo busca en los registros PTR locales y, si los registros no están presentes, el dispositivo envía una solicitud PTR para el dominio IN-ADDR.ARPA al servidor DNS. El dispositivo Citrix ADC utiliza la respuesta del servidor DNS para sintetizar la respuesta de la solicitud PTR inicial.

Pasos de configuración

La creación de las entidades necesarias para la configuración NAT64 con estado en el dispositivo Citrix ADC implica los siguientes procedimientos:

  • Agregar servicios DNS. Los servicios DNS son una representación lógica de los servidores DNS para los que el dispositivo Citrix ADC actúa como servidor proxy DNS. Para obtener más información sobre la configuración de parámetros opcionales de un servicio, consulte Equilibrio de carga.

  • Agregue la acción DNS64 y la directiva DNS64 y, a continuación, vincule la acción DNS64 a la directiva DNS64. Una directiva DNS64 especifica las condiciones que deben coincidir con el tráfico para el procesamiento DNS64 de acuerdo con la configuración de la acción DNS64 asociada. La acción DNS64 especifica el prefijo DNS64 obligatorio y la configuración opcional de regla de exclusión y regla asignada.

  • Cree un servidor virtual de equilibrio de carga DNS y vincule los servicios DNS y la directiva DNS64 a él. El servidor virtual de equilibrio de carga DNS actúa como un servidor proxy DNS para los servidores DNS representados por los servicios DNS enlazados. El tráfico que llega al servidor virtual coincide con la directiva DNS64 vinculada para el procesamiento DNS64. Para obtener más información sobre la configuración de parámetros opcionales de un servidor virtual de equilibrio de carga, consulte Equilibrio de carga.

    Nota: La CLI tiene comandos separados para estas dos tareas, pero la GUI los combina en un solo cuadro de diálogo.

    Habilitar el almacenamiento en caché de registros DNS. Habilite el parámetro global para el dispositivo Citrix ADC para almacenar en caché los registros DNS, que se obtienen mediante operaciones de proxy DNS. Para obtener más información sobre cómo habilitar el almacenamiento en caché de registros DNS, consulte Sistema de nombres de dominio.

Procedimientos CLI

Para crear un servicio de tipo DNS mediante la CLI:

En el símbolo del sistema, escriba:

  • add service <name> <IP> <serviceType> <port> …

Para crear una acción DNS64 mediante la CLI:

En el símbolo del sistema, escriba:

  • add dns action64 <actionName> -Prefix <ipv6_addr|*> [-mappedRule <expression>] [-excludeRule <expression>]

Para crear una directiva DNS64 mediante la CLI:

En el símbolo del sistema, escriba:

  • add dns policy64 <name> -rule <expression> -action <string>

Para crear un servidor virtual de equilibrio de carga DNS mediante la CLI:

En el símbolo del sistema, escriba:

  • add lb vserver <name> DNS <IPAddress> <port> -dns64 ( ENABLED | DISABLED ) [-bypassAAAA ( YES | NO )] …

Para enlazar los servicios DNS y la directiva DNS64 al servidor virtual de equilibrio de carga DNS mediante la CLI:

En el símbolo del sistema, escriba:

  • bind lb vserver <name> <serviceName> …
  • bind lb vserver <name> -policyName <string> -priority <positive_integer> …

Procedimientos de GUI

Para crear un servicio de tipo DNS mediante la GUI:

  1. Vaya a Administración del tráfico > Equilibrio de carga > Servicios y agregue un nuevo servicio.
  2. Defina los siguientes parámetros:
    • Nombre del servicio*
    • Servidor*
    • Protocolo* (Seleccione DNS en la lista desplegable).
    • Puerto*

Para crear una acción DNS64 mediante la GUI:

Vaya a Administración del tráfico > DNS > Acciones, en la ficha Acciones DNS 64, agregue una nueva acción DNS64.

Para crear una directiva DNS64 mediante la interfaz gráfica de usuario:

Vaya a Administración del tráfico > DNS > Directivas, en la ficha Directivas DNS64, agregue una nueva directiva DNS64.

Para crear un servidor virtual de equilibrio de carga DNS y enlazar los servicios DNS y la directiva DNS64 con él mediante la GUI:

  1. Vaya a Administración del tráfico > Equilibrio de carga > Servidores virtuales y agregue un nuevo servidor virtual.
  2. Defina los siguientes parámetros:
    • Nombre*
    • Dirección IP*
    • Protocolo* (Seleccione DNS en la lista desplegable).
    • Puerto*
  3. Seleccione la opción Habilitar DNS64.
  4. En el panel Servicios, vincule el servicio al servidor virtual.
  5. En el panel Directivas, vincule la directiva al servidor virtual.

Configuración de ejemplo

 > add service SVC-DNS-1 203.0.113.50 DNS 53
 Done

> add service SVC-DNS-2 203.0.113.60 DNS 53
 Done

> add dns Action64 DNS64-Action-1 -Prefix 2001:DB8:300::/96
 Done

> add dns Policy64 DNS64-Policy-1 -rule "CLIENT.IPv6.SRC.IN_SUBNET(2001:DB8:5001::/64)"
-action DNS64-Action-1
 Done

> add lb vserver LBVS-DNS64-1 DNS 2001:DB8:9999::99 53 -dns64 ENABLED
 Done

> bind lb vserver LBVS-DNS64-1 SVC-DNS-1
 Done

> bind lb vserver LBVS-DNS64-1 SVC-DNS-2
 Done

> bind lb vserver LBVS-DNS64-1 -policyname DNS64-Policy-1 -priority 2
 Done