DNS-Probleme: Diagnose und Lösung
Umfassende Anleitung zur Diagnose und Lösung von DNS-Problemen mit dig, nslookup, DNS-Propagationsprüfung, Cache-Bereinigung und Lösungen für häufige DNS-Fehler.
Inhaltsverzeichnis
Einführung
DNS (Domain Name System) ist eine der grundlegenden Komponenten der Internet-Infrastruktur. Dieses System übersetzt Domainnamen in IP-Adressen, und wenn es nicht korrekt funktioniert, können viele Dienste wie Website-Zugriff, E-Mail-Zustellung und Serververbindungen gestört werden.
In dieser Anleitung untersuchen wir die Tools und Methoden, die Sie zur Diagnose und Lösung von DNS-Problemen verwenden können.
DNS-Grundlagen
DNS-Eintragstypen
| Eintragstyp | Beschreibung | Beispiel |
|---|---|---|
| A | IPv4-Adresszuordnung | example.com → 1.2.3.4 |
| AAAA | IPv6-Adresszuordnung | example.com → 2001:db8::1 |
| CNAME | Alias zu einer anderen Domain | www → example.com |
| MX | Mailserver-Routing | mail.example.com (Priorität: 10) |
| TXT | Texteintrag (SPF, DKIM usw.) | v=spf1 ip4:1.2.3.4 -all |
| NS | Nameserver-Definition | ns1.example.com |
| PTR | Reverse-DNS-Eintrag | 4.3.2.1 → example.com |
| SOA | Zone-Autoritätseintrag | TTL, Serial, Refresh-Infos |
DNS-Auflösungsprozess
Benutzer → Lokaler DNS-Cache → Rekursiver Resolver → Root NS → TLD NS → Autoritativer NS → IP-Adresse
DNS-Diagnose mit dem dig-Befehl
dig (Domain Information Groper) ist das leistungsstärkste Tool zur Diagnose von DNS-Problemen.
Grundlegende Verwendung
# A-Eintrag abfragen
dig example.com A
# Von einem bestimmten DNS-Server abfragen
dig @8.8.8.8 example.com A
# Kurze Ausgabe
dig example.com +short
# Alle Eintragstypen abfragen
dig example.com ANY
# MX-Eintrag abfragen
dig example.com MX
# NS-Eintrag abfragen
dig example.com NS
# TXT-Eintrag abfragen
dig example.com TXT
Detaillierte Abfragen
# Trace-Modus — zeigt den Auflösungsprozess Schritt für Schritt
dig example.com +trace
# SOA-Eintrag — Zone-Informationen
dig example.com SOA
# Reverse-DNS-Abfrage
dig -x 1.2.3.4
# Abfrage über TCP (für große Antworten)
dig example.com +tcp
# DNSSEC-Validierung
dig example.com +dnssec
dig-Ausgabe lesen
$ dig example.com A
;; QUESTION SECTION:
;example.com. IN A
;; ANSWER SECTION:
example.com. 300 IN A 93.184.216.34
;; AUTHORITY SECTION:
example.com. 86400 IN NS ns1.example.com.
;; Query time: 23 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; MSG SIZE rcvd: 56
Wichtige Felder:
- ANSWER SECTION: Die Abfrageantwort
- TTL (300): Wie lange der Eintrag im Cache bleibt (Sekunden)
- Query time: Antwortzeit
- SERVER: DNS-Server, der die Antwort geliefert hat
nslookup-Befehl
nslookup ist ein einfacheres Tool für DNS-Abfragen:
# Grundlegende Abfrage
nslookup example.com
# Von bestimmtem DNS-Server abfragen
nslookup example.com 8.8.8.8
# MX-Eintrag abfragen
nslookup -type=MX example.com
# NS-Eintrag abfragen
nslookup -type=NS example.com
# TXT-Eintrag abfragen
nslookup -type=TXT example.com
# Reverse DNS
nslookup 1.2.3.4
DNS-Propagationsprüfung
Wenn DNS-Änderungen vorgenommen werden, dauert es eine Weile, bis neue Einträge auf alle DNS-Server propagiert werden.
Propagationszeiten
| Eintragstyp | Typische TTL | Propagationszeit |
|---|---|---|
| A / AAAA | 300-3600 Sek. | 5 Min. - 1 Stunde |
| MX | 3600-86400 Sek. | 1 - 24 Stunden |
| NS | 86400 Sek. | 24 - 48 Stunden |
| TXT | 300-3600 Sek. | 5 Min. - 1 Stunde |
Prüfung von verschiedenen DNS-Servern
# Google DNS
dig @8.8.8.8 example.com A +short
# Cloudflare DNS
dig @1.1.1.1 example.com A +short
# Quad9 DNS
dig @9.9.9.9 example.com A +short
# Lokaler ISP-DNS
dig example.com A +short
Online-Propagationsprüftools:
Um die DNS-Propagation zu beschleunigen, senken Sie den TTL-Wert vor der Änderung (z.B. 300 Sekunden). Nach Abschluss der Änderung können Sie die TTL wieder erhöhen.
DNS-Cache leeren
Betriebssystem-Cache leeren
# Linux (systemd-resolved)
sudo systemd-resolve --flush-caches
sudo resolvectl flush-caches
# macOS
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder
# Windows
ipconfig /flushdns
DNS-Server-Cache leeren
# BIND named Cache leeren
sudo rndc flush
# Für eine bestimmte Zone
sudo rndc flushname example.com
# Unbound Cache leeren
sudo unbound-control flush_zone example.com
Browser-DNS-Cache
Um den DNS-Cache in Chrome zu leeren:
chrome://net-internals/#dns → Clear host cache
Häufige DNS-Probleme und Lösungen
1. NXDOMAIN (Domain nicht gefunden)
$ dig nonexistent.example.com
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN
Ursachen:
- Domainname falsch geschrieben
- DNS-Eintrag noch nicht erstellt
- Domain abgelaufen
Lösung:
# WHOIS-Informationen der Domain prüfen
whois example.com
# Nameserver prüfen
dig example.com NS +short
# Vom autoritativen NS abfragen
dig @ns1.example.com example.com A
2. SERVFAIL
Ursachen:
- Nameserver nicht erreichbar
- DNSSEC-Validierungsfehler
- Beschädigte Zone-Datei
Lösung:
# Nameserver-Erreichbarkeit prüfen
dig @ns1.example.com example.com A
# DNSSEC-Status prüfen
dig example.com +dnssec
# Mit anderem Resolver versuchen
dig @1.1.1.1 example.com A
3. Falsche IP-Adresse wird zurückgegeben
Ursachen:
- Veralteter DNS-Cache
- Falscher A-Eintrag
- DNS-Hijacking
Lösung:
# Cache leeren
sudo systemd-resolve --flush-caches
# Direkt vom autoritativen NS abfragen
dig @ns1.example.com example.com A +short
# Auflösungspfad mit Trace prüfen
dig example.com +trace
4. Langsame DNS-Auflösung
Lösung:
# DNS-Antwortzeit messen
dig example.com | grep "Query time"
# Verschiedene DNS-Server vergleichen
for dns in 8.8.8.8 1.1.1.1 9.9.9.9; do
echo "$dns: $(dig @$dns example.com +short +stats | grep 'Query time')"
done
Für dauerhafte DNS-Einstellungen verwenden Sie die systemd-resolved- oder NetworkManager-Konfiguration anstatt /etc/resolv.conf direkt zu bearbeiten.
DNS-Fehlerbehebungs-Checkliste
#!/bin/bash
# DNS-Fehlerbehebungsskript
DOMAIN="example.com"
echo "=== DNS-Fehlerbehebung: $DOMAIN ==="
echo -e "\n[1] Nameserver:"
dig $DOMAIN NS +short
echo -e "\n[2] A-Eintrag:"
dig $DOMAIN A +short
echo -e "\n[3] MX-Eintrag:"
dig $DOMAIN MX +short
echo -e "\n[4] TXT-Einträge:"
dig $DOMAIN TXT +short
echo -e "\n[5] Propagationsprüfung:"
for dns in 8.8.8.8 1.1.1.1 9.9.9.9; do
result=$(dig @$dns $DOMAIN A +short)
echo " $dns → $result"
done
echo -e "\n=== Prüfung abgeschlossen ==="
Fazit
DNS-Probleme gehören zu den häufigsten Problemen in der Serververwaltung. Durch effektive Nutzung von dig und nslookup können Sie Probleme schnell diagnostizieren, Propagationsprozesse verfolgen und Cache-Probleme lösen. Denken Sie daran, TTL-Werte vor DNS-Änderungen zu senken und nach Änderungen von verschiedenen DNS-Servern aus zu überprüfen.
Verwandte Artikel
SSH-Verbindungsproblem: Keine Verbindung zum Server möglich
Anleitung zur Behebung von SSH-Verbindungsproblemen: Path.net Firewall-Regeln, Default Block, Filterregel für SSH-Port erstellen und Fehlerbehebungsschritte.
RDP-Verbindungsproblem: Keine Verbindung zu Windows Server
Anleitung zur Behebung von RDP-Verbindungsproblemen: Path.net Firewall-Regeln, Default Block, Filterregel für RDP-Port erstellen und Fehlerbehebungsschritte.
MTR-Test durchführen und Ergebnisse an Support senden
Anleitung zum Netzwerktest mit WinMTR und Linux MTR, ICMP-Filterregel erstellen und Ergebnisse an das Support-Team senden. Paketverlust und Latenz diagnostizieren.