Beginnen wir mit einer schrittweisen Analyse.
; > DiG 9.11.3-1ubuntu1.11-Ubuntu > wdzwdz.com ;; globale Optionen: +cmd ;; Antwort erhalten: ;; ->>HEADER
Die Bedeutung all dessen ist wie folgt:
Erste Zeile: Hier sehen wir die genutzte Version von dig und die abgefragte Domain.
Globale Optionen: Wie wir noch sehen werden, ermöglicht dig das gleichzeitige Abfragen mehrerer Domains. Diese Zeile zeigt die Optionen an, die für alle Anfragen gelten. Im gezeigten Beispiel ist es nur die Standardoption „+cmd“ (Befehl).
Opcode: Query: Dies kennzeichnet den Typ der Operation, die ausgeführt wurde – in diesem Fall eine Abfrage. Dieser Wert kann auch „query“ für eine inverse Abfrage oder „status“ sein, wenn man lediglich den Status des DNS-Systems überprüft.
Status: Noerror: Hier wird bestätigt, dass keine Fehler aufgetreten sind und die Anfrage korrekt verarbeitet wurde.
ID: 12017: Diese zufällige ID dient der Zuordnung von Anfrage und Antwort.
Flags: qr rd ra: Diese Abkürzungen stehen für „Abfrage“, „Rekursion erwünscht“ und „Rekursion verfügbar“. Rekursion ist eine Methode der DNS-Suche, im Gegensatz zur iterativen Methode. Es könnte auch „AA“ für „autoritative Antwort“ erscheinen, was bedeutet, dass ein autoritativer Nameserver geantwortet hat.
Abfrage: 1: Dies zeigt die Anzahl der Abfragen in dieser Sitzung, in diesem Fall eine.
Antwort: 4: Hier sehen wir die Anzahl der Antworten in dieser Rückmeldung, nämlich vier.
Autorität: 0: Dies zeigt die Anzahl der Antworten, die von einem autoritativen Nameserver stammen; hier null. Die Antwort wurde aus dem Cache eines DNS-Vorläuferservers geholt. Die Antwort enthält keinen autoritativen Abschnitt.
Zusätzlich: 1: Hier wird eine zusätzliche Information angegeben. Es ist bemerkenswert, dass keine weiteren Details aufgeführt werden, es sei denn, dieser Wert ist zwei oder höher.
Pseudo-Sektion aktivieren
Weiter unten finden wir den Opt-Pseudo-Abschnitt:
;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 65494
Lassen Sie uns diesen Bereich aufschlüsseln:
EDNS: Version 0: Hier wird die verwendete Version des Erweiterungsmechanismus für DNS (EDNS) angezeigt. EDNS ermöglicht den Transport erweiterter Daten und Flags durch die Vergrößerung der UDP-Pakete. Dies wird durch ein variabel großes Flag dargestellt.
flags: Es werden keine Flags verwendet.
udp: 4096: Dies ist die UDP-Paketgröße.
Fragenbereich
Im Fragenbereich sehen wir Folgendes:
;; QUESTION SECTION: ;wdzwdz.com. IN A
Das bedeutet:
wdzwdz.com: Der Name der Domain, die abgefragt wird.
IN: Es handelt sich um eine Anfrage der Internetklasse.
A: Standardmäßig fordert dig einen A- (Adress-)Eintrag vom DNS-Server an.
Antwortbereich
Der Antwortbereich enthält die folgenden vier Antworten, die vom DNS-Server empfangen wurden:
wdzwdz.com. 3551 IN A 151.101.194.217 wdzwdz.com. 3551 IN A 151.101.130.217 wdzwdz.com. 3551 IN A 151.101.66.217 wdzwdz.com. 3551 IN A 151.101.2.217
Die Bedeutung dieser Antworten ist:
3551: Dies ist die Gültigkeitsdauer (Time to Live, TTL), ein 32-Bit-Integer mit Vorzeichen, der die Zeit angibt, für die ein Datensatz zwischengespeichert werden darf. Nach Ablauf dieser Zeit müssen die Daten bis zur Aktualisierung durch den DNS-Server in einer Antwort auf eine Anfrage wiederverwendet werden.
IN: Es handelt sich um eine Abfrage der Internetklasse.
A: Es wurde ein A-Eintrag vom DNS-Server angefordert.
Statistikbereich
Der Statistikbereich ist der letzte und enthält folgende Informationen:
;; Query time: 0 msec ;; SERVER: 127.0.0.53#53(127.0.0.53) ;; WHEN: Sun Mar 22 07:44:37 EDT 2020 ;; MSG SIZE rcvd: 106
Wir sehen hier:
Abfragezeit: 0 ms: Die benötigte Zeit, um die Antwort zu erhalten.
SERVER: 127.0.0.53#53(127.0.0.53): Die IP-Adresse und Portnummer des DNS-Servers, der geantwortet hat. In diesem Fall verweist es auf den lokalen Caching-Stub-Resolver, der DNS-Anfragen an die konfigurierten Upstream-DNS-Server weiterleitet. Auf dem Testcomputer Manjaro war die hier aufgeführte Adresse 8.8.8.8#53, was auf den öffentlichen DNS-Dienst von Google hinweist.
WANN: So, 22. März, 07:44:37 EDT 2020: Der Zeitpunkt der Anfrage.
MSG SIZE rcvd: 106: Die Größe der vom DNS-Server empfangenen Nachricht.
Selektive Anzeige
Man muss sich nicht zwischen knapp und wortreich entscheiden. Dig erlaubt es, Abschnitte gezielt in die Ergebnisse einzubeziehen oder auszuschließen.
Die folgenden Optionen entfernen die jeweiligen Abschnitte aus den Ergebnissen:
+nocomments: Kommentarzeilen werden nicht angezeigt.
+noauthority: Der Autorisierungsabschnitt wird nicht angezeigt.
+noadditional: Der zusätzliche Abschnitt wird nicht angezeigt.
+nostats: Der Statistikbereich wird nicht angezeigt.
+noanswer: Der Antwortabschnitt wird nicht angezeigt.
+noall: Es wird nichts angezeigt!
Die Option „+noall“ wird in der Regel mit einer der obigen kombiniert, um einen bestimmten Abschnitt in die Ergebnisse einzubeziehen. Anstatt also eine lange Reihe von Abfrageoptionen einzugeben, um mehrere Abschnitte zu deaktivieren, kann man „+noall“ verwenden, um alle zu deaktivieren.
Dann können folgende inklusive Abfrageoptionen verwendet werden, um die gewünschten Abschnitte wieder zu aktivieren:
+comments: Kommentarzeilen anzeigen.
+authority: Zeigt den Autorisierungsabschnitt an.
+additional: Zeigt den zusätzlichen Abschnitt an.
+stats: Zeigt den Statistikbereich an.
+answer: Zeigt den Antwortabschnitt an.
+all: Zeigt alles an.
Um eine Anfrage zu stellen und die Kommentarzeilen auszublenden, gibt man Folgendes ein:
dig wdzwdz.com +nocomments
Verwendet man die Option „+noall“ allein, wie unten gezeigt, erhält man keine verwertbare Ausgabe:
dig wdzwdz.com +noall
Wir können die Abschnitte, die wir sehen möchten, selektiv hinzufügen. Um den Antwortabschnitt hinzuzufügen, geben wir Folgendes ein:
dig wdzwdz.com +noall +answer
Geben wir Folgendes ein, um die „+stats“-Option zu aktivieren, sehen wir auch den Statistikbereich:
dig wdzwdz.com +noall +answer +stats
Die Kombination „+noall +answer“ wird häufig genutzt. Bei Bedarf können weitere Abschnitte zur Befehlszeile hinzugefügt werden. Um zu vermeiden, bei jeder Nutzung von dig die Eingabe von „+noall +answer“ zu wiederholen, können diese in eine Konfigurationsdatei namens „.digrc“ im Home-Verzeichnis eingetragen werden.
Um eine solche Datei mit dem Befehl echo zu erstellen, geben wir Folgendes ein:
echo "+noall +answer" > $HOME/.digrc
Zur Überprüfung des Inhalts, geben wir Folgendes ein:
cat .digrc
Diese beiden Optionen werden nun für alle zukünftigen Nutzungen von dig übernommen, wie unten gezeigt:
dig ubuntu.org
dig linux.org
dig github.com
Diese dig-Konfigurationsdatei wird für die restlichen Beispiele dieses Artikels genutzt.
DNS-Einträge
Die von dig-Anfragen zurückgegebenen Informationen stammen aus verschiedenen Arten von Datensätzen, die auf dem DNS-Server gespeichert sind. Wenn man nicht etwas anderes anfordert, fragt dig den Datensatz A (Adresse) ab. Folgende Arten von Datensätzen werden häufig mit dig genutzt:
A-Record: Verknüpft die Domain mit einer IP-Adresse der Version 4.
MX-Eintrag: Mail-Exchange-Einträge leiten E-Mails, die an Domains gesendet werden, an den richtigen Mailserver.
NS-Eintrag: Nameserver-Einträge delegieren eine Domain (oder Subdomain) an eine Reihe von DNS-Servern.
TXT-Record: Text-Records speichern textbasierte Informationen zur Domain. Sie werden in der Regel verwendet, um gefälschte oder manipulierte E-Mails zu unterdrücken.
SOA-Record: Der Start der Autorisierungsdaten kann viele Informationen über die Domain enthalten. Hier findet man den primären Nameserver, die verantwortliche Stelle, einen Zeitstempel für Änderungen, die Häufigkeit der Zonenaktualisierungen und einige Zeitlimits für Wiederholungen und Abbrüche.
TTL: Die Gültigkeitsdauer ist eine Einstellung für jeden DNS-Eintrag, die angibt, wie lange ein DNS-Vorläuferserver jede DNS-Abfrage zwischenspeichern darf. Nach dieser Zeit müssen die Daten für nachfolgende Anfragen aktualisiert werden.
ANY: Diese Option weist dig an, jeden möglichen DNS-Eintrag zurückzugeben.
Die Angabe des Datensatztyps A ändert nichts an der Standardaktion, die darin besteht, den Adressdatensatz abzufragen und die IP-Adresse abzurufen, wie unten gezeigt:
dig redhat.com A
Um die E-Mail-Austauschdatensätze abzufragen, wird die folgende MX-Option verwendet:
dig yahoo.com MX
Die Nameserver-Option gibt die Namen der Root-Nameserver zurück, die der Top-Level-Domain zugeordnet sind:
dig fedora.com NS
Um den Beginn des Autorisierungsdatensatzes abzufragen, wird die folgende SOA-Option eingegeben:
dig manjaro.com SOA
Die TTL-Option zeigt die Gültigkeitsdauer der Daten im Cache des DNS-Servers. Bei einer Reihe von Anfragen kann man beobachten, wie die Gültigkeitsdauer auf null sinkt und dann wieder auf ihren Ausgangswert zurückspringt.
Wir geben folgendes ein:
dig usa.gov TTL
Um die Textdatensätze anzuzeigen, gibt man die Option TXT ein:
dig usa.gov TXT
Angabe des DNS-Servers
Wenn ein bestimmter DNS-Server für eine Anfrage genutzt werden soll, kann dieser mit dem „@“-Zeichen als Befehlszeilenparameter an dig übergeben werden.
Standardmäßig verweist dig auf den lokalen Caching-Stub-Resolver auf 127.0.0.53 (siehe unten).
dig usa.gov +stats
Um den öffentlichen DNS-Server von Google auf 8.8.8.8 zu nutzen, geben wir Folgendes ein:
dig @8.8.8.8 usa.gov +stats
Verwenden von dig mit mehreren Domains
Man kann mehrere Domains an die Befehlszeile übergeben, wie unten gezeigt:
dig ubuntu.org fedora.org manjaro.com
Wenn regelmäßig eine Reihe von Domains überprüft werden soll, können diese in einer Textdatei gespeichert und an dig übergeben werden. Alle Domains in der Datei werden nacheinander geprüft.
Unsere Datei heißt „domains.txt“. Wir verwenden den Befehl cat, um den Inhalt anzuzeigen, und übergeben ihn dann mit der Option -f (Datei) an dig. Wir geben folgendes ein:
cat domains.txt
dig -f domains.txt
Reverse DNS-Lookups
Wenn eine IP-Adresse bekannt ist und man erfahren möchte, wohin sie führt, kann eine Reverse-DNS-Suche versucht werden. Wenn sie zu einem Server aufgelöst wird, der bei einem DNS-Server registriert ist, kann man möglicherweise die Domain herausfinden.
Ob dies möglich ist, hängt vom Vorhandensein eines PTR (Pointer Record) ab. PTRs lösen eine IP-Adresse in einen vollständigen Domainnamen auf. Da diese jedoch nicht obligatorisch sind, sind sie nicht immer vorhanden.
Versuchen wir herauszufinden, wohin die IP-Adresse 209.51.188.148 führt. Wir geben Folgendes mit der Option -x (Reverse Lookup) ein:
dig -x 209.51.188.148
Perfekt! Die IP-Adresse wird zu gnu.org aufgelöst.
Da ein PTR ein DNS-Eintrag ist und wir wissen, dass dig bestimmte DNS-Einträge anfordern kann, könnten wir dig nicht einfach bitten, den PTR für uns abzurufen? Ja, das ist möglich, erfordert aber etwas mehr Aufwand.
Wir müssen die IP-Adresse in umgekehrter Reihenfolge angeben und „.in-addr.arpa“ am Ende anfügen, wie unten gezeigt:
dig ptr 148.188.51.209.in-addr.arpa
Wir erhalten dasselbe Ergebnis, jedoch mit etwas mehr Aufwand.
Kannst du es ausgraben?
Wir alle nutzen das Internet täglich, und neugierige Geister fragen sich oft, wie die Magie funktioniert, wenn wir den Namen einer Website in einen Browser eingeben. Mit dig können Sie die Prozesse dieser Netzwerk-Zauberei erkunden.