Inoltro DNS in uscita per FQDN Cloud DNS

1. Introduzione

ef2d068c413a15bd.png

Questo codelab ti guiderà nella configurazione delle zone di inoltro in uscita di Cloud DNS utilizzando un nome di dominio completo (FQDN) come destinazione di inoltro. Questa funzionalità ti consente di indirizzare il traffico DNS agli indirizzi IP risolti da un nome DNS, anziché inserire in modo hard-coded gli indirizzi IP nella configurazione della zona di inoltro. Questo è particolarmente utile quando gli indirizzi IP dei resolver DNS di backend cambiano, in quanto puoi aggiornare il record DNS per l'FQDN e Cloud DNS rileva automaticamente le modifiche.

Al termine di questo codelab, potrai configurare le zone di inoltro Cloud DNS che utilizzano quanto segue:

  • Un FQDN target che corrisponde a una zona privata con record A/AAAA.
  • Un FQDN di destinazione supportato dai criteri di routing di Cloud DNS (geolocalizzazione o round robin ponderato) per l'affinità regionale o la distribuzione del traffico.

Panoramica dell'inoltro FQDN

Il forwarding di Cloud DNS ti consente di risolvere i nomi DNS privati ospitati al di fuori della piattaforma Google Cloud (ad esempio on-premise o altri cloud) dalle risorse della piattaforma Google Cloud. Tradizionalmente, questo supportava il forwarding a un elenco di indirizzi IP di destinazione. L'inoltro FQDN estende questa funzionalità consentendoti di specificare un FQDN come target di inoltro in una zona di inoltro.

Quando viene specificato un FQDN, Cloud DNS lo risolve in indirizzi IP utilizzando una ricerca interna che utilizza la logica di risoluzione della rete di origine. Ciò significa che il target FQDN può corrispondere a una zona privata, a un criterio di routing DNS (geolocalizzazione o round robin ponderato) o addirittura a un nome di dominio pubblico di internet. Cloud DNS inoltra quindi la query all'indirizzo IP di destinazione risolto.

Cosa creerai

Inoltro FQDN regionale con una nuova zona privata

Creerai una configurazione che raggiunga l'affinità regionale per il traffico DNS. Ciò comporta la creazione di una zona DNS privata e la configurazione di un criterio di routing per la geolocalizzazione al suo interno, quindi il collegamento di una zona di inoltro a questo FQDN di destinazione. In questo modo, il traffico da una regione specifica (ad esempio us-east1) viene inoltrato a un server DNS regionale corrispondente.

Inoltro FQDN con una zona privata esistente

Scoprirai come creare una zona di inoltro che abbia come target un FQDN supportato da un record A/AAAA all'interno di una zona DNS privata esistente. Questo dimostra il reindirizzamento delle query agli indirizzi IP definiti in modo statico risolti utilizzando un target di inoltro FQDN.

Cosa imparerai a fare

Il concetto di inoltro FQDN

L'inoltro FQDN estende l'inoltro DNS consentendoti di specificare un target di inoltro FQDN anziché solo indirizzi IP come target di inoltro per le query in uscita.

Vantaggi dell'inoltro FQDN

Scoprirai che questa funzionalità elimina la necessità di aggiornamenti manuali quando cambiano gli indirizzi IP dei resolver DNS di backend, poiché Cloud DNS rileva automaticamente le modifiche dal record DNS dell'FQDN. Consente inoltre una scalabilità più flessibile dell'infrastruttura DNS consentendo ai server DNS di trovarsi dietro un nome condiviso o di scalare in modo dinamico.

Integrazione con le policy di routing di Cloud DNS

Scopri come il reindirizzamento FQDN può essere combinato con i criteri di routing di Cloud DNS (geolocalizzazione o round robin ponderato) per ottenere l'affinità regionale, ottimizzare le prestazioni per i deployment geograficamente diversi e distribuire il traffico in base ai pesi configurati.

Sintassi dei comandi di Google Cloud CLI

Acquisirai familiarità con il comando gcloud dns managed-zones create e i relativi flag pertinenti (--forwarding-targets, --private-forwarding-targets) per configurare le zone di inoltro FQDN.

Prerequisiti

Per completare questo codelab, devi disporre di quanto segue:

2. Preparazione

Informazioni sugli scenari di inoltro FQDN

Il forwarding FQDN di Cloud DNS supporta diversi scenari di utilizzo:

  • Zona privata con record A/AAAA: se l'FQDN corrisponde a un record A/AAAA in una zona privata, gli indirizzi IP risolti vengono aggiunti all'elenco di inoltro e il comportamento è identico all'inoltro diretto agli indirizzi IP di destinazione.
  • Zona privata con criteri di geolocalizzazione: i criteri di geolocalizzazione ti consentono di specificare la geolocalizzazione di origine e fornire le risposte corrispondenti, verificando la distribuzione del traffico in base alla geografia. Questo è fondamentale per il forwarding e l'affinità DNS a livello regionale.
  • Zona privata con criterio round robin ponderato (WRR): i criteri WRR consentono di specificare pesi diversi per indirizzo IP per un nome DNS, verificando che il traffico venga distribuito in base ai pesi configurati.
  • Zona pubblica con record A/AAAA: se il FQDN non corrisponde a nessun nome privato visibile alla stessa rete, Cloud DNS tenta di risolverlo utilizzando internet pubblico.

Informazioni sul comando Google Cloud CLI per il reindirizzamento FQDN

Per creare una zona di inoltro con un target di inoltro FQDN utilizzando i comandi gcloud CLI, utilizza il comando gcloud dns managed-zones create. I flag principali per specificare un target FQDN sono --forwarding-targets o --private-forwarding-targets. Per informazioni dettagliate sui metodi di instradamento standard e privato, consulta il documento.

  • --forwarding-targets: elenco di indirizzi IPv4/IPv6 o un nome di dominio del server dei nomi di destinazione a cui la zona inoltrerà le query. Ignorato per la visibilità pubblica. Gli indirizzi non RFC1918 verranno inoltrati al target tramite internet. Gli indirizzi RFC1918 verranno inoltrati tramite la VPC.
  • --private-forwarding-targets: elenco di indirizzi IPv4/IPv6 o un nome di dominio del server dei nomi di destinazione a cui la zona inoltrerà le query. Ignorato per la visibilità pubblica. Tutti gli indirizzi specificati per questo parametro verranno raggiunti tramite il VPC.

Sintassi di esempio:

gcloud dns managed-zones create NAME \
    --description=DESCRIPTION \
    --dns-name=DNS_SUFFIX \
    --networks=VPC_NETWORK_LIST \
    --forwarding-targets=DEFAULT_FQDN_TARGET \
    --visibility=private

Tieni presente che puoi specificare --private-forwarding-targets anziché --forwarding-targets.

Configurare il progetto Google Cloud

Accedi a gcloud CLI.

gcloud auth login

Creare un progetto.

gcloud projects create my-codelab-project

Abilita l'API Cloud DNS. Potrebbero essere necessari alcuni minuti prima che la modifica diventi effettiva.

gcloud services enable dns.googleapis.com

Questo codelab utilizza la rete VPC predefinita creata con un nuovo progetto. In alternativa, puoi creare una nuova rete da utilizzare.

3. Configurare il forwarding FQDN regionale (con nuova zona privata)

Questo scenario mostra come eseguire l'inoltro DNS regionale, garantendo che il traffico di una regione specifica venga inoltrato a un server DNS all'interno della stessa regione.

Creare una zona DNS privata

Innanzitutto, crea una zona DNS privata (ad esempio foo.com) che ospiterà il tuo FQDN e il relativo criterio di routing per la geolocalizzazione associato. Questa zona deve essere visibile alla tua rete predefinita.

gcloud dns managed-zones create my-zone \
    --description="Private Zone for FQDN outbound DNS forwarding." \
    --dns-name=foo.com. \
    --networks=default \
    --visibility=private

Creare un set di record di criteri di routing per la geolocalizzazione all'interno della zona privata

Successivamente, crea un insieme di record (ad esempio geo.foo.com) in my-zone e applica un criterio di routing per la geolocalizzazione. Questo esempio configura gli indirizzi IP per asia-east1 e 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"

Nota: se il geofencing è disattivato (impostazione predefinita e consigliata), le query verranno indirizzate alla regione sana più vicina se un target nella regione originale non è in stato di salute.

Creare una zona di inoltro con il target FQDN

Crea una zona di inoltro (geo.test.com) visibile nella stessa rete predefinita e imposta geo.foo.com (l'FQDN con il criterio di routing per la geolocalizzazione) come destinazione di inoltro.

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

Qualsiasi query DNS corrispondente a geo.test.com viene ora inoltrata all'IP risolto (ad esempio 192.168.0.1 o 192.168.0.2) di geo.foo.com, in base alla regione di origine della query.

4. Configurare l'inoltro FQDN (con una zona privata esistente)

Disporre di una zona DNS privata esistente

Supponiamo che tu abbia già una zona DNS privata denominata my-zone (foo.com.) visibile alla rete predefinita.

Crea un record di risorse DNS all'interno di questa zona privata

Crea un record di tipo A per a.foo.com all'interno della tua my-zone esistente.

gcloud dns record-sets create a.foo.com. \
    --ttl="30" \
    --type="A" \
    --zone="my-zone" \
    --rrdatas=1.2.3.4

Creare una zona di inoltro e specificare il FQDN di destinazione

Come nello scenario FQDN regionale, crea una zona di inoltro e specifica a.foo.com come destinazione di inoltro.

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

Qualsiasi query DNS corrispondente a a.test.com verrà inoltrata agli indirizzi IP risolti 1.2.3.4 di a.foo.com.

5. Esegui la pulizia

Prima di poter eliminare una zona privata, è necessario eliminare tutti i ResourceRecordSet al suo interno (ad eccezione dei record NS e SOA, che vengono generati automaticamente e devono sempre esistere nella zona privata).

Elimina il criterio di routing per la geolocalizzazione nella zona privata.

gcloud dns record-sets delete "geo.foo.com." --type="A" --zone="my-zone"

Elimina il record A nella zona privata.

gcloud dns record-sets delete "a.foo.com." --type="A" --zone="my-zone"

Elimina la zona privata.

gcloud dns managed-zones delete "my-zone"

Elimina la zona di inoltro per il criterio di routing per la geolocalizzazione.

gcloud dns managed-zones delete "my-geo-fwd-zone"

Elimina la zona di inoltro per il record A.

gcloud dns managed-zones delete "my-a-fwd-zone"

6. Complimenti

Complimenti, hai imparato a utilizzare il reindirizzamento DNS in uscita FQDN.

Per approfondire

Documenti di riferimento