Gérer les enregistrements DNS et les jeux d’enregistrement dans Azure DNS à l’aide d’Azure CLI

Cet article explique comment gérer les enregistrements DNS d’une zone DNS avec l’interface Azure CLI multiplateforme. Azure CLI est disponible pour Windows, Mac et Linux. Vous pouvez également gérer vos enregistrements DNS à l’aide d’Azure PowerShell ou du portail Azure.

Les exemples de cet article supposent que vous avez déjà installé Azure CLI, ouvert une session et créé une zone DNS.

Introduction

Avant de créer des enregistrements DNS dans Azure DNS, vous devez comprendre comment Azure DNS organise les enregistrements DNS en jeux d’enregistrements DNS.

Noms d’enregistrement

Dans Azure DNS, les enregistrements sont spécifiés à l’aide de noms relatifs. Un nom de domaine complet (FQDN) inclut le nom de la zone, contrairement à un nom relatif. Par exemple, le nom d’enregistrement relatif www dans la zone contoso.com donne le nom d’enregistrement complet www.contoso.com.

Un enregistrement apex est un enregistrement DNS à la racine (ou apex) d’une zone DNS. Par exemple, dans la zone DNS contoso.com, un enregistrement apex porte également le nom complet contoso.com (on parle parfois de domaine nu). Par convention, le nom relatif « @ » est utilisé pour représenter des enregistrements apex.

Types d’enregistrements

Chaque enregistrement DNS a un nom et un type. Les enregistrements sont organisés selon différents types, en fonction des données qu’ils contiennent. Le type le plus courant est un enregistrement « A » qui mappe un nom à une adresse IPv4. Un autre type courant est un enregistrement « MX » qui mappe un nom à un serveur de messagerie.

Azure DNS prend en charge tous les types d’enregistrement DNS courants, à savoir : A, AAAA, CAA, CNAME, MX, NS, PTR, SOA, SRV et TXT. Notez que les enregistrements SPF sont représentés à l’aide d’enregistrements TXT.

Jeux d’enregistrements

Vous devez parfois créer plusieurs enregistrements DNS avec un nom et un type donnés. Par exemple, supposons que le site web « www.contoso.com » est hébergé sur deux adresses IP différentes. Ce site web requiert deux enregistrements A différents, à savoir un pour chaque adresse IP. Voici un exemple de jeu d’enregistrements :

www.contoso.com.        3600    IN    A    134.170.185.46
www.contoso.com.        3600    IN    A    134.170.188.221

Le DNS Azure gère l’ensemble des enregistrements DNS à l’aide de jeux d’enregistrements. Un jeu d’enregistrements (également appelé jeu d’enregistrements de ressource) est la collection d’enregistrements DNS dans une zone qui portent le même nom et sont du même type. La plupart des jeux d’enregistrements contiennent un seul enregistrement. Toutefois, les exemples comme celui ci-dessus, dans lequel un jeu d’enregistrements contient plusieurs enregistrements, sont relativement courants.

Par exemple, supposons que vous avez déjà créé un enregistrement A nommé « www » dans la zone « contoso.com », qui pointe vers l’adresse IP « 134.170.185.46 » (le premier enregistrement ci-dessus). Pour créer le deuxième enregistrement, vous devez l’ajouter au jeu d’enregistrements existant, au lieu de créer un autre jeu.

Les types d’enregistrements SOA et CNAME font exception. Comme les normes DNS n’autorisent pas que plusieurs enregistrements portent le même nom pour ces types, ces jeux d’enregistrements ne peuvent contenir qu’un seul enregistrement.

Pour plus d’informations sur les enregistrements DNS dans Azure DNS, voir Enregistrements et zones DNS.

Créer un enregistrement DNS

Pour créer un enregistrement DNS, utilisez la commande az network dns record-set <record-type> add-record (où <record-type> correspond au type d’enregistrement, c’est-à-dire a, srv, txt, etc.) Pour obtenir de l’aide, consultez az network dns record-set --help.

Lorsque vous créez un enregistrement, vous devez spécifier les informations suivantes :

  • Nom de groupe ressources
  • Nom de la zone
  • Nom du jeu d’enregistrements
  • Type d’enregistrement

Le nom du jeu d’enregistrements doit être un nom relatif, c’est-à-dire qu’il ne doit pas contenir le nom de la zone. Si le jeu d’enregistrements n’existe pas, cette commande le crée automatiquement. Elle ajoute en revanche l’enregistrement spécifié si le jeu d’enregistrements existe déjà.

Si un jeu d’enregistrements est créé, une durée de vie (TTL) de 3600 est utilisée par défaut. Pour plus d’instructions sur l’utilisation de différents TTL, consultez Création d’un jeu d’enregistrements DNS.

L’exemple suivant crée un enregistrement A appelé www dans la zone contoso.com du groupe de ressources MyResourceGroup. L’adresse IP de l’enregistrement A est 1.2.3.4.

az network dns record-set a add-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name www --ipv4-address 1.2.3.4

Pour créer un jeu d’enregistrements à l’extrémité de la zone (dans cet exemple, « contoso.com »), utilisez le nom d’enregistrement "\@\" (guillemets compris) :

az network dns record-set a add-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name "@" --ipv4-address 1.2.3.4

Créer un jeu d’enregistrements DNS

Dans les exemples ci-dessus, l’enregistrement DNS a été ajouté à un jeu d’enregistrements existant, ou le jeu d’enregistrements a été créé implicitement. Vous pouvez également créer le jeu d’enregistrements explicitement avant d’ajouter des enregistrements à celui-ci. Azure DNS prend en charge les jeux d’enregistrements « vides », qui peuvent servir d’espaces réservés pour réserver un nom DNS avant de créer des enregistrements DNS. Les jeux d’enregistrements vides sont visibles dans le plan de contrôle Azure DNS, mais n’apparaissent pas sur les serveurs de noms Azure DNS.

Des jeux d’enregistrements sont créés à l’aide de la commande az network dns record-set <record-type> create. Pour obtenir de l’aide, consultez l’article az network dns record-set <record-type> create --help.

La création explicite du jeu d’enregistrements permet de spécifier les propriétés de jeu d’enregistrements, comme la Durée de vie (TTL) et les métadonnées. Vous pouvez utiliser des métadonnées de jeu d’enregistrements pour associer les données spécifiques de l’application à chaque jeu d’enregistrements, comme paires clé-valeur.

L’exemple suivant crée un jeu d’enregistrements vide de type « A » avec une durée de vie de 60 secondes, à l’aide du paramètre --ttl (forme abrégée -l) :

az network dns record-set a create --resource-group myresourcegroup --zone-name contoso.com --name www --ttl 60

L’exemple suivant crée un jeu d’enregistrements comportant deux entrées de métadonnées (« dept=finance » et « environment=production ») avec le paramètre --metadata :

az network dns record-set a create --resource-group myresourcegroup --zone-name contoso.com --name www --metadata "dept=finance" "environment=production"

Après avoir créé un jeu d’enregistrements vide, les enregistrements peuvent être ajoutés à l’aide de azure network dns record-set <record-type> add-record, comme décrit dans Création d’un enregistrement DNS.

Créer des enregistrements d’autres types

À présent que nous avons vu en détail comment créer des enregistrements de type « A », les exemples suivants montrent comment créer des enregistrements d’autres types pris en charge par Azure DNS.

Les paramètres utilisés pour spécifier les données de l’enregistrement varient selon le type de l’enregistrement. Par exemple, pour un enregistrement de type « A », vous spécifiez l’adresse IPv4 avec le paramètre --ipv4-address <IPv4 address>. Les paramètres pour chaque type d’enregistrement peuvent être spécifiés à l’aide de az network dns record-set <record-type> add-record --help.

Dans chaque cas, nous montrons comment créer un seul enregistrement. L’enregistrement est ajouté au jeu d’enregistrements existant, ou à un jeu d’enregistrements créé implicitement. Pour plus d’informations sur la création de jeux d’enregistrements et la définition explicite des paramètres de jeu d’enregistrements, consultez Création d’un jeu d’enregistrements DNS.

Il n’existe aucun exemple de création d’un jeu d’enregistrements SOA, car ces derniers sont créés et supprimés avec chaque zone DNS. Il n’est pas possible de les créer ni de les supprimer séparément. Vous pouvez en revanche les modifier (cf. exemple plus loin dans cet article).

Créer un enregistrement AAAA

az network dns record-set aaaa add-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name test-aaaa --ipv6-address 2607:f8b0:4009:1803::1005

Créer un enregistrement CAA

az network dns record-set caa add-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name test-caa --flags 0 --tag "issue" --value "ca1.contoso.com"

Créer un enregistrement CNAME

Notes

Les normes DNS n’autorisent pas la présence d’enregistrements CNAME ou de jeux d’enregistrements contenant plusieurs enregistrements à l’apex (sommet) d’une zone (--Name "@").

Pour plus d’informations, voir Enregistrements CNAME.

az network dns record-set cname set-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name test-cname --cname www.contoso.com

Créer un enregistrement MX

Dans cet exemple, nous utilisons le nom de jeu d’enregistrements « \@\ » pour créer l’enregistrement MX à l’apex de la zone (dans ce cas, « contoso.com »).

az network dns record-set mx add-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name "@" --exchange mail.contoso.com --preference 5

Créer un enregistrement NS

az network dns record-set ns add-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name test-ns --nsdname ns1.contoso.com

Création d’un enregistrement PTR

Dans ce cas, « my-arpa-zone.com » indique la zone ARPA représentant votre plage d’adresses IP. Chaque enregistrement PTR défini dans cette zone correspond à une adresse IP figurant dans cette plage d’adresses IP. Le nom d’enregistrement « 10 » est le dernier octet de l’adresse IP dans cette plage d’IP représentée par cet enregistrement.

az network dns record-set ptr add-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name my-arpa.zone.com --ptrdname myservice.contoso.com

Création d’un enregistrement SRV

Lorsque vous créez un jeu d’enregistrements SRV, spécifiez le _service et le _protocole dans le nom du jeu d’enregistrements. Il n’est pas nécessaire d’inclure « @ » dans le nom du jeu d’enregistrements lors de la création d’un enregistrement SRV à l’apex de la zone.

az network dns record-set srv add-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name _sip._tls --priority 10 --weight 5 --port 8080 --target sip.contoso.com

Création d’un enregistrement TXT

L’exemple suivant montre comment créer un enregistrement TXT. Pour plus d’informations sur la longueur maximale de chaîne prise en charge dans les enregistrements TXT, voir Enregistrements TXT.

az network dns record-set txt add-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name test-txt --value "This is a TXT record"

Obtention d’un jeu d'enregistrements

Pour récupérer un jeu d’enregistrements existant, utilisez az network dns record-set <record-type> show. Pour obtenir de l’aide, consultez l’article az network dns record-set <record-type> show --help.

Lors de la création d’un enregistrement ou d’un jeu d’enregistrements, le nom donné au jeu d’enregistrements doit être relatif. Il n’inclut pas le nom de la zone. Vous devez également spécifier le type d’enregistrement, la zone contenant le jeu d’enregistrements et le groupe de ressources contenant la zone.

L’exemple suivant retrouve l’enregistrement www de type A dans la zone contoso.com du groupe de ressources MyResourceGroup :

az network dns record-set a show --resource-group myresourcegroup --zone-name contoso.com --name www

Liste des jeux d'enregistrements

Vous pouvez répertorier tous les enregistrements d’une zone DNS à l’aide de la commande az network dns record-set list . Pour obtenir de l’aide, consultez l’article az network dns record-set list --help.

Cet exemple renvoie tous les jeux d’enregistrements de la zone contoso.com, dans le groupe de ressources MyResourceGroup :

az network dns record-set list --resource-group myresourcegroup --zone-name contoso.com

Cet exemple retourne tous les jeux d’enregistrements correspondant au type d’enregistrement donné (dans ce cas, les enregistrements « A ») :

az network dns record-set a list --resource-group myresourcegroup --zone-name contoso.com 

Ajouter un enregistrement à un jeu d’enregistrements existant

Vous pouvez utiliser az network dns record-set <record-type> add-record à la fois pour créer un enregistrement dans un nouveau jeu d’enregistrements ou pour ajouter un enregistrement à un jeu d’enregistrements existant.

Pour plus d’informations, consultez Création d’un enregistrement DNS et Création d’enregistrements d’autres types ci-dessus.

Suppression d’un enregistrement d’un jeu d'enregistrements existant.

Pour supprimer un enregistrement DNS d’un jeu d'enregistrements existant, utilisez az network dns record-set <record-type> remove-record. Pour obtenir de l’aide, consultez l’article az network dns record-set <record-type> remove-record -h.

Cette commande supprime un enregistrement DNS d’un jeu d’enregistrements. Si le dernier enregistrement d’un jeu d’enregistrements est supprimé, le jeu d’enregistrements lui-même est également supprimé. Pour conserver le jeu d’enregistrements vide, utilisez l’option --keep-empty-record-set.

Lorsque vous utilisez la commande az network dns record-set <record-type> add-record, vous devez spécifier l’enregistrement à supprimer et la zone concernée. Ces paramètres sont décrits dans Création d’un enregistrement DNS et Création d’enregistrements d’autres types ci-dessus.

L’exemple suivant supprime l’enregistrement A avec la valeur « 1.2.3.4 » du jeu d’enregistrements www dans la zone contoso.com du groupe de ressources MyResourceGroup.

az network dns record-set a remove-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name "www" --ipv4-address 1.2.3.4

Modifier un jeu d’enregistrements

Chaque jeu d’enregistrements contient une durée de vie (TTL), des métadonnées et des enregistrements DNS. Les sections suivantes expliquent comment modifier chacune de ces propriétés.

Pour modifier un enregistrement A, AAAA, CAA, MX, NS, PTR, SRV ou TXT

Pour modifier un enregistrement existant de type A, AAAA, CAA, MX, NS, PTR, SRV ou TXT, vous devez d’abord ajouter un nouvel enregistrement, puis supprimer l’enregistrement existant. Pour obtenir des instructions détaillées sur la façon de supprimer et ajouter des enregistrements, consultez les sections précédentes de cet article.

L’exemple suivant montre comment modifier un enregistrement « A », de l’adresse IP 1.2.3.4 à l’adresse IP 5.6.7.8 :

az network dns record-set a add-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name www --ipv4-address 5.6.7.8
az network dns record-set a remove-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name www --ipv4-address 1.2.3.4

Il n’est pas possible d’ajouter, de supprimer ni de modifier les enregistrements dans le jeu d’enregistrements NS créé automatiquement à l’apex de la zone (--Name "@", guillemets inclus). Pour ce jeu d’enregistrements, les seules modifications autorisées sont celles de la durée de vie (TTL) et des métadonnées du jeu d’enregistrements.

Pour modifier un enregistrement CNAME

Contrairement à la plupart des autres types d’enregistrements, un jeu d’enregistrements CNAME ne peut contenir qu’un seul enregistrement. C’est pourquoi vous ne pouvez pas remplacer la valeur actuelle en ajoutant un nouvel enregistrement et en supprimant l’actuel, comme pour d’autres types d’enregistrements.

À la place, pour modifier un enregistrement CNAME, utilisez az network dns record-set cname set-record. Pour obtenir de l’aide, consultez az network dns record-set cname set-record --help

Cet exemple modifie le jeu d’enregistrements CNAME www dans la zone contoso.com, dans le groupe de ressources MyResourceGroup, pour pointer vers « www.fabrikam.net » au lieu de sa valeur existante :

az network dns record-set cname set-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name test-cname --cname www.fabrikam.net

Pour modifier un enregistrement SOA

Contrairement à la plupart des autres types d’enregistrements, un jeu d’enregistrements SOA ne peut contenir qu’un seul enregistrement. C’est pourquoi vous ne pouvez pas remplacer la valeur actuelle en ajoutant un nouvel enregistrement et en supprimant l’actuel, comme pour d’autres types d’enregistrements.

À la place, pour modifier l’enregistrement SOA, utilisez az network dns record-set soa update. Pour obtenir de l’aide, consultez l’article az network dns record-set soa update --help.

L’exemple suivant montre comment définir la propriété « email » de l’enregistrement SOA pour la zone contoso.com :

az network dns record-set soa update --resource-group myresourcegroup --zone-name contoso.com --email admin.contoso.com

Pour modifier des enregistrements NS à l’apex de la zone

Le jeu d’enregistrements NS à l’apex de la zone est créé automatiquement avec chaque zone DNS. Il contient les noms des serveurs de noms Azure DNS attribués à la zone.

Vous pouvez ajouter d’autres serveurs de noms à ce jeu d’enregistrements NS pour prendre en charge le co-hébergement de domaines avec plusieurs fournisseurs DNS. Il est également possible de modifier la durée de vie et les métadonnées de ce jeu d’enregistrements. Toutefois, vous n’avez pas la possibilité de supprimer ni de modifier les serveurs de noms Azure DNS préremplis.

Cette restriction s’applique uniquement au jeu d’enregistrements NS situé à l’apex de la zone. Les autres jeux d’enregistrements NS dans votre zone (tels que ceux utilisés pour déléguer des zones enfants) peuvent être modifiés sans contrainte.

L’exemple suivant montre comment ajouter un autre serveur de noms au jeu d’enregistrements NS situé à l’apex de la zone :

az network dns record-set ns add-record --resource-group myresourcegroup --zone-name contoso.com --record-set-name "@" --nsdname ns1.myotherdnsprovider.com 

Pour modifier la durée de vie (TTL) d’un jeu d’enregistrements

Pour modifier la durée de vie (TTL) d’un jeu d’enregistrements, utilisez azure network dns record-set <record-type> update. Pour obtenir de l’aide, consultez l’article azure network dns record-set <record-type> update --help.

L’exemple suivant montre comment modifier la durée de vie d’un jeu d’enregistrements, dans ce cas sur 60 secondes :

az network dns record-set a update --resource-group myresourcegroup --zone-name contoso.com --name www --set ttl=60

Pour modifier les métadonnées d’un jeu d’enregistrements

Vous pouvez utiliser des métadonnées de jeu d’enregistrements pour associer les données spécifiques de l’application à chaque jeu d’enregistrements, comme paires clé-valeur. Pour modifier les métadonnées d’un jeu d’enregistrements, utilisez az network dns record-set <record-type> update. Pour obtenir de l’aide, consultez l’article az network dns record-set <record-type> update --help.

L’exemple suivant montre comment modifier un jeu d’enregistrements avec deux entrées de métadonnées, « dept=finance » et « environment=production ». Toutes les métadonnées existantes sont remplacées par les valeurs fournies.

az network dns record-set a update --resource-group myresourcegroup --zone-name contoso.com --name www --set metadata.dept=finance metadata.environment=production

Supprimer un jeu d’enregistrements

Les jeux d’enregistrements peuvent être supprimés à l’aide de la commande az network dns record-set <record-type> delete. Pour obtenir de l’aide, consultez l’article azure network dns record-set <record-type> delete --help. La suppression d’un jeu d’enregistrements a pour effet de supprimer également tous les enregistrements qu’il contient.

Notes

Vous ne pouvez pas supprimer de jeux d’enregistrements SOA et NS au niveau de l’apex de la zone (--name "@"). Ceux-ci sont créés automatiquement lors de la création de la zone, et automatiquement supprimés lors de la suppression de celle-ci.

L’exemple suivant supprime le jeu d’enregistrements www de type A dans la zone contoso.com du groupe de ressources MyResourceGroup :

az network dns record-set a delete --resource-group myresourcegroup --zone-name contoso.com --name www

Il vous est demandé de confirmer l’opération de suppression. Pour supprimer cette invite, utilisez le switch --yes.

Étapes suivantes

Apprenez-en davantage sur les zones et enregistrements dans Azure DNS.
Découvrez comment protéger vos zones et enregistrements lors de l’utilisation d’Azure DNS.