1. Introduction

Dernière mise à jour : 06/01/2021
Qu'est-ce que Cloud DNS ?
Consultez notre page d'accueil.
Objectifs de l'atelier
Dans cet atelier de programmation, vous allez créer une zone gérée Cloud DNS et les ResourceRecordSets associés à l'aide de gcloud pour gérer la résolution de noms vers une instance de VM.
Points abordés
Comment CRÉER, LIRE, SUPPRIMER et METTRE À JOUR des ResourceRecordSets individuels.
Prérequis
2. Configuration
Configurer votre projet Google Cloud Platform
Se connecter à gcloud
gcloud auth login
Créer un projet
gcloud projects create my-codelab-project
Activer l'API Cloud DNS
gcloud services enable dns.googleapis.com
La prise en compte de cette modification peut prendre quelques minutes.
3. Créer une ManagedZone privée
Une ManagedZone contient des ResourceRecordSets.
Notez le nom de domaine pour lequel vous souhaitez ajouter des enregistrements DNS. Dans cet exemple, nous allons utiliser "my-domain.com" et supposer que votre instance de VM se trouve sur le réseau par défaut.
gcloud dns managed-zones create my-zone \
--description="ManagedZone for Cloud DNS ResourceRecordSets codelab." \
--dns-name=my-domain.com. \
--networks=default \
--visibility=private
4. Gérer les ResourceRecordSets
À la fin de cette section, les requêtes DNS sur votre réseau privé virtuel pour votre domaine seront résolues sur l'adresse IP de la VM.
Par exemple, si l'adresse IP de votre VM est "1.2.3.4" et que vous souhaitez que "my-domain.com." soit associé à cette adresse IP, vous devez créer un enregistrement A.
CRÉER un enregistrement A
gcloud dns record-sets create "my-domain.com." --type="A" --ttl="60" --rrdatas="1.2.3.4" --zone="my-zone"
- Argument positionnel "my-domain.com." , également appelé "dnsName", est le nom pour lequel nous souhaitons définir la résolution DNS.
- –type : indique le type d'enregistrement DNS que nous essayons de créer.
- –ttl : indique la durée de vie de cet enregistrement.
- –rrdatas : contient la réponse à la requête.
- –zone : obligatoire pour indiquer la ManagedZone dans laquelle cet enregistrement doit être créé.
Pour en savoir plus sur les concepts DNS, cliquez ici.
Maintenant que vous avez créé votre enregistrement A, vous devriez pouvoir tester la résolution DNS.
Connectez-vous en SSH à votre machine. Dans cet exemple, nous utilisons une instance de VM nommée "dns-codelab" dans "us-central1-a".
gcloud compute ssh codelab --zone=us-central1-a
Installez dnsutils pour pouvoir utiliser la commande "dig".
sudo apt install dnsutils
interroger votre domaine ;
dig my-domain.com.
Cela devrait produire un résultat semblable à
...
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 19979
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
...
;; QUESTION SECTION:
;my-domain.com. IN A
;; ANSWER SECTION:
my-domain.com. 60 IN A 1.2.3.4
...
CRÉER, MODIFIER et OBTENIR un enregistrement CNAME
Maintenant que vous avez mappé my-domain.com. sur 1.2.3.4, vous voudrez probablement vous assurer que www.my-domain.com. est également résolu sur 1.2.3.4. Les enregistrements pour les préfixes "www." ne sont pas créés automatiquement.
Si vous interrogez www.my-domain.com.
dig www.my-domain.com.
Vous obtiendrez un résultat semblable à celui-ci :
...
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 61964
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
...
indiquant qu'il n'existe aucun enregistrement DNS pour ce domaine.
Au lieu de créer un autre enregistrement A, nous devons créer un enregistrement CNAME qui pointe vers un autre enregistrement. Cela nous évitera d'avoir à modifier les deux enregistrements si nous souhaitons utiliser une autre adresse IP.
quitter votre instance de VM
exit
Créer un enregistrement CNAME
gcloud dns record-sets create "www.my-domain.com." --type="CNAME" --ttl="60" --rrdatas="my-domin.com." --zone="my-zone"
Maintenant que vous avez créé votre enregistrement CNAME, vous devriez pouvoir tester la résolution DNS.
Connectez-vous de nouveau à votre machine en SSH.
gcloud compute ssh codelab --zone=us-central1-a
interroger votre domaine ;
dig www.my-domain.com.
Vous devriez avoir reçu un résultat semblable à
...
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 61964
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
...
Oh non ! Il semble qu'une faute de frappe se soit glissée lors de la création de notre enregistrement CNAME au niveau de l'indicateur "–rrdatas". Au lieu de supprimer et de recréer l'enregistrement, nous pouvons appliquer la modification appropriée.
quitter votre instance de VM
exit
Modifier l'enregistrement CNAME
gcloud dns record-sets update "www.my-domain.com." --type="CNAME" --rrdatas="my-domain.com." --zone="my-zone"
Notez que nous pouvons omettre l'indicateur"–ttl" puisque nous ne le modifions pas, mais que tous les autres indicateurs doivent être inclus, car ils font partie de l'identifiant unique universel de ResourceRecordSet.
Nous pouvons également vérifier que l'enregistrement est conforme aux attentes à l'aide de gcloud.
gcloud dns record-sets describe "www.my-domain.com." --type="CNAME" --zone="my-zone"
qui devrait produire le résultat
NAME TYPE TTL DATA
www.my-domain.com. CNAME 60 "my-domain.com."
vérifier que l'enregistrement CNAME est résolu correctement ;
gcloud compute ssh codelab --zone=us-central1-a
dig www.my-domain.com.
Vous devriez avoir reçu un résultat semblable à
...
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 7471
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 1
...
;; QUESTION SECTION:
;www.my-domain.com. IN A
;; ANSWER SECTION:
www.my-domain.com. 60 IN CNAME my-domain.com..
...
SUPPRIMER pour faire le ménage
Avant de pouvoir supprimer une ManagedZone, vous devez d'abord supprimer tous les ResourceRecordSets qu'elle contient (à l'exception des enregistrements NS et SOA, qui sont générés automatiquement et doivent toujours exister dans la ManagedZone).
quitter votre instance de VM
exit
Supprimer l'enregistrement CNAME
gcloud dns record-sets delete "www.my-domain.com." --type="CNAME" --zone="my-zone"
Supprimer l'enregistrement A
gcloud dns record-sets delete "my-domain.com." --type="A" --zone="my-zone"
Supprimer la zone gérée
gcloud dns managed-zones delete "my-zone"
5. Félicitations
Félicitations, vous avez appris à gérer vos ResourceRecordSets.