[[Vorlage(getestet, general)]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] }}} [[Inhaltsverzeichnis(2)]] [[Bild(Wiki/Icons/terminal.png, 48, align=left)]] [wikipedia:Dig_(Software):dig] (domain information groper) ist ein Programm/Befehl, mit dem Informationen von DNS-Servern abgefragt werden können. DNS bedeutet Domain Name System und wird zur Umwandlung von IP-Adressen in Domains bzw. umgekehrt verwendet. Es basiert auf einer Weltweit verteilten Datenbank. Dig ist ein Client-Programm für DNS-Server wie zum Beispiel der Berkeley Internet Name Domain Server ([wikipedia:Bind:]) und unterstützt sowohl [wikipedia:IPv4:] als auch [wikipedia:IPv6:]. Dig wird hauptsächlich genutzt, um DNS-Server zu analysieren und zu überprüfen. = Installation = dig ist ein Bestandteil der '''dnsutils''' und kann über das gleichnamige Paket installiert werden [1]: {{{#!vorlage Paketinstallation dnsutils }}} = Benutzung = Der Befehl dig hat die folgende, allgemeine Syntax: {{{#!vorlage Befehl dig [@Server] [Domain] [Typ] [-x IP-Adresse] }}} * `Server` - der Domain-Name oder die IP-Adresse des DNS-Servers, der abgefragt werden soll. Für eine Analyse eines DNS-Servers muss hier der entsprechende Server angegeben werden. Wird kein Server angegeben, wird der im System hinterlegte Server genutzt. Wer ausschließlich an den allgemeinen DNS-Informationen zu einer Adresse interessiert ist, kann den Server also weglassen. * `Domain` - die Domain, die abgefragt werden soll. * `Typ` - Typ des Eintrages, der abgefragt werden soll (`ANY, A, MX`, etc.). Wenn kein Argument angegeben wird, fragt dig den A-Record ab. {{{#!vorlage Tabelle <-2 tableclass="zebra_start3" rowclass="titel" :>Resource Record / Typ +++ Typ <:>Beschreibung +++ `` ANY `` alle Einträge +++ ``A`` IPv4 Record eines Hosts +++ ``AAAA`` IPv6 Record eines Hosts +++ ``CNAME`` Kanonischer Name, Zuordnung von Aliassen +++ ``MX`` Mail Exchanger +++ ``NS`` Hostname eines autoritativen Nameservers +++ ``PTR`` Domain Name Pointer (um IP-Adressen Namen zuzuweisen) +++ ``SOA`` Start of Authority +++ ``SRV`` Angebotene Dienste +++ ``TXT`` Beliebiger Text }}} {{{#!vorlage Tabelle <-2 tableclass="zebra_start3" rowclass="titel" :>Weitere Parameter +++ Typ <:>Beschreibung +++ `+short` gibt eine sehr kurze Antwort, zB die reine IP der Domain +++ `` -f query.txt `` file - Eingabe-Datei für mehrere Abfragen +++ ` -4 `/` -6 ` IPv4 / IPv6 +++ `` -x `` Rückwärtssuche... IP der Domain suchen }}} == Beispiele == ===Situation 1=== Abfrage der Statusinformationen eines DNS Servers über das Terminal [2]: {{{#!vorlage Befehl dig @208.67.222.222 }}} {{{; <<>> DiG 9.6.1-P1 <<>> @208.67.222.222 ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31780 ;; flags: qr rd ra; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;. IN NS ;; ANSWER SECTION: . 517184 IN NS L.ROOT-SERVERS.NET. . 517184 IN NS J.ROOT-SERVERS.NET. . 517184 IN NS H.ROOT-SERVERS.NET. . 517184 IN NS G.ROOT-SERVERS.NET. . 517184 IN NS F.ROOT-SERVERS.NET. . 517184 IN NS D.ROOT-SERVERS.NET. . 517184 IN NS E.ROOT-SERVERS.NET. . 517184 IN NS I.ROOT-SERVERS.NET. . 517184 IN NS B.ROOT-SERVERS.NET. . 517184 IN NS M.ROOT-SERVERS.NET. . 517184 IN NS A.ROOT-SERVERS.NET. . 517184 IN NS C.ROOT-SERVERS.NET. . 517184 IN NS K.ROOT-SERVERS.NET. ;; Query time: 103 msec ;; SERVER: 208.67.222.222#53(208.67.222.222) ;; WHEN: Mon Nov 23 15:50:44 2009 ;; MSG SIZE rcvd: 228 }}} Da keine Domain angegeben wurde, fragt dig die Domain "." ab. Diese ist quasi die Wurzel des DNS-Systems. Als Antwort werden die Root-DNS-Server zurückgegeben. Der Status `NOERROR` in der 5. Zeile zeigt, dass die Abfrage keine Fehler aufweist. ===Situation 2=== Welche Antworten liefert der DNS-Server [2]: {{{#!vorlage Befehl dig @208.67.222.222 ubuntuusers.de }}} {{{ ; <<>> DiG 9.6.1-P1 <<>> @208.67.222.222 ubuntuusers.de ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24416 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;ubuntuusers.de. IN A ;; ANSWER SECTION: ubuntuusers.de. 86276 IN A 213.95.41.13 ;; Query time: 171 msec ;; SERVER: 208.67.222.222#53(208.67.222.222) ;; WHEN: Mon Nov 23 15:57:40 2009 ;; MSG SIZE rcvd: 48 }}} Die Antwort findet sich in der `ANSWER SECTION`, wo auch mehrere Antworten aufgeführt werden können. Wenn anstelle von `ANSWER SECTION` dort `AUTHORITY SECTION` steht, leitet der DNS-Server die Anfrage an die dort aufgelisteten Server weiter. ===Situation 3=== Hier soll aufgezeigt werden, wie das DNS-System eine Domain auflöst. Als erstes wird der Root-DNS-Server nach der Domain ubuntuusers.de gefragt: {{{#!vorlage Befehl dig ubuntuusers.de @a.root-servers.net }}} Dieser antwortet nun in der `AUTHORITY SECTION`, dass der Server `a.nic.de` zuständig ist. {{{ ;; AUTHORITY SECTION: de. 172800 IN NS a.nic.de. }}} Anschließend kann man diesen nach der Domain fragen. {{{#!vorlage Befehl dig ubuntuusers.de @a.nic.de }}} Dieser gibt zurück, dass `dns1.noris.net` zuständig ist. {{{ ;; AUTHORITY SECTION: ubuntuusers.de. 42741 IN NS dns1.noris.net. }}} Fragt man nun diesen, taucht neben der `AUTHORITY SECTION` auch noch die `ANSWER SECTION` auf. Hierüber bekommt man die Information des DNS-Servers, dass die aktuelle IP-Adresse zur Domain ubuntuusers.de `213.95.41.13` lautet. {{{ ;; ANSWER SECTION: ubuntuusers.de. 86400 IN A 213.95.41.13 }}} = Links = * [:Dnsmasq:] * [:ping:] * [:netstat:] #tag: Netzwerk, Internet, Shell, Server, DNS