DNS64

La fonctionnalité Citrix ADC DNS64 répond avec un enregistrement DNS AAAA synthétisé à un client IPv6 envoyant une requête AAAA pour un domaine IPv4 uniquement. La fonction DNS64 est utilisée avec la fonction NAT64 pour permettre une communication transparente entre les clients IPv6 uniquement et les serveurs IPv4 uniquement. DNS64 permet la découverte du domaine IPv4par les clients IPV6 uniquement, et NAT64 permet la communication entre les clients et les serveurs.

Pour synthétiser un enregistrement AAAA, l’appliance Citrix ADC 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 Citrix ADC. L’appliance Citrix ADC synthétise l’enregistrement AAAA par concaténation du préfixe DNS64 (96 bits) et de l’adresse IPv4 (32 bits).

Pour activer la communication entre les clients IPv6 et les serveurs IPv4, une appliance Citrix ADC 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 sur l’appliance Citrix ADC est similaire et inclut un serveur virtuel d’équilibrage de charge agissant en tant que serveur proxy pour les serveurs DNS. Si l’appliance Citrix ADC est déployée côté client, le serveur virtuel d’équilibrage de charge doit être spécifié, sur le client IPv6, comme serveur de noms pour un domaine.

Prenons un exemple où une appliance Citrix ADC avec 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 activer la communication entre les clients IPv6 et le serveur IPv4 S1, l’appliance Citrix ADC NS1 est déployée avec un DNS64 et une configuration NAT64 avec état.

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é à 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 à LBVS-DNS64-1 correspond aux conditions spécifiées dans DNS64-Policy-1, le trafic est traité selon les 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.

Les enregistrements de cache du paramètre DNS global sont activés sur l’appliance Citrix ADC, 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 :Exemple de paramètres DNS64.

Voici le flux de trafic dans cet exemple :

  1. Le client IPv6 CL1 envoie une requête DNS AAAA pour l’adresse IPv6 du site www.example.com.
  2. La demande est reçue par le serveur virtuel d’équilibrage de charge DNS LBVS-DNS64-1 sur l’appliance Citrix ADC NS1.
  3. NS1 vérifie ses enregistrements de cache DNS pour l’enregistrement AAAA demandé et trouve que l’enregistrement AAAA pour le site www.example.com n’existe pas dans le cache DNS.
  4. L’algorithme d’équilibrage de charge de LBVS-DNS64-1 sélectionne le serveur DNS DNS-1 et lui transmet la requête AAAA.
  5. Étant donné que le site www.example.com est hébergé sur un serveur IPv4, le serveur DNS DNS-1 n’a pas d’enregistrement AAAA pour le site www.example.com.
  6. DNS-1 envoie une réponse DNS AAAA vide ou un message d’erreur à LBVS-DNS64-1.
  7. É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 requête DNS A à DNS-1 pour l’adresse IPv4 de www.example.com.
  8. DNS-1 répond en envoyant l’enregistrement DNS A pour www.example.com à LBVS-DNS64-1. L’enregistrement A inclut l’adresse IPv4 pour www.example.com.
  9. 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
  10. 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 requêtes AAAA suivantes.

Points à prendre en compte pour une configuration DNS64

Avant de configurer DNS64 sur une appliance Citrix ADC, tenez compte des points suivants :

  • La fonctionnalité DNS64 de l’appliance Citrix ADC est conforme à la RFC 6174.

  • La fonctionnalité DNS64 de l’appliance Citrix ADC ne prend pas en charge DNSSEC. L’appliance Citrix ADC 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 en tant que réponse DNSSEC, uniquement si elle contient des enregistrements RRSIG.

  • L’appliance Citrix ADC 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 sur l’appliance Citrix ADC. 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 Citrix ADC, reportez-vous à la section NAT64 avec état.

  • Voici les différents cas de traitement DN64 par l’appliance Citrix ADC :

    • 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 Citrix ADC pour la configuration DNS64 particulière. Citrix ADC supprime de la réponse les adresses IPv6 dont le préfixe correspond à la règle d’exclusion. Si la réponse résultante inclut au moins un enregistrement IPv6, l’appliance Citrix ADC 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 de réponse vide, l’appliance demande des enregistrements de ressources 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 entraîne une réponse ou une erreur vide, la même chose est transmise au client.

    • Si la réponse du serveur DNS inclut RCODE = 1 (erreur de format), l’appliance Citrix ADC transfère la même chose au client. S’il n’y a pas de réponse avant le délai d’expiration, l’appliance Citrix ADC envoie une réponse avec RCODE = 2 (défaillance 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 terminant soit atteint. Si le CNAME ne possède aucun enregistrement de ressource AAAA, l’appliance Citrix ADC 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 Citrix ADC prend également en charge la réponse à la demande 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 dans l’IN-ADDR correspondant. Le domaine ARPA et le domaine IN-ADDR.ARPA nouvellement formé est utilisé pour la résolution. L’appliance recherche les enregistrements PTR locaux et, si les enregistrements ne sont pas présents, elle envoie une demande PTR pour le domaine IN-ADDR.ARPA au serveur DNS. L’appliance Citrix ADC utilise la réponse du serveur DNS pour synthétiser la réponse pour la demande PTR initiale.

Étapes de configuration

La création des entités requises pour la configuration NAT64 avec état sur l’appliance Citrix ADC implique les procédures suivantes :

  • Ajouter des services DNS. Les services DNS sont une représentation logique des serveurs DNS pour lesquels l’appliance Citrix ADC agit en tant que serveur proxy DNS. Pour plus d’informations sur la définition de paramètres facultatifs d’un service, reportez-vous à la sectionÉ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 règle d’exclusion et de règle mappée.

  • Créer un serveur virtuel d’équilibrage de charge DNS et lier les services DNS et la stratégie DNS64 à celui-ci. 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, reportez-vous à la section É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.

    Activer la mise en cache des enregistrements DNS. Activez le paramètre global de l’appliance Citrix ADC pour mettre 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, reportez-vous à la section 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 <expression>] [-excludeRule <expression>]

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 :

  1. Accédez à Gestion du trafic > Équilibrage de charge > Services, puis ajoutez un nouveau service.
  2. 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 lier les services DNS et la stratégie DNS64 à l’aide de l’interface graphique :

  1. Accédez à Gestion du trafic > Équilibrage de charge > Serveurs virtuels, puis ajoutez un nouveau serveur virtuel.
  2. Définissez les paramètres suivants :
    • Nom*
    • Adresse IP*
    • Protocole* (Sélectionnez DNS dans la liste déroulante.)
    • Port*
  3. Sélectionnez l’option Activer le DNS64.
  4. Dans le volet Services, liez le service au serveur virtuel.
  5. 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