Questa pagina fornisce soluzioni ai problemi comuni che potresti riscontrare quando utilizzi Cloud DNS per creare zone di inoltro e record di risorse.
Zone private
Questa sezione tratta i problemi relativi alle zone private.
Problemi relativi alle zone private nei progetti di servizio VPC condiviso
Per informazioni importanti sull'utilizzo delle zone private con le reti VPC condivise, consulta Zone private e VPC condiviso.
Impossibile creare una zona privata, non è possibile elencare o creare criteri
Per eseguire varie azioni relative alle zone private, ad esempio elencare i criteri dei server DNS (Domain Name System) o creare una zona privata, devi disporre del ruolo Amministratore DNS. Questo ruolo può essere conseguito tramite lo strumento Identity and Access Management (IAM).
Le zone private non vengono risolte nella stessa rete VPC
Assicurati di eseguire il test da un'istanza VM la cui interfaccia principale si trova sulla stessa rete della zona privata che hai creato
Un'istanza di macchina virtuale (VM) invia tutto il traffico tramite la sua interfaccia principale a meno che il traffico non sia destinato a una subnet collegata a una delle altre interfacce o se nella VM è configurato il routing basato su criteri. Assicurati che l'interfaccia principale della VM di test si trovi sulla stessa rete della zona privata che stai testando.
Verifica che la VM utilizzi:
gcloud compute instances describe VM_NAME \ --zone=GCE_ZONE \ --format="csv[no-heading](networkInterfaces['network'])"
Assicurati che la rete sia presente nell'elenco delle reti autorizzate a eseguire query sulla tua zona privata:
gcloud dns managed-zones describe PRIVATE_ZONE_NAME \ --format="csv(privateVisibilityConfig['networks'])"
Verifica che il nome DNS nella query corrisponda alla tua zona
Google Cloud risolve un record in base all'ordine di risoluzione dei nomi, utilizzando la zona con il suffisso più lungo per decidere quale zona eseguire una query per un determinato nome DNS. Assicurati
che il suffisso del record per cui esegui la query corrisponda ad almeno una zona
privata accessibile nella tua rete VPC. Ad esempio, Google Cloud cerca prima myapp.dev.gcp.example.lan
in una zona che supporta dev.gcp.example.lan
, se accessibile, prima di cercarlo in una zona che supporta gcp.example.lan
, se accessibile.
L'output del seguente comando mostra il suffisso DNS per una determinata zona privata:
gcloud dns managed-zones describe PRIVATE_ZONE_NAME \ --format="csv[no-heading](dnsName)"
Esegui una query per il nome DNS utilizzando il server dei metadati
Utilizza dig
per inviare la query sul nome DNS direttamente al server di metadati di Google Cloud, 169.254.169.254
:
dig DNS_NAME @169.254.169.254
Utilizza dig
per eseguire una query sul server dei nomi predefinito della VM:
dig DNS_NAME
Se l'output dei due comandi dig
produce risposte diverse, controlla la sezione ;; SERVER:
del secondo comando. Il server che risponde deve essere il
server dei metadati, 169.254.169.254
. In caso contrario, hai configurato il sistema operativo guest in modo da utilizzare un server dei nomi DNS personalizzato anziché il server dei metadati Google Cloud predefinito. Le zone private Cloud DNS richiedono
l'utilizzo del server di metadati per la risoluzione dei nomi. Sia l'ambiente guest Linux sia l'ambiente guest Windows lo fanno per te. Se hai importato l'immagine che utilizzi per una VM,
verifica che sia stato installato l'ambiente guest appropriato.
Le zone private non vengono risolte tramite Cloud VPN o Cloud Interconnect
Innanzitutto, assicurati di poter eseguire query e risolvere correttamente il nome DNS da una rete VPC autorizzata.
Verificare la connettività tramite Cloud VPN o Cloud Interconnect
Assicurati che la connettività da un sistema on-premise alla rete VPC sia operativa. In particolare, il traffico TCP e UDP sulla porta 53 deve essere in grado di uscire dalla rete on-premise ed essere inviato alla rete VPC. Verifica la configurazione dei firewall on-premise per assicurarti che questo traffico in uscita sia consentito.
Puoi utilizzare qualsiasi protocollo, ad esempio ping
(ICMP), per testare la connettività a una VM di esempio nella tua rete VPC da un ambiente on-premise. Anche se
le richieste Cloud DNS non vengono inviate alle VM Google Cloud,
testare la connettività a una VM di esempio ti consente di verificare la connettività tramite un
tunnel Cloud VPN o una connessione Cloud Interconnect. Assicurati di configurare una regola firewall di autorizzazione in entrata appropriata per la VM Google Cloud di esempio, perché la regola di immissione di divieto implicita blocca altrimenti tutto il traffico in entrata.
Assicurati che l'inoltro in entrata sia abilitato per la rete VPC autorizzata
L'inoltro in entrata deve essere abilitato per ogni rete VPC autorizzata a eseguire query sulla tua zona privata Cloud DNS. Utilizza il seguente comando per elencare tutti i criteri:
gcloud dns policies list
Identifica la rete nella tabella di output e controlla il campo Inoltro per verificare se l'inoltro è abilitato.
Assicurati che la rete autorizzata sia una rete VPC
Il forwarding DNS richiede subnet, che sono disponibili solo per le reti VPC, non per le reti legacy.
gcloud compute networks list \ --format="csv[no-heading](name, SUBNET_MODE)"
Le emittenti legacy sono identificate nell'output come LEGACY
.
Assicurati che nella rete sia presente un indirizzo di inoltro DNS valido riservato
Il comando seguente mostra tutti gli indirizzi IP di inoltro DNS riservati nel tuo progetto.
gcloud compute addresses list \ --filter="purpose=DNS_RESOLVER" \ --format='csv[no-heading](address, subnetwork)'
Puoi aggiungere una clausola AND
al filtro per limitare l'output solo alla sottorete che ti interessa.
Esempio:
--filter="name ~ ^dns-forwarding AND subnetwork ~ SUBNETWORK_NAME"
Se non visualizzi un indirizzo IP nella rete/regione che ti aspettavi, invia un ticket all'assistenza Google Cloud.
Esegui il comando dig
indirizzando la query all'indirizzo trovato nel
comando precedente. Esegui questa operazione da una VM nella stessa rete. Questo test verifica
che il forwarder in entrata funzioni e che il problema sia altrove.
dig DNS_NAME @10.150.0.1 # address returned by previous command
Ripeti lo stesso comando dig
, ma da un host on-premise tramite la VPN.
Il record CNAME definito in una zona privata non funziona
Cloud DNS esegue la ricerca dei record CNAME solo come descritto in Ricerca dei record CNAME.
Zone di ricerca inversa
Questa sezione fornisce suggerimenti per la risoluzione dei problemi relativi alle zone di ricerca inversa. Alcuni problemi relativi alle zone private si applicano anche alle zone di ricerca inversa. Per altri consigli, consulta la sezione sulla risoluzione dei problemi relativi alle zone private.
VM con indirizzo non RFC 1918 che non risolve
Riconciliare la VM con un indirizzo non RFC 1918
Se hai creato una VM durante la versione alpha non RFC 1918 prima del lancio del supporto di Cloud DNS, queste VM potrebbero non risolvere correttamente. Per risolvere il problema, riavvia le VM.
Zone di inoltro
Questa sezione fornisce suggerimenti per la risoluzione dei problemi relativi alle zone di inoltro. Alcuni problemi relativi alle zone private si applicano anche alle zone di inoltro. Per altri consigli, consulta la sezione sulla risoluzione dei problemi relativi alle zone private.
Le zone di inoltro (inoltro in uscita) non funzionano
Innanzitutto, assicurati di poter eseguire query e risolvere correttamente il nome DNS da una rete VPC autorizzata.
Inoltro delle query dalle VM in una rete VPC consumer a una rete VPC producer non funzionante
Se utilizzi il peering DNS e vuoi inoltrare le query dalle VM di una rete VPC consumer a una rete VPC producer e poi a uno o più server DNS on-premise, assicurati che sia soddisfatto uno dei seguenti prerequisiti:
La modalità di routing dinamico della rete VPC producer è impostata su
GLOBAL
La VM nella rete VPC consumer si trova nella stessa regione del tunnel VPN o di Cloud Interconnect nella VPC producer
(Solo VPN classica) La rete VPC del produttore ha una route statica configurata per inviare il traffico destinato ai server DNS on-premise tramite il tunnel VPN classica. La rete VPC del producer deve inoltre avere una VM o un tunnel VPN nella stessa regione della sottorete utilizzata dalle VM client.
Ad esempio, supponiamo che VPC1 utilizzi una zona di peering che invia query per
example.com.
a VPC2. Supponiamo inoltre che la VPC2 abbia una zona di inoltro privato perexample.com.
che inoltra le query a un server DNS on-premise utilizzando un tunnel VPN classica.Affinché una VM in
us-east1
nel VPC1 possa eseguire query suexample.com.
, il VPC2 deve avere una VM inus-east1
. È necessario configurare anche una route statica che copra gli intervalli CIDR dei server DNS on-premise, con l'hop successivo configurato come tunnel VPN classica.
Verificare la connettività tramite Cloud VPN o Cloud Interconnect
Puoi utilizzare qualsiasi protocollo, ad esempio ping
(ICMP), per testare la connettività a una VM di esempio nella tua rete VPC da un ambiente on-premise. Devi anche tentare di eseguire una query sul tuo server dei nomi on-premise direttamente da una VM Google Cloud di esempio utilizzando uno strumento come dig
:
dig DNS_NAME @192.168.x.x # address of the onprem DNS server
Controlla le regole firewall nella rete VPC
La regola firewall in uscita permessa implicita consente le connessioni in uscita e le risposte stabilite dalle VM nella tua rete VPC, a meno che non abbia creato regole personalizzate per negare l'uscita. Se hai creato regole di esclusione personalizzate, devi creare regole di autorizzazione con priorità più alta che consentano l'esportazione almeno ai tuoi server dei nomi on-premise.
Controlla il firewall on-premise
Assicurati che il firewall on-premise sia configurato per consentire il traffico in entrata proveniente da 35.199.192.0/19
e in uscita verso 35.199.192.0/19
.
Controlla i log nel firewall on-premise, cercando richieste DNS da
35.199.192.0/19
. Per utilizzare un'espressione regex
per la ricerca, utilizza quanto segue:
"35\.199\.(19[2-9]|20[0-9]|21[0-9]|22[0-3]).*"
Controlla il server dei nomi on-premise
Verifica di non avere configurato ACL nel server dei nomi on-premise che blocchino le query da 35.199.192.0/19
.
Controlla il server dei nomi on-premise per vedere se riceve pacchetti da
35.199.192.0/19
. Se disponi dell'accesso shell, puoi utilizzare uno strumento come
tcpdump
per cercare i pacchetti in entrata da e i pacchetti in uscita verso
35.199.192.0/19
:
sudo tcpdump port 53 and tcp -vv
Verifica i percorsi di reso
La rete on-premise deve avere una route per la destinazione 35.199.192.0/19
con l'hop successivo che è un tunnel VPN o una connessione Interconnect per la stessa rete VPC che ha inviato la richiesta DNS. Questo comportamento è descritto
in Creare zone di inoltro.
Se utilizzi più tunnel VPN per connettere la stessa rete VPC alla tua rete on-premise, la risposta non deve essere inviata utilizzando lo stesso tunnel che l'ha inviata. Tuttavia, la risposta deve essere inviata utilizzando un tunnel VPN con un hop successivo nella stessa rete VPC da cui è stata originata la richiesta.
Se hai collegato più di una rete VPC alla tua rete on-premise, devi assicurarti che le risposte DNS non vengano inviate alla rete sbagliata. Google Cloud ignora le risposte DNS inviate alla rete VPC sbagliata. Per una soluzione consigliata, consulta la nostra guida alle best practice.
L'inoltro in uscita a una NIC secondaria non riesce
Assicurati di aver configurato correttamente la scheda di interfaccia di rete (NIC) secondaria.
Per istruzioni su come configurare NIC aggiuntive, vedi Creare istanze di macchine virtuali con più interfacce di rete.
Le query inoltrate in uscita ricevono errori SERVFAIL
Se Cloud DNS riceve un errore da tutti i server dei nomi di destinazione o non riceve una risposta da nessuno di questi, restituisce un errore SERVFAIL
.
Per risolvere il problema, verifica che i server dei nomi on-premise siano configurati correttamente. Poi, verifica che i server dei nomi on-premise rispondano alle query dall'intervallo di indirizzi Cloud DNS descritto in Aprire i firewall Google Cloud e on-premise per consentire il traffico DNS entro 4 secondi. Se i server dei nomi on-premise consultano server dei nomi flussi principali (ad esempio perché sono configurati come resolver con cache), verifica che non ci siano problemi con i server dei nomi flussi principali.
Inoltre, se la destinazione di inoltro è un sistema on-premise, tieni presente che le route configurate per quel percorso possono essere route dinamiche o statiche personalizzate, con l'importante eccezione che le route statiche personalizzate con tag di rete non sono valide per l'inoltro delle query DNS. Assicurati che la route utilizzata per raggiungere il server DNS on-premise non specifichi un tag di rete.
Record di risorse
Questa sezione fornisce suggerimenti per la risoluzione dei problemi relativi ai record delle risorse.
Dati imprevisti durante la query sui set di record di risorse presenti nella zona
Esistono diversi motivi per cui potresti ricevere dati imprevisti quando esegui query sui set di record di risorse presenti in una zona gestita di Cloud DNS:
I set di record di risorse creati utilizzando la sintassi
@
specificata nel RFC 1035 non sono supportati. Cloud DNS interpreta il simbolo@
in questi set di record di risorse in modo letterale. Pertanto, nella zonaexample.com.
, un set di record creato per il QNAME@
viene interpretato come@.example.com.
anzichéexample.com.
. Per risolvere il problema, assicurati di creare set di record senza il simbolo@
. Tutti i nomi sono relativi all'apice della zona.Come tutti i record, i record CNAME con caratteri jolly sono soggetti alle regole di esistenza descritte nel RFC 4592. Ad esempio, supponi di definire i seguenti set di record nella zona
example.com.
:*.images.example.com. IN CNAME _static.example.com.
srv1.images.example.com. IN A 192.0.2.91
_static.example.com. IN A 192.0.2.92
Una query per
public.srv1.images.example.com.
restituisceNOERROR
con una sezione di risposta vuota. L'esistenza di un record tra il CNAME e il QNAME impedisce il ritorno del CNAME, ma non esiste un record che corrisponda esattamente al QNAME, pertanto Cloud DNS restituisce una risposta vuota. Questo è il comportamento standard del DNS.
I set di record di risorse Cloud DNS restituiti in ordine casuale
In linea con le pratiche del settore DNS, i server dei nomi Cloud DNS ora randomizzano l'ordine degli insiemi di record di risorse e ignorano l'ordinamento specificato dal server autorevole. Si tratta di un comportamento normale del DNS e si applica private.
Tipo di risorsa di zona non supportato
Quando inserisci il flag --location
in un comando gcloud
o in una richiesta API per una funzionalità che ha come target una zona Cloud DNS diversa, la richiesta viene rifiutata. Ad esempio, se invii una richiesta di funzionalità solo per le zone a un server globale o una richiesta di funzionalità solo per il livello globale a un server zonale, il server rifiuta la richiesta e genera un errore _UNSUPPORTED_ZONAL_RESOURCETYPE.
Per un elenco delle risorse e delle funzionalità supportate da Cloud DNS zonale, consulta Supporto di Cloud DNS zonale.
Passaggi successivi
- Per scoprire di più sulle funzionalità, consulta la panoramica di Cloud DNS.
- Per risolvere gli errori, consulta la sezione Messaggi di errore.
- Per ulteriore assistenza, consulta la pagina Assistenza.