Fehlerbehebung bei Cloud DNS

In diesem Dokument finden Sie eine Anleitung zur Fehlerbehebung bei Problemen mit Cloud DNS in Google Distributed Cloud (GDC) mit Air Gap. Es werden potenzielle Fehler und Probleme behandelt, die bei der Verwaltung von DNS-Konfigurationen auftreten können. Außerdem finden Sie Tipps und Vorschläge zur Fehlerbehebung bei der DNS-Auflösung. Dieses Dokument richtet sich an Plattformadministratoren und Anwendungsoperatoren, die für die Verwaltung von DNS-Einträgen in einem Projekt verantwortlich sind.

Fehlerbehebung bei Cloud DNS-Verwaltungsvorgängen

In diesem Abschnitt finden Sie Informationen zur Fehlerbehebung bei häufigen Problemen, die beim Erstellen, Lesen, Aktualisieren und Löschen (CRUD) von Cloud DNS-Zonen und -Eintragssätzen auftreten können.

Allgemeine Fehlerbehebung

  • Prüfen Sie, ob Sie die richtigen IAM-Rollen haben, wie unter IAM-Berechtigungen vorbereiten beschrieben.
  • Wenn Sie gdcloud verwenden, können Sie Ihr Authentifizierungstoken mit gdcloud auth login aktualisieren.

Ressourcenbenennung und -validierung (RFC 1123)

Problem: Das Erstellen oder Aktualisieren schlägt mit einem ungültigen Argument oder Validierungsfehlern fehl.

Details:

  • Ressourcennamen: Namen für DNS-Zonen und -Eintragssätze müssen RFC 
      entsprechen.
    1. Sie dürfen nur kleingeschriebene alphanumerische Zeichen oder - enthalten und müssen mit einem alphanumerischen Zeichen beginnen und enden.
  • DNS-Namen: Werte für Domainnamen und voll qualifizierte Domainnamen (FQDNs) müssen gültige Domainnamen sein.
  • Enum-Werte: Bei Werten wie Sichtbarkeit (PUBLIC oder PRIVATE) und Eintragstypen (z. B. A, CNAME) wird die Groß-/Kleinschreibung berücksichtigt. Sie müssen genau mit dem erwarteten String übereinstimmen.

Nicht leere Zonen können nicht gelöscht werden

Problem: Eine verwaltete Zone kann nicht gelöscht werden. Der Vorgang wird abgelehnt.

Details: Eine verwaltete DNS-Zone darf keine Ressourceneintragssätze enthalten, bevor sie gelöscht werden kann. Sie müssen zuerst alle Einträge in der Zone löschen.

Namens- und Domainkonflikte

Problem: Eine Ressource kann nicht erstellt werden, weil der Name oder die Domain bereits verwendet wird.

Details:

  • Kubernetes-Ressourcenname: Der Name des Objekts (z.B. der Name in metadata.name) muss innerhalb des spezifischen Projekt-Namespace eindeutig sein.
  • DNS-Name (FQDN): Der tatsächliche Domainname (z.B. dnsName für Zonen oder Einträge) muss innerhalb einer bestimmten Sichtbarkeit (ÖFFENTLICH oder PRIVAT) eindeutig sein. Sie können nicht zwei Zonen oder zwei Einträge mit demselben Domainnamen in derselben Sichtbarkeitsstufe erstellen.

Probleme mit der DNS-Auflösung beheben

In diesem Abschnitt finden Plattformadministratoren und Anwendungsoperatoren Informationen zur Fehlerbehebung bei Problemen mit der DNS-Auflösung beim Zugriff auf Dienste, die in Google Distributed Cloud gehostet werden.

Warten Sie, bis die Änderungen übernommen wurden, und leeren Sie den DNS-Cache.

Wenn DNS-Einträge erstellt oder aktualisiert werden, sind die Änderungen möglicherweise nicht sofort sichtbar. Diese Verzögerung hat in der Regel folgende Ursachen:

  1. Abgleichzeit: Das System benötigt Zeit, um die Anfrage zu verarbeiten und die DNS-Serverkonfiguration zu aktualisieren. Das dauert in der Regel ein paar Minuten.
  2. Verzögerung bei der DNS-Weitergabe (Caching): DNS-Resolver und Clients speichern Einträge im Cache, um Suchvorgänge zu beschleunigen. Clients verwenden den alten Eintrag möglicherweise so lange, bis die TTL-Dauer (Time to Live) abgelaufen ist.

Empfehlungen:

  • Warten: Planen Sie genügend Zeit für den Abgleich und den Ablauf des Cache ein.
  • Cache leeren: Leeren Sie Ihren lokalen DNS-Cache, um eine neue Suche zu erzwingen.

Konfiguration des lokalen Resolvers prüfen

Achten Sie darauf, dass Ihr Client die richtigen DNS-Server verwendet. Wenn Sie die richtige IP-Adresse nicht kennen, wenden Sie sich an Ihr Infrastructure Operations-Team (IO), um die richtige DNS-Server-IP-Adresse zu ermitteln.

  • Linux/macOS: Prüfen Sie den Inhalt von /etc/resolv.conf.
  • Windows: Führen Sie ipconfig /all aus und prüfen Sie die aufgeführten DNS-Server.

Workstations von Plattformadministratoren (PA) und Anwendungsoperatoren (AO) im Kundennetzwerk müssen eine DNS-Auflösung verwenden, die vom IO-WAN und OIRv2-Netzwerk getrennt ist. Da identische GDC-Domainnamen je nachdem, ob die Anfrage über das IO-WAN oder die Kunden-Interconnect-Verbindung eingeht, in unterschiedliche IP-Adressen aufgelöst werden, ist es nicht möglich, eine gemeinsame DNS-Konfiguration für IO- und PA- oder AO-Workstations zu verwenden. Weitere Informationen finden Sie unter Systemverbindungen, DNS-Domain-Namensschema und im Runbook DNS-R0016.

Lösung mit Standardtools testen

Verwenden Sie Standard-Befehlszeilentools, um die Auflösung zu testen und festzustellen, wo der Fehler auftritt.

  • Einfache Suche:

    dig <domain_name>
    

    oder

    nslookup <domain_name>
    
  • Bestimmten DNS-Server abfragen: Wenn Sie die IP-Adresse des öffentlichen ManagedDNS-Servers kennen, fragen Sie ihn direkt ab, um lokale Resolver zu umgehen:

    dig @<public_dns_server_ip> <domain_name>
    
  • Öffentlichen Nameserver abfragen: Um Probleme mit dem lokalen Resolver auszuschließen, können Sie einen öffentlichen Resolver wie Google DNS abfragen:

    dig @8.8.8.8 <domain_name>
    

DNS-Antwortcodes analysieren

Wenn Sie dig oder nslookup verwenden, prüfen Sie den Statuscode in der Antwort:

  • NXDOMAIN: Der Domainname wurde nicht gefunden. Prüfen Sie, ob Tippfehler vorliegen oder ob der Eintrag vorhanden ist.
  • SERVFAIL: Der Server konnte die Abfrage nicht verarbeiten. Dies deutet häufig auf ein Problem auf der Serverseite oder einen Kommunikationsfehler zwischen DNS-Servern hin.
  • NOERROR: Die Abfrage war erfolgreich, aber es gibt möglicherweise keine Antworten. Prüfen Sie, ob der angeforderte Eintragstyp (z.B. A, CNAME) vorhanden ist.
  • REFUSED: Der Server hat die Beantwortung der Anfrage abgelehnt, wahrscheinlich aufgrund von Richtlinien- oder Zugriffssteuerungseinstellungen.

Netzwerkverbindung prüfen

Achten Sie darauf, dass der Netzwerkverkehr zum DNS-Server nicht blockiert wird.

  • Das DNS verwendet Port 53 sowohl für UDP als auch für TCP.
  • Testen Sie die Verbindung mit nc (netcat):

    nc -zv <dns_server_ip> 53
    
  • Prüfen Sie, ob die Firewallregeln Traffic auf Port 53 zulassen.

DNS-Cache leeren

Durch das Leeren des DNS-Cache werden alle Einträge aus dem lokalen DNS-Cache entfernt. Dadurch wird Ihr Betriebssystem gezwungen, die DNS-Server noch einmal nach dem Domainnamen abzufragen. So erhalten Sie den aktuellsten Eintrag und nicht einen veralteten im Cache gespeicherten Eintrag.

  • Windows: ipconfig /flushdns
    • Funktion: Löscht den DNS-Resolver-Cache, der vom DNS-Clientdienst verwaltet wird.
  • macOS: sudo killall -HUP mDNSResponder
    • Funktion: Sendet ein Hangup-Signal (HUP) an den mDNSResponder-Prozess, um ihn zum Neuladen und Leeren des Caches zu zwingen.
  • Linux (systemd-resolved): sudo systemd-resolve --flush-caches oder sudo resolvectl flush-caches
    • Funktion: Weist den systemd-resolved-Dienst an, seinen internen DNS-Cache zu verwerfen.

Ressourcenstatus mit API oder gdcloud prüfen

Wenn Sie ein Mandant sind oder Zugriff auf die GDC API haben, können Sie den Status der Ressourcen direkt prüfen:

  • DNS-Zone prüfen:

    kubectl describe manageddnszone <zone_name> -n <project_namespace>
    
  • Ressourceneintragssatz prüfen:

    kubectl describe resourcerecordset <record_name> -n <project_namespace>
    

    Suchen Sie nach Bedingungen und Ereignissen, die auf Fehler im Abgleichsprozess hinweisen könnten.

Wenn Sie Zugriff auf die gdcloud-Befehlszeile haben, können Sie den Unterbefehl describe verwenden, wie unter DNS-Einträge auflisten oder DNS-Zonen auflisten dokumentiert.