DNS64
La función DNS64 de NetScaler responde con un registro AAAA de DNS sintetizado a un cliente IPv6 que envía una solicitud AAAA para un dominio exclusivo de IPv4. La función DNS64 se utiliza junto con la función NAT64 para permitir una comunicación fluida entre los clientes que solo utilizan IPv6 y los servidores que solo utilizan IPv4. DNS64 permite que los clientes IPV6 descubran el dominio IPv4 únicamente, y NAT64 permite la comunicación entre los clientes y los servidores.
Para sintetizar un registro AAAA, el dispositivo NetScaler obtiene un registro DNS A de un servidor DNS. El prefijo DNS64 es un prefijo IPv6 de 96 bits configurado en el dispositivo NetScaler. El dispositivo NetScaler 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 los clientes IPv6 y los servidores IPv4, se puede implementar un dispositivo NetScaler con configuraciones de DNS64 y NAT64 en el lado del cliente IPv6 o en el servidor IPv4. En ambos casos, la configuración de DNS64 en el dispositivo NetScaler es similar e incluye un servidor virtual de equilibrio de carga que actúa como servidor proxy para los servidores DNS. Si el dispositivo NetScaler se implementa en el lado del cliente, el servidor virtual de equilibrio de carga debe especificarse, en el cliente IPv6, como el servidor de nombres de un dominio.
Considere un ejemplo en el que un dispositivo NetScaler con configuraciones de DNS64 y NAT64 está configurado en el lado de 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 NetScaler NS1 se implementa con una configuración de DNS64 y NAT64 con estado.
La configuración de DNS64 incluye el servidor virtual de equilibrio de carga DNS LBVS-DNS64-1, en el que está habilitada la opción DNS64. Una directiva de DNS64 denominada DNS64-Policy-1 y una acción de DNS64 asociada denominada DNS64-Action-1 también están configuradas en NS1, y DNS64-Policy-1 está enlazado a LBVS-DNS64-1. El LBVS-DNS64-1 actúa como un 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-Policy-1, el tráfico se procesa de acuerdo con la configuración de DNS64-Action-1. DNS64-Action-1 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 NetScaler, 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 ajustes utilizados en el ejemplo anterior: configuración de ejemplo de DNS64.
A continuación se presenta el flujo de tráfico en este ejemplo:
- El cliente IPv6 CL1 envía una solicitud AAAA de DNS para la dirección IPv6 del sitio www.example.com.
- La solicitud la recibe el servidor virtual de equilibrio de carga DNS LBVS-DNS64-1 del dispositivo NetScaler NS1.
- NS1 comprueba sus registros de caché de DNS para el registro AAAA solicitado y descubre que el registro AAAA del sitio www.example.com no existe en la caché de DNS.
- El algoritmo de equilibrio de carga del LBVS-DNS64-1 selecciona el servidor DNS DNS-1 y le reenvía la solicitud AAAA.
- Como 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.
- El DNS-1 envía una respuesta AAAA de DNS vacía o un mensaje de error al LBVS-DNS64-1.
- Como 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 de DNS A a DNS-1 para la dirección IPv4 de www.example.com.
- El DNS-1 responde enviando el registro DNS A de www.example.com al LBVS-DNS64-1. El registro A incluye la dirección IPv4 de www.example.com.
- NS1 sintetiza un registro AAAA para el sitio www.example.com con:
- Dirección IPv6 del sitio www.example.com = Concatenación del prefijo DNS64 (96 bits) especificado en la DNS64Action asociada y la dirección IPv4 del registro DNS A (32 bits) = 2001:DB 8:300: :192.0.2.60
- NS1 envía el registro AAAA sintetizado al cliente IPv6 CL1. NS1 también almacena en caché el registro A en su memoria. NS1 usa el registro A en caché para sintetizar los registros AAAA para las solicitudes AAAA posteriores.
Puntos a tener en cuenta para una configuración de DNS64
Antes de configurar DNS64 en un dispositivo NetScaler, tenga en cuenta los siguientes puntos:
-
La función DNS64 del dispositivo NetScaler cumple con la RFC 6174.
-
La función DNS64 del dispositivo NetScaler no admite DNSSEC. El dispositivo NetScaler no sintetiza un registro AAAA a partir de una respuesta de DNSSEC recibida de un servidor DNS. Una respuesta se clasifica como respuesta de DNSSEC solo si contiene registros de RRSIG.
-
El dispositivo NetScaler admite el prefijo DNS64 de una longitud de solo 96 bits.
-
Si bien la función DNS64 se usa con la función NAT64, las configuraciones de DNS64 y NAT64 son independientes del dispositivo NetScaler. 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 NetScaler, consulte NAT64 con estado.
-
A continuación se presentan los diferentes casos de procesamiento de DN64 por parte del dispositivo NetScaler:
-
Si la respuesta AAAA del servidor DNS incluye registros AAAA, se comprueba en cada registro de la respuesta el conjunto de reglas de exclusión configuradas en el dispositivo NetScaler para la configuración de DNS64 concreta. NetScaler elimina 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 NetScaler 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 de 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, se reenvía la misma al cliente.
-
Si la respuesta del servidor DNS incluye RCODE=1 (error de formato), el dispositivo NetScaler lo reenvía al cliente. Si no hay respuesta antes del tiempo de espera, el dispositivo NetScaler 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 finalización. Si el CNAME no tiene ningún registro de recursos AAAA, el dispositivo NetScaler obtiene el registro DNS A para usarlo para sintetizar el registro AAAA. La cadena CNAME se añade a la sección de respuestas junto con el registro AAAA sintetizado y, a continuación, se envía al cliente.
-
-
La función DNS64 del dispositivo NetScaler también permite responder a la solicitud de PTR. Cuando se recibe una solicitud PTR para un dominio con 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 al IN-ADDR correspondiente. Para la resolución se utilizan el dominio ARPA y el dominio IN-ADDR.ARPA recién creado. El dispositivo busca en los registros PTR locales y, si los registros no están presentes, envía una solicitud PTR para el dominio IN-ADDR.ARPA al servidor DNS. El dispositivo NetScaler 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 de NAT64 con estado en el dispositivo NetScaler implica los siguientes procedimientos:
-
Añada servicios de DNS. Los servicios DNS son una representación lógica de los servidores DNS para los que el dispositivo NetScaler 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 de DNS64 especifica las condiciones que se compararán con el tráfico para el procesamiento de DNS64 de acuerdo con la configuración de la acción de DNS64 asociada. La acción DNS64 especifica el prefijo DNS64 obligatorio y la configuración opcional de la regla de exclusión y la regla mapeada.
-
Cree un servidor virtual de equilibrio de carga de DNS y vincule los servicios DNS y la directiva DNS64 a él. El servidor virtual de equilibrio de carga de 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 NetScaler 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 de la CLI
Para crear un servicio de tipo DNS mediante la CLI:
En el símbolo del sistema, escriba:
- agregar servicio <name><IP><serviceType><port>…
Para crear una acción de DNS64 mediante la CLI:
En el símbolo del sistema, escriba:
- agregar dns action64 <actionName>-Prefix <ipv6_addr|<expression><expression>*> [-Regla mapeada] [-Excluir regla]
Para crear una directiva DNS64 mediante la CLI:
En el símbolo del sistema, escriba:
- <expression>agregar dns policy64 <name>-rule -action <string>
Para crear un servidor virtual de equilibrio de carga de DNS mediante la CLI:
En el símbolo del sistema, escriba:
- agregar lb vserver <name>DNS <IPAddress><port>-dns64 (HABILITADO) | DESHABILITADO) [-BypassaAAA (SÍ | 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:
- <name><serviceName>vincular lb vserver…
- <string><positive_integer>bind lb vserver <name>-nombre_de_prioridad…
Procedimientos de GUI
Para crear un servicio de tipo DNS mediante la interfaz gráfica de usuario:
- Vaya a Administración del tráfico > Equilibrio de carga > Servicios y añada un servicio nuevo.
- Defina los siguientes parámetros:
- Nombre del servicio*
- Servidor*
- Protocolo* (Seleccione DNS en la lista desplegable).
- Puerto*
Para crear una acción de DNS64 mediante la interfaz gráfica de usuario:
Vaya a Administración del tráfico > DNS > Acciones y, en la ficha DNS Actions64, añada una nueva acción de DNS64.
Para crear una directiva de DNS64 mediante la interfaz gráfica de usuario:
Vaya a Administración del tráfico > DNS > Directivas y, en la ficha DNS Policies64, añada una nueva directiva de DNS64.
Para crear un servidor virtual de equilibrio de carga de DNS y vincular los servicios DNS y la directiva de DNS64 a él mediante la interfaz gráfica de usuario:
- Vaya a Administración del tráfico > Equilibrio de carga > Servidores virtuales y añada un nuevo servidor virtual.
- Defina los siguientes parámetros:
- Nombre*
- Dirección IP*
- Protocolo* (Seleccione DNS en la lista desplegable).
- Puerto*
- Seleccione la opción Habilitar DNS64.
- En el panel Servicios, vincule el servicio al servidor virtual.
- 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
<!--NeedCopy-->