Transfert DNS sortant du FQDN Cloud DNS

1. Introduction

ef2d068c413a15bd.png

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 :

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.

Documentation complémentaire

Documents de référence