1. Introduzione

Questo codelab ti guiderà nella configurazione delle zone di forwarding in uscita di Cloud DNS utilizzando un nome di dominio completo (FQDN) come target di forwarding. Questa funzionalità ti consente di indirizzare il traffico DNS agli indirizzi IP risolti da un nome DNS, anziché codificare gli indirizzi IP nella configurazione della zona di forwarding. Ciò è particolarmente utile quando gli indirizzi IP del 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, sarai in grado di configurare le zone di forwarding di Cloud DNS che utilizzano quanto segue:
- Un target FQDN che corrisponde a una zona privata con record A/AAAA.
- Un target FQDN supportato dalle policy di routing Cloud DNS (geolocalizzazione o round robin ponderato) per l'affinità regionale o la distribuzione del traffico.
Panoramica dell'inoltro FQDN
Il forwarding DNS di Cloud DNS consente di risolvere i nomi DNS privati ospitati al di fuori di Google Cloud (ad esempio, on-premise o altri cloud) dalle risorse Google Cloud. Tradizionalmente, questo supportava l'inoltro 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 una policy di routing DNS (geolocalizzazione o round robin ponderato) o anche a un nome di dominio pubblico di internet. Cloud DNS inoltra quindi la query all'IP di destinazione risolto.
Cosa creerai
Forwarding 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 una policy di routing di geolocalizzazione al suo interno, quindi il collegamento di una zona di forwarding a questo target FQDN. In questo modo, il traffico proveniente da una regione specifica (ad esempio us-east1) viene inoltrato a un server DNS regionale corrispondente.
Forwarding FQDN con una zona privata esistente
Imparerai a creare una zona di forwarding che ha come target un FQDN supportato da un record A/AAAA all'interno di una zona DNS privata esistente. Questo esempio mostra l'inoltro di query a indirizzi IP definiti staticamente risolti utilizzando un target di forwarding FQDN.
Cosa imparerai a fare
Il concetto di inoltro FQDN
Ti renderai conto che il forwarding FQDN estende il forwarding DNS consentendoti di specificare un target di forwarding FQDN anziché solo indirizzi IP come target di forwarding per le query in uscita.
Vantaggi dell'inoltro FQDN
Scoprirai che questa funzionalità elimina la necessità di aggiornamenti manuali quando cambiano gli indirizzi IP del resolver DNS di backend, poiché Cloud DNS rileva automaticamente le modifiche dal record DNS del nome di dominio completo. 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
Scoprirai come il forwarding FQDN può essere combinato con le policy di routing 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 (--forwarding-targets, --private-forwarding-targets) per configurare le zone di inoltro FQDN.
Prerequisiti
Per completare questo codelab, ti serviranno:
- Un Account Google
- Un progetto Google Cloud con la fatturazione abilitata
- Lo strumento a riga di comando gcloud installato e configurato
- Una conoscenza di base di Cloud DNS e dei concetti DNS
2. Preparazione
Informazioni sugli scenari di inoltro FQDN
L'inoltro 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 forwarding e il comportamento è identico al forwarding diretto agli indirizzi IP di destinazione.
- Zona privata con policy di geolocalizzazione: le policy di geolocalizzazione consentono di specificare la geolocalizzazione di origine e fornire le risposte corrispondenti, verificando la distribuzione del traffico in base alla geografia. Questo è fondamentale per l'affinità e il forwarding DNS regionali.
- Zona privata con policy round robin ponderata (WRR): le policy 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 l'FQDN non corrisponde ad alcun nome privato visibile alla stessa rete, Cloud DNS tenta di risolverlo utilizzando internet pubblico.
Informazioni sul comando Google Cloud CLI per l'inoltro FQDN
Per creare una zona di forwarding con un target di forwarding FQDN utilizzando i comandi gcloud CLI, utilizzerai il comando gcloud dns managed-zones create. I flag chiave per specificare una destinazione FQDN sono --forwarding-targets o --private-forwarding-targets. Per informazioni dettagliate sui metodi di routing standard e privato, consulta questo 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 alla destinazione tramite internet. Gli indirizzi RFC1918 verranno inoltrati tramite il 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.
Configura 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. Puoi anche creare una nuova rete da utilizzare.
3. Configura l'inoltro FQDN regionale (con la nuova zona privata)
Questo scenario mostra come ottenere il forwarding DNS regionale, garantendo che il traffico proveniente da una regione specifica venga inoltrato a un server DNS all'interno della stessa regione.
Crea una zona DNS privata
Innanzitutto, crea una zona DNS privata (ad esempio foo.com) che ospiterà il tuo FQDN e la relativa policy di routing basata sulla geolocalizzazione. 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
Crea un insieme di record di policy di routing di geolocalizzazione all'interno della zona privata
Poi crea un set di record (ad esempio geo.foo.com.) all'interno di my-zone e applica una policy di routing di 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 integra più vicina se una destinazione nella regione originale non è integra.
Crea una zona di forwarding con il target FQDN
Crea una zona di forwarding (geo.test.com.) visibile nella stessa rete predefinita e imposta geo.foo.com. (il nome di dominio completo con la policy di routing di geolocalizzazione) come target di forwarding.
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 zona privata esistente)
Avere una zona DNS privata esistente
Supponiamo che tu abbia già una zona DNS privata denominata my-zone (foo.com.) visibile alla rete default.
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 zona my-zone esistente.
gcloud dns record-sets create a.foo.com. \
--ttl="30" \
--type="A" \
--zone="my-zone" \
--rrdatas=1.2.3.4
Crea una zona di inoltro e specifica la destinazione FQDN
Analogamente allo scenario FQDN regionale, crea una zona di forwarding e specifica a.foo.com come target di forwarding.
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 ResourceRecordSets al suo interno (ad eccezione dei record NS e SOA, che vengono generati automaticamente e devono sempre esistere nella zona privata).
Elimina la policy di routing basata sulla 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 forwarding per il criterio di routing basato sulla geolocalizzazione.
gcloud dns managed-zones delete "my-geo-fwd-zone"
Elimina la zona di forwarding per il record A.
gcloud dns managed-zones delete "my-a-fwd-zone"
6. Complimenti
Congratulazioni, hai imparato a utilizzare correttamente l'inoltro DNS in uscita FQDN.