DNS-Einträge in Linux mit dig und nslookup abfragen

CompTIABeginner
Jetzt üben

Einführung

In diesem Labor lernen Sie die Grundlagen des Abfragens von Domain Name System (DNS)-Einträgen über die Kommandozeile in einer Linux-Umgebung. Sie werden zwei leistungsstarke und gängige Dienstprogramme, dig und nslookup, verwenden, um verschiedene Arten von DNS-Abfragen durchzuführen. Diese praktische Erfahrung ist für Netzwerkadministratoren und Systemingenieure unerlässlich, um Probleme bei der Namensauflösung zu beheben und Netzwerkkonfigurationen zu verstehen.

Sie beginnen damit, den Standard-DNS-Server Ihres Systems zu identifizieren, indem Sie die Datei /etc/resolv.conf untersuchen. Anschließend führen Sie mehrere gängige DNS-Abfragen durch, darunter das Ermitteln der IP-Adresse einer Domain (A-Eintrag), das Auffinden eines Hostnamens anhand einer IP-Adresse mit einer Reverse-Lookup-Abfrage (PTR-Eintrag) und das Abrufen von Mail Exchange (MX)-Einträgen für eine Domain. Abschließend lernen Sie, wie Sie Ihre Abfragen an einen bestimmten öffentlichen DNS-Server richten, anstatt den Standard Ihres Systems zu verwenden.

Identifizieren Sie den Standard-DNS-Server Ihres Systems mit cat

In diesem Schritt lernen Sie, wie Sie die Standard-DNS-Server identifizieren, die Ihr System verwendet. DNS (Domain Name System)-Server sind dafür verantwortlich, menschenlesbare Domainnamen (wie www.google.com) in maschinenlesbare IP-Adressen (wie 142.250.186.132) zu übersetzen. Zu verstehen, welche DNS-Server Ihr System standardmäßig abfragt, ist der erste und wichtigste Schritt zur Diagnose von Problemen bei der Namensauflösung.

Auf den meisten Linux-Systemen ist diese Konfiguration in einer Datei unter /etc/resolv.conf gespeichert. Wir verwenden den Befehl cat, ein Standarddienstprogramm zum Verketten und Anzeigen von Dateiinhalten, um diese Datei anzuzeigen.

Öffnen Sie Ihr Terminal und führen Sie den folgenden Befehl aus, um den Inhalt der Datei resolv.conf anzuzeigen:

cat /etc/resolv.conf

Sie sehen eine Ausgabe, die der folgenden ähnelt. Die IP-Adressen, die nach der Direktive nameserver aufgeführt sind, sind die DNS-Server, die Ihr System zur Auflösung von Domainnamen kontaktiert.

## Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
##     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
## 127.0.0.53 is the systemd-resolved stub resolver.
## run "systemd-resolve --status" to see details about the actual nameservers.

nameserver 127.0.0.53
options timeout:2 attempts:3 rotate single-request-reopen

Aus der Ausgabe können Sie ersehen, dass 127.0.0.53 der primäre DNS-Server für dieses System ist. Alle DNS-Abfragen, die Sie ohne Angabe eines bestimmten Servers durchführen, werden standardmäßig hierhin gesendet. Nun, da Sie wissen, wie Sie Ihren Standard-DNS-Server finden, sind Sie bereit, Ihre erste DNS-Abfrage im nächsten Schritt durchzuführen.

IP-Adresse einer Domain (A Record) mit dig und nslookup finden

In diesem Schritt führen Sie eine Standard-Forward-DNS-Abfrage durch, bei der ein Domainname in eine IP-Adresse aufgelöst wird. Dies ist eine der häufigsten Funktionen von DNS. Der spezifische Eintragstyp, der einen Domainnamen einer IPv4-Adresse zuordnet, wird als A-Record bezeichnet. Wir werden für diese Aufgabe zwei beliebte Kommandozeilenwerkzeuge verwenden: nslookup und dig.

Zuerst müssen Sie sicherstellen, dass diese Werkzeuge installiert sind. Sie sind Teil des Pakets dnsutils auf Debian-basierten Systemen wie Ubuntu. Lassen Sie uns Ihre Paketliste aktualisieren und es installieren.

sudo apt-get update
sudo apt-get install -y dnsutils

Nachdem die Werkzeuge bereit sind, verwenden wir nslookup (steht für "name server lookup"), um die IP-Adresse für www.google.com zu finden.

nslookup www.google.com

Die Ausgabe zeigt Ihnen den Server, der die Abfrage beantwortet hat (Ihren Standard aus Schritt 1) und die "Non-authoritative answer", die die mit www.google.com verbundenen IP-Adressen enthält.

Server:         127.0.0.53
Address:        127.0.0.53#53

Non-authoritative answer:
Name:   www.google.com
Address: 142.250.189.196
Name:   www.google.com
Address: 2607:f8b0:4005:80d::2004

Als Nächstes führen wir dieselbe Abfrage mit dig (Domain Information Groper) durch. dig wird von Systemadministratoren oft bevorzugt, da es detailliertere, strukturiertere Ausgaben liefert.

dig www.google.com

Untersuchen Sie die Ausgabe von dig. Sie ist in Abschnitte unterteilt. Der QUESTION SECTION zeigt, wonach Sie gefragt haben (ein A-Record für www.google.com). Der ANSWER SECTION liefert das Ergebnis, einschließlich der IP-Adresse und des TTL (Time To Live)-Werts, der angibt, wie lange ein Resolver diese Informationen zwischenspeichern kann.

; <<>> DiG 9.18.1-1ubuntu1.3-Ubuntu <<>> www.google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5247
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;www.google.com.                        IN      A

;; ANSWER SECTION:
www.google.com.         7       IN      A       142.251.46.196

;; Query time: 0 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)
;; WHEN: Mon Jul 14 14:55:18 CST 2025
;; MSG SIZE  rcvd: 59

Durch den Vergleich der beiden Ausgaben können Sie sehen, dass beide Werkzeuge zwar dasselbe Ziel erreichen, dig jedoch eine wesentlich umfassendere Ansicht der DNS-Antwort bietet.

Hostname anhand einer IP-Adresse (PTR Record) mit dig -x finden

In diesem Schritt führen Sie eine Reverse-DNS-Abfrage durch. Während eine Forward-Abfrage einen Domainnamen in eine IP-Adresse auflöst, tut eine Reverse-Abfrage das Gegenteil: Sie findet den Hostnamen, der einer bestimmten IP-Adresse zugeordnet ist. Dieser Prozess basiert auf einem speziellen Typ von DNS-Eintrag, dem sogenannten PTR (Pointer) Record. Reverse-Abfragen werden häufig von Mailservern zur Überprüfung der Identität des Absenders und zur Netzwerkfehlerbehebung verwendet, um die Quelle des Datenverkehrs zu identifizieren.

Wir verwenden eine der IP-Adressen für www.google.com, die Sie im vorherigen Schritt entdeckt haben. Nehmen wir als Beispiel 142.251.46.196.

Versuchen wir zuerst eine Reverse-Abfrage mit nslookup, das Sie bereits kennen. Geben Sie einfach die IP-Adresse als Argument an:

nslookup 142.251.46.196

Die Ausgabe zeigt den Namen, der der IP-Adresse zugeordnet ist und in einer speziellen in-addr.arpa-Domain gespeichert ist, die für Reverse-DNS verwendet wird.

196.46.251.142.in-addr.arpa     name = nuq04s45-in-f4.1e100.net.

Authoritative answers can be found from:

Führen wir nun dieselbe Reverse-Abfrage mit dig durch. Der Befehl dig verwendet die Option -x, um eine Reverse-Abfrage anzugeben. Dies ist eine praktische Abkürzung, die die Abfrage für Sie korrekt formatiert.

dig -x 142.251.46.196

Beobachten Sie die Ausgabe. Im ANSWER SECTION finden Sie den PTR-Record, der die IP-Adresse zurück zu ihrem Hostnamen abbildet. Beachten Sie, wie der QUESTION SECTION die IP-Adresse umgekehrt und mit .in-addr.arpa ergänzt anzeigt, was das Standardformat für IPv4-Reverse-DNS-Abfragen ist.

; <<>> DiG 9.18.1-1ubuntu1.3-Ubuntu <<>> -x 142.251.46.196
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46896
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;196.46.251.142.in-addr.arpa.   IN      PTR

;; ANSWER SECTION:
196.46.251.142.in-addr.arpa. 10 IN      PTR     nuq04s45-in-f4.1e100.net.

;; Query time: 0 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)
;; WHEN: Mon Jul 14 14:56:11 CST 2025
;; MSG SIZE  rcvd: 94

Sie haben nun erfolgreich sowohl nslookup als auch dig verwendet, um eine Reverse-DNS-Abfrage durchzuführen und eine IP-Adresse zurück in einen Hostnamen zu übersetzen.

Mail Exchange (MX) Records einer Domain mit dig abfragen

In diesem Schritt lernen Sie, wie Sie einen weiteren wichtigen DNS-Eintragstyp abfragen: den Mail Exchange (MX) Record. MX-Records sind für die E-Mail-Zustellung unerlässlich. Sie geben an, welche Mailserver für den Empfang von E-Mails im Namen einer Domain zuständig sind. Wenn Sie eine E-Mail an user@example.com senden, führt Ihr Mailserver zuerst eine DNS-Abfrage für die MX-Records von example.com durch, um herauszufinden, wohin die Nachricht gesendet werden soll.

Wir werden weiterhin den Befehl dig verwenden, um die MX-Records für die Domain google.com abzufragen. Dazu geben Sie den Domainnamen gefolgt vom Record-Typ (MX) an.

Führen Sie in Ihrem Terminal den folgenden Befehl aus:

dig google.com MX

Die Ausgabe wird ähnlich sein wie das, was Sie zuvor gesehen haben, aber der ANSWER SECTION enthält nun MX-Records anstelle von A-Records.

; <<>> DiG 9.18.1-1ubuntu1.3-Ubuntu <<>> google.com MX
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45070
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;google.com.                    IN      MX

;; ANSWER SECTION:
google.com.             10      IN      MX      10 smtp.google.com.

;; Query time: 12 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)
;; WHEN: Mon Jul 14 14:56:29 CST 2025
;; MSG SIZE  rcvd: 60

Beachten Sie die Zahl (10) vor dem Hostnamen des Mailservers im ANSWER SECTION. Dies ist der Präferenz- oder Prioritätswert. Mailserver versuchen zuerst, E-Mails an den Server mit der niedrigsten Prioritätszahl zuzustellen. Wenn dieser Server nicht verfügbar ist, versuchen sie es mit dem nächdniedrigsten und so weiter. Dies bietet ein System von primären und Backup-Mailservern.

Spezifischen öffentlichen DNS-Server mit dig @<server> abfragen

In diesem letzten Schritt lernen Sie, wie Sie den Standard-DNS-Server Ihres Systems umgehen und eine Abfrage direkt an einen bestimmten öffentlichen DNS-Server senden. Dies ist eine äußerst nützliche Technik zur Fehlerbehebung. Wenn Sie beispielsweise eine Domain nicht mit Ihrem Standardserver auflösen können, können Sie einen zuverlässigen öffentlichen Server wie Google (8.8.8.8) oder Cloudflare (1.1.1.1) abfragen, um festzustellen, ob das Problem bei Ihrer lokalen Konfiguration oder einem weiter verbreiteten Problem liegt.

Der Befehl dig macht dies einfach. Sie können den zu verwendenden DNS-Server angeben, indem Sie dessen IP-Adresse mit einem @-Symbol voranstellen.

Lassen Sie uns Googles öffentlichen DNS-Server unter 8.8.8.8 abfragen, um die IP-Adresse für www.cloudflare.com zu ermitteln.

dig @8.8.8.8 www.cloudflare.com

Untersuchen Sie nun sorgfältig die Ausgabe. Achten Sie besonders auf die Zeile SERVER am unteren Rand. Sie sollte 8.8.8.8#53 anzeigen, was bestätigt, dass Ihre Abfrage an Googles DNS-Server gesendet und von diesem beantwortet wurde und nicht an den Standardserver Ihres Systems (127.0.0.53 aus Schritt 1).

; <<>> DiG 9.18.1-1ubuntu1.3-Ubuntu <<>> @8.8.8.8 www.cloudflare.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62439
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;www.cloudflare.com.            IN      A

;; ANSWER SECTION:
www.cloudflare.com.     300     IN      A       104.16.123.96
www.cloudflare.com.     300     IN      A       104.16.124.96

;; Query time: 16 msec
;; SERVER: 8.8.8.8#53(8.8.8.8) (UDP)
;; WHEN: Mon Jul 14 14:56:45 CST 2025
;; MSG SIZE  rcvd: 79

Sie haben erfolgreich eine DNS-Abfrage an einen bestimmten Server gerichtet, eine mächtige Fähigkeit zur Diagnose von Netzwerk- und Namensauflösungsproblemen. Damit ist das Lab zur Verwendung von nslookup und dig für clientseitige DNS-Abfragen abgeschlossen.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie grundlegende DNS-Abfragen auf einem Linux-System durchführen. Sie haben damit begonnen, den Standard-DNS-Server Ihres Systems zu identifizieren, indem Sie die Datei /etc/resolv.conf mit dem Befehl cat untersucht haben. Anschließend haben Sie die Dienstprogramme dig und nslookup verwendet, um eine Standard-Vorwärtsauflösung durchzuführen und einen Domainnamen in seine entsprechende IP-Adresse (A-Record) aufzulösen.

Anschließend haben Sie fortgeschrittenere Abfragen erkundet, einschließlich Reverse-Lookups, um mit dig -x einen Hostnamen aus einer IP-Adresse (PTR-Record) zu finden, und wie Sie die Mail-Exchange-Records (MX) einer Domain abrufen. Schließlich haben Sie gelernt, wie Sie die Standardeinstellungen des Systems umgehen, indem Sie Ihre DNS-Abfrage mit der Syntax dig @<server> an einen bestimmten öffentlichen Server richten, eine entscheidende Fähigkeit zur Fehlerbehebung und zum Testen der Namensauflösung.