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 des jeux d'enregistrements de ressources pertinents à l'aide de gcloud pour gérer la résolution de noms vers une instance de VM.
Points abordés
CRÉER, LIRE, SUPPRIMER et METTRE À JOUR des jeux d'enregistrements de ressources 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
Cette opération peut prendre quelques minutes
3. Créer une ManagedZone privée
Une zone gérée contient des jeux d'enregistrements de ressources.
Notez le nom de domaine pour lequel vous souhaitez ajouter des enregistrements DNS. Dans cet exemple, nous utiliserons "mon-domaine.com". et supposons 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 jeux d'enregistrements de ressources
À la fin de cette section, les requêtes DNS exécutées sur votre réseau privé virtuel pour votre domaine seront associées à l'adresse IP de la VM.
Par exemple, si l'adresse IP de votre VM est "1.2.3.4" et que vous souhaitez obtenir "mon-domaine.com". vers 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"
- L'argument positionnel "mon-domaine.com". , également appelé dnsName, est le nom pour lequel nous voulons définir la résolution DNS.
- –type: indique le type d'enregistrement DNS que nous essayons de créer.
- -ttl: indique la valeur TTL (Time To Live) pour cet enregistrement.
- -rrdatas: contient la réponse réelle à la requête.
- –zone: obligatoire pour indiquer dans quelle zone ManagedZone 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 afin de pouvoir utiliser la fonction commande
sudo apt install dnsutils
interroger votre domaine
dig my-domain.com.
le résultat doit être 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
...
CREATE, PATCH et GET un enregistrement CNAME
Maintenant que vous avez mappé mon-domaine.com. vers 1.2.3.4, vous voudrez probablement vous assurer que www.my-domain.com. résout également 1.2.3.4. Enregistrements pour "www." les préfixes ne sont pas créés automatiquement.
Si vous interrogez www.my-domain.com.
dig www.my-domain.com.
vous obtiendrez 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
...
indiquant qu'il n'y a pas d'enregistrement DNS pour ce domaine
Plutôt que 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 voulons utiliser une adresse IP différente.
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 à nouveau en SSH à votre machine.
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 semblerait que vous ayez fait une faute de frappe lors de la création de l'enregistrement CNAME dans "–rrdatas". . Plutôt que de supprimer et de recréer l'enregistrement, nous pouvons corriger la modification appropriée.
quitter votre instance de VM
exit
Appliquer un correctif à 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 "-ttl" indicateur puisque nous ne le modifions pas, mais tous les autres indicateurs doivent être inclus, car ils font partie de l'identifiant unique universel du ResourceRecordSet.
Nous pouvons également vérifier que l'enregistrement est conforme aux attentes en utilisant gcloud
gcloud dns record-sets describe "www.my-domain.com." --type="CNAME" --zone="my-zone"
ce qui devrait produire
NAME TYPE TTL DATA
www.my-domain.com. CNAME 60 "my-domain.com."
Vérifier que l'enregistrement CNAME est correctement résolu
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..
...
DELETE pour effectuer un nettoyage
Pour pouvoir supprimer une zone ManagedZone, vous devez d'abord supprimer tous les jeux d'enregistrements ResourceRecordSets de cette ressource (à 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 ManagedZone
gcloud dns managed-zones delete "my-zone"
5. Félicitations
Félicitations, vous avez appris à gérer vos ResourceRecordSets.