Diese Seite enthält Informationen zum Logging und Monitoring von Messwerten für Cloud DNS, einschließlich öffentlicher Zonen, privater Zonen, und Weiterleitungszonen. Außerdem finden Sie hier eine Anleitung zum Überwachen der Weitergabe Ihrer öffentlichen DNS-Änderungen.
Cloud DNS-Logging verwenden
Cloud DNS-Logging erfasst Abfragen, die Nameserver für Ihre VPC-Netzwerke (Virtual Private Cloud)auflösen, sowie Abfragen von einer externen Entität direkt in eine öffentliche Zone.
In Logs erfasste Abfragen können von Compute Engine-VM-Instanzen, von Google Kubernetes Engine-Containern im selben VPC-Netzwerk, von Peering-Zonen oder von lokalen Clients, die eingehende DNS Weiterleitung nutzen, stammen. Private DNS-Zonen, Weiterleitungs-DNS-Zonen, alternative Nameserver, interne Google Cloud DNS-Zonen oder externe DNS-Zonen können die Abfragen letztlich auflösen.
Logdatensätze gehören zu dem Projekt, das Inhaber des Netzwerks oder der öffentlichen Zone ist, die die Anfrage ausgeführt hat. Bei gemeinsam genutzter VPC, gehören die Logdatensätze zum Hostprojekt, da das Hostprojekt Inhaber des Netzwerks ist.
Logging für private verwaltete Zonen aktivieren
Verwenden Sie DNS-Richtlinien, um das Logging für Ihre Netzwerke zu aktivieren oder zu deaktivieren. Wenn Sie das Abfrage-Logging aktivieren, wird jede DNS-Abfrage an eine von Cloud DNS verwaltete private Zone protokolliert.
Führen Sie die folgenden Schritte aus, um das Logging für ein Netzwerk ohne DNS-Richtlinie zu aktivieren.
Console
Rufen Sie in der Google Cloud Console die Seite DNS-Richtlinie erstellen auf.
Geben Sie unter Name einen Namen für Ihre Richtlinie ein.
Geben Sie optional unter Beschreibung eine Beschreibung ein.
Wählen Sie für Logs die Option Ein aus.
Klicken Sie im Bereich Netzwerke auf Netzwerke hinzufügen und wählen Sie die gewünschten Netzwerke aus.
Klicken Sie auf Erstellen.
gcloud
Führen Sie den
dns policies create Befehl aus.
gcloud dns policies create POLICY_NAME \
--networks=NETWORK \
--enable-logging \
--description=DESCRIPTIONErsetzen Sie Folgendes:
POLICY_NAME: Name der DNS-RichtlinieNETWORK: ein oder mehrere Netzwerke in einer durch Kommas getrennten ListeDESCRIPTION: eine Beschreibung der Richtlinie
Führen Sie die folgenden Schritte aus, um das Logging für ein Netzwerk mit einer vorhandenen DNS-Richtlinie zu aktivieren.
Console
Rufen Sie in der Google Cloud Console die Seite Cloud DNS-Richtlinien auf.
Klicken Sie auf die DNS-Serverrichtlinie, die Sie aktualisieren möchten.
Klicken Sie auf Richtlinie bearbeiten.
Wählen Sie im Abschnitt Logs die Option Ein aus.
Klicken Sie auf Speichern.
gcloud
Führen Sie den
dns policies update Befehl aus.
gcloud dns policies update POLICY_NAME \
--networks=NETWORK \
--enable-logging
Ersetzen Sie Folgendes:
POLICY_NAME: Name der DNS-RichtlinieNETWORK: ein oder mehrere Netzwerke in einer durch Kommas getrennten Liste
Logging für private verwaltete Zonen deaktivieren
Wenn Sie das Logging deaktivieren und gleichzeitig die Richtlinie beibehalten möchten, führen Sie die folgenden Schritte aus.
Console
Rufen Sie in der Google Cloud Console die Seite Cloud DNS-Richtlinien auf.
Klicken Sie auf die DNS-Serverrichtlinie, die Sie aktualisieren möchten.
Klicken Sie auf Richtlinie bearbeiten.
Wählen Sie im Abschnitt Logs die Option Aus aus.
Klicken Sie auf Speichern.
gcloud
Führen Sie den
dns policies update Befehl aus.
gcloud dns policies update POLICY_NAME \
--networks=NETWORK \
--no-enable-loggingErsetzen Sie Folgendes:
POLICY_NAME: Name der DNS-RichtlinieNETWORK: ein oder mehrere Netzwerke in einer durch Kommas getrennten Liste
Logging für verwaltete öffentliche Zonen aktivieren
Führen Sie die folgenden Schritte aus, um das Logging für eine vorhandene verwaltete öffentliche Zone zu aktivieren.
Console
Rufen Sie in der Google Cloud Console die Seite Cloud DNS-Zonen auf.
Klicken Sie auf die verwaltete öffentliche Zone, für die Sie das Logging aktivieren möchten.
Klicken Sie auf Bearbeiten.
Klicken Sie im Abschnitt Cloud Logging auf Ein.
Klicken Sie auf Speichern.
gcloud
Führen Sie den
dns managed-zones update
Befehl aus.
gcloud dns managed-zones update ZONE_NAME --log-dns-queries \
Ersetzen Sie ZONE_NAME durch den Namen der verwalteten DNS-Zone, für die Sie das Logging aktivieren möchten.
Logging für verwaltete öffentliche Zonen deaktivieren
So deaktivieren Sie das Logging für eine vorhandene verwaltete öffentliche Zone.
Console
Rufen Sie in der Google Cloud Console die Seite Cloud DNS-Zonen auf.
Klicken Sie auf die verwaltete öffentliche Zone, für die Sie das Logging aktivieren möchten.
Klicken Sie auf Bearbeiten.
Klicken Sie im Abschnitt Cloud Logging auf Aus.
Klicken Sie auf Speichern.
gcloud
Führen Sie den
dns managed-zones update
Befehl aus.
gcloud dns managed-zones update ZONE_NAME --no-log-dns-queries \
Ersetzen Sie ZONE_NAME durch den Namen der verwalteten DNS-Zone, für die Sie das Logging deaktivieren möchten.
Logs ansehen
Sie können Logs in der Google Cloud Console aufrufen.
Console
Rufen Sie in der Google Cloud Console die Seite Log-Explorer auf:
Felder des Datensatzformats ansehen
Jeder Logeintrag enthält ggf. die folgenden Felder. Einige Felder werden auch gemeinsam mit Monitoring-Messwerten genutzt.
| Feld | Feldtyp | Beschreibung | Wird in Messwerten verwendet |
|---|---|---|---|
alias_query_response_code |
String | Der Antwortcode, der von der Abfrage zurückgegeben wurde, um den kanonischen Namen des ALIAS-Eintrags aufzulösen. | Ja |
authAnswer |
Boolesch / DNS | Autoritative Antwort, IANA DNS-Parameter: DNS-Header-Flags | Nein |
destinationIP |
String/Ziel | Ziel-IP, gilt nur für Weiterleitungsfälle. | Nein |
egressError |
String | Ausgehender Proxy-Fehler, d. h. der tatsächliche vom ausgehenden Proxy ermittelte Fehler, wie er vom lokalen DNS-Server empfangen wurde. Mithilfe dieses Felds kann ein tatsächlicher SERVFAIL, der vom lokalen DNS zurückgegeben wird, von einem Netzwerkfehler des ausgehenden Proxys unterschieden werden. |
Nein |
healthyIps |
String | Eine Reihe von IP-Adressen im ResourceRecordSet, die zum Zeitpunkt der Abfrage für Cloud DNS als
|
Nein |
location |
String | Google Cloud Region, z. B. us-east1, aus
der die Antwort bereitgestellt wurde. |
Ja |
project_id |
String | Google Cloud Projekt-ID des Netzwerks, von dem die Abfrage empfangen wurde | Ja |
protocol |
String / DNS | TCP | UDP |
Nein |
queryName |
String / DNS | DNS-Abfragename, RFC 1035 4.1.2. | Nein |
queryType |
String / DNS | DNS-Abfragetyp, IANA DNS-Parameter: Ressourceneintragstypen (Resource Record Types, RR Types) | Nein |
responseCode |
Zahl / DNS | Antwortcode, IANA DNS-Parameter: DNS-RCODEs | Nein |
rdata |
String / DNS | DNS-Antwort im Präsentationsformat, IANA DNS-Parameter: Ressourceneintragstypen (Resource Record Types, RR Types), verkürzt auf 260 Byte. | Nein |
sourceIP |
String/Quelle | IP, von der die Abfrage stammt. | Nein |
sourceNetwork |
String/Quelle | Netzwerk, von dem die Abfrage unser System erreicht hat | Nein |
source_type |
String | Quelle der Abfrage: inbound-forwarding, gce-vm, internet, peering-zone, fqdn-forwarding-target
|
Nein |
target_name |
String | Der Zielname, z. B. Zonenname, Richtlinienname, Name der internen Zone, Name der externen Domain. | Ja |
target_type |
String | Zieltyp, der die DNS-Abfrage auflöst: private-zone, forwarding-zone,
forwarding-policy, peering-zone, internal, external,
response-policy, service-directory-zone, reverse-lookup-zone,
zonal-private-zone
|
Ja |
unHealthyIps |
String | Eine Reihe von IP-Adressen im ResourceRecordSet, die zum Zeitpunkt der Abfrage für Cloud DNS als
|
Nein |
vmInstanceId |
Quelle der Nummer | ID der VM-Instanz von Compute Engine, gilt nur für Abfragen die von Compute Engine-VMs initiiert werden. | Nein |
vmInstanceName |
String / Quelle | Name der VM-Instanz von Compute Engine, gilt nur für Abfragen, die von Compute Engine-VMs initiiert werden. | Nein |
vmProjectId |
String / Quelle | Google Cloud Projekt-ID des Netzwerks, von dem aus die Abfrage gesendet wurde; gilt nur für Abfragen, die von Compute Engine-VMs initiiert wurden. | Nein |
vmZoneName |
String / Quelle | Name der verwalteten Zone, aus der die Abfrage gesendet wurde; gilt nur für Abfragen, die von Compute Engine-VMs initiiert wurden. | Nein |
Preise
Alle Cloud DNS-Logs werden in Cloud Logging geschrieben. Für diesen Dienst fallen keine separaten Kosten für Cloud DNS an. Diese Logs können jedoch je nach Größe der geschriebenen und gespeicherten Logs zu zusätzlichen Speicherkosten führen.
Für Berechnungszwecke: Cloud DNS schreibt etwa 5 MB an Log-Daten für die Verarbeitung von 10.000 DNS-Anfragen.
Informationen zu den Preisen für Cloud Logging finden Sie unter Preise für Google Cloud Observability: Cloud Logging.
Fehlerbehebung bei ausgehender Weiterleitung
Wenn Sie Logs mit SERVFAIL erhalten, in denen bestimmte Felder
wie destinationIP, egressIP und egressError fehlen, finden Sie Informationen dazu im
entsprechenden Abschnitt der Dokumentation zur Fehlerbehebung.
Messwerte überwachen
Cloud DNS exportiert Monitoring-Messwerte in Cloud Monitoring.
Sie können die Rate von DNS-Abfragen und -Antworten überwachen, die auf private Zonen, Weiterleitungszonen, Richtlinienweiterleitung, interne Google Cloud Zonen, und das Internet verweisen. Monitoring ist auf der Google Cloud Console Monitoring-Seite und in der Cloud Monitoring API verfügbar.
Das private DNS exportiert den Deltamesswert dns.googleapis.com/query/response_count, der das Label response_code enthält, um die Anzahl der Abfragen pro Antwortcode zu zählen.
Das Label response_code ist vom Typ string mit den möglichen Werten: NOERROR, FORMERR, SERVFAIL, NXDOMAIN, NOTIMP und UNKNOWN.
Definitionen dieser Codes finden Sie unter IANA DNS-RCODEs.
Der Messwert wird unter dem dns_query Ressourcentyp mithilfe der
entsprechenden Felder des Eintragsformats für Logs
exportiert.
Messwerte zur DNS-Bedrohungserkennung
Wenn ein DNS-Bedrohungsdetektor Ihr VPC-Netzwerk überwacht, exportiert der Detektor Messwerte, die mit Cloud Monitoring untersucht werden können.
Es gibt zwei Arten von Messwerten:
networksecurity.googleapis.com/dnsthreatdetector/sent_dns_log_count: DNS-Abfragelogs, die zur Überprüfung an Ihren Anbieter gesendet werden.networksecurity.googleapis.com/dnsthreatdetector/received_dns_threat_count: Die Anzahl der erkannten Bedrohungslogs. Dieser Messwert enthält die Wichtigkeitsstufe und die Art der Bedrohung.
DNS-Weitergabe überwachen
Wenn Sie Änderungen über die Google Cloud CLI oder die REST API vornehmen, werden die Änderungen anfangs als ausstehend markiert, bis der Vorgang abgeschlossen ist. Mit der gcloud-CLI oder der REST API können Sie den Status von Änderungen prüfen oder einen Änderungsverlauf abrufen.
Ein Vorgang ist abgeschlossen (Status done), wenn Cloud DNS das System aktualisiert hat, das die Server steuert. Solange nicht alle Nameserver aktualisiert wurden, kann es noch zu Verzögerungen kommen.
Änderungen für eine verwaltete Zone auflisten
Führen Sie den Befehl dns record-sets changes list aus, um Änderungen für eine verwaltete Zone aufzulisten.
gcloud
gcloud dns record-sets changes list --zone=ZONE
Ersetzen Sie ZONE durch den Namen der verwalteten Zone, deren Datensätze Sie verwalten möchten.
Übernahme von DNS-Änderungen überprüfen
Wenn Sie überwachen und prüfen möchten, ob der DNS-Nameserver Ihre Änderungen übernommen hat, können Sie die Befehle watch und dig verwenden. Im folgenden Beispiel wird gezeigt, wie Sie Ihren Nameserver abrufen und prüfen, ob ein Nameserver Ihrer verwalteten Zone eine Änderung an einem MX-Eintrag vorliegt.
Führen Sie die folgenden Schritte aus, um die Nameserver Ihrer Zone abzurufen.
Console
Rufen Sie in der Google Cloud Console die Seite Cloud DNS-Zonen auf.
Klicken Sie auf den Namen der verwalteten Zone, die Sie prüfen möchten.
Klicken Sie auf der Seite Zonendetails rechts oben auf Einrichtung des Registrators.
gcloud
Führen Sie den
dns managed-zones describe
Befehl aus.
gcloud dns managed-zones describe ZONE_NAME
Ersetzen Sie ZONE_NAME durch den Namen Ihrer Cloud DNS-Zone.
Führen Sie den folgenden dig-Befehl aus, um zu prüfen, ob die Datensätze auf dem autoritativen Nameserver verfügbar sind:
gcloud
watch dig example.com in MX @ZONE_NAME_SERVER
Ersetzen Sie ZONE_NAME_SERVER durch einen der Nameserver aus der verwalteten Zone.
Der Befehl watch führt standardmäßig alle zwei Sekunden den Befehl dig aus. Sie können mit diesem Befehl festlegen, wann der autoritative Nameserver Ihre Änderung übernimmt. Dies sollte innerhalb von 120 Sekunden erfolgen. Nachdem der autoritative Nameserver die Änderung übernommen hat, können die DNS-Resolver den neuen Eintrag abrufen.
Resolver, die den vorherigen Eintrag bereits im Cache gespeichert haben, warten, bis der vorherige TTL-Wert des Eintrags abläuft.
Wenn Sie dig für den Nameserver Ihres Systems ausführen möchten, können Sie @<address> aus dem Befehl dig entfernen. Wenn Sie die Weitergabe an andere Nameserver überwachen möchten, können Sie address ändern, um auf andere Nameserver zu verweisen.
Nächste Schritte
- Wie Sie Datensätze hinzufügen, löschen und aktualisieren, erfahren Sie unter Einträge hinzufügen, ändern und löschen.
- Informationen zum Erstellen, Aktualisieren, Auflisten und Löschen verwalteter Zonen finden Sie unter Zonen verwalten.
- Informationen zu Lösungen für häufige Probleme, die bei der Verwendung von Cloud DNS auftreten können finden Sie unter Fehlerbehebung.
- Informationen zur API finden Sie unter Cloud DNS REST API.
- Eine Übersicht über Cloud DNS finden Sie in der Cloud DNS-Übersicht.