1. Introduction

Cet atelier de programmation vous guidera dans la configuration des zones de transfert sortant Cloud DNS à l'aide d'un nom de domaine complet (FQDN) comme cible de transfert. Cette fonctionnalité vous permet de rediriger le trafic DNS vers des adresses IP résolues à partir d'un nom DNS, plutôt que de coder en dur les adresses IP dans la configuration de votre zone de transfert. Cela est particulièrement utile lorsque les adresses IP de votre résolveur DNS de backend changent, car vous pouvez mettre à jour l'enregistrement DNS pour le nom de domaine complet, et Cloud DNS prend automatiquement en compte les modifications.
À la fin de cet atelier de programmation, vous serez en mesure de configurer des zones de transfert Cloud DNS qui utilisent les éléments suivants :
- Cible FQDN correspondant à une zone privée avec des enregistrements A/AAAA.
- Cible FQDN soutenue par des règles de routage Cloud DNS (géolocalisation ou round robin pondéré) pour l'affinité régionale ou la distribution du trafic.
Présentation du transfert de nom de domaine complet
Le transfert Cloud DNS vous permet de résoudre les noms DNS privés hébergés en dehors de Google Cloud Platform (par exemple, sur site ou dans d'autres clouds) à partir des ressources Google Cloud Platform. Traditionnellement, cela permettait le transfert vers une liste d'adresses IP cibles. Le transfert de noms de domaine complets va plus loin en vous permettant de spécifier un nom de domaine complet comme cible de transfert dans une zone de transfert.
Lorsqu'un nom de domaine complet est spécifié, Cloud DNS le résout en adresses IP à l'aide d'une recherche interne, qui utilise la logique de résolution du réseau source. Cela signifie que la cible du nom de domaine complet peut correspondre à une zone privée, à une règle de routage DNS (géolocalisation ou round robin pondéré) ou même à un nom de domaine public Internet. Cloud DNS transfère ensuite la requête vers l'adresse IP de destination résolue.
Objectifs de l'atelier
Transfert de noms de domaine complets régionaux avec une nouvelle zone privée
Vous allez créer une configuration qui permet d'obtenir une affinité régionale pour le trafic DNS. Pour ce faire, vous devez créer une zone DNS privée et y configurer une règle de routage par géolocalisation, puis associer une zone de transfert à cette cible FQDN. Cela garantit que le trafic d'une région spécifique (par exemple, us-east1) est transféré vers un serveur DNS régional correspondant.
Transfert de noms de domaine complets avec une zone privée existante
Vous apprendrez à créer une zone de transfert ciblant un nom de domaine complet associé à un enregistrement A/AAAA dans une zone DNS privée existante. Montre comment transférer des requêtes vers des adresses IP définies de manière statique et résolues à l'aide d'une cible de transfert de nom de domaine complet.
Points abordés
Concept de transfert de nom de domaine complet
Vous comprendrez que le transfert de nom de domaine complet étend le transfert DNS en vous permettant de spécifier une cible de transfert de nom de domaine complet au lieu d'adresses IP comme cibles de transfert pour les requêtes sortantes.
Avantages du transfert de nom de domaine complet
Vous apprendrez que cette fonctionnalité élimine la nécessité d'effectuer des mises à jour manuelles lorsque les adresses IP du résolveur DNS du backend changent, car Cloud DNS récupère automatiquement les modifications apportées à l'enregistrement DNS du nom de domaine complet. Il permet également une mise à l'échelle plus flexible de l'infrastructure DNS en autorisant les serveurs DNS à se trouver derrière un nom partagé ou à évoluer de manière dynamique.
Intégration aux règles de routage Cloud DNS
Vous découvrirez comment combiner le transfert de noms de domaine complets avec les règles de routage Cloud DNS (géolocalisation ou round robin pondéré) pour obtenir une affinité régionale, optimiser les performances des déploiements géographiquement diversifiés et distribuer le trafic en fonction des pondérations configurées.
Syntaxe des commandes Google Cloud CLI
Vous vous familiariserez avec la commande gcloud dns managed-zones create et ses options associées (--forwarding-targets, --private-forwarding-targets) pour configurer des zones de transfert de nom de domaine complet.
Prérequis
Pour suivre cet atelier de programmation, vous aurez besoin des éléments suivants :
- Compte Google
- Un projet Google Cloud avec facturation activée
- L'outil de ligne de commande gcloud est installé et configuré.
- Connaissances de base de Cloud DNS et des concepts DNS
2. Configuration
Comprendre les scénarios de transfert de nom de domaine complet
Le transfert de noms de domaine complets Cloud DNS est compatible avec plusieurs scénarios d'utilisation :
- Zone privée avec enregistrement A/AAAA : si le nom de domaine complet correspond à un enregistrement A/AAAA dans une zone privée, les adresses IP résolues sont ajoutées à la liste de transfert, et le comportement est identique à celui du transfert direct vers des adresses IP cibles.
- Zone privée avec règle de géolocalisation : les règles de géolocalisation vous permettent de spécifier la géolocalisation source et de fournir les réponses correspondantes, en vérifiant la répartition du trafic en fonction de la zone géographique. C'est essentiel pour l'affinité et le transfert DNS régionaux.
- Zone privée avec une règle round robin pondéré (WRR) : les règles WRR permettent de spécifier différentes pondérations par adresse IP pour un nom DNS, ce qui permet de vérifier que le trafic est distribué en fonction des pondérations configurées.
- Zone publique avec enregistrement A/AAAA : si le nom de domaine complet ne correspond à aucun nom privé visible sur le même réseau, Cloud DNS tente de le résoudre à l'aide de l'Internet public.
Comprendre la commande Google Cloud CLI pour le transfert de FQDN
Pour créer une zone de transfert avec une cible de transfert FQDN à l'aide des commandes gcloud CLI, vous utiliserez la commande gcloud dns managed-zones create. Les indicateurs clés pour spécifier une cible de nom de domaine complet sont --forwarding-targets ou --private-forwarding-targets. Pour en savoir plus sur les méthodes de routage standard et privé, consultez ce document.
--forwarding-targets: liste d'adresses IPv4/IPv6 ou nom de domaine du serveur de noms cible vers lequel la zone transférera les requêtes. Ignoré pour la visibilité publique. Les adresses non-RFC1918 seront transférées vers la cible via Internet. Les adresses RFC1918 seront transférées via le VPC.--private-forwarding-targets: liste d'adresses IPv4/IPv6 ou nom de domaine du serveur de noms cible vers lequel la zone transférera les requêtes. Ignoré pour la visibilité publique. Toutes les adresses spécifiées pour ce paramètre seront accessibles via le VPC.
Exemple de syntaxe :
gcloud dns managed-zones create NAME \
--description=DESCRIPTION \
--dns-name=DNS_SUFFIX \
--networks=VPC_NETWORK_LIST \
--forwarding-targets=DEFAULT_FQDN_TARGET \
--visibility=private
Notez que vous pouvez spécifier --private-forwarding-targets au lieu de --forwarding-targets.
Configurer votre projet Google Cloud Platform
Connectez-vous à gcloud CLI.
gcloud auth login
Créez un projet.
gcloud projects create my-codelab-project
Activez l'API Cloud DNS. La prise en compte de cette modification peut prendre quelques minutes.
gcloud services enable dns.googleapis.com
Cet atelier de programmation utilise le réseau VPC par défaut qui est créé avec un nouveau projet. Vous pouvez également créer un autre réseau à utiliser.
3. Configurer le transfert de noms de domaine complets régionaux (avec une nouvelle zone privée)
Ce scénario montre comment effectuer un transfert DNS régional, en veillant à ce que le trafic d'une région spécifique soit transféré vers un serveur DNS de cette même région.
Créer une zone DNS privée
Commencez par créer une zone DNS privée (par exemple, foo.com) qui hébergera votre nom de domaine complet et sa règle de routage par géolocalisation associée. Cette zone doit être visible par votre réseau par défaut.
gcloud dns managed-zones create my-zone \
--description="Private Zone for FQDN outbound DNS forwarding." \
--dns-name=foo.com. \
--networks=default \
--visibility=private
Créer un jeu d'enregistrements de règle de routage Géolocalisation dans la zone privée
Créez ensuite un ensemble d'enregistrements (par exemple, geo.foo.com) dans my-zone et appliquez une règle de routage Géolocalisation. Cet exemple configure les adresses IP pour asia-east1 et asia-west1.
gcloud dns record-sets create geo.foo.com. \
--ttl="30" \
--type="A" \
--zone="my-zone" \
--routing-policy-type="GEO" \
--routing-policy-data="asia-east1=192.168.0.1;us-central1=192.168.0.2"
Remarque : Si le géorepérage est désactivé (paramètre par défaut et recommandé), les requêtes seront dirigées vers la région opérationnelle la plus proche si une cible de la région d'origine est non opérationnelle.
Créer une zone de transfert avec la cible FQDN
Créez une zone de transfert (geo.test.com.) visible dans le même réseau par défaut, puis définissez geo.foo.com. (le nom de domaine complet avec la règle de routage Géolocalisation) comme cible de transfert.
gcloud dns managed-zones create my-geo-fwd-zone \
--description="Forwarding zone for FQDN outbound DNS forwarding for routing policy." \
--dns-name=geo.test.com. \
--networks=default \
--private-forwarding-targets=geo.foo.com. \
--visibility=private
Toute requête DNS correspondant à geo.test.com est désormais transférée vers l'adresse IP résolue (par exemple, 192.168.0.1 ou 192.168.0.2) de geo.foo.com, en fonction de la région source de la requête.
4. Configurer le transfert de nom de domaine complet (avec une zone privée existante)
Vous disposez déjà d'une zone DNS privée.
Supposons que vous disposiez déjà d'une zone DNS privée nommée my-zone (foo.com.) visible sur le réseau default.
Créez un enregistrement de ressources DNS dans cette zone privée.
Créez un enregistrement de type A pour a.foo.com. dans votre zone my-zone existante.
gcloud dns record-sets create a.foo.com. \
--ttl="30" \
--type="A" \
--zone="my-zone" \
--rrdatas=1.2.3.4
Créer une zone de transfert et spécifier la cible du nom de domaine complet
Comme pour le scénario de nom de domaine complet régional, créez une zone de transfert et spécifiez a.foo.com. comme cible de transfert.
gcloud dns managed-zones create my-a-fwd-zone \
--description="Forwarding zone for FQDN outbound DNS forwarding for A record." \
--dns-name=a.test.com. \
--networks=default \
--private-forwarding-targets=a.foo.com. \
--visibility=private
Toute requête DNS correspondant à a.test.com. sera transférée vers les adresses IP résolues 1.2.3.4 de a.foo.com.
5. Effectuer un nettoyage
Avant de pouvoir supprimer une zone privée, 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 zone privée).
Supprimez la règle de routage par géolocalisation dans la zone privée.
gcloud dns record-sets delete "geo.foo.com." --type="A" --zone="my-zone"
Supprimez l'enregistrement A dans la zone privée.
gcloud dns record-sets delete "a.foo.com." --type="A" --zone="my-zone"
Supprimez la zone privée.
gcloud dns managed-zones delete "my-zone"
Supprimez la zone de transfert pour la règle de routage de géolocalisation.
gcloud dns managed-zones delete "my-geo-fwd-zone"
Supprimez la zone de transfert pour l'enregistrement A.
gcloud dns managed-zones delete "my-a-fwd-zone"
6. Félicitations
Félicitations, vous avez appris à utiliser le transfert DNS sortant de nom de domaine complet.