
dig, ursprünglich ein Akronym für Domain Information Groper, ist ein Kommandozeilenwerkzeug zur DNS-Abfrage, das als Teil des Berkeley Internet Name Domain (BIND)-Projekts entstanden ist. Entwickelt wurde es von der Internet Systems Consortium (ISC) im Rahmen ihrer Arbeiten an der Referenzimplementierung des DNS-Protokolls. Seit den frühen 1990er Jahren dient dig als moderne Alternative zu älteren Werkzeugen wie nslookup und wurde mit der Einführung von BIND 9 vollständig überarbeitet. Es bietet tieferen Zugriff auf DNS-Mechanismen, erlaubt präzise Steuerung von Abfragen und hat sich im Laufe der Jahre als unverzichtbares Werkzeug für Netzwerkadministratoren, Entwickler und Architekten verteilter Systeme etabliert.
DNS – ein kurzer Überblick
Das Domain Name System (DNS) ist ein hierarchisch aufgebautes System zur Namensauflösung: Es übersetzt z. B. example.com in eine IP-Adresse. Dabei wird eine Kette von Servern abgefragt: Zunächst ein Root-Server, dann die zuständige TLD (.com), dann der Authoritative Name Server für example.com.
Es gibt verschiedene Ressourcentypen wie A, AAAA, CNAME, MX, TXT, NS oder SRV. Jeder Eintrag hat eine TTL (Time to Live), die angibt, wie lange der Record gecacht werden darf. Und: es gibt keine Garantie, dass alle DNS-Resolver gleich antworten – darum ist ein Tool wie dig, das gezielte Abfragen erlaubt, so wertvoll.
Aufbaue der dig-Standardausgabe
Der Befehl dig pflugradts.de
führt zu einer Ausgabe ähnlich folgender:
; <<>> DiG 9.10.6 <<>> pflugradts.de
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50231
;; flags: qr rd ra; QUERY: 1, ANSWER: 7, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; OPT=15: 00 03 ("..")
;; QUESTION SECTION:
;pflugradts.de. IN A
;; ANSWER SECTION:
pflugradts.de. 0 IN A 104.21.16.1
pflugradts.de. 0 IN A 104.21.64.1
pflugradts.de. 0 IN A 104.21.112.1
pflugradts.de. 0 IN A 104.21.32.1
pflugradts.de. 0 IN A 104.21.48.1
pflugradts.de. 0 IN A 104.21.80.1
pflugradts.de. 0 IN A 104.21.96.1
;; Query time: 124 msec
;; SERVER: 10.0.0.2#53(10.0.0.2)
;; WHEN: Sun Apr 20 11:07:05 CEST 2025
;; MSG SIZE rcvd: 160
Diese Ausgabe besteht aus mehreren Abschnitten.
Kopfzeile
; <<>> DiG 9.10.6 <<>> pflugradts.de
;; global options: +cmd
Dies ist die Versions- und Befehlszeile. dig teilt mit, in welcher Version (hier: 9.10.6) es läuft, und welches Ziel (pflugradts.de) abgefragt wurde. Die Option +cmd ist standardmäßig aktiv und bewirkt, dass diese Kopfzeile sowie die nachfolgenden Kommentare angezeigt werden.
Header-Sektion
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50231
;; flags: qr rd ra; QUERY: 1, ANSWER: 7, AUTHORITY: 0, ADDITIONAL: 1
Der Header enthält Metainformationen zur DNS-Anfrage und -Antwort, wie Status, Anzahl der Sektionen und gesetzte Flags.
- opcode: QUERY – Es handelt sich um eine normale Abfrage.
- status: NOERROR – Die Anfrage war erfolgreich.
- id: 50231 – Eine zufällige ID zur Identifizierung der Anfrage. Relevant bei parallelen Anfragen.
- flags:
- qr – Antwort (nicht Frage),
- rd – Recursion Desired (Rekursion vom Resolver gewünscht),
- ra – Recursion Available (vom antwortenden Server angeboten).
- QUERY: 1 – Eine Frage wurde gestellt.
- ANSWER: 7 – Sieben Antworten wurden empfangen.
- AUTHORITY: 0 – Keine autoritativen NS-Angaben enthalten.
- ADDITIONAL: 1 – Ein zusätzlicher (nicht direkt zur Antwort gehöriger) Record, meist EDNS-bezogen.
Pseudo-Sektion
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; OPT=15: 00 03 ("..")
Diese „Pseudo-Sektion“ gehört zur EDNS0-Erweiterung (Extension Mechanisms for DNS). Sie gibt u. a. die UDP-Paketgröße an (hier: 1232 Bytes), was moderne Resolver aushandeln, um längere DNS-Antworten effizienter zu verarbeiten. OPT=15 ist ein vendor-spezifischer EDNS-Optionseintrag. Die Bedeutung ist kontextabhängig.
Anfrage-Sektion
;; QUESTION SECTION:
;pflugradts.de. IN A
Dieser Abschnitt enthält die gestellte Anfrage: „Was ist der A-Record (IPv4-Adresse) für pflugradts.de?“ IN steht für die Internet-Klasse, was in nahezu allen DNS-Anfragen Standard ist.
Antwort-Sektion
pflugradts.de. 0 IN A 104.21.16.1
pflugradts.de. 0 IN A 104.21.64.1
pflugradts.de. 0 IN A 104.21.112.1
pflugradts.de. 0 IN A 104.21.32.1
pflugradts.de. 0 IN A 104.21.48.1
pflugradts.de. 0 IN A 104.21.80.1
pflugradts.de. 0 IN A 104.21.96.1
Es wurden sieben IPv4-Adressen geliefert – alle beginnend mit 104.21.*.*. In diesem Fall sind es so viele Adressen, weil die Domain bei Cloudflare, einem Anbieter mit Anycast-Routing, gehostet wird. Die Antworten werden nicht gecacht, da die Time to Live auf 0 gesetzt ist.
Schlusszeile
;; Query time: 124 msec
;; SERVER: 10.0.0.2#53(10.0.0.2)
;; WHEN: Sun Apr 20 11:07:05 CEST 2025
;; MSG SIZE rcvd: 160
Die Schlusszeile fasst technische Eckdaten wie Antwortzeit, genutzten Resolver, Zeitpunkt und Größe der Nachricht kompakt zusammen.
- Query time: Die Dauer der gesamten Abfrage, hier 124 Millisekunden.
- SERVER: Der verwendete Resolver war 10.0.0.2. (ein interner DNS-Server).
- WHEN: Der Zeitpunkt der Anfrage.
- MSG SIZE rcvd: Die Gesamtgröße der DNS-Antwort, hier 160 Bytes.
Nützliche Flags
dig unterstützt diverse Flags, um gezielt nur bestimmte Teile der DNS-Antwort anzuzeigen, die Ausgabe zu kürzen, spezielle Record-Typen abzufragen oder gezielt einzelne Nameserver zu befragen.
Nur die IP-Adresse anzeigen
Das Flag +short
reduziert die Ausgabe auf die IP-Adresse(n) zum A-Record der Domain.
dig +short pflugradts.de
Einen bestimmten Nameserver befragen
So lassen sich z.B. Cache-Unterschiede zwischen Namenservern wie Google DNS und Cloudflare feststellen.
dig @1.1.1.1 pflugradts.de
Mailserver einer Domain ermitteln
Für die Domain pflugradts.de ist der Mailserver beispielsweise mail.pflugradts.de.
dig pflugradts.de MX
TXT-Records prüfen
Hiermit lassen sich zum Beispiel SPF- und DKIM-Einträge oder ACME-Challenges abfragen.
dig pflugradts.de TXT
Nameserver ermitteln
Für die Domain pflugradts.de werden beispielsweise die Nameserver von Cloudflare genutzt.
dig pflugradts.de NS
Domain zu einer IP-Adresse ermitteln
Dies löst eine PTR-Anfrage aus und wird z. B. bei Spamfiltern verwendet, um zu erkennen, ob ein Server korrekt rückwärts auflösbar ist. Die IP-Adresse im nachfolgenden Beispiel löst zu mail.pflugradts.de auf.
dig -x 8.206.169.81
Automatisierung
dig lässt sich dank +short
und spezifischer Record-Typen wunderbar in Skripten einsetzen, z.B. um auf das Vorhandensein einer bestimmten ACME-Challenge zu prüfen:
if dig +short txt \
_acme-challenge.pflugradts.de | \
grep "challenge-string"
then
echo "Challenge vorhanden"
else
echo "Challenge fehlt"
fi
Debugging mit +trace
Mit dem Flag +trace
lässt sich der vollständige DNS-Auflösungsweg einer Domain Schritt für Schritt nachvollziehen – beginnend bei einem Root-Nameserver bis hin zur endgültigen Antwort. Dabei folgt dig iterativ allen Delegationen, die eine Domain durchläuft: von der Root-Zone (.) über die TLD (.uk), die Second-Level-Domain (ac.uk), weitere Subzonen (cam.ac.uk, cl.cam.ac.uk) bis zum finalen A-Record von www.cl.cam.ac.uk. Dies ist besonders hilfreich bei der Fehlersuche in komplexen Namespaces oder bei Problemen mit DNS-Delegationen.
dig +trace www.cl.cam.ac.uk @a.root-servers.net
Die nachfolgend gekürzte Ausgabe des Befehls veranschaulicht die einzelnen DNS-Delegationen, die bei der Auflösung dieser Domain durchlaufen werden, von der Root-Zone bis zum zuständigen autoritativen Nameserver.
; <<>> DiG 9.10.6 <<>> +trace www.cl.cam.ac.uk @a.root-servers.net
;; global options: +cmd
. 518400 IN NS j.root-servers.net.
;; Received 1097 bytes from 198.41.0.4#53(a.root-servers.net) in 17 ms
uk. 172800 IN NS dns3.nic.uk.
;; Received 884 bytes from 192.58.128.30#53(j.root-servers.net) in 14 ms
ac.uk. 172800 IN NS ns0.ja.net.
;; Received 414 bytes from 213.248.220.1#53(dns3.nic.uk) in 13 ms
cam.ac.uk. 86400 IN NS ns3.mythic-beasts.com.
;; Received 578 bytes from 193.63.94.20#53(ns0.ja.net) in 20 ms
www.cl.cam.ac.uk. 21600 IN A 128.232.0.20
;; Received 1219 bytes from 185.24.221.32#53(ns3.mythic-beasts.com) in 20 ms
Fazit
Ob zur Fehlersuche in produktiven Systemen, zur Kontrolle von DNS-Konfigurationen oder zur Analyse komplexer Delegationsstrukturen – dig ist weit mehr als ein simples Abfragewerkzeug. Es gewährt Einblick in das Innenleben des DNS, bietet volle Kontrolle über Auflösungspfad und Antwortformat und gehört in jede Entwickler- und Admin-Werkzeugkiste. Wer versteht, was dig zeigt, erkennt frühzeitig Probleme, vermeidet Überraschungen im Live-Betrieb und gewinnt ein tiefes Verständnis für die Infrastruktur, auf der moderne Systeme ruhen.