Dig-Einführung: Dig ist ein Tool, das DNS einschließlich NS-Einträgen, A-Einträgen, MX-Einträgen und anderen zugehörigen Informationen im Unix-ähnlichen Befehlszeilenmodus abfragt. Da es immer noch an Dokumentation der Dig-Manpages mangelt, dient dieser Artikel als Leitfaden zur Verwendung von Dig. Der Quellcode von Dig ist Teil des ISC BIND-Pakets, wird aber in den meisten Dokumentationen zum Kompilieren und Installieren von Bind nicht erwähnt. Auf Linux-Systemen ist er jedoch normalerweise Teil eines Pakets, wie z. B. bind-tools in Gentoo, bind-utils in Redhat/Fedora oder dnsutils in Debian. Wenn Sie Informationen zum Konfigurieren von Bind suchen, können Sie meinen Artikel lesen: Bind für das Einkaufszentrum-LAN (http://www.madboa.com/geek/soho-bind/). Verstehen Sie die Standardausgabe: Die einfachste und häufigste Abfrage besteht darin, einen einzelnen Host abzufragen, aber standardmäßig ist die Ausgabe von Dig sehr detailliert. Sie benötigen möglicherweise nicht die gesamte Ausgabe, aber es ist auf jeden Fall wichtig zu wissen Hier ist eine kommentierte Abfrage: $ dig www.isc.org Oben ist die Befehlszeile, die ich zum Aufrufen von dig verwendet habe. ; <<>> DiG 9.2.3 <<>> www.isc.org ;; globale Optionen: printcmd Ein Teil der Dig-Ausgabe gibt uns Informationen über die Version (Version 9.2.3) und die globalen Einstellungen. Wenn +nocmd der erste Parameter in der Befehlszeile ist, kann dieser Teil der Ausgabe durch Hinzufügen von +nocmd abgefragt werden. ;; Antwort erhalten: ;; ->>HEADER<<- Operationscode: QUERY, Status: NOERROR, ID: 43071 ;; Flags: qr rd ra; Anfrage: 1, Antwort: 1, Autorität: 3, Zusatz: 3 Hier teilt uns Dig einige technische Informationen mit, die vom DNS zurückgegeben werden. Diese Informationen können mit der Option +[no]comments gesteuert werden. Seien Sie jedoch vorsichtig, das Deaktivieren von Kommentaren kann auch einige andere Optionen deaktivieren. ;; FRAGENABSCHNITT: ;www.isc.org. IN A In diesem Abfrageabschnitt zeigt Dig die Ausgabe unserer Abfrage an. Die Standardabfrage besteht darin, A-Datensätze abzufragen. Sie können diese mit der Option +[no]question anzeigen oder deaktivieren. ;; ANTWORT-ABSCHNITT: www.isc.org.600 IN A 204.152.184.88 Schließlich erhalten wir die Ergebnisse unserer Abfrage. Die Adresse von www.isc.org lautet 204.152.184.8. Ich weiß nicht, warum Sie diese Ausgabe lieber herausfiltern möchten, aber Sie können diese Optionen mit +[no]answer beibehalten. ;; AUTORITÄTSABSCHNITT: isc.org. 2351 IN NS ns-int.isc.org. isc.org.2351 IN NS ns1.gnac.com. isc.org. 2351 IN NS ns-ext.isc.org. Diese autoritative Aussage sagt uns, welcher DNS-Server uns die autoritative Antwort liefert. In diesem Beispiel hat isc.org 3 Nameserver. Sie können die Option +[no]authority verwenden, um diese Ausgabe beizubehalten. ;; ZUSÄTZLICHER ABSCHNITT: ns1.gnac.com. 171551 IN A 209.182.216.75 ns-int.isc.org. 2351 IN A 204.152.184.65 ns-int.isc.org. 2351 IN AAAA 2001:4f8:0:2::15 Diese zusätzlichen Optionen umfassen normalerweise die IP-Adressen der aufgelisteten autoritativen DNS-Server und diese Ausgabe kann mit der Option +[no]additional beibehalten werden. ;; Abfragezeit: 2046 ms ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WANN: Fr., 27. August 2004, 08:22:26 Uhr ;; empfangene MSG-Größe: 173 Der letzte Abschnitt der Standardausgabe enthält Abfragestatistiken, die mit +[no]stats beibehalten werden können. Was können wir abfragen? Mit Dig können Sie DNS effizient abfragen. Die am häufigsten verwendeten Abfragen sind A-Einträge, TXT (Textkommentare), MX-Einträge, NS-Einträge oder beliebige umfassende Abfragen. Suchen Sie den A-Eintrag von yahoo.com: (Dies muss die Domäne sein, nicht der Host, z. B. ist meine Firma xinpindao.com) Finden Sie eine Liste der MX-Einträge von yahoo.com: Suchen Sie den autoritativen DNS für yahoo.com: Abfrage aller oben genannten Datensätze: In der aktuellen Situation, in der IPv4 und IPV6 gemischt werden, können Sie auch die Option AAAA verwenden, um den IPv6-AAAA-Eintrag des Hosts abzufragen: dig www.isc.org AAAA +kurz Wenn die abzufragende Domäne eine Weiterleitung zulässt, können Sie auch zugehörige Informationen abfragen, z. B. die Lebensdauer des DNS-Eintrags im Internet. Derzeit erlauben jedoch nur wenige DNS eine unbegrenzte Weiterleitung. Wie prüfen wir? Möchten Sie eine präzise Antwort? Wenn wir eine schnelle Antwort brauchen, ist die Option +short Ihr bester Freund: dig www.isc.org +kurz 204.152.184.88 Haben Sie eine nicht ganz so prägnante Antwort? Es besteht ein Unterschied zwischen einer präzisen Antwort und nur einer Antwort. Um eine ausführliche Antwort ohne zusätzliche Informationen zu erhalten, verwenden Sie die Option +noall, die nur die gewünschte Ausgabe beibehält. $ dig fsf.org mx +kurz 20 mx20.gnu.org. 30 mx30.gnu.org. 10 mx10.gnu.org. $ dig +nocmd fsf.org mx +noall +antwort fsf.org. 3583 IN MX 30 mx30.gnu.org. fsf.org. 3583 IN MX 10 mx10.gnu.org. fsf.org. 3583 IN MX 20 mx20.gnu.org. Möchten Sie eine ausführliche Antwort? Über die Manpage können Sie mit der Option +multiline einen langen, mehrzeiligen, benutzerfreundlichen Kommentar zum SOA-Eintrag des DSN erhalten. Generell können die mit der Option +multiline erhaltenen Informationen viel anzeigen, genau wie die BIND-Konfigurationsdatei. $ dig +nocmd ogi.edu beliebig +mehrzeilig +noall +Antwort ogi.edu. 14267 IN A 129.95.59.31 ogi.edu. 14267 IN MX 5 cse.ogi.edu. ogi.edu. 14267 IN MX 15 hermes.admin.ogi.edu. ogi.edu. 14267 IN SOA zeal.admin.ogi.edu. hostmaster.admin.ogi.edu. ( 200408230; Seriennummer 14400; Aktualisieren (4 Stunden) 900; erneuter Versuch (15 Minuten) 3600000; läuft ab (5 Wochen 6 Tage 16 Stunden) 14400; Minimum (4 Stunden) ) ogi.edu. 14267 IN NS zeal.admin.ogi.edu. ogi.edu. 14267 IN NS cse.ogi.edu. ogi.edu. 14267 IN NS fork.admin.ogi.edu. PTR-Datensätze suchen? Mit der Option -x können Sie den Hostnamen einer IP-Adresse finden. $ dig -x 204.152.184.167 +kurz mx-1.isc.org. In dieser Schleife ordnet das Skript die Namen flexibel dem angegebenen Subnetz zu. #!/bin/bash NET=18.7.22 für n in $(seq 1 254); mache ADDR=${NET}.${n} echo -e "${ADDR}\t$(dig -x ${ADDR} +short)" Erledigt Einen anderen Namensserver abfragen? Der Abfragebefehl lautet: dig @ns1.google.com www.google.com Verwenden Sie die Datensätze in /etc/resolv.conf zum Abfragen Der Host fragt automatisch den DNS-Eintrag aus der Datei /etc/resolv.conf ab $ Host www www.madboa.com hat die Adresse 65.102.49.170 Standardmäßig erzeugt dig jedoch einige unerwartete Ausgaben. Wenn Sie nach dem lokalen Hostnamen statt dem vollständigen Domänennamen suchen möchten, verwenden Sie die Option +search graben www +suche Die meisten Anfragen bearbeiten? Wenn Sie eine große Anzahl von Hostnamen abfragen möchten, können Sie diese in einer Textdatei speichern (ein Datensatz pro Zeile) und sie mit dig und dem Parameter -f einzeln abfragen. # Abfrage einer großen Anzahl von Hostnamen dig -f /Pfad/zur/Host-Liste.txt # Dieselbe, explizitere Ausgabe dig -f /path/to/host-list.txt +noall +answer Ich möchte Ihnen jedoch sagen, dass Dig 9.2.3 und spätere Versionen keine umgekehrten Abfragen mit der Option -f unterstützen. DNS-Zuordnung überprüfen Eine falsche DNS-Konfiguration kann Ihnen viel Ärger bereiten. Sie können Ihre DNS-Konfiguration auf die folgenden zwei Arten überprüfen: 1. Jeder Hostname sollte in eine IP-Adresse aufgelöst werden und diese IP-Adresse sollte auch auf diesen Hostnamen zurückverweisen. 2. Wenn eine Adresse in Ihrem Subnetz auf einen Hostnamen zurückverweist, muss dieser Hostname auch auf diese IP verweisen. Es gibt einige Ausnahmen von diesen beiden Regeln. Beispielsweise muss CNAME zuerst in einen anderen Hostnamen aufgelöst werden und kann nur auf eine IP verweisen. Manchmal verweisen mehrere Hostnamen auf dieselbe IP-Adresse, aber diese IP kann nur einen PTR-Eintrag haben. Zusammen sollten diese Ihnen dabei helfen, zu überprüfen, ob Ihre DNS-Zuordnungen wie erwartet funktionieren. Sie können auch ein Testskript schreiben, das Ihre bekannten Hostnamen einträgt, wie unten gezeigt. Das ist sehr einfach. Bei der Ausführung bricht es ab, wenn es einen CNAME abfängt, und meldet einen Fehler, wenn mehrere Hostnamen auf die gleiche IP-Adresse verweisen. Wir gehen davon aus, dass die Datei, die Ihre Hostnamen enthält, den Namen „named-hosts“ hat. #!/bin/bash # # DNS Forward- und Reverse-Mapping testen # # Bearbeiten Sie diese Variable, um lokale Subnetze der Klasse C widerzuspiegeln NETS="192.168.1 192.168.2" # Testen Sie die Gültigkeit von Name zu Adresse und Name Echo echo -e "\tname -> Adresse -> Name" echo '----------------------------------' während ich H lese; ADDR=$(dig $H +short) wenn test -n "$ADDR"; dann HOST=$(dig -x $ADDR +kurz) wenn Test "$H" = "$HOST"; dann echo -e "ok\t$H -> $ADDR -> $HOST" elif test -n "$HOST"; dann echo -e "fail\t$H -> $ADDR -> $HOST" anders echo -e "fail\t$H -> $ADDR -> [nicht zugewiesen]" fi anders echo -e "fail\t$H -> [nicht zugewiesen]" fi erledigt < benannte Hosts # Prüfen Sie die Gültigkeit von Adresse zu Name und Adresse Echo echo -e "\tAdresse -> Name -> Adresse" Echo '-------------------------------------' für NET in $NETS; tun für n in $(seq 1 254); mache A = $ {NET}. $ {n} HOST=$(dig -x $A +kurz) wenn test -n "$HOST"; dann ADDR=$(dig $HOST +kurz) wenn Test "$A" = "$ADDR"; dann echo -e "ok\t$A -> $HOST -> $ADDR" elif test -n "$ADDR"; dann echo -e "fehlgeschlagen\t$A -> $HOST -> $ADDR" anders echo -e "fail\t$A -> $HOST -> [nicht zugewiesen]" fi fi Erledigt Erledigt Interessante Ausgrabung Erstellen Sie Ihre eigene named.root-Datei Jeder mit dem Internet verbundene DNS-Server verfügt mit Sicherheit über eine Kopie der named.root-Datei von InterNIC, in der alle Root-DNS des Internets aufgelistet sind. Wenn Sie sich nicht scheuen, können Sie die Datei jederzeit vom FTP-Server von InterNIC herunterladen oder mit dem Befehl dig Ihre eigene schicke named.root-Datei erstellen. # vergleichen mit ftp://ftp.internic.net/domain/named.root dig +nocmd . NS +noall +antwort +zusätzlich Ihr TTL-Wert ist hier möglicherweise sehr klein, aber es ist die letzte benannte .root-Datei, die Sie finden! Verfolgung des Abfragepfads von dig Sie sind möglicherweise ein Traceroute-Enthusiast und möchten oft prüfen, wie Sie Punkt B mit Punkt A verbinden. Mit der Option „dig +trace“ können Sie etwas Ähnliches tun. dig gentoo.de +trace Sie können den Stamm-DNS im Header der Dig-Ausgabe sehen, dann den DNS finden, der für die Auflösung aller *.de-Endungen verantwortlich ist, und schließlich die Domänen-IP von gentoo.de finden. SOA-Eintrag abrufen Als DNS-Administrator nehme ich manchmal Änderungen vor und möchte wissen, ob meine DNS-Auflösung immer noch alte Daten ausgibt. Die Option +nssearch kann klare Statistiken für Ihre öffentlichen Server bereitstellen. # die ungeschminkte Wahrheit dig cse.ogi.edu +nssearch # das gleiche, nur die Seriennummer und der Hostname werden angezeigt dig cse.ogi.edu +nssearch | cut -d'' -f4,11 Interpretieren von TTL-Werten Ich mag Google aus vielen Gründen. Einer davon ist, dass es in meinen Web-Protokollen präzise Links bereitstellt. So kann ich leicht feststellen, welche Art von Abfragen die Leute auf die Seiten dieser Site geführt haben. Überraschenderweise habe ich viele Anfragen für TTL-Werte gesehen. Ich hätte nie gedacht, dass TTL so beliebt werden würde, aber man lernt jeden Tag etwas Neues. Hier also eine kleine Einführung in TTL auf vielfachen Wunsch. Wenn Sie eine Internetadresse von Ihrem lokalen DNS abfragen, findet der Server heraus, wo er die autoritative Antwort finden kann, und ruft die Adresse ab. Sobald der Server die Antwort kennt, speichert er sie in einem lokalen Cache, um zu verhindern, dass Sie dieselbe Adresse zu einem späteren Zeitpunkt erneut abfragen. Auf diese Weise erhält er schnell die gewünschte Antwort aus dem Cache, viel schneller, als wenn Sie sie erneut aus dem Internet abfragen. Wenn Domänenadministratoren DNS-Einträge konfigurieren, können sie entscheiden, wie lange der Eintrag im Cache gespeichert werden soll. Dies ist der TTL-Wert (normalerweise in Sekunden angegeben). Normalerweise speichern Remote-Server Datensätze nur so lange im Cache wie der TTL-Wert. Nach Ablauf der Zeit aktualisiert der Server seinen lokalen Cache und fordert eine verbindliche Antwort erneut an. Wenn Sie mit dig einen DNS-Server nach einem Datensatz abfragen, teilt der Server dig mit, wie lange der Datensatz im Cache gespeichert werden kann. Wie oben beschrieben, beträgt der TTL-Wert des MX-Eintrags der Domäne gmail.com beispielsweise 300 s. Der Administrator der Domäne gmail.com verlangt, dass der Remote-Server seinen MX-Eintrag nicht länger als 5 Minuten zwischenspeichert. Wenn Sie diesen Eintrag (den MX-Eintrag von gmail.com) also zum ersten Mal abfragen, wird Ihnen dig einen TTL-Wert von 300 mitteilen. $ dig +nocmd gmail.com MX +noall +antwort gmail.com. 300 IN MX 20 gsmtp57.google.com. gmail.com. 300 IN MX 10 gsmtp171.google.com. Wenn Sie nach einer Weile noch einmal nachsehen, werden Sie feststellen, dass der TTL-Wert auf 280 (mit einem Intervall von 20 Sekunden) reduziert wurde. $ dig +nocmd gmail.com MX +noall +antwort gmail.com. 280 IN MX 10 gsmtp171.google.com. gmail.com. 280 IN MX 20 gsmtp57.google.com. Wenn Ihre Zeitangaben gut genug berechnet sind, erhalten Sie die letzte Lebensdauer des Datensatzes. $ dig +nocmd gmail.com MX +noall +antwort gmail.com. 1 IN MX 10 gsmtp171.google.com. gmail.com. 1 IN MX 20 gsmtp57.google.com. Danach „vergisst“ der abgefragte DNS-Server die Antwort auf diese Frage, und bei der nächsten Abfrage dieses Datensatzes beginnt der gesamte Zyklus erneut (in diesem Beispiel 300 s). Unter Unix und Linux wird empfohlen, den Befehl dig anstelle von nslookup zu verwenden. Der Dig-Befehl ist viel leistungsfähiger als nslookup. Er ist nicht wie nslookup, bei dem viele Einstellungen vorgenommen werden müssen, was ziemlich mühsam ist. Hier sind einige der am häufigsten verwendeten Dig-Befehle: # Die grundlegendste Verwendung von dig: dig @server qianlong.com # Verwenden Sie dig, um die Zonendatenübertragung anzuzeigen dig @server qianlong.com AXFR # Verwenden Sie dig, um die inkrementelle Übertragung der Zonendaten anzuzeigen dig @server qianlong.com IXFR=N # Verwenden Sie dig, um die umgekehrte Auflösung anzuzeigen dig -x 124.42.102.203 @server # Finden Sie den autoritativen DNS-Server für eine Domäne dig qianlong.com +nssearch # Verfolgen Sie den Auflösungsprozess eines Domänennamens vom Stammserver dig qianlong.com +trace # Überprüfen Sie, welchen F-Root-DNS-Server Sie verwenden dig +norec @F.ROOT-SERVERS.NET HOSTNAME.BIND CHAOS TXT # Überprüfen Sie die Versionsnummer von bind dig @bind_dns_server CHAOS TXT version.bind ******************************** verwenden Dienstprogramm für DNS-Abfragen. Grammatik dig [@server] [-b Adresse] [-c Klasse] [-f Dateiname] [-k Dateiname] [ -n ][-p Port#] [-t Typ] [-x Adresse] [-y Name:Schlüssel] [Name] [Typ] [Klasse] [Abfrageoption...] graben [-h] dig [globale Abfrageoption …] [Abfrage …] beschreiben Der Befehl dig (Domain Information Searcher) ist ein flexibles Tool zum Abfragen von DNS-Nameservern. Es führt eine DNS-Suche durch und zeigt die von den angeforderten Nameservern zurückgegebenen Antworten an. Die meisten DNS-Administratoren verwenden Dig zur Fehlerbehebung bei DNS-Problemen aufgrund seiner Flexibilität, Benutzerfreundlichkeit und klaren Ausgabe. Obwohl dig normalerweise mit Befehlszeilenargumenten verwendet wird, kann es Suchanfragen auch im Batchmodus aus einer Datei lesen. Im Gegensatz zu früheren Versionen ermöglicht die BIND9-Implementierung von dig die Ausgabe mehrerer Abfragen über die Befehlszeile. Sofern Sie nicht aufgefordert werden, nach bestimmten Nameservern zu fragen, probiert dig alle in /etc/resolv.conf aufgeführten Server aus. Wenn keine Befehlszeilenargumente oder Optionen angegeben sind, führt dig eine NS-Abfrage für "." (root) aus. Logo -b Adresse Legt die Quell-IP-Adresse der abzufragenden Adresse fest. Dies muss eine gültige Adresse auf der Netzwerkschnittstelle des Hosts sein. Parameter global-queryopt … Globale Abfrageoptionen (siehe Mehrere Abfragen). Abfrageoptionen abfragen (siehe Abfrageoptionen). Abfrageoptionen dig bietet Abfrageoptionsnummern, die sich auf die Art und Weise auswirken, wie Suchvorgänge durchgeführt und Ergebnisse angezeigt werden. Einige setzen Flags im Abfrageanforderungsheader oder setzen sie zurück, einige legen fest, welche Antwortnachrichten angezeigt werden, und wieder andere legen Timeout- und Wiederholungsstrategien fest. Jede Abfrageoption wird durch ein Schlüsselwort mit dem Präfix (+) identifiziert. Einige Schlüsselwörter legen eine Option fest oder setzen sie zurück. Normalerweise ist das Präfix die Zeichenfolge „no“, die die Bedeutung des Schlüsselworts negiert. Andere Schlüsselwörter weisen Optionen Werte zu, beispielsweise dem Timeout-Intervall. Ihr Format ist +Schlüsselwort=Wert. Die Abfrageoptionen sind: Mehrere Abfragen BIND9 von dig unterstützt die Angabe mehrerer Abfragen in der Befehlszeile (mit der zusätzlichen Funktionalität der Unterstützung der Batchdateioption -f). Jede Abfrage kann ihre eigenen Flags, Optionen und Abfrageoptionen verwenden. In diesem Fall stellt in der oben beschriebenen Befehlszeilensyntax jedes Abfrageargument eine einzelne Abfrage dar. Jeder Eintrag besteht aus allen Standardoptionen und Flags, dem Namen der abzufragenden Abfrage, einem optionalen Abfragetyp und einer Klasse sowie allen für die Abfrage geltenden Abfrageoptionen. Sie können auch einen globalen Satz von Abfrageoptionen verwenden, die für alle Abfragen gelten. Globale Abfrageoptionen müssen dem ersten Tupel aus Name, Klasse, Typ, Optionen, Flags und Abfrageoptionen in der Befehlszeile vorangehen. Alle globalen Abfrageoptionen (außer der Option +[no]cmd) können durch die folgenden abfragespezifischen Optionen überschrieben werden. Zum Beispiel: dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr zeigt, wie dig drei Abfragen von der Befehlszeile aus ausführen kann: eine beliebige Abfrage für www.isc.org, eine umgekehrte Abfrage für 127.0.0.1 und eine Abfrage für die NS-Einträge von isc.org. Die globale Abfrageoption +qr wird angewendet, sodass dig für jede Abfrage die ursprüngliche Abfrage anzeigt. Die letzte Abfrage verfügt über eine lokale Abfrageoption von +noqr, die Dig anweist, bei der Suche nach NS-Datensätzen von isc.org die ursprüngliche Abfrage nicht anzuzeigen. Beispiel Ein typischer Dig-Call sieht so aus: dig @Servername-Typ, wobei: Server Der Name oder die IP-Adresse des abzufragenden Nameservers. Dies können durch Punkte getrennte IPv4-Adressen oder durch Doppelpunkte getrennte IPv6-Adressen sein. Wenn das Serverargument vom Host bereitgestellt wird, löst Dig diesen Namen auf, bevor die Nameserver abgefragt werden. Wenn keine Serverargumente angegeben sind, konsultiert dig /etc/resolv.conf und fragt die dort aufgeführten Nameserver ab. Zeigt die Antwort vom Nameserver an. Name Typ Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. |
<<: Implementierung zum Zeichnen einer Audio-Wellenform mit wavesurfer.js
>>: MySQL 5.7.18 Installations-Tutorial unter Windows
Ändern Sie die Gruppe, zu der ein Benutzer in Lin...
Inhaltsverzeichnis Überblick in Operatorverfeiner...
Der Installationsprozess entfällt (ich habe es di...
Dieser Artikel veranschaulicht anhand von Beispie...
Inhaltsverzeichnis Aufbau einer JSX-Umgebung NPM ...
Inhaltsverzeichnis Vorwort Erstellen Sie ein Brüc...
Inhaltsverzeichnis Abstraktion und Wiederverwendu...
Standort / { Index Index.jsp; Proxy_next_upstream...
Es war schon immer sehr schwierig, Welleneffekte ...
Herunterladen Download-Adresse: https://dev.mysql...
Wenn das Feld, in dem der Name gespeichert ist, d...
Inhaltsverzeichnis 1. Reagieren.Children.map 2. R...
Ich denke, dies ist ein Problem, auf das viele Leu...
In diesem Artikelbeispiel wird der spezifische JS...
Einführung in JWT Was ist JWT Der vollständige Na...