Cette page explique comment configurer les paramètres DNS d'un domaine à l'aide de Cloud DNS et de Cloud Tools for PowerShell. Elle décrit un exemple simple de création d'une zone gérée pour régir un domaine et ses sous-domaines, puis d'ajout d'enregistrements de ressources à cette zone pour fournir des informations déterminant le comportement du serveur DNS lors du traitement des requêtes adressées aux domaines de la zone.
Dans ce document, nous partons du principe que vous disposez d'un nom de domaine et d'une adresse IP à laquelle vous pouvez associer ce nom de domaine. Si ce n'est pas le cas, vous pouvez enregistrer un nom de domaine via Google Domains ou un autre bureau d'enregistrement de votre choix.
Lisez la référence relative aux cmdlets Cloud Tools for PowerShell pour en savoir plus sur les cmdlets Cloud DNS. Pour plus d'informations sur Cloud DNS en général, consultez la Présentation de Cloud DNS.
Créer une zone gérée pour votre domaine
L'intégralité de l'espace de noms DNS est composée de nombreux domaines, qui incluront bientôt votre propre nom de domaine. Dans Cloud DNS, les zones gérées modélisent les zones DNS et servent de conteneurs permettant d'organiser les enregistrements DNS (tels que les entrées A, CNAME ou TXT) pour un même suffixe de nom DNS. Par exemple, les enregistrements de "example.com." et de sous-domaines tels que "first.example.com." pourraient être dans la même zone car ils partagent le suffixe "example.com.". Notez le point final, qui est nécessaire et indique un nom DNS absolu.
Pour commencer, configurez une zone gérée pour organiser les enregistrements DNS que vous allez créer pour votre nom de domaine. Vous pouvez créer une zone gérée et l'ajouter à votre projet de console Google Cloud à l'aide du cmdlet Add-GcdManagedZone
:
Add-GcdManagedZone ` -Name "my-new-zone" ` -DnsName "example.com." ` -Description "This is my first zone."
Cela crée une zone avec les détails spécifiés et l'ajoute au projet actuel de la configuration de la CLI gcloud active, bien que vous ayez également la possibilité de spécifier un ID de projet différent si vous le souhaitez. De plus, cette opération crée les enregistrements NS et SOA par défaut dans cette zone.
Cependant, pour publier vos nouveaux enregistrements de la zone sur Internet, vous devez également mettre à jour les serveurs de noms de votre domaine pour qu'ils utilisent Cloud DNS. Même si votre domaine est enregistré auprès de Google Domains, vous devez toujours mettre à jour ses serveurs de noms.
Vous pouvez trouver les serveurs de noms Cloud DNS affectés à votre domaine à l'aide du cmdlet Get-GcdManagedZone
de la zone gérée régissant le domaine pour afficher des informations sur cette zone :
Get-GcdManagedZone -Zone "my-new-zone"
Ajouter et supprimer des jeux d'enregistrements de ressources
Les enregistrements de ressources DNS fournissent des informations qui dictent le comportement du serveur DNS lorsqu'il traite les requêtes envoyées à un domaine. Par exemple, les enregistrements DNS permettent d'indiquer au serveur l'adresse IP associée à un domaine, d'indiquer les serveurs d'échange de courrier utilisables pour un domaine, etc.
Dans Cloud DNS, vous pouvez ajouter ou supprimer des enregistrements DNS dans une zone pour configurer de tels comportements. Pour ajouter ou supprimer des jeux d'enregistrements de ressources immuables, vous n'agissez pas directement sur les enregistrements d'une zone. Vous créez plutôt des enregistrements de ressources indépendants ou récupérez ceux existants à l'aide des cmdlets New-GcdResourceRecordSet
et Get-GcdResourceRecordSet
, puis vous envoyez des demandes de modification portant sur ces enregistrements à une zone spécifique à l'aide du cmdlet Add-GcdChange
.
Créer des jeux d'enregistrements de ressources
Vous pouvez utiliser le cmdlet auxiliaire New-GcdResourceRecordSet
pour créer un jeu d'enregistrements de ressources que vous pouvez placer dans une modification, puis l'ajouter à une zone gérée ou l'en supprimer.
Par exemple, si vous souhaitez créer un enregistrement A pour faire pointer votre domaine vers une adresse IPv4 externe au format #.#.#.# (si vous disposez d'une adresse IPv6, utilisez un enregistrement AAAA), vous pouvez utiliser la commande suivante :
$ARecord = New-GcdResourceRecordSet ` -Name "example.com." -Rrdata "107.1.23.134" -Type "A"
De même, pour créer un enregistrement CNAME pour le sous-domaine www afin que "www.exemple.com." soit associé à la même adresse IP et se comporte de la même façon que "exemple.com". vous pouvez utiliser la commande suivante :
$CNAMERecord = New-GcdResourceRecordSet ` -Name "www.example.com." -Rrdata "example.com." -Type "CNAME"
Les types d'enregistrement de ressources acceptés que vous pouvez créer et inclure dans les modifications apportées à une zone sont les suivants : A, AAAA, CNAME, MX, NAPTR, NS, PTR, SOA, SPF, SRV et TXT. Pour savoir comment choisir les enregistrements dont vous avez besoin et comment les créer, consultez les formats d'enregistrement de ressources acceptés pour Cloud DNS.
Récupérer des jeux d'enregistrements de ressources
Si vous souhaitez récupérer un jeu d'enregistrements de ressources existant dans une zone, vous pouvez utiliser le cmdlet Get-GcdResourceRecordSet
, qui renvoie tous les enregistrements d'une zone, puis indexer les résultats :
$allRecords = Get-GcdResourceRecordSet -Zone "my-new-zone" $record0 = $allRecords[0]
Si vous souhaitez afficher uniquement les enregistrements d'un type spécifique, vous pouvez filtrer les résultats en conséquence :
$ARecord = Get-GcdResourceRecordSet -Zone "my-new-zone" -Filter "A"
Appliquer des modifications à une zone gérée
Les cmdlets New-GcdResourceRecordSet
et Get-GcdResourceRecordSet
renvoient tous deux des jeux d'enregistrements de ressources, mais ces enregistrements ne sont ajoutés à rien, ni ne sont supprimés de rien. Pour effectuer ces opérations, utilisez le cmdlet Add-GcdChange
:
Add-GcdChange ` -Zone "my-new-zone" -Add $record1,$record2 -Remove $record0
Par exemple, pour ajouter les enregistrements A et CNAME que vous avez créés ci-dessus à notre zone, procédez comme suit :
Add-GcdChange -Zone "my-new-zone" -Add $ARecord,$CNAMERecord
Si vous souhaitez modifier ultérieurement l'adresse IPv4 associée à votre domaine, vous pouvez créer un enregistrement de type A, puis l'ajouter à la zone gérée tout en supprimant l'ancien enregistrement A :
$oldARecord = Get-GcdResourceRecordSet -Zone "my-new-zone" -Filter "A" $newARecord = New-GcdResourceRecordSet ` -Name "example.com." -Rrdata "104.1.34.167" -Type "A" Add-GcdChange -Zone "my-new-zone" -Remove $oldARecord -Add $newARecord
Chaque appel au cmdlet Add-GcdChange
renvoie le nouvel objet de requête de modification exécuté. Plutôt que de transmettre des listes de jeux d'enregistrements de ressources au cmdlet Add-GcdChange
, vous pouvez lui transmettre directement un objet de requête de modification :
Add-GcdChange -Zone "my-new-zone" -ChangeRequest $change0
La création manuelle d'objets de requête de modification n'est pas recommandée, mais ceux-ci sont utiles si vous souhaitez réappliquer une modification apportée précédemment ou une modification effectuée dans une zone différente.
Vous pouvez récupérer tous les objets de requête de modification précédemment appliqués à une zone à l'aide du cmdlet Get-GcdChange
:
$allChanges = Get-GcdChange -Zone "my-new-zone"
Vous pouvez choisir une modification spécifique en indexant le résultat précédent, ou indiquer la modification à récupérer avec un ChangeId. Les requêtes de modification sont généralement numérotées à partir de 0 en fonction de l'ordre dans lequel elles ont été envoyées à la zone :
$firstChange = Get-GcdChange -Zone "my-new-zone" -ChangeId 0 Add-GcdChange -Zone "my-new-zone" -ChangeRequest $firstChange
Supprimer des zones gérées
Dans certains cas, vous souhaiterez peut-être supprimer une zone gérée complètement, et ce pour diverses raisons. Vous avez peut-être la zone gérée "user1-zone" pour le sous-domaine "user1.example.com.", mais user1 supprime son compte, auquel cas vous souhaitez supprimer ce sous-domaine et tous les enregistrements DNS associés.
Pour supprimer une zone gérée de votre projet, utilisez le cmdlet Remove-GcdManagedZone
:
Remove-GcdManagedZone -Zone "user1-zone"
Si l'opération réussit, la commande n'affiche rien.
Cependant, ce cmdlet ne fonctionne pas immédiatement sur ce que Cloud DNS considère comme des zones gérées "non vides", ou des zones contenant des enregistrements de type autres que NS ou SOA (enregistrements autres que ceux par défaut). Par exemple, si vous voulez supprimer la zone "my-new-zone" contenant des enregistrements de type A et CNAME, vous devez soit accorder une autorisation au cmdlet lors du traitement, soit spécifier le paramètre -Force
dans la commande :
Remove-GcdManagedZone -Zone "my-new-zone" -Force
La ou les zones à supprimer peuvent également être transmises au cmdlet Remove-GcdManagedZone
par le pipeline. Par exemple, la commande suivante supprime de force toutes les zones gérées du projet en cours. Cela peut être utile si vous ne gérez plus aucun des domaines configurés dans un projet :
Get-GcdManagedZone | Remove-GcdManagedZone -Force