Domain Name Service - Der Client |
Übersicht |
Vermutlich haben Sie auf die Dienste des Domain Name Service bereits zugegriffen, ohne seine Existenz wahrzunehmen. Surfen Sie im Internet? Dann verwenden Sie sicher Angaben wie www.linuxfibel.de? Aber hinter dieser Angabe verbirgt sich nichts anderes als ein symbolischer Name für eine IP-Adresse. Und wer ermittelt die Adresse zum Namen? Der Domain Name Service.
Und elektronische Post ist ohne den DNS undenkbar. Denn nur ein DNS-Server weiß, wer der zuständige Mailserver für einen Empfänger ist.
Der Domain Name Service arbeitet transparent. Sie als Anwender werden von seiner Existenz, ist er erst einmal korrekt administriert, nichts bemerken, es sei denn, er verweigert einmal seinen Dienst... Einen Rechner zu einem DNS-Client zu ernennen, ist unter Linux ein einfaches Unterfangen, da die Standard-C-Bibliothek, ohne die kein Linuxsystem laufen könnte, alle notwendigen Routinen in Form des so genannten Resolvers bereits in sich birgt. Wenige Handgriffe genügen und der Resolver wird die Funktionalität des DNS gewährleisten.
Neben der Anpassung des Resolvers werden wir Ihnen die wichtigsten Werkzeuge rund um den Domain Name Service, die Bind-Utils, vorstellen. DNS arbeitet auch ohne sie, aber hin und wieder möchten Sie vielleicht doch konkrete Informationen zu einem gegebenen Rechnernamen oder einer IP-Adresse erfahren.
Der Vollständigkeit halber muss erwähnt werden, dass auf die Konfiguration eines DNS-Clients auch komplett verzichtet werden kann, falls der Rechner mindestens als so genannter Caching-Only-DNS-Server konfiguriert wird. Ein solcher recherchiert jeden Namen nur einmalig und hält die Informationen in einem Cache (»Zwischenspeicher«) vor. Wie lange die dortigen Daten ihre Gültigkeit behalten, ist konfigurierbar. Ein solches Vorgehen ist i.d.R. effizienter als ein DNS-Client, der zu jeder Namensauflösung einen externen Server kontaktiert. Der lokale Nameserver wird bspw. verwendet, wenn die Konfigurationsdatei des Resolvers fehlt oder keinen Nameserver-Eintrag enthält. Interessieren Sie sich für eine derartige Konfiguration, so finden Sie im Abschnitt zum DNS-Server die notwendigen Hinweise.
Der Resolver |
Beim Resolver handelt es sich nicht um einen eigenen Prozess sondern um eine Bibliothek von Routinen, die von Prozessen der Netzwerkprogramme gerufen werden. Die relevante Konfigurationsdatei für den Resolver selbst ist /etc/resolv.conf.
Bezieht der Client die Daten seiner Netzwerkkonfiguration inklusive der Nameserver-Optionen via DHCP oder über das Point-To-Point-Protocol (dies ist bei Verbindungen über ein Modem der Fall), so wird die Datei »resolv.conf« i.d.R. vom entsprechenden Client-Prozess selbst erzeugt. Sie sind damit aus dem Schneider und müssen gar nichts konfigurieren (außer die Einwahl via PPP an sich bzw. den DCHP-Client).
Starten wir wiederum mit einer einfachen Beispielkonfiguration einer Datei »resolv.conf«:
# /etc/resolv.conf search saxsys.de linuxfibel.de galaxis.de nameserver 134.109.192.18 nameserver 192.168.85.1 |
search
nameserver
Die beiden »gängigen« Einträge der Datei »/etc/resolv.conf« sind damit benannt; die weiteren Möglichkeiten beschreibt folgende Zusammenstellung:
domain
sortlist
options
Und nochmals möchten wir unterstreichen, dass eine nicht existente oder eine leere Datei »resolv.conf« dazu führt, dass implizit als Nameserver der lokale Rechner angenommen wird und als Standarddomain die lokale Domain (die hoffentlich gethostbyname() liefert). Diese Konfiguration entspricht genau der client-seitigen Konfiguration eines Caching-Only-Nameservers.
Nslookup |
Nslookup ist traditioneller Bestandteil der BIND-Software und dient (einzig) als Debugging-Werkzeug bei der Fehlersuche. Es erlaubt die direkte Abfrage eines Nameservers und Zugriff auf nahezu jede Information. Ab BIND Version 9 ist Nslookup nur noch aus Kompatibilitätsgründen enthalten, da dessen Funktionalität komplett vom neueren dig übernommen wurde.
Im Kommandozeilenmodus wird nslookup mit dem aufzulösenden Rechnernamen aufgerufen:
user@sonne> nslookup www.linuxfibel.de Note: nslookup is deprecated and may be removed from future releases. Consider using the `dig' or `host' programs instead. Run nslookup with the `-sil[ent]' option to prevent this message from appearing. Server: 10.0.0.2 Address: 10.0.0.2 # 53 www.linuxfibel.de canonical name = www.fibel.de. www.fibel.de canonical name = meine.linux.fibel.de. Name: meine.linux.fibel.de. Address: 194.180.239.13 |
Bei erfolgreicher Recherche antwortet nslookup mit Namen und Adresse des antwortenden Servers, der die Anfrage auflöste, und mit der gesuchten Adresse (oder mehrere Adressen, falls der Rechner über mehr als eine IP verfügt).
Zum »reverse lookup« rufen Sie das Kommando einfach mit der zu recherchierenden IP-Adresse auf.
Zur Unterdrückung der Warnung ob der »Veralterung« des Werkzeugs, können Sie die Option -sil bemühen.
Seine Stärken spielt nslookup allerdings erst im interaktiven Modus aus. Die dort verfügbaren Modifikatoren stehen zwar ebenso im Kommandozeilenmodus zur Verfügung (bspw. »nslookup type=mx www.google.de«), jedoch ist dieses Verfahren höchst ungeöhnlich, weshalb wir auf die Modifizierer erst im folgenden Abschnitt eingehen.
Den interaktiven Modus von nslookup erreichen Sie durch bloße Eingabe des Kommandos ohne jegliche Optionen. Beenden lässt sich das Programm durch Eingabe von exit oder mittels der Tastenkombination [Ctrl][D].
Um das im Kommandozeilenmodus angeführte Beispiel interaktiv nachzuvollziehen, sind folgende Eingaben erforderlich:
user@sonne> nslookup Note: nslookup is deprecated and may be removed from future releases. Consider using the `dig' or `host' programs instead. Run nslookup with the `-sil[ent]' option to prevent this message from appearing. Default Server: 10.0.0.2 Address: 10.0.0.2 # 53 > www.linuxfibel.de Server: 10.0.0.2 Address: 10.0.0.2 # 53 www.linuxfibel.de canonical name = www.fibel.de. www.fibel.de canonical name = meine.linux.fibel.de. Name: meine.linux.fibel.de. Address: 194.180.239.13 > exit |
Dig |
user@sonne> dig www.linuxfibel.de ; <<>> DiG 9.1.3 <<>> www.linuxfibel.de ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13063 ;; flags: qr aa rd; QUERY: 1, ANSWER: 3, AUTHORITY: 3, ADDITIONAL: 3 ;; QUESTION SECTION: ;www.linuxfibel.de. IN A ;; ANSWER SECTION: www.linuxfibel.de. 53411 IN CNAME www.fibel.de. www.fibel.de. 53411 IN CNAME meine.linux.fibel.de. meine.linux.fibel.de. 53411 IN A 184.180.239.13 ;; AUTHORITY SECTION: linuxfibel.de. 53411 IN NS ns.dns-dsi.de. linuxfibel.de. 53411 IN NS ns2.dsi.net. linuxfibel.de. 53411 IN NS ns.dsi.net. ;; ADDITIONAL SECTION: ns.dns-dsi.de. 85595 IN A 213.83.53.194 ns2.dsi.net. 80799 IN A 213.187.77.174 ns.dsi.net. 81978 IN A 213.83.36.58 ;; Query time: 3 msec ;; SERVER: 10.0.0.2#53 (10.0.0.2) ;; WHEN: Tue May 14 16:59:21 2002 ;; MSG SIZE rcvd: 218 |
Dig (Domain Information Groper) ist das Nachfolgetool von nslookup. Wie im Beispiel zu sehen ist, bekommt der User einiges mehr an Informationen heraus, als beim alten Auflösevorgang. Hierbei wird auch angezeigt, welcher Autorität die Zone untersteht, sowie eine gleichzeitige zusätzliche Auflösung aller Nameserver.
Host |
Ein weiteres Diagnose-Werkzeug ist host, das per Voreinstellung lediglich eine verkürzte Ausgabe der vorherigen Tools darstellt, sich jedoch mit diversen Schaltern und Parametern zu einem sehr mächtigen Werkzeug verwandeln kann.
user@sonne> host www.linuxfibel.de www.linuxfibel.de. is an alias for www.fibel.de. www.fibel.de. is an alias for meine.linux.fibel.de. meine.linux.fibel.de. has address 194.180.239.13 |