1. Introduction
Cet atelier de programmation vous explique comment configurer 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 diriger le trafic DNS vers des adresses IP résolues à partir d'un nom DNS, plutôt que de coder en dur des adresses IP dans la configuration de votre zone de transfert. Cela est particulièrement utile lorsque les adresses IP de votre résolveur DNS backend changent, car vous pouvez mettre à jour l'enregistrement DNS du nom de domaine complet, et Cloud DNS récupère automatiquement les modifications.
À la fin de cet atelier de programmation, vous pourrez configurer des zones de transfert Cloud DNS qui utilisent les éléments suivants :
- Cible de nom de domaine complet qui correspond à une zone privée avec des enregistrements A/AAAA.
- Cible de nom de domaine complet (FQDN) associée à 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 FQDN
Le transfert Cloud DNS vous permet de résoudre des noms DNS privés hébergés en dehors de Google Cloud Platform (par exemple, sur site ou dans d'autres clouds) à partir de ressources Google Cloud Platform. Traditionnellement, cette fonctionnalité permettait de transférer vers une liste d'adresses IP cibles. Le transfert de nom de domaine complet étend cette fonctionnalité en vous permettant de spécifier un nom de domaine complet comme cible de transfert dans une zone de transfert.
Lorsqu'un FQDN 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 sur Internet. Cloud DNS transfère ensuite la requête à l'adresse IP de destination résolue.
Objectifs de l'atelier
Transfert de FQDN régional 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, créez une zone DNS privée et configurez une règle de routage géolocalisation dans celle-ci, puis associez une zone de transfert à cette cible de nom de domaine complet. 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 nom de domaine complet avec une zone privée existante
Vous allez apprendre à créer une zone de transfert qui cible un nom de domaine complet (FQDN) associé à un enregistrement A/AAAA dans une zone DNS privée existante. Cette démonstration montre comment transférer des requêtes vers des adresses IP définies de manière statique résolues à l'aide d'une cible de transfert de FQDN.
Points abordés
Concept de transfert de FQDN
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 de simplement des adresses IP comme cibles de transfert pour les requêtes sortantes.
Avantages du transfert de FQDN
Vous allez découvrir que cette fonctionnalité élimine le besoin de mises à jour manuelles lorsque les adresses IP du résolveur DNS backend changent, car Cloud DNS récupère automatiquement les modifications de l'enregistrement DNS du FQDN. Il permet également d'adapter plus facilement l'infrastructure DNS en autorisant les serveurs DNS à se trouver derrière un nom partagé ou à s'adapter de manière dynamique.
Intégration aux règles de routage Cloud DNS
Vous découvrirez comment combiner le transfert de nom de domaine complet avec les règles de routage Cloud DNS (géolocalisation ou round robin pondéré) pour obtenir une affinité régionale, optimiser les performances pour les déploiements géographiquement diversifiés et distribuer le trafic en fonction des pondérations configurées.
Syntaxe des commandes Google Cloud CLI
Vous allez vous familiariser avec la commande gcloud dns managed-zones create
et ses options pertinentes (--forwarding-targets
, --private-forwarding-targets
) pour configurer des zones de transfert de FQDN.
Prérequis
Pour suivre cet atelier de programmation, vous avez besoin des éléments suivants :
- Compte Google
- Un projet Google Cloud avec facturation activée
- L'outil de ligne de commande gcloud installé et configuré
- Connaissances de base sur Cloud DNS et les concepts DNS
2. Configuration
Comprendre les scénarios de transfert de FQDN
Le transfert de nom de domaine complet (FQDN) Cloud DNS est compatible avec plusieurs scénarios d'utilisation :
- Zone privée avec enregistrement A/AAAA : si le FQDN 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 les 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, ce qui permet de vérifier la répartition du trafic en fonction de la géographie. Cela est essentiel pour le transfert et l'affinité DNS régionaux.
- Zone privée avec règle de routage round robin pondéré (WRR) : les règles WRR vous permettent de spécifier différentes pondérations par adresse IP pour un nom DNS, et 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 par le même réseau, Cloud DNS tente de le résoudre à l'aide d'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 de commandes gcloud CLI, utilisez la commande gcloud dns managed-zones create
. Les indicateurs de clé permettant de 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 cette documentation.
--forwarding-targets
: liste d'adresses IPv4/IPv6 ou d'un nom de domaine du serveur de noms cible auquel la zone transmettra les requêtes. Ignoré pour la visibilité publique. Les adresses non RFC 1918 seront transférées vers la cible via Internet. Les adresses RFC 1918 seront transférées via le VPC.--private-forwarding-targets
: liste d'adresses IPv4/IPv6 ou d'un nom de domaine du serveur de noms cible auquel la zone transmettra 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 à la 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 créé avec un nouveau projet. Vous pouvez également créer un autre réseau à utiliser à la place.
3. Configurer le transfert de FQDN régional (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 la règle de routage 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ègles de routage géolocalisation dans la zone privée
Créez ensuite un jeu d'enregistrements (par exemple, geo.foo.com.) dans my-zone et appliquez une règle de routage Géolocalisation. Cet exemple configure des 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é (valeur par défaut et recommandée), les requêtes sont acheminé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 de nom de domaine complet
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 FQDN 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 transmise à 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 FQDN (avec une zone privée existante)
Disposer 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 par le réseau par défaut.
Créer 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 dans le scénario de FQDN 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 jeux d'enregistrements de ressources 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 Géolocalisation dans la zone privée.
gcloud dns record-sets delete "geo.foo.com." --type="A" --zone="my-zone"
Supprimez l'enregistrement A de 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 de la règle de routage de géolocalisation.
gcloud dns managed-zones delete "my-geo-fwd-zone"
Supprimez la zone de transfert de 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 FQDN.