DNS64
La fonctionnalité NetScaler DNS64 répond par un enregistrement DNS AAAA synthétisé à un client IPv6 qui envoie une requête AAAA pour un domaine IPv4 uniquement. La fonction DNS64 est utilisée avec la fonction NAT64 pour permettre une communication fluide entre les clients IPv6 uniquement et les serveurs IPv4 uniquement. Le DNS64 permet la découverte du domaine IPV4 par les clients IPV6 uniquement, tandis que NAT64 permet la communication entre les clients et les serveurs.
Pour synthétiser un enregistrement AAAA, l’appliance NetScaler récupère un enregistrement DNS A à partir d’un serveur DNS. Le préfixe DNS64 est un préfixe IPv6 96 bits configuré sur l’appliance NetScaler. L’appliance NetScaler synthétise l’enregistrement AAAA par concaténation du préfixe DNS64 (96 bits) et de l’adresse IPv4 (32 bits).
Pour permettre la communication entre les clients IPv6 et les serveurs IPv4, une appliance NetScaler avec configuration DNS64 et NAT64 peut être déployée côté client IPv6 ou côté serveur IPv4. Dans les deux cas, la configuration DNS64 de l’appliance NetScaler est similaire et inclut un serveur virtuel d’équilibrage de charge faisant office de serveur proxy pour les serveurs DNS. Si l’appliance NetScaler est déployée côté client, le serveur virtuel d’équilibrage de charge doit être spécifié, sur le client IPv6, en tant que serveur de noms pour un domaine.
Prenons un exemple dans lequel une appliance NetScaler avec une configuration DNS64 et NAT64 est configurée côté IPv4. Dans cet exemple, une entreprise héberge le site www.example.com sur le serveur S1, qui possède une adresse IPv4. Pour permettre la communication entre les clients IPv6 et le serveur IPv4 S1, l’appliance NetScaler NS1 est déployée avec une configuration DNS64 et NAT64 dynamique.
La configuration DNS64 inclut le serveur virtuel d’équilibrage de charge DNS LBVS-DNS64-1, sur lequel l’option DNS64 est activée. Une stratégie DNS64 nommée DNS64-Policy-1 et une action DNS64 associée nommée DNS64-Action-1 sont également configurées sur NS1, et DNS64-Policy-1 est liée à LBVS-DNS64-1. LBVS-DNS64-1 agit comme un serveur proxy DNS pour les serveurs DNS DNS-1 et DNS-2.
Lorsque le trafic arrivant sur LBVS-DNS64-1 répond aux conditions spécifiées dans DNS64-Policy-1, le trafic est traité conformément aux paramètres de DNS64-Action-1. DNS64-Action-1 spécifie le préfixe DNS64 utilisé, avec l’enregistrement A reçu d’un serveur DNS, pour synthétiser un enregistrement AAAA.
Le paramètre DNS global cacherecords est activé sur l’appliance NetScaler, de sorte que l’appliance met en cache les enregistrements DNS. Ce paramètre est nécessaire pour que le DNS64 fonctionne correctement.
Le tableau suivant répertorie les paramètres utilisés dans l’exemple ci-dessus : exemples de paramètres DNS64.
Voici le flux de trafic dans cet exemple :
- Le client IPv6 CL1 envoie une requête DNS AAAA pour l’adresse IPv6 du site www.example.com.
- La demande est reçue par le serveur virtuel d’équilibrage de charge DNS LBVS-DNS64-1 sur l’appliance NetScaler NS1.
- NS1 vérifie ses enregistrements de cache DNS pour l’enregistrement AAAA demandé et constate que cet enregistrement AAAA pour le site www.example.com n’existe pas dans le cache DNS.
- L’algorithme d’équilibrage de charge de LBVS-DNS64-1 sélectionne le serveur DNS DNS-1 et lui transmet la requête AAAA.
- Le site www.example.com étant hébergé sur un serveur IPv4, le serveur DNS DNS-1 ne possède aucun enregistrement AAAA pour le site www.example.com.
- DNS-1 envoie soit une réponse DNS AAAA vide, soit un message d’erreur à LBVS-DNS64-1.
- Étant donné que l’option DNS64 est activée sur LBVS-DNS64-1 et que la requête AAAA de CL1 correspond à la condition spécifiée dans DNS64-Policy-1, NS1 envoie une demande DNS A à DNS-1 pour l’adresse IPv4 de www.example.com.
- DNS-1 répond en envoyant l’enregistrement DNS A pour www.example.com à LBVS-DNS64-1. L’enregistrement A inclut l’adresse IPv4 de www.example.com.
- NS1 synthétise un enregistrement AAAA pour le site www.example.com avec :
- Adresse IPv6 pour le site www.example.com = Concaténation du préfixe DNS64 (96 bits) spécifié dans DNS64action associée, et l’adresse IPv4 de l’enregistrement DNS A (32 bits) = 2001:DB8:300::192.0.2.60
- NS1 envoie l’enregistrement AAAA synthétisé au client IPv6 CL1. NS1 met également en cache l’enregistrement A dans sa mémoire. NS1 utilise l’enregistrement A mis en cache pour synthétiser les enregistrements AAAA pour les demandes AAAA suivantes.
Points à prendre en compte pour une configuration DNS64
Avant de configurer DNS64 sur une appliance NetScaler, tenez compte des points suivants :
-
La fonctionnalité DNS64 de l’appliance NetScaler est conforme à la norme RFC 6174.
-
La fonctionnalité DNS64 de l’appliance NetScaler ne prend pas en charge le protocole DNSSEC. L’appliance NetScaler ne synthétise pas un enregistrement AAAA à partir d’une réponse DNSSEC reçue d’un serveur DNS. Une réponse est classée comme une réponse DNSSEC uniquement si elle contient des enregistrements RRSIG.
-
L’appliance NetScaler prend en charge le préfixe DNS64 d’une longueur de 96 bits seulement.
-
Bien que la fonctionnalité DNS64 soit utilisée avec la fonctionnalité NAT64, les configurations DNS64 et NAT64 sont indépendantes de l’appliance NetScaler. Pour un flux particulier, vous devez spécifier la même valeur de préfixe IPv6 pour le préfixe DNS64 et les paramètres de préfixe NAT64, de sorte que les adresses IPv6 synthétisées reçues par le client soient routées vers la configuration NAT64 particulière. Pour plus d’informations sur la configuration de NAT64 sur une appliance NetScaler, consultez Stateful NAT64.
-
Les différents cas de traitement DN64 par l’appliance NetScaler sont les suivants :
-
Si la réponse AAAA du serveur DNS inclut des enregistrements AAAA, chaque enregistrement de la réponse est vérifié pour l’ensemble de règles d’exclusion configuré sur l’appliance NetScaler pour la configuration DNS64 particulière. NetScaler supprime les adresses IPv6, dont le préfixe correspond à la règle d’exclusion, de la réponse. Si la réponse obtenue inclut au moins un enregistrement IPv6, l’appliance NetScaler transmet cette réponse au client. Sinon, l’appliance synthétise une réponse AAAA à partir de l’enregistrement A du domaine et l’envoie au client IPv6.
-
Si la réponse AAAA du serveur DNS est une réponse vide, l’appliance demande des enregistrements de ressource A portant le même nom de domaine ou recherche dans ses propres enregistrements si l’appliance est un serveur de noms de domaine authentique pour le domaine. Si la demande aboutit à une réponse vide ou à une erreur, celle-ci est transmise au client.
-
Si la réponse du serveur DNS inclut RCODE=1 (erreur de format), l’appliance NetScaler transmet la même information au client. S’il n’y a pas de réponse avant l’expiration du délai, l’appliance NetScaler envoie une réponse avec RCODE=2 (panne du serveur) au client.
-
Si la réponse du serveur DNS inclut un CNAME, la chaîne est suivie jusqu’à ce que l’enregistrement A ou AAAA final soit atteint. Si le CNAME ne possède aucun enregistrement de ressource AAAA, l’appliance NetScaler récupère l’enregistrement DNS A à utiliser pour synthétiser l’enregistrement AAAA. La chaîne CNAME est ajoutée à la section de réponse avec l’enregistrement AAAA synthétisé, puis envoyée au client.
-
-
La fonctionnalité DNS64 de l’appliance NetScaler permet également de répondre aux demandes PTR. Lorsqu’une demande PTR pour un domaine d’une adresse IPv6 est reçue sur l’appliance et que l’adresse IPv6 correspond à l’un des préfixes DNS64 configurés, l’appliance crée un enregistrement CNAME mappant le domaine IP6-ARPA à l’IN-ADDR correspondant. Le domaine ARPA et le nouveau domaine IN-ADDR.ARPA sont utilisés pour la résolution. L’appliance recherche les enregistrements PTR locaux et, s’ils ne sont pas présents, elle envoie une demande PTR pour le domaine IN-ADDR.ARPA au serveur DNS. L’appliance NetScaler utilise la réponse du serveur DNS pour synthétiser la réponse à la demande PTR initiale.
Étapes de configuration
La création des entités requises pour une configuration NAT64 dynamique sur l’appliance NetScaler implique les procédures suivantes :
-
Ajoutez des services DNS. Les services DNS sont une représentation logique des serveurs DNS pour lesquels l’appliance NetScaler fait office de serveur proxy DNS. Pour plus d’informations sur la définition des paramètres facultatifs d’un service, voir Équilibrage de charge.
-
Ajouter une action DNS64 et une stratégie DNS64, puis liez l’action DNS64 à la stratégie DNS64. Une stratégie DNS64 spécifie les conditions à mettre en correspondance avec le trafic pour le traitement DNS64 en fonction des paramètres de l’action DNS64 associée. L’action DNS64 spécifie le préfixe DNS64 obligatoire et les paramètres facultatifs de la règle d’exclusion et des règles mappées.
-
Créez un serveur virtuel d’équilibrage de charge DNS et liez-y les services DNS et la stratégie DNS64. Le serveur virtuel d’équilibrage de charge DNS agit comme un serveur proxy DNS pour les serveurs DNS représentés par les services DNS liés. Le trafic arrivant sur le serveur virtuel est mis en correspondance avec la stratégie DNS64 liée pour le traitement DNS64. Pour plus d’informations sur la définition des paramètres facultatifs d’un serveur virtuel d’équilibrage de charge, voir Équilibrage de charge.
Remarque : l’interface de ligne de commande comporte des commandes distinctes pour ces deux tâches, mais l’interface graphique les combine dans une seule boîte de dialogue.
Activez la mise en cache des enregistrements DNS. Activez le paramètre global pour que l’appliance NetScaler mette en cache les enregistrements DNS, qui sont obtenus via des opérations de proxy DNS. Pour plus d’informations sur l’activation de la mise en cache des enregistrements DNS, voir Système de noms de domaine.
Procédures CLI
Pour créer un service de type DNS à l’aide de l’interface de ligne de commande :
À l’invite de commandes, tapez :
- add service <name> <IP> <serviceType> <port> …
Pour créer une action DNS64 à l’aide de l’interface de ligne de commande :
À l’invite de commandes, tapez :
- add dns action64 <actionName> -Prefix <ipv6_addr|*> [-mappedRule \
] \[-excludeRule \\ ]
Pour créer une stratégie DNS64 à l’aide de l’interface de ligne de commande :
À l’invite de commandes, tapez :
- add dns policy64 <name> -rule <expression> -action <string>
Pour créer un serveur virtuel d’équilibrage de charge DNS à l’aide de l’interface de ligne de commande :
À l’invite de commandes, tapez :
- add lb vserver <name> DNS <IPAddress> <port> -dns64 ( ENABLED | DISABLED ) [-bypassAAAA ( YES | NO )] …
Pour lier les services DNS et la stratégie DNS64 au serveur virtuel d’équilibrage de charge DNS à l’aide de l’interface de ligne de commande :
À l’invite de commandes, tapez :
- bind lb vserver <name> <serviceName> …
- bind lb vserver <name> -policyName <string> -priority <positive_integer> …
Procédures GUI
Pour créer un service de type DNS à l’aide de l’interface graphique :
- Accédez à Gestion du trafic > Équilibrage de charge > Services, puis ajoutez un nouveau service.
- Définissez les paramètres suivants :
- Nom du service*
- Serveur*
- Protocole* (Sélectionnez DNS dans la liste déroulante.)
- Port*
Pour créer une action DNS64 à l’aide de l’interface graphique :
Accédez à Gestion du trafic > DNS > Actions, sous l’onglet DNS Actions64, ajoutez une nouvelle action DNS64.
Pour créer une stratégie DNS64 à l’aide de l’interface graphique :
Accédez à Gestion du trafic > DNS > Stratégies, sous l’onglet DNS Policies64, ajoutez une nouvelle stratégie DNS64.
Pour créer un serveur virtuel d’équilibrage de charge DNS et y lier les services DNS et la stratégie DNS64 à l’aide de l’interface graphique :
- Accédez à Gestion du trafic > Équilibrage de charge > Serveurs virtuels et ajoutez un nouveau serveur virtuel.
- Définissez les paramètres suivants :
- Nom*
- Adresse IP*
- Protocole* (Sélectionnez DNS dans la liste déroulante.)
- Port*
- Sélectionnez l’option Activer DNS64.
- Dans le volet Services, liez le service au serveur virtuel.
- Dans le volet Stratégies, liez la stratégie au serveur virtuel.
Exemple de configuration
> 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-->