Importez et exportez un fichier de zone DNS à l’aide de la clé de commande Azure CLI

Dans cet article, vous apprenez à importer et exporter un fichier de zone DNS dans Azure DNS en utilisant Azure CLI. Vous pouvez aussi importer et exporter un fichier de zone via le portail Azure.

Introduction à la migration de zones DNS

Un fichier de zone DNS est un fichier texte contenant des informations sur chaque enregistrement du Système de Noms de Domaine (DNS) dans la zone. Il suit un format standard, ce qui le rend adapté au transfert d’enregistrements DNS entre systèmes DNS. L’utilisation d’un fichier de zone est un moyen rapide et pratique d’importer des zones DNS vers Azure DNS. Vous pouvez aussi exporter un fichier de zone depuis Azure DNS pour l’utiliser avec d’autres systèmes DNS.

Azure DNS prend en charge l’importation et l’exportation de fichiers de zone via l’interface de ligne de commande Azure ainsi que le portail Azure.

Azure CLI est un outil en ligne de commande multiplateforme utilisé pour gérer les services Azure. Il est disponible sur Windows, Mac et Linux via la page de téléchargement Azure.

Obtenez votre fichier de zone DNS existant

Avant d’importer un fichier de zone DNS dans Azure DNS, vous devez obtenir une copie du fichier de zone. La source de ce fichier dépend de l’endroit où la zone DNS est hébergée.

  • Si votre zone DNS est hébergée par un service partenaire, le service devrait avoir un moyen pour vous de télécharger le fichier de la zone DNS. Les services partenaires incluent le registraire de domaine, le fournisseur d’hébergement DNS dédié ou un fournisseur cloud alternatif.
  • Si votre zone DNS est hébergée sur Windows DNS, le dossier par défaut pour les fichiers de zone est %systemroot%\system32\dns. Le chemin complet vers chaque fichier de zone est également affiché dans l’onglet Général de la console DNS.
  • Si votre zone DNS est hébergée via BIND, l’emplacement du fichier de zone pour chaque zone est spécifié dans le fichier de configuration BIND nommé .conf.

Important

Si le fichier de zone que vous importez contient des entrées CNAME pointant vers des noms dans une autre zone privée, la résolution Azure DNS du CNAME échoue à moins que l’autre zone ne soit également importée, ou que les entrées CNAME soient modifiées.

Importer un fichier de zone DNS dans Azure DNS

Importer un fichier de zone crée une nouvelle zone dans Azure DNS si la zone n'existe pas déjà. Si la zone existe, alors les ensembles d’enregistrements dans le fichier de zone sont fusionnés avec les ensembles d’enregistrements existants.

Comportement de la fusion

  • Par défaut, les nouveaux ensembles d’enregistrements sont fusionnés avec les ensembles existants. Les enregistrements identiques dans un ensemble de fichiers fusionnés ne sont pas dupliqués.
  • Lorsque les ensembles d’enregistrements sont fusionnés, le temps de vie (TTL) des ensembles d’enregistrements préexistants est utilisé.
  • Les paramètres de début d’autorité (SOA), sauf host qu’ils sont toujours pris à partir du fichier de zone importé. L’enregistrement du serveur de noms défini à l’apex de la zone utilise également toujours le TTL extrait du fichier de zone importé.
  • Un enregistrement CNAME importé remplacera l’enregistrement CNAME existant portant le même nom.
  • Lorsqu’un conflit survient entre un enregistrement CNAME et un autre enregistrement portant le même nom de type différent, l’enregistrement existant est utilisé.

Informations supplémentaires sur l’importation

Les notes suivantes fournissent plus de détails techniques sur le processus d’importation de zone.

  • La $TTL directive est optionnelle et supportée. Lorsqu’aucune $TTL directive n’est donnée, les enregistrements sans TTL explicite sont importés avec un TTL par défaut de 3600 secondes. Lorsque deux enregistrements dans le même ensemble d’enregistrements spécifient des TTL différents, la valeur la plus basse est utilisée.
  • La $ORIGIN directive est optionnelle et supportée. Lorsque no $ORIGIN est défini, la valeur par défaut utilisée est le nom de la zone tel que spécifié sur la ligne de commande, y compris le point de fin (.).
  • Les $INCLUDE directives et $GENERATE ne sont pas prises en charge.
  • Ces types d’enregistrements sont pris en charge : A, AAAA, CAA, CNAME, MX, NS, SOA, SRV et TXT.
  • L’enregistrement SOA est créé automatiquement par Azure DNS lorsqu’une zone est créée. Lorsque vous importez un fichier de zone, tous les paramètres SOA sont pris du fichier de zone sauf le host paramètre. Ce paramètre utilise la valeur fournie par Azure DNS car il doit se référer au serveur de noms principal fourni par Azure DNS.
  • L’ensemble d’enregistrements du serveur de noms à l’apex de la zone est également créé automatiquement par Azure DNS lors de la création de la zone. Seul le TTL de cet ensemble d’enregistrements est importé. Ces enregistrements contiennent les noms des serveurs de noms fournis par Azure DNS. Les données de l’enregistrement ne sont pas écrasées par les valeurs contenues dans le fichier de zone importé.
  • Azure DNS prend en charge les enregistrements TXT contenant plusieurs chaînes, chacune pouvant atteindre 255 caractères de longueur, avec un total pouvant atteindre 4 096 caractères par ensemble d’enregistrements TXT. Les enregistrements TXT multichaînes dans un fichier zone peuvent ne pas être importés avec la même structure de chaînes, donc vérifiez vos enregistrements TXT une fois l’importation terminée. Pour plus d’informations, consultez les dossiers TXT.

Format et valeurs CLI

Le format de la commande Azure CLI pour importer une zone DNS est le suivant :

az network dns zone import -g <resource group> -n <zone name> -f <zone file name>

Valeurs :

  • <resource group>est le nom du groupe de ressources de la zone dans Azure DNS.
  • <zone name> est le nom de la zone.
  • <zone file name> est le chemin/nom du fichier de zone à importer.

Si une zone portant ce nom n’existe pas déjà dans le groupe de ressources, une zone est créée pour vous. Pour une zone existante, les ensembles d’enregistrements importés sont fusionnés avec les ensembles d’enregistrements existants.

Importer un fichier de zone

Pour importer un fichier de zone pour la contoso.com de zone.

  1. Créez un groupe de ressources si vous n’en avez pas.

    az group create --resource-group myresourcegroup -l westeurope
    
  2. Pour importer la contoso.com de zone depuis le fichiercontoso.com.txt dans une nouvelle zone DNS du groupe de ressources myresourcegroup, exécutez la commande az network dns zone import.

    Cette commande charge le fichier de zone et l’analyse. La commande exécute une série d’opérations sur le service Azure DNS pour créer la zone et tous les ensembles d’enregistrements de la zone. La commande rapporte l’avancement dans la fenêtre de la console ainsi que toute erreur ou avertissement. Comme les ensembles d’enregistrements sont créés en série, il peut falloir quelques minutes pour importer un gros fichier de zone.

    az network dns zone import -g myresourcegroup -n contoso.com -f contoso.com.txt
    

Vérifiez la zone

Vous pouvez utiliser l’une des méthodes suivantes pour vérifier la zone DNS après avoir importé le fichier :

  • Pour lister les enregistrements, utilisez la commande Azure CLI suivante :

    az network dns record-set list -g myresourcegroup -z contoso.com
    
  • Vous pouvez également lister les enregistrements en utilisant la commande az network dns record-set ns listAzure CLI.

  • Utilisez nslookup pour vérifier la résolution des noms des enregistrements. Si la zone n'a pas encore été déléguée, vous devez spécifier explicitement les bons serveurs de noms Azure DNS. L’exemple suivant montre comment récupérer les noms des serveurs de noms attribués à la zone.

    az network dns record-set ns list -g myresourcegroup -z contoso.com  --output json 
    
    [
      {
       .......
       "name": "@",
        "nsRecords": [
          {
            "additionalProperties": {},
            "nsdname": "ns1-03.azure-dns.com."
          },
          {
            "additionalProperties": {},
            "nsdname": "ns2-03.azure-dns.net."
          },
          {
            "additionalProperties": {},
            "nsdname": "ns3-03.azure-dns.org."
          },
          {
            "additionalProperties": {},
            "nsdname": "ns4-03.azure-dns.info."
          }
        ],
        "resourceGroup": "myresourcegroup",
        "ttl": 86400,
        "type": "Microsoft.Network/dnszones/NS"
      }
    ]
    

    Utilisez l’invite de commande Windows pour interroger l’enregistrement « www » avec la nslookup commande.

    nslookup www.contoso.com ns1-03.azure-dns.com
    
        Server: ns1-01.azure-dns.com
        Address:  40.90.4.1
    
        Name:www.contoso.com
        Addresses:  134.170.185.46
        134.170.188.221
    

Mise à jour de la délégation DNS

Après avoir vérifié que la zone a été importée correctement, vous devez alors mettre à jour la délégation DNS pour pointer vers les serveurs de noms Azure DNS. Pour plus d’informations, voir Mettre à jour la délégation DNS.

Exporter un fichier de zone DNS depuis Azure DNS

Pour exporter une zone DNS, utilisez la commande Azure CLI suivante :

az network dns zone export -g <resource group> -n <zone name> -f <zone file name>

Valeurs :

  • <resource group>est le nom du groupe de ressources de la zone dans Azure DNS.
  • <zone name> est le nom de la zone.
  • <zone file name> est le chemin/nom du fichier de zone à exporter.

Comme pour l’importation de zone, il faut d’abord vous connecter, choisir votre abonnement, et configurer l’Azure CLI pour utiliser le mode Resource Manager.

Pour exporter un fichier de zone

Pour exporter la contoso.com de zone de Azure DNS existante dans le groupe de ressources myresourcegroup vers le fichiercontoso.com.txt (dans le dossier actuel), exécutez azure network dns zone export. Cette commande appelle le service Azure DNS pour énumérer les ensembles d’enregistrements dans la zone et exporter les résultats dans un fichier de zone compatible BIND.

az network dns zone export -g myresourcegroup -n contoso.com -f contoso.com.txt

Étapes suivantes