20.4 DNS-Tools
Unter BSD und Linux stehen Ihnen diverse Tools zur Verfügung, mit denen Sie DNS-Requests absetzen können. Sie sind zum einen äußerst nützlich, wenn es darum geht, einen DNS-Server zu debuggen, zum anderen, wenn man testen möchte, ob die Konfiguration, die man einem DNS-Server übergeben hat, funktioniert.
20.4.1 host
Das Tool host kann DNS-Requests an einen Server schicken. Es unterstützt alle gängigen Typen von Resource Records und ist IPv6-kompatibel. Außerdem kann es mit verschiedenen DNS-Klassen umgehen. Um den lokalen DNS-Server nach der Adresse des Hosts »eygo.sun« zu fragen, übergibt man host einfach dessen Namen und den DNS-Server der Wahl. In unserem Fall wollen wir den lokalen DNS-Server auf 127.0.0.1 testen:
Listing 20.12 Einfaches host-Query
$ host eygo.sun 127.0.0.1
Using domain server:
Name: 127.0.0.1
Address: 127.0.0.1#53
Aliases:
eygo.sun has address 192.168.0.1
Using domain server:
Name: 127.0.0.1
Address: 127.0.0.1#53
Aliases:
eygo.sun has IPv6 address fe80::250:bfff:fe11:35a5
eygo.sun has IPv6 address ::1
Using domain server:
Name: 127.0.0.1
Address: 127.0.0.1#53
Aliases:
Host eygo.sun not found: 3(NXDOMAIN)
Die letzte Meldung »Host eygo.sun not found« kommt dadurch zustande, dass host auch ein Mail-Exchanger-Lookup durchführt und in unserer DNS-Konfiguration kein MX-Record definiert wurde.
Für den Fall, dass ein Resource Record nicht gefunden werden kann, gibt ein DNS-Server NXDOMAIN zurück.
Möchte man nun etwas gezielter vorgehen und/oder genauere Angaben von host erhalten, verwendet man natürlich dessen Optionen, die leicht verständlich in der Manpage erklärt sind. Wir wollen hier wenigstens ein Beispiel zeigen, das die wichtigsten dieser Optionen erklärt:
[zB]Es sollen detaillierte Informationen (-v) zur IPv6-Adresse (-t AAAA) des Rechners »eygo.sun« über eine IPv6-Verbindung (-6) zum Server mit der IP ::1 ausgegeben werden. Dabei soll die DNS-Klasse »Internet« (-c IN) verwendet werden:
Listing 20.13 Gezieltes Host-Lookup
$ host -v -c IN -t AAAA –6 eygo.sun ::1
Trying "eygo.sun"
Using domain server:
Name: ::1
Address: ::1#53
Aliases:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id:
;; 8778
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2,
;; AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;eygo.sun. IN AAAA
;; ANSWER SECTION:
eygo.sun. 3600 IN AAAA fe80::250:bfff:fe11:35a5
eygo.sun. 3600 IN AAAA ::1
Received 98 bytes from ::1#53 in 4 ms
Die Ausgaben von host gliedern sich in drei Teile: den DNS-Header, die Question-Section (in der die Frage steht, die host dem Server stellt) und die Answer-Section, in der die Antworten des DNS-Servers auf diese Frage stehen. Die Ausgabe der Resource Records ist dabei in dem Format gehalten, das auch in der BIND-Konfiguration anzuwenden ist: Hostname, TTL (in diesem Fall 3600 Sekunden), DNS-Klasse (IN), RR-Typ (AAAA) und Wert (in diesem Fall die Adresse).
20.4.2 nslookup
Interaktive Abfragen
Ein weiteres wichtiges Tool ist nslookup. Es verrichtet im Grunde fast die gleiche Arbeit wie host, ist jedoch interaktiv. Nach dem Programmstart hat man die Möglichkeit, das Verhalten von nslookup zu verändern (diese Möglichkeit besteht auch vor und nach jeder Anfrage, die man mit nslookup an einen DNS-Server sendet).
Zunächst kann man den gewünschten Server via server <server> angeben. Weiteren Variablen weist man über set Werte zu. Um etwa den DNS-Server 192.168.0.2 nach IPv4-Adress-Records zu fragen, setzt man die Variable type auf »A«.
Listing 20.14 nslookup
$ nslookup
> server 192.168.0.2
Default server: 192.168.0.2
Address: 192.168.0.2#53
> set type=A
> eygo.sun
Server: 192.168.0.2
Address: 192.168.0.2#53
Name: eygo.sun
Address: 192.168.0.1
> milk.sun
Server: 192.168.0.2
Address: 192.168.0.2#53
Name: milk.sun
Address: 192.168.0.2
Möchte man die DNS-Klasse oder den Port des Servers ändern, sollten die Variablen class und port über den set-Befehl angepasst werden. Eine Liste der aktuellen Variablenwerte erhält man über das Kommando set all.
Listing 20.15 nslookup – Teil 2
> set class=IN
> set port=53
> set all
Default server: 192.168.0.2
Address: 192.168.0.2#53
Default server: 194.25.2.129
Address: 194.25.2.129#53
Set options:
novc nodebug nod2
search recurse
timeout = 0 retry = 3 port = 53
querytype = A class = IN
srchlist =
Auch die Abfrage weiterer Records wie etwa von NS oder PTR ist kein Problem. Beendet wird nslookup über den Befehl
exit:
Listing 20.16 nslookup – Teil 3
> set type=NS
> sun
Server: 192.168.0.2
Address: 192.168.0.2#53
sun nameserver = milk.sun.
> set type=PTR
> 192.168.0.1
Server: 192.168.0.2
Address: 192.168.0.2#53
1.0.168.192.in-addr.arpa name = eygo.sun.
> exit
$
[»]Mit set debug (und bei noch mehr Bedarf über set debug2) liefert Ihnen nslookup eine ganze Menge an zusätzlichen Informationen – ähnlich wie host -v.
Listing 20.17 Debug-Modus
> set debug
> set debug2
> set type=A
> yorick.sun
Server: 192.168.0.2
Address: 192.168.0.2#53
------------
QUESTIONS:
yorick.sun, type = A, class = IN
ANSWERS:
-> yorick.sun
internet address = 192.168.0.5
AUTHORITY RECORDS:
ADDITIONAL RECORDS:
------------
Name: yorick.sun
Address: 192.168.0.5
20.4.3 dig
Das Tool dig verrichtet wiederum im Wesentlichen dieselben Aufgaben wie host und nslookup und wird daher hier nur der Vollständigkeit halber erwähnt.
20.4.4 whois
Ein völlig anderes Tool ist whois. Dieses Programm richtet keine Anfrage an einen DNS-Server, sondern an eine sogenannte Whois-Datenbank, in der Domain-Informationen gespeichert sind. Über dieses Tool erhalten Sie Informationen über den Eigentümer einer Domain, ihren eventuellen Service-Provider oder ihre Nameserver.
Listing 20.18 whois-lookup
$ whois google.net
Whois Server Version 1.3
[3 Zeilen Text entfernt]
Domain Name: GOOGLE.NET
Registrar: ALLDOMAINS.COM INC.
Whois Server: whois.alldomains.com
Referral URL: http://www.alldomains.com
Name Server: NS2.GOOGLE.COM
Name Server: NS1.GOOGLE.COM
Name Server: NS3.GOOGLE.COM
Name Server: NS4.GOOGLE.COM
Status: REGISTRAR-LOCK
Updated Date: 12-feb-2005
Creation Date: 15-mar-1999
Expiration Date: 15-mar-2006
>>> Last update of whois database: Wed, 13 Jul 2005
04:22:03 EDT <<<
NOTICE: The expiration date displayed in this...
[48 Zeilen Text entfernt]
Registrant:
Google Inc.
(DOM-258962)
2400 E. Bayshore Pkwy
Mountain View
CA
94043
US
Domain Name: google.net
Registrar Name: Alldomains.com
Registrar Whois: whois.alldomains.com
Registrar Homepage: http://www.alldomains.com
Administrative Contact:
DNS Admin
(NIC-1340142)
Google Inc.
2400 E. Bayshore Pkwy
Mountain View
CA
94043
US
dns-admin@google.com
+1.6503300100
Fax- +1.6506181499
Technical Contact, Zone Contact:
DNS Admin
(NIC-1340144)
Google Inc.
2400 E. Bayshore Pkwy
Mountain View
CA
94043
US
dns-admin@google.com
+1.6503300100
Fax- +1.6506181499
Created on..............: 1999-Mar-15.
Expires on..............: 2006-Mar-15.
Record last updated on..: 2005-Feb-12 06:14:05.
Domain servers in listed order:
NS1.GOOGLE.COM
NS2.GOOGLE.COM
NS3.GOOGLE.COM
NS4.GOOGLE.COM
...
Ihr Kommentar
Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.