Skip to main content

3.8 DNS-Fehler systematisch analysieren

Das Domain Name System ordnet Namen technischen Informationen zu. Dazu gehören insbesondere IPv4- und IPv6-Adressen, zuständige Nameserver, Mailserver, Dienstinformationen und Validierungsdaten.

Ein DNS-Fehler liegt nahe, wenn ein Dienst über seine IP-Adresse erreichbar ist, aber nicht über seinen Namen. Dieser Vergleich ist jedoch nur dann aussagekräftig, wenn der Dienst einen direkten Zugriff über die IP-Adresse technisch unterstützt. HTTPS, virtuelle Webserver und Load Balancer benötigen häufig zusätzlich den korrekten Hostnamen.

Grundregel: Zuerst ermitteln, welcher Name von welchem Client über welchen Resolver aufgelöst werden soll. Danach Antwort, Fehlerstatus, Autorität, Cache, Transportweg und tatsächliche Nutzung durch die Anwendung prüfen.


1. Welche Aufgaben erfüllt DNS?

DNS kann unter anderem folgende Informationen bereitstellen:

RecordtypAufgabe
AName zu IPv4-Adresse
AAAAName zu IPv6-Adresse
CNAMEAlias auf einen anderen Namen
MXzuständige Mailserver
NSautoritative Nameserver einer Zone
SOAgrundlegende Verwaltungsinformationen einer Zone
PTRIP-Adresse zu Name bei Reverse DNS
TXTfrei definierte Textinformationen und Verifikationsdaten
SRVDienst, Zielhost, Port, Priorität und Gewichtung
CAAzulässige Zertifizierungsstellen
DSVerweis in der DNSSEC-Vertrauenskette
DNSKEYöffentlicher DNSSEC-Schlüssel
RRSIGDNSSEC-Signatur eines Recordsets

Beispiel

app.example.intern
  → CNAME proxy.example.intern
    → A 192.0.2.20
    → AAAA 2001:db8:20::20

Die Anwendung kann am Ende IPv4 oder IPv6 verwenden. Daher müssen alle beteiligten Records und der tatsächlich gewählte Zielendpunkt berücksichtigt werden.

2. Welche Symptome sprechen für ein DNS-Problem?
  • Name kann nicht aufgelöst werden,
  • IP-Adresse funktioniert, Name jedoch nicht,
  • falsche IP-Adresse wird zurückgegeben,
  • interne Namen funktionieren nur im Firmennetz,
  • Auflösung funktioniert ohne VPN, aber nicht mit VPN,
  • Auflösung funktioniert mit VPN, aber nicht ohne VPN,
  • einzelne Clients erhalten andere Antworten,
  • Antwort wechselt zwischen alten und neuen Adressen,
  • IPv4 funktioniert, IPv6-Verbindung schlägt fehl,
  • Reverse-Auflösung fehlt,
  • DNS-Abfragen laufen in ein Timeout,
  • Antwort lautet NXDOMAIN, SERVFAIL oder REFUSED,
  • Suchsuffix erzeugt einen falschen vollständigen Namen,
  • Anwendung verwendet trotz erfolgreicher manueller Abfrage eine alte Adresse,
  • Browser und Terminal liefern unterschiedliche Ergebnisse,
  • nur bestimmte Recordtypen schlagen fehl,
  • DNSSEC-validierende Resolver lehnen eine Zone ab,
  • ein nicht vorgesehener DNS-Server wird verwendet,
  • lokale Hosts-Datei überschreibt die DNS-Antwort.
3. Welche Informationen müssen vor der Analyse erfasst werden?
InformationBeispiel
betroffener ClientCLIENT-023
BetriebssystemWindows 11
betroffener Nameapp.example.intern
vollständig qualifizierter Nameapp.example.intern.
erwarteter RecordtypA und AAAA
erwartete IPv4-Adresse192.0.2.20
erwartete IPv6-Adresse2001:db8:20::20
verwendeter DNS-Server192.0.2.53
vorgesehener DNS-Server192.0.2.53
DNS-Suchdomäneexample.intern
VPN aktivJa
Fehlerbeginn2026-07-31 09:42 CEST
letzter funktionierender Zeitpunkt2026-07-31 09:35 CEST
exakte FehlermeldungName konnte nicht aufgelöst werden
betroffene AnwendungBrowser
VergleichsclientCLIENT-024 funktioniert

Zusätzlich sollte geprüft werden:

  • IPv4- und IPv6-Konnektivität zum Resolver,
  • Proxy- und VPN-Konfiguration,
  • lokale Hosts-Datei,
  • Browserfunktionen wie DNS over HTTPS,
  • DNS-Cache,
  • zuständige Zone und autoritative Server.
4. Wie läuft eine rekursive DNS-Auflösung vereinfacht ab?
Client
  → rekursiver Resolver
    → Root-Nameserver
      → TLD-Nameserver
        → autoritativer Nameserver
          → rekursiver Resolver
            → Client

Für interne Zonen kann der Ablauf anders sein:

Client
  → interner Resolver
    → interne autoritative Zone
      → Client

Oder über einen Conditional Forwarder:

Client
  → lokaler Resolver
    → bedingte Weiterleitung für partner.example
      → Resolver des Partners
        → autoritative Antwort

Caches können den vollständigen Ablauf verkürzen. Eine vorhandene Cacheantwort muss nicht jedes Mal erneut beim autoritativen Server abgefragt werden.

5. Was ist der Unterschied zwischen rekursivem und autoritativem DNS-Server?
ServerrolleAufgabe
rekursiver Resolverermittelt Antworten im Auftrag des Clients und speichert sie möglicherweise im Cache
autoritativer Nameserverliefert verbindliche Daten für eine von ihm verwaltete Zone
Forwarderleitet Abfragen an einen anderen Resolver weiter
Conditional Forwarderleitet nur bestimmte DNS-Namensräume an definierte Resolver weiter
Stub ResolverDNS-Komponente auf dem Endgerät, die Resolver befragt

Ein DNS-Server kann abhängig von Produkt und Konfiguration mehrere Rollen übernehmen.

Wichtige Diagnosefrage

Ist die falsche Antwort bereits auf dem autoritativen Server vorhanden
oder entsteht sie erst durch Cache, Weiterleitung oder Clientkonfiguration?
6. Welche Ports und Transportprotokolle verwendet DNS?

DNS verwendet grundsätzlich:

TransportPortTypischer Einsatz
UDP53viele gewöhnliche Abfragen und Antworten
TCP53große Antworten, Wiederholungen nach Truncation und Zonentransfers
TCP853DNS over TLS
TCP443DNS over HTTPS
UDP443DNS over HTTP/3 kann über QUIC verwendet werden

Wichtig

Eine Firewallregel, die nur UDP 53 erlaubt, kann DNS teilweise funktionieren lassen und bei bestimmten Antworten dennoch Fehler verursachen.

Mögliche Ursachen für den Wechsel zu TCP:

  • Antwort ist für den verwendeten UDP-Transport zu groß,
  • Antwort wurde als gekürzt markiert,
  • DNSSEC vergrößert die Antwort,
  • Anwendung oder Resolver verwendet von Anfang an TCP,
  • Zonentransfer wird durchgeführt.
7. Wie wird die DNS-Clientkonfiguration unter Windows geprüft?

DNS-Server je Schnittstelle

[RO] Get-DnsClientServerAddress |
    Format-Table InterfaceAlias,
                 InterfaceIndex,
                 AddressFamily,
                 ServerAddresses

DNS-Clientkonfiguration

[RO] Get-DnsClient |
    Format-Table InterfaceAlias,
                 InterfaceIndex,
                 ConnectionSpecificSuffix,
                 RegisterThisConnectionsAddress,
                 UseSuffixWhenRegistering

Vollständige IP-Konfiguration

[RO][SENS] ipconfig /all

Zu prüfen sind:

  • DNS-Server,
  • verbindungsspezifisches DNS-Suffix,
  • primäres DNS-Suffix,
  • DNS-Suffixsuchliste,
  • Schnittstellenreihenfolge,
  • VPN-Adapter,
  • virtuelle Adapter.

DNS-over-HTTPS-Konfiguration

Je nach Windows-Version:

[RO] Get-DnsClientDohServerAddress

Das Cmdlet kann abhängig von Windows-Version und installiertem PowerShell-Modul nicht verfügbar sein.

8. Wie werden DNS-Abfragen unter Windows mit Resolve-DnsName durchgeführt?

Standardabfrage

[TEST] Resolve-DnsName app.example.intern

A-Record

[TEST] Resolve-DnsName app.example.intern -Type A

AAAA-Record

[TEST] Resolve-DnsName app.example.intern -Type AAAA

CNAME

[TEST] Resolve-DnsName app.example.intern -Type CNAME

MX

[TEST] Resolve-DnsName example.com -Type MX

SRV

[TEST] Resolve-DnsName `
    _ldap._tcp.example.intern `
    -Type SRV

PTR beziehungsweise Reverse DNS

[TEST] Resolve-DnsName 192.0.2.20 -Type PTR

Bestimmten DNS-Server abfragen

[TEST] Resolve-DnsName `
    app.example.intern `
    -Type A `
    -Server 192.0.2.53

Nur DNS verwenden und zusätzliche lokale Namensauflösungsmechanismen vermeiden

[TEST] Resolve-DnsName `
    app.example.intern `
    -Type A `
    -DnsOnly

TCP erzwingen

[TEST] Resolve-DnsName `
    app.example.intern `
    -Type A `
    -TcpOnly

Mit -TcpOnly kann geprüft werden, ob DNS über TCP 53 funktioniert.

9. Wie wird nslookup unter Windows, Linux und macOS verwendet?

Einfache Abfrage

[TEST] nslookup app.example.intern

Bestimmten Server abfragen

[TEST] nslookup app.example.intern 192.0.2.53

Bestimmten Recordtyp abfragen

[TEST] nslookup -type=AAAA app.example.intern 192.0.2.53
[TEST] nslookup -type=MX example.com 192.0.2.53

Reverse DNS

[TEST] nslookup 192.0.2.20 192.0.2.53

nslookup ist weit verbreitet, bildet aber nicht zwingend denselben Auflösungsweg ab wie eine Anwendung oder der native Systemresolver. Für eine vollständige Analyse sollten zusätzlich die betriebssystemspezifischen Werkzeuge verwendet werden.

10. Wie wird die DNS-Clientkonfiguration unter Linux geprüft?

systemd-resolved

[RO] resolvectl status

Bestimmte Schnittstelle:

[RO] resolvectl status eth0

Zu prüfen sind:

  • aktueller DNS-Server,
  • konfigurierte DNS-Server,
  • DNS-Domänen,
  • Default-Route für DNS,
  • DNSSEC-Einstellung,
  • DNS-over-TLS-Einstellung,
  • schnittstellenbezogene Resolver.

Resolverdatei

[RO] cat /etc/resolv.conf

Prüfen, ob es sich um einen symbolischen Link handelt:

[RO] ls -l /etc/resolv.conf

Beispiel:

nameserver 127.0.0.53
search example.intern
options edns0 trust-ad

127.0.0.53 kann auf den lokalen Stub Resolver von systemd-resolved verweisen. Der tatsächlich verwendete Upstream-DNS-Server muss dann mit resolvectl status bestimmt werden.

NetworkManager

[RO][SENS] nmcli device show |
    grep -E 'GENERAL.DEVICE|IP4.DNS|IP6.DNS|IP4.DOMAIN|IP6.DOMAIN'
11. Wie werden DNS-Abfragen unter Linux mit resolvectl durchgeführt?

Systemresolver verwenden

[TEST] resolvectl query app.example.intern

Bestimmten Recordtyp abfragen

[TEST] resolvectl query \
    --type=A \
    app.example.intern
[TEST] resolvectl query \
    --type=AAAA \
    app.example.intern

Bestimmte Schnittstelle verwenden

[TEST] resolvectl query \
    --interface=eth0 \
    app.example.intern

Resolverstatistik

[RO] resolvectl statistics

Serverfunktionen zurücksetzen beziehungsweise Cache leeren

Diese Befehle verändern den Resolverzustand und gehören nicht zur ersten Analyse:

[PRIV][CHANGE] sudo resolvectl reset-statistics
[PRIV][CHANGE] sudo resolvectl flush-caches

Vor dem Leeren sollte die vorhandene Antwort dokumentiert werden.

12. Wie werden DNS-Abfragen mit dig durchgeführt?

dig ist nicht auf jedem System standardmäßig installiert.

A- und AAAA-Abfrage

[TEST] dig app.example.intern A
[TEST] dig app.example.intern AAAA

Bestimmten Resolver abfragen

[TEST] dig @192.0.2.53 app.example.intern A

Kurze Ausgabe

[TEST] dig +short @192.0.2.53 app.example.intern A

Vollständige Antwort mit Kommentaren

[TEST] dig @192.0.2.53 app.example.intern A

TCP verwenden

[TEST] dig +tcp @192.0.2.53 app.example.intern A

DNSSEC-Daten anfordern

[TEST] dig +dnssec @192.0.2.53 example.com A

Autoritative Nameserver einer Zone

[TEST] dig @192.0.2.53 example.intern NS

SOA-Record

[TEST] dig @192.0.2.53 example.intern SOA

Reverse-Auflösung

[TEST] dig -x 192.0.2.20 @192.0.2.53

Delegationsweg verfolgen

[TEST] dig +trace example.com

dig +trace befragt die DNS-Hierarchie schrittweise selbst. Es entspricht nicht dem normalen rekursiven Weg über den konfigurierten Resolver und kann durch Firewalls oder interne Zonen eingeschränkt sein.

13. Welche Felder einer dig-Ausgabe sind wichtig?

Beispielstruktur:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12345
;; flags: qr rd ra
;; QUESTION SECTION:
;app.example.intern.       IN A

;; ANSWER SECTION:
app.example.intern. 300    IN A 192.0.2.20

;; Query time: 12 msec
;; SERVER: 192.0.2.53#53
;; WHEN: ...
;; MSG SIZE  rcvd: ...
FeldBedeutung
statusDNS-Antwortstatus
idTransaktions-ID
qrNachricht ist eine Antwort
aaautoritative Antwort
tcAntwort wurde gekürzt
rdRekursion wurde angefordert
raRekursion ist verfügbar
advalidierende Stelle kennzeichnet Daten als authentifiziert
cdClient fordert deaktivierte DNSSEC-Prüfung
ANSWEReigentliche Antwortrecords
AUTHORITYzuständige beziehungsweise autoritative Informationen
ADDITIONALzusätzliche hilfreiche Records
TTLverbleibende Cachelebensdauer
SERVERtatsächlich abgefragter Resolver
Query timegemessene Abfragedauer

Das ad-Flag muss im Zusammenhang mit dem befragten validierenden Resolver bewertet werden. Es beweist nicht, dass der lokale Client selbst die gesamte DNSSEC-Kette validiert hat.

14. Wie wird die DNS-Konfiguration unter macOS geprüft?

Aktuelle Resolverkonfiguration

[RO][SENS] scutil --dns

macOS kann mehrere Resolverkonfigurationen parallel besitzen, beispielsweise für:

  • allgemeine Anfragen,
  • VPN-Domänen,
  • bestimmte Suchdomänen,
  • Multicast DNS,
  • schnittstellenbezogene Namensräume.

DNS-Server eines Netzwerkdienstes

[RO] networksetup -getdnsservers "Wi-Fi"

Suchdomänen

[RO] networksetup -getsearchdomains "Wi-Fi"

IP-Konfiguration

[RO] networksetup -getinfo "Wi-Fi"

Der tatsächliche Netzwerkdienst muss vorher bestimmt werden:

[RO] networksetup -listallnetworkservices

Hosts-Auflösung über Systemmechanismen

[TEST] dscacheutil -q host -a name app.example.intern

Dieser Test bildet den macOS-Systemresolver besser ab als eine direkte Abfrage eines einzelnen DNS-Servers mit dig.

15. Warum können dig und eine Anwendung unterschiedliche Ergebnisse liefern?

dig sendet eine direkte DNS-Abfrage. Eine Anwendung kann dagegen weitere Mechanismen verwenden:

  • Systemresolver,
  • lokale Hosts-Datei,
  • DNS-Cache des Betriebssystems,
  • eigener Anwendungscache,
  • Browsercache,
  • DNS over HTTPS,
  • VPN-spezifischer Resolver,
  • Multicast DNS,
  • Suchsuffixe,
  • Proxy,
  • Sicherheitssoftware,
  • andere Reihenfolge von IPv4 und IPv6.

Beispiel

dig @192.0.2.53 app.example.intern
→ 192.0.2.20

Browser
→ verwendet eigenen DoH-Resolver
→ erhält keine interne Adresse

Deshalb sollten mindestens zwei Ebenen geprüft werden:

  1. direkte DNS-Serverantwort,
  2. tatsächliche Auflösung über das Betriebssystem beziehungsweise die Anwendung.
16. Wie wird die lokale Hosts-Datei geprüft?

Ein Eintrag in der Hosts-Datei kann DNS für den betreffenden Namen übersteuern.

Windows

[RO][PRIV][SENS] Get-Content `
    "$env:SystemRoot\System32\drivers\etc\hosts"

Nicht auskommentierte Zeilen anzeigen:

[RO][PRIV][SENS] Get-Content `
    "$env:SystemRoot\System32\drivers\etc\hosts" |
    Where-Object {
        $_.Trim() -and
        -not $_.Trim().StartsWith('#')
    }

Linux

[RO][SENS] cat /etc/hosts

macOS

[RO][SENS] cat /etc/hosts

Typische Probleme

  • veraltete Testadresse,
  • falscher Hostname,
  • Eintrag wurde von Software ergänzt,
  • IPv4- und IPv6-Einträge widersprechen sich,
  • Eintrag existiert nur auf einem Client,
  • Eintrag besitzt unsichtbare Formatierungsfehler.

Hosts-Dateien dürfen nicht vorschnell geändert werden. Zuerst müssen Ursprung, Zweck und Konfigurationsmanagement geklärt werden.

17. Wie beeinflusst ein DNS-Suchsuffix die Auflösung?

Ein nicht vollständig qualifizierter Name kann durch eine Suchdomäne ergänzt werden.

Eingabe:

app

Suchdomäne:

example.intern

Mögliche Anfrage:

app.example.intern

Bei mehreren Suchdomänen können mehrere Abfragen entstehen:

app.berlin.example.intern
app.example.intern
app

Prüfung unter Windows

[RO] Get-DnsClient |
    Select-Object InterfaceAlias,
                  ConnectionSpecificSuffix

Zusätzlich:

[RO][SENS] ipconfig /all

Linux

[RO] resolvectl status
[RO] cat /etc/resolv.conf

macOS

[RO][SENS] scutil --dns

Sicherer Vergleich

Kurzname:
app

Vollqualifizierter Name:
app.example.intern.

Der abschließende Punkt kennzeichnet in DNS-Werkzeugen einen absoluten Namen und verhindert dort normalerweise die Ergänzung eines Suchsuffixes.

18. Wie werden DNS-Antwortstatus richtig interpretiert?
StatusBedeutung
NOERROR mit AntwortAbfrage war erfolgreich und enthält Antwortdaten
NOERROR ohne gesuchten RecordName kann existieren, aber Recordtyp fehlt
NXDOMAINabgefragter Name existiert laut Antwort nicht
SERVFAILServer konnte keine gültige Antwort liefern
REFUSEDServer verweigert die Abfrage
FORMERRAbfrageformat wurde als fehlerhaft bewertet
NOTIMPOperation wird nicht unterstützt
Timeoutkeine rechtzeitige verwertbare Antwort erhalten

Wichtige Unterscheidung

NXDOMAIN:
Der Name existiert laut DNS-Antwort nicht.

NOERROR ohne A-Record:
Der Name kann existieren, besitzt aber keinen A-Record.

SERVFAIL kann unter anderem entstehen durch:

  • DNSSEC-Validierungsfehler,
  • nicht erreichbaren autoritativen Server,
  • fehlerhafte Delegation,
  • Timeout bei Weiterleitung,
  • Serverfehler,
  • beschädigte Zone,
  • fehlende Erreichbarkeit über TCP,
  • Schleife zwischen Forwardern.
19. Wie wird zwischen NXDOMAIN und fehlendem Recordtyp unterschieden?

A-Record abfragen

[TEST] dig @192.0.2.53 app.example.intern A

Mögliche Ergebnisse:

Fall 1 – Name existiert nicht

status: NXDOMAIN

Fall 2 – Name existiert, besitzt aber keinen A-Record

status: NOERROR
ANSWER: 0

Im Authority-Bereich kann ein SOA-Record erscheinen.

Fall 3 – Name besitzt nur AAAA

[TEST] dig @192.0.2.53 app.example.intern AAAA

liefert eine IPv6-Adresse.

Diese Unterscheidung ist wichtig, weil das Anlegen eines A-Records bei einem vollständig falschen Namen eine andere Maßnahme wäre als das Ergänzen eines fehlenden Recordtyps.

20. Wie werden CNAME-Ketten untersucht?

Direkte Abfrage

[TEST] dig @192.0.2.53 app.example.intern CNAME

Vollständige Auflösung

[TEST] dig @192.0.2.53 app.example.intern A

Mögliche Kette:

app.example.intern
  → CNAME proxy.example.intern
    → CNAME proxy-berlin.example.net
      → A 192.0.2.20

Zu prüfen sind:

  • existiert jedes Ziel der Kette?
  • besitzt das letzte Ziel einen passenden A- oder AAAA-Record?
  • verweist ein CNAME auf sich selbst?
  • existiert eine Schleife?
  • überschreitet die Kette Grenzen zwischen internen und externen Zonen?
  • stimmt die TTL der beteiligten Records?
  • passt das TLS-Zertifikat weiterhin zum ursprünglich verwendeten Namen?

Der erfolgreiche Abschluss der DNS-Kette beweist noch nicht, dass die Anwendung oder das Zertifikat korrekt ist.

21. Wie wird Split DNS beziehungsweise Split-Horizon DNS geprüft?

Bei Split DNS liefert derselbe Name abhängig vom verwendeten Resolver oder Standort unterschiedliche Antworten.

Interner Resolver

app.example.com
→ 192.0.2.20

Öffentlicher Resolver

app.example.com
→ 203.0.113.20

Dies kann beabsichtigt sein.

Vergleichsabfragen

[TEST] dig @192.0.2.53 app.example.com A
[TEST] dig @ÖFFENTLICHER-RESOLVER app.example.com A

Ein öffentlicher Resolver darf nur verwendet werden, wenn dies nach Unternehmensrichtlinie zulässig und aus dem Netz erreichbar ist.

Typische Fehler

  • VPN verwendet öffentlichen statt internen Resolver,
  • interne Zone fehlt auf einem Standort,
  • Conditional Forwarder fehlt,
  • Browser umgeht internen DNS per DoH,
  • Antwort aus öffentlichem Cache wird verwendet,
  • interne und externe Records wurden verwechselt.
22. Wie beeinflussen VPN und schnittstellenbezogenes DNS die Auflösung?

Ein VPN kann:

  • eigene DNS-Server setzen,
  • nur bestimmte Domänen über interne Resolver leiten,
  • alle DNS-Anfragen übernehmen,
  • Suchdomänen hinzufügen,
  • DNS over HTTPS blockieren oder konfigurieren,
  • IPv4 und IPv6 unterschiedlich behandeln.

Prüfung vor und nach VPN-Verbindung

Eigenschaftvor VPNnach VPN
DNS-Serverdokumentierendokumentieren
Suchdomänendokumentierendokumentieren
Routen zum DNS-Serverdokumentierendokumentieren
A-Antwortvergleichenvergleichen
AAAA-Antwortvergleichenvergleichen
Systemresolververgleichenvergleichen

Windows

[RO] Get-DnsClientServerAddress

Linux

[RO] resolvectl status

macOS

[RO][SENS] scutil --dns

Ein interner DNS-Server kann korrekt eingetragen sein, aber über die aktuelle Routingtabelle nicht erreichbar sein. Deshalb muss zusätzlich die Route zum Resolver geprüft werden.

23. Wie wird die Erreichbarkeit des DNS-Servers geprüft?

Route zum Resolver

Windows:

[RO] Find-NetRoute -RemoteIPAddress 192.0.2.53

Linux:

[RO] ip route get 192.0.2.53

macOS:

[RO] route -n get 192.0.2.53

TCP-Port 53 testen

Windows:

[TEST] Test-NetConnection 192.0.2.53 -Port 53

Linux und macOS:

[TEST] nc -vz -w 5 192.0.2.53 53

Dieser Test prüft nur TCP 53.

Tatsächliche DNS-Abfrage über UDP

[TEST] dig @192.0.2.53 app.example.intern A

Tatsächliche DNS-Abfrage über TCP

[TEST] dig +tcp @192.0.2.53 app.example.intern A

Auswertung

UDP-AbfrageTCP-AbfrageMögliche Richtung
erfolgreicherfolgreichTransport grundsätzlich verfügbar
erfolgreichfehlerhaftTCP 53, Firewall oder Serverlistener prüfen
fehlerhafterfolgreichUDP 53, Fragmentierung oder Filter prüfen
fehlerhaftfehlerhaftRoute, Firewall, Server oder falsche Adresse
24. Wie werden große DNS-Antworten und das TC-Flag untersucht?

Das DNS-Headerflag TC bedeutet, dass eine Antwort gekürzt wurde.

Vereinfachter Ablauf:

Client → DNS-Abfrage über UDP
Server → gekürzte Antwort mit TC=1
Client → Wiederholung über TCP
Server → vollständige Antwort über TCP

dig-Ausgabe über UDP

[TEST] dig @192.0.2.53 example.com DNSKEY

Vergleich über TCP

[TEST] dig +tcp @192.0.2.53 example.com DNSKEY

Wireshark-Display-Filter

dns.flags.truncated == 1

Mögliche Fehlerursachen:

  • TCP 53 wird blockiert,
  • Fragmentierung oder MTU-Problem,
  • Firewall verwirft große UDP-Antworten,
  • EDNS wird fehlerhaft behandelt,
  • Resolver oder Middlebox arbeitet nicht standardkonform.
25. Wie werden TTL und DNS-Caching interpretiert?

TTL steht für Time to Live und gibt an, wie lange ein DNS-Record gecacht werden darf.

Beispiel

app.example.intern. 300 IN A 192.0.2.20

TTL:

300 Sekunden = 5 Minuten

Nach einer Änderung können Resolver die alte Antwort bis zum Ablauf der noch vorhandenen TTL verwenden.

Wichtig

  • verschiedene Resolver können unterschiedliche verbleibende TTLs besitzen,
  • Anwendungen können zusätzlich eigene Caches verwenden,
  • negative Antworten können ebenfalls gecacht werden,
  • Browser können eigene DNS-Zustände verwalten,
  • Load Balancer können mehrere Adressen liefern,
  • alte Antworten müssen nicht auf allen Clients gleichzeitig verschwinden.

Vergleich zu unterschiedlichen Zeitpunkten

[TEST] dig @192.0.2.53 app.example.intern A

Zu dokumentieren:

  • Antwortadresse,
  • TTL,
  • Server,
  • Zeitpunkt,
  • Antwortstatus.
26. Was ist negatives DNS-Caching?

Auch negative Antworten wie NXDOMAIN oder das Fehlen eines bestimmten Recordtyps können zeitweise gecacht werden.

Mögliche Situation:

09:00 Name existiert noch nicht.
09:01 Client fragt und erhält NXDOMAIN.
09:05 Record wird angelegt.
09:06 Client erhält weiterhin die gecachte negative Antwort.

Die Dauer des negativen Cachings hängt unter anderem von den Zonen- und Resolverinformationen ab.

Diagnose

  • autoritativen Server direkt abfragen,
  • rekursiven Resolver abfragen,
  • Systemresolver abfragen,
  • Antwortstatus und SOA-Informationen vergleichen,
  • Zeitpunkt der Recordänderung dokumentieren.

Ein Cache sollte erst geleert werden, nachdem die ursprüngliche Antwort und deren TTL gesichert wurden.

27. Wie wird der DNS-Cache unter Windows geprüft?

Cache anzeigen

[RO] Get-DnsClientCache

Nach einem Namen suchen:

[RO] Get-DnsClientCache |
    Where-Object Entry -Match 'app\.example\.intern'

Klassische Anzeige

[RO] ipconfig /displaydns

Cache exportieren

[RO][FILE][SENS] Get-DnsClientCache |
    Export-Csv 'C:\Temp\dns-cache-vorher.csv' `
    -NoTypeInformation `
    -Encoding UTF8

Der Cache kann interne Namen und aufgerufene Ziele enthalten und ist daher als sensibel zu behandeln.

28. Wann darf ein DNS-Cache geleert werden?

Das Leeren des Caches verändert den Diagnosezustand und kann eine fehlerhafte Antwort nur vorübergehend verbergen.

Windows

[PRIV][CHANGE] Clear-DnsClientCache

Alternative:

[PRIV][CHANGE] ipconfig /flushdns

Linux mit systemd-resolved

[PRIV][CHANGE] sudo resolvectl flush-caches

Andere Linux-Resolver besitzen eigene Verfahren. Es existiert kein allgemeiner Befehl für alle Linux-Systeme.

macOS

[PRIV][CHANGE] sudo dscacheutil -flushcache

Anschließend kann abhängig von macOS-Version zusätzlich ein HUP-Signal an den DNS-Responder erforderlich sein:

[PRIV][CHANGE] sudo killall -HUP mDNSResponder

Diese macOS-Befehle sollten nur nach Prüfung der eingesetzten Version und lokalen Dokumentation verwendet werden.

Vorher sichern

  • aktuelle Antwort,
  • TTL,
  • verwendeter Resolver,
  • Betriebssystemcache,
  • Anwendungszustand,
  • Zeitpunkt.
29. Wie werden autoritative DNS-Daten geprüft?

Zuständige Nameserver ermitteln

[TEST] dig @192.0.2.53 example.intern NS

SOA-Record prüfen

[TEST] dig @192.0.2.53 example.intern SOA

Autoritativen Server direkt abfragen

[TEST] dig @AUTORITATIVER-SERVER app.example.intern A

In der Antwort sollte bei einer autoritativen Antwort typischerweise das aa-Flag erscheinen.

Zu prüfen

  • richtige Zone,
  • richtiger Record,
  • korrekte Adresse,
  • TTL,
  • Seriennummer der Zone,
  • Replikationsstand,
  • primärer und sekundärer Nameserver,
  • Delegation,
  • DNSSEC-Signaturen,
  • unterschiedliche Antworten mehrerer autoritativer Server.

Wenn autoritative Server unterschiedliche Zonenversionen liefern, können Clients abhängig vom befragten Server unterschiedliche Ergebnisse erhalten.

30. Wie wird die SOA-Seriennummer verwendet?

Der SOA-Record enthält Verwaltungsinformationen einer DNS-Zone, darunter eine Seriennummer.

[TEST] dig @DNS-SERVER example.intern SOA

Mehrere autoritative Server vergleichen:

[TEST] dig @DNS-SERVER-1 example.intern SOA
[TEST] dig @DNS-SERVER-2 example.intern SOA

Mögliche Auffälligkeit

Server 1: Serial 2026073105
Server 2: Serial 2026073002

Dies kann auf eine noch nicht erfolgte oder fehlgeschlagene Zonenübertragung beziehungsweise Replikation hinweisen.

Die Bedeutung und das Format der Seriennummer werden durch die DNS-Verwaltung der jeweiligen Umgebung bestimmt. Eine höhere dezimale Darstellung ist häufig, aber nicht jede Organisation verwendet dasselbe Schema.

31. Wie werden Delegationsfehler erkannt?

Eine übergeordnete Zone verweist per NS-Records auf die autoritativen Server einer untergeordneten Zone.

example.com
  → Delegation für berlin.example.com
    → ns1.berlin.example.com
    → ns2.berlin.example.com

Mögliche Fehler:

  • falscher Nameserver eingetragen,
  • Nameserver ist nicht erreichbar,
  • Glue Record fehlt oder ist falsch,
  • Child- und Parent-NS-Records unterscheiden sich,
  • Firewall blockiert UDP oder TCP 53,
  • DNSSEC-DS-Record passt nicht mehr,
  • autoritativer Server kennt die delegierte Zone nicht,
  • Schleife in der Delegation.

Öffentliche Delegation verfolgen

[TEST] dig +trace berlin.example.com

Für interne Zonen muss der interne Delegations- und Weiterleitungsweg anhand der Unternehmensarchitektur geprüft werden.

32. Wie werden DNSSEC-Probleme erkannt?

DNSSEC ermöglicht die kryptografische Prüfung von DNS-Daten. Ein Fehler in der Vertrauenskette kann dazu führen, dass validierende Resolver mit SERVFAIL antworten.

Abfrage mit DNSSEC-Daten

[TEST] dig +dnssec @192.0.2.53 example.com A

Validierung testweise durch den Resolver anfragen, aber Checking Disabled setzen

[TEST] dig +cdflag @192.0.2.53 example.com A

Wenn eine normale Abfrage SERVFAIL liefert, dieselbe Abfrage mit +cdflag aber Daten zurückgibt, ist ein DNSSEC-Validierungsproblem eine mögliche Hypothese.

Mögliche Ursachen

  • abgelaufene Signatur,
  • falscher DS-Record,
  • Schlüsselwechsel nicht korrekt abgeschlossen,
  • inkonsistente autoritative Server,
  • falsche Systemzeit,
  • beschädigte Vertrauenskette,
  • Antwort wird auf dem Weg verändert oder abgeschnitten.

+cdflag deaktiviert nicht dauerhaft die Serverkonfiguration. Es kennzeichnet die einzelne Abfrage entsprechend. Das Ergebnis darf nur als Diagnosehinweis verwendet werden.

33. Wie beeinflusst DNS over HTTPS die Fehleranalyse?

Bei DNS over HTTPS werden DNS-Abfragen in HTTPS-Verbindungen übertragen. Dadurch kann eine Anwendung den betriebssystemseitig konfigurierten DNS-Server umgehen.

Mögliche Auswirkungen:

  • interne Zonen werden nicht gefunden,
  • Unternehmensfilter greifen nicht,
  • Browser liefert andere Antworten als nslookup,
  • DNS-Verkehr ist im gewöhnlichen Port-53-Mitschnitt nicht sichtbar,
  • Split DNS funktioniert in der Anwendung nicht,
  • zentrale DNS-Protokolle enthalten die Anfrage nicht.

Prüffragen

  • verwendet die Anwendung den Systemresolver?
  • ist DoH durch Browser, Betriebssystem oder Richtlinie aktiviert?
  • welcher DoH-Endpunkt wird verwendet?
  • sollen interne Namen vom Systemresolver aufgelöst werden?
  • existieren betriebliche Vorgaben für verschlüsseltes DNS?

DoH sollte nicht pauschal deaktiviert werden. Zuerst müssen Unternehmensrichtlinie, Sicherheitskonzept und tatsächlicher Auflösungsweg geprüft werden.

34. Wie wird DNS-Verkehr mit Wireshark untersucht?

Alle klassischen DNS-Nachrichten

dns

Nur DNS-Anfragen

dns.flags.response == 0

Nur DNS-Antworten

dns.flags.response == 1

Bestimmter Name

dns.qry.name == "app.example.intern"

Bestimmter Recordtyp

A-Record:

dns.qry.type == 1

AAAA-Record:

dns.qry.type == 28

NXDOMAIN

dns.flags.rcode == 3

SERVFAIL

dns.flags.rcode == 2

Gekürzte Antworten

dns.flags.truncated == 1

Lange Antwortzeit

dns.time > 1

dns.time ist verfügbar, wenn Wireshark Anfrage und passende Antwort einander zuordnen konnte.

35. Wie wird DNS-Verkehr sicher mitgeschnitten?

Capture-Filter für klassischen DNS-Verkehr

port 53

Nur bestimmter DNS-Server

host 192.0.2.53 and port 53

Zeitlich begrenzte Aufnahme

[TEST][PRIV][FILE][SENS] dumpcap \
  -i INTERFACE \
  -f "host 192.0.2.53 and port 53" \
  -a duration:30 \
  -w dns-diagnose.pcapng

TShark-Liveanzeige

[TEST][PRIV][SENS] tshark \
  -i INTERFACE \
  -f "host 192.0.2.53 and port 53"

Felder aus einer Datei ausgeben

[RO][SENS] tshark \
  -r dns-diagnose.pcapng \
  -Y "dns" \
  -T fields \
  -e frame.time \
  -e ip.src \
  -e ip.dst \
  -e udp.srcport \
  -e udp.dstport \
  -e dns.id \
  -e dns.flags.response \
  -e dns.flags.rcode \
  -e dns.qry.name \
  -e dns.qry.type

DNS-Aufzeichnungen können aufgerufene interne und externe Namen offenlegen und müssen gemäß Seite 2.14 geschützt werden.

36. Wie wird eine DNS-Anfrage im Paketmitschnitt ausgewertet?

Erfolgreicher Ablauf

Client → Resolver:
Query A app.example.intern

Resolver → Client:
Response NOERROR
A 192.0.2.20

Timeout

Client → Resolver:
Query A app.example.intern

Client → Resolver:
Wiederholung

Keine Antwort

NXDOMAIN

Client → Resolver:
Query A app.example.intern

Resolver → Client:
Response NXDOMAIN

TCP-Fallback

Client → Resolver über UDP:
Query

Resolver → Client:
Response, Truncated

Client → Resolver über TCP:
SYN, SYN-ACK, ACK
DNS Query

Resolver → Client über TCP:
vollständige DNS Response

Zu prüfen

  • Transaktions-ID,
  • Quell- und Zieladresse,
  • UDP oder TCP,
  • abgefragter Name,
  • Recordtyp,
  • Antwortstatus,
  • Antwortrecords,
  • TTL,
  • Wiederholungen,
  • Antwortdauer,
  • Truncation,
  • DNSSEC-Flags.
37. Wie wird zwischen Client-, Resolver- und Zonenproblem unterschieden?
BeobachtungWahrscheinlichere Richtung
nur eine Anwendung betroffenAnwendungscache, DoH oder Proxy
nur ein Client betroffenClientcache, Hosts-Datei oder DNS-Konfiguration
alle Clients eines DNS-Servers betroffenResolver, Forwarder oder dessen Netzwerkpfad
direkter autoritativer Server korrekt, Resolver falschCache oder Weiterleitung
alle autoritativen Server falschZonendaten
ein autoritativer Server weicht abReplikation oder Zonentransfer
UDP funktioniert, TCP nichtFirewall oder TCP-Listener
TCP funktioniert, UDP nichtUDP-Filter, Fragmentierung oder Middlebox
interne Namen nur ohne DoHAnwendung umgeht internen Resolver
Auflösung korrekt, Verbindung fehlerhaftProblem liegt nach DNS
A funktioniert, AAAA führt zum FehlerIPv6-Pfad oder Ziel prüfen
SERVFAIL nur bei validierendem ResolverDNSSEC möglich
Name mit Punkt funktioniert, Kurzname nichtSuchsuffix oder Suchreihenfolge
38. Welche typischen Fehlinterpretationen müssen vermieden werden?
BeobachtungFalscher SchlussRichtige Einordnung
Ping per IP funktioniertDNS ist sicher die einzige UrsacheDienst kann Hostnamen oder TLS benötigen
nslookup funktioniertAnwendung verwendet dieselbe AuflösungAnwendung kann eigenen Resolver verwenden
DNS-Server ist eingetragener wird tatsächlich verwendetschnittstellen- und anwendungsbezogene Resolver prüfen
NXDOMAINDNS-Server ist ausgefallenServer antwortet, Name existiert laut Antwort nicht
SERVFAILName existiert nichtServer konnte keine gültige Antwort liefern
NOERRORgesuchter Record ist vorhandenAntwort kann leer sein
DNS-Cache geleert und Zugriff gehtUrsache ist behobenveraltete Quelle kann erneut cachen
A-Record ist korrektDienst ist vollständig korrektAAAA, CNAME, TLS und Backend prüfen
öffentliche Antwort unterscheidet sicheine Seite ist falschSplit DNS kann beabsichtigt sein
Port 53 per TCP erreichbarDNS funktioniertUDP und tatsächliche Abfrage separat prüfen
keine Port-53-Pakete sichtbarAnwendung stellt keine DNS-AnfrageDoH, Cache oder falscher Messpunkt möglich
kurze Query Timegesamte Anwendung ist schnellnur DNS-Abfragedauer gemessen
39. Wie sieht der systematische Prüfablauf aus?
SchrittPrüfung
1betroffenen Namen und Recordtyp eindeutig bestimmen
2Clientzeit, Netzwerk und VPN-Zustand dokumentieren
3konfigurierte und tatsächlich verwendete Resolver bestimmen
4Hosts-Datei und Suchsuffixe prüfen
5Systemresolver abfragen
6konfigurierten DNS-Server direkt abfragen
7A, AAAA und mögliche CNAME-Kette untersuchen
8Antwortstatus, TTL, Flags und Server dokumentieren
9funktionierenden Client oder Resolver vergleichen
10UDP- und TCP-Abfrage vergleichen
11autoritative Server direkt prüfen
12SOA-Seriennummern und Zonendaten vergleichen
13Split DNS, VPN, DoH und Conditional Forwarding berücksichtigen
14bei Bedarf autorisierten Paketmitschnitt erstellen
15Cache erst nach Beweissicherung kontrolliert leeren
16DNS-Antwort und tatsächliche Dienstverbindung erneut testen
17Ursache und Änderung dokumentieren

Merksatz

Name → Recordtyp → Systemresolver → konfigurierter Resolver
→ autoritativer Server → Cache → tatsächliche Anwendung
40. Kompakte Befehlsübersicht für Windows, Linux und macOS
AufgabeWindowsLinuxmacOS
DNS-Konfiguration[RO] Get-DnsClientServerAddress[RO] resolvectl status[RO][SENS] scutil --dns
DNS-Suffixe[RO] Get-DnsClient[RO] resolvectl status[RO] networksetup -getsearchdomains "DIENST"
vollständige Netzkonfiguration[RO][SENS] ipconfig /all[RO] cat /etc/resolv.conf[RO] networksetup -getinfo "DIENST"
Systemauflösung[TEST] Resolve-DnsName NAME[TEST] resolvectl query NAME[TEST] dscacheutil -q host -a name NAME
A-Record[TEST] Resolve-DnsName NAME -Type A[TEST] dig NAME A[TEST] dig NAME A
AAAA-Record[TEST] Resolve-DnsName NAME -Type AAAA[TEST] dig NAME AAAA[TEST] dig NAME AAAA
bestimmten Resolver abfragen[TEST] Resolve-DnsName NAME -Server DNS-SERVER[TEST] dig @DNS-SERVER NAME[TEST] dig @DNS-SERVER NAME
TCP erzwingen[TEST] Resolve-DnsName NAME -Server DNS-SERVER -TcpOnly[TEST] dig +tcp @DNS-SERVER NAME[TEST] dig +tcp @DNS-SERVER NAME
Reverse DNS[TEST] Resolve-DnsName IP -Type PTR[TEST] dig -x IP @DNS-SERVER[TEST] dig -x IP @DNS-SERVER
NS-Records[TEST] Resolve-DnsName ZONE -Type NS[TEST] dig @DNS-SERVER ZONE NSgleicher Befehl
SOA-Record[TEST] Resolve-DnsName ZONE -Type SOA[TEST] dig @DNS-SERVER ZONE SOAgleicher Befehl
Hosts-Datei[RO][PRIV][SENS] Get-Content "$env:SystemRoot\System32\drivers\etc\hosts"[RO][SENS] cat /etc/hosts[RO][SENS] cat /etc/hosts
DNS-Cache anzeigen[RO] Get-DnsClientCache[RO] resolvectl statisticskein gleichwertiger vollständiger Standardbefehl
DNS-Cache leeren[PRIV][CHANGE] Clear-DnsClientCache[PRIV][CHANGE] sudo resolvectl flush-caches[PRIV][CHANGE] sudo dscacheutil -flushcache
DNS mitschneiden[TEST][PRIV][FILE][SENS] dumpcap -i INTERFACE -f "host DNS-SERVER and port 53" -a duration:30 -w dns.pcapnggleicher Befehlgleicher Befehl

Die Platzhalter NAME, ZONE, IP, DNS-SERVER, DIENST und INTERFACE müssen durch vorher eindeutig bestimmte Werte ersetzt werden.

41. Dokumentationsvorlage
Ticketnummer:
Prüfzeitpunkt:
Zeitzone:
Betroffener Client:
Betriebssystem:
Benutzer:
Standort:
VLAN:
VPN aktiv:
Betroffene Anwendung:

ABFRAGE

Eingegebener Name:
Vollständig qualifizierter Name:
Recordtyp:
Erwartete Antwort:
Tatsächliche Antwort:
Exakte Fehlermeldung:

CLIENTKONFIGURATION

Schnittstelle:
IPv4-Adresse:
IPv6-Adresse:
DNS-Server IPv4:
DNS-Server IPv6:
DNS-Suchdomänen:
Lokale Hosts-Datei geprüft:
Passender Hosts-Eintrag:
DoH aktiv oder vermutet:
Proxy aktiv:
Anwendungscache:

SYSTEMRESOLVER

Verwendeter Test:
Antwortstatus:
Antwortrecords:
TTL:
CNAME-Kette:
Antwortzeit:
Verwendeter Resolver:
IPv4 oder IPv6:

DIREKTE DNS-ABFRAGE

DNS-Server:
UDP erfolgreich:
TCP erfolgreich:
A-Antwort:
AAAA-Antwort:
CNAME:
Status:
Flags:
TTL:
Query Time:

AUTORITATIVE DATEN

Zone:
Autoritative Nameserver:
Direkt abgefragter Server:
AA-Flag:
A-Record:
AAAA-Record:
CNAME:
SOA-Seriennummer:
Weitere autoritative Server:
Seriennummern identisch:
Delegation korrekt:
DNSSEC-Status:

VERGLEICH

Referenzclient:
Verwendeter Resolver:
Antwort:
TTL:
Anwendung funktioniert:
Relevante Abweichungen:

PAKETMITSCHNITT

Messpunkt:
DNS-Anfrage sichtbar:
DNS-Antwort sichtbar:
Transaktions-ID:
UDP oder TCP:
Response Code:
Truncated:
Wiederholungen:
Antwortzeit:
Capture-Datei:
Hash:

CACHE

Clientcache vor Änderung gesichert:
Resolvercache vermutet:
Negative Antwort:
Cache geleert:
Ergebnis nach Cacheleerung:

Arbeitshypothese:
Begründung:
Durchgeführter Test:
Geplante Änderung:
Freigabe:
Rückweg:
Abschlussprüfung:
Ermittelte Ursache:
42. Offizielle Quellen und weiterführende Dokumentation

Microsoft

Linux und systemd

ISC BIND

Apple

Wireshark

Standards

DNS-Verwaltungsbefehle und Serverprotokolle unterscheiden sich je nach Produkt. Änderungen an Zonen, Delegationen, Forwardern, DNSSEC oder Resolverrichtlinien dürfen nur anhand der Dokumentation des tatsächlich eingesetzten DNS-Systems vorgenommen werden.