Transfert DNS sortant du FQDN Cloud DNS

1. Introduction

ef2d068c413a15bd.png

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 :

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.

Documentation complémentaire

Documents de référence