Utilizza il logging e il monitoraggio

Questa pagina fornisce informazioni sulle metriche di logging e monitoraggio per Cloud DNS, incluse zone pubbliche,zone private e zone di forwarding. Questa pagina fornisce anche istruzioni per monitorare la propagazione delle modifiche al DNS pubblico.

Utilizza il logging di Cloud DNS

Il logging di Cloud DNS monitora le query che i server dei nomi risolvono per le tue reti virtual private cloud (VPC), nonché le query da un'entità esterna direttamente a una zona pubblica.

Le query registrate possono provenire da istanze di macchine virtuali (VM) Compute Engine, da container Google Kubernetes Engine nella stessa rete VPC, da zone di peering o da client on-premise che utilizzano il forwarding DNS in entrata. Le zone DNS private, le zone DNS di forwarding, i server dei nomi alternativi, le zone DNSGoogle Cloud interne o le zone DNS esterne potrebbero finire per risolvere le query.

I record di log appartengono al progetto proprietario della rete o della zona pubblica che ha eseguito la richiesta. Nel caso del VPC condiviso, i record di log appartengono al progetto host perché è il proprietario della rete.

Abilita e disabilita il logging per le zone gestite private

Utilizza le policy DNS per abilitare o disabilitare il logging per le tue reti. Quando abiliti il logging delle query, viene registrata ogni query DNS a una zona gestita privata Cloud DNS.

Per abilitare il logging per una rete che non dispone di una policy DNS, esegui il comando dns policies create.

gcloud

gcloud dns policies create POLICY_NAME \
    --networks=NETWORK \
    --enable-logging \
    --description=DESCRIPTION

Sostituisci quanto segue:

  • POLICY_NAME: il nome della policy DNS
  • NETWORK: una o più reti in un elenco separato da virgole
  • DESCRIPTION: una descrizione della policy

Per abilitare il logging per una rete con una policy DNS esistente, esegui il comando dns policies update.

gcloud

gcloud dns policies update POLICY_NAME \
    --networks=NETWORK \
    --enable-logging

Sostituisci quanto segue:

  • POLICY_NAME: il nome della policy DNS
  • NETWORK: una o più reti in un elenco separato da virgole

Per disattivare il logging lasciando la policy in vigore, esegui il comando dns policies update.

gcloud

gcloud dns policies update POLICY_NAME \
    --networks=NETWORK \
    --no-enable-logging

Sostituisci quanto segue:

  • POLICY_NAME: il nome della policy DNS
  • NETWORK: una o più reti in un elenco separato da virgole

Per eliminare completamente la policy, esegui il comando dns policies delete.

gcloud

gcloud dns policies delete POLICY_NAME \

Sostituisci POLICY_NAME con il nome della policy DNS che vuoi eliminare.

Abilita e disabilita il logging per le zone pubbliche gestite

Per attivare il logging per una zona pubblica gestita esistente, esegui il comando dns managed-zones update.

gcloud

gcloud dns managed-zones update ZONE_NAME --log-dns-queries \

Sostituisci ZONE_NAME con il nome della zona DNS gestita per cui vuoi abilitare il logging.

Per disattivare il logging per una zona gestita pubblica esistente, esegui il comando dns managed-zones update.

gcloud

gcloud dns managed-zones update ZONE_NAME --no-log-dns-queries \

Sostituisci ZONE_NAME con il nome della zona DNS gestita per cui vuoi disabilitare il logging.

Visualizza i log

Puoi visualizzare i log nella console Google Cloud .

Console

Nella console Google Cloud , vai alla pagina Esplora log.

Vai a Esplora log

Visualizza i campi del formato dei record

Ogni voce di log ha i seguenti campi, se applicabili. Alcuni campi vengono condivisi anche con le metriche di monitoraggio.

Campo Tipo di campo Descrizione Utilizzato nelle metriche
alias_query_response_code Stringa Il codice di risposta restituito dalla query per risolvere il nome canonico del record ALIAS
authAnswer Booleano/DNS Risposta autoritativa, RFC 1035 No
destinationIP Stringa/destinazione Indirizzo IP di destinazione, applicabile solo per i casi di forwarding No
egressError Stringa

Errore del proxy di uscita, l'errore effettivo segnalato dal proxy di uscita come ricevuto dal server DNS on-premise

Questo campo può essere utilizzato per distinguere un errore SERVFAIL effettivo restituito dal DNS on-premise da un errore di rete rilevato dal proxy in uscita

No
healthyIps Stringa

Set di indirizzi IP in ResourceRecordSet noti per essere HEALTHY per Cloud DNS al momento della query

No
location Stringa RegioneGoogle Cloud , ad esempio us-east1, da cui è stata pubblicata la risposta
project_id Stringa ID progettoGoogle Cloud della rete da cui è stata ricevuta la query
protocol Stringa/DNS TCP | UDP No
queryName Stringa/DNS Nome query DNS, RFC 1035 4.1.2 No
queryType Stringa/DNS Tipo di query DNS, RFC 1035 4.1.2 No
responseCode Numero/DNS Codice di risposta, RFC 1035 4.1.1 No
rdata Stringa/DNS Risposta DNS in formato di presentazione, RFC 1035 5.1, troncata a 260 byte No
sourceIP Stringa/origine IP di origine della query No
sourceNetwork Stringa/origine Rete da cui la query ha raggiunto il nostro sistema No
source_type Stringa Origine della query: inbound-forwarding, gce-vm, internet, peering-zone, fqdn-forwarding-target No
target_name Stringa Il nome della destinazione, ad esempio il nome della zona, della policy, della zona interna o di dominio esterno
target_type Stringa Tipo di destinazione che risolve la query DNS: private-zone, forwarding-zone, forwarding-policy, peering-zone, internal, external
unHealthyIps Stringa

Set di indirizzi IP in ResourceRecordSet noti per essere UNHEALTHY per Cloud DNS al momento della query

No
vmInstanceId Numero/origine ID istanza VM di Compute Engine, applicabile solo alle query avviate dalle VM di Compute Engine No
vmInstanceName Stringa/origine Nome dell'istanza VM di Compute Engine, applicabile solo alle query avviate dalle VM di Compute Engine No
vmProjectId Stringa/origine ID progettoGoogle Cloud della rete da cui è stata inviata la query, applicabile solo alle query avviate dalle VM di Compute Engine No
vmZoneName Stringa/origine Nome della zona VM da cui è stata inviata la query, applicabile solo alle query avviate dalle VM di Compute Engine No

Prezzi

Tutti i log di Cloud DNS vengono scritti in Cloud Logging. Non è previsto un addebito separato da Cloud DNS per questo servizio. Tuttavia, questi log possono comportare costi di archiviazione aggiuntivi a seconda delle dimensioni dei log scritti e archiviati.

Ai fini del calcolo, Cloud DNS scrive circa 5 MB di dati di log per l'elaborazione di 10.000 query DNS.

Per informazioni sui prezzi di Cloud Logging, consulta Prezzi di Google Cloud Observability: Cloud Logging.

Risolvi i problemi di forwarding in uscita

Se ricevi log contenenti SERVFAIL a cui mancano determinati campi come destinationIP, egressIP e egressError, consulta la relativa sezione nella documentazione sulla risoluzione dei problemi.

Monitora le metriche

Cloud DNS esporta le metriche di monitoraggio in Cloud Monitoring.

Puoi monitorare la frequenza di query e risposte DNS che puntano a zone private, zone di forwarding, forwarding delle policy, zone Google Cloud interne e internet. Il monitoraggio è disponibile nella pagina Monitoring della console Google Cloud e nell'API Cloud Monitoring.

Il DNS privato esporta la metrica delta dns.googleapis.com/query/response_count che contiene l'etichetta response_code per conteggiare il numero di query per codice di risposta.

L'etichetta response_code è di tipo string con i valori possibili di NOERROR, FORMERR, SERVFAIL, NXDOMAIN, NOTIMP e UNKNOWN. Per le definizioni di questi codici, consulta la pagina RCODE DNS IANA.

La metrica viene esportata con il tipo di risorsa dns_query utilizzando i campi applicabili del formato dei record di log.

Metriche di rilevamento delle minacce DNS

Quando hai un rilevatore di minacce DNS che monitora la tua rete VPC, il rilevatore esporta le metriche, che possono essere esaminate con Cloud Monitoring.

Sono disponibili due tipi di metriche:

  • networksecurity.googleapis.com/dnsthreatdetector/sent_dns_log_count: i log delle query DNS inviati al tuo provider per l'ispezione.
  • networksecurity.googleapis.com/dnsthreatdetector/received_dns_threat_count: il numero di log delle minacce rilevati. Questa metrica include la gravità e il tipo di minaccia.

Monitora la propagazione del DNS

Quando utilizzi Google Cloud CLI o l'API REST per apportare modifiche, queste vengono inizialmente contrassegnate come in attesa fino al completamento dell'operazione. Puoi utilizzare gcloud CLI o l'API REST per controllare lo stato delle modifiche o ottenere una cronologia delle modifiche.

Un'operazione viene completata (stato: done) quando Cloud DNS ha aggiornato correttamente il sistema che controlla i server. Potrebbero verificarsi ritardi prima che tutti i server dei nomi vengano aggiornati.

Elenca le modifiche per una zona gestita

Per elencare le modifiche per una zona gestita, esegui il comando dns record-sets changes list.

gcloud

gcloud dns record-sets changes list --zone=ZONE

Sostituisci ZONE con il nome della zona gestita di cui vuoi gestire i record set.

Verifica la propagazione del DNS

Per monitorare e verificare che il server dei nomi DNS abbia rilevato le modifiche, puoi utilizzare i comandi watch e dig. L'esempio seguente mostra come cercare il tuo server dei nomi e controllare quando uno dei server dei nomi della tua zona gestita ha rilevato una modifica a un record MX.

Per cercare i server dei nomi della tua zona, esegui il comando dns managed-zones describe:

gcloud

gcloud dns managed-zones describe ZONE_NAME

Sostituisci ZONE_NAME con il nome della tua zona Cloud DNS.

Per verificare se i record sono già disponibili sul server dei nomi autoritativo, esegui questo comando dig:

gcloud

watch dig example.com in MX @ZONE_NAME_SERVER

Sostituisci ZONE_NAME_SERVER con uno dei server dei nomi della zona gestita.

Il comando watch esegue il comando dig ogni 2 secondi per impostazione predefinita. Puoi utilizzare questo comando per stabilire quando il server dei nomi autoritativo rileva la modifica, il che dovrebbe avvenire entro 120 secondi. Dopo che il server dei nomi autoritativo ha ricevuto la modifica, i resolver DNS possono iniziare a rilevare il nuovo record. I resolver che hanno già memorizzato nella cache il record precedente attendono la scadenza del valore TTL precedente del record.

Per eseguire dig sul server dei nomi del sistema, puoi rimuovere @<address> dal comando dig. Se vuoi monitorare la propagazione ad altri server dei nomi, puoi modificare address in modo che punti ad altri server dei nomi.

Passaggi successivi