Domain Name Service (DNS)

Willemers Informatik-Ecke

Der Domain Name Service dient der Auflösung von Hostnamen zu IP-Nummern und umgekehrt und übernimmt damit die Aufgabe, die die /etc/hosts lokal erfüllt. Der Vorteil des DNS liegt auf der Hand: Änderungen müssen nur an einer Stelle durchgeführt werden und gelten für alle Rechner im Netz.

Die Bedeutung reicht aber weit über das lokale Netzwerk hinaus. Der Dreh- und Angelpunkt für einen Zugriff auf das Internet ist die Anbindung an den DNS-Server. Sobald diese Anbindung erfolgt ist, erhalten Namen wie www.apple.de oder informatik-ecke@willemer.de erst die Zuordung zu den richtigen IP-Nummern.

BIND (Berkeley Internet Name Domain) ist die wichtigste Implementation des DNS. Der Client wird als Resolver bezeichnet. Dabei ist der Resolver nicht ein eigenständiger Prozeß, sondern ist mittels Library den einzelnen Programmen zugeordnet. Die wichtigste Datei für den Resolver ist die /etc/resolv.conf.

Der Primary-Server ist derjenige, der die Autorität für die Domäne hat. Eine Domäne ist nicht unbedingt deckungsgleich mit einem physikalischen Netzwerk, sondern der Bereich, für den der Nameserver eingesetzt wird. Zum Beispiel gehören die Rechner asterix.willemer.de und gaston.willemer.de zur Domäne willemer.de. Es gibt die Möglichkeit Secondary-Server einzusetzen, die sich die Informationen des Primary Servers bei Änderung kopieren. Schließlich gibt es den Cache-Only Server, der lediglich die angefragten Informationen im Speicher hält.

Client

/etc/host.conf

Die Datei /etc/host.conf gibt an, woher der Rechner seine Namensinformation bezieht.

order bind hosts
multi on

Die Zeile order legt fest, in welcher Reihenfolge die Namensauflösungsverfahren aufgerufen werden. Im Beispiel wird zuerst BIND verwendet und wenn dort nichts zu finden ist, wird in der /etc/hosts nachgesehen.

Resolverkonfiguration mit der /etc/resolv.conf

In der Datei /etc/resolv.conf wird definiert, zu welcher Domäne der Rechner gehört und welche Rechner Nameserver sind. Beispiel:

domain     willemer.de
nameserver 127.0.0.1         # zuerst ich
nameserver 192.168.109.32    # dann der Hauptserver

Default Resolver Configuration

Ein System, das seine Namensgebung ermittelt, indem der lokale Rechner als Name Server betrachtet wird und der Domänen-Name aus dem Ergebnis des Befehls hostname abgeleitet wird. Dazu werden alle Zeichen hinter dem ersten Punkt verwandt.

Der Server named

named ist der Serverprozeß des DNS. Er verwendet mehrere Dateien zur Konfiguration. Die erste Datei ist die /etc/named.boot, die die Rolle des Rechners im DNS festlegt und die Namen und Orte der weiteren Dateien definiert. Dann gibt es für jede Domain zwei weitere Dateien. Die einen bildet die Namen auf IP-Nummern um und die andere nennt den Standardnamen für eine IP-Nummer.

/etc/named.boot

Ein Primary Server hat beispielsweise folgende Einträge:

primary  willemer.de              /var/named/named.willemer.de
primary  109.168.192.IN-ADDR.ARPA /var/named/named.109.168.192.in-addr.arpa
cache    .                        /var/named/named.ca

Die erste Zeile sagt aus, daß dieser Rechner ein Primary Server für die Domäne willemer.de ist. Die Namensinformationen werden in der Datei /etc/willemer.de.hosts gepflegt. Die zweite Zeile sagt, daß die Referenz auf localhost lokal in der Datei /etc/named.local gehalten wird. Die dritte Zeile besagt, daß der Cache in der Datei /etc/named.ca gehalten wird.

Ein Secondary Server hätte eine ganz ähnliche /etc/named.boot:

secondary willemer.de            192.168.109.32    /var/named/named.willemer.de
primary  109.168.192.IN-ADDR.ARPA /var/named/named.109.168.192.in-addr.arpa
cache     .                    /var/named/named.ca

Der Unterschied liegt in der ersten Zeile. Sie besagt, daß dieser Rechner ein Secondary Server für willemer.de ist. Sie gibt ferner die IP-Nummer des Primary Servers an. Schließlich wird definiert, in welcher lokalen Datei die Informationen vom Primary Server abgelegt werden.

Tabelle Name nach Nummer

Die Datei named.willemer.de:

@	IN SOA		mail.willemer.de.	root.mail.willemer.de. 
			(
			19990627003	;serial
			36000		;refresh every 100 hours
			3600		;retry after 1 hour
			3600000		;expire after 1000 hours
			3600		;default ttl is 100 hours
			)
;			Wer ist der zustaendige Nameserver
			IN NS mail.willemer.de.

;			Wer sind die zustaendigen Mailserver
			IN MX 10 mail.willemer.de.

localhost		IN A	127.0.0.1

;			Alle Rechner in der eignenen Domain
mail			IN A	192.168.109.137
asterix			IN CNAME mail
ns			IN CNAME mail
gaston			IN A	192.168.109.144

In diesem Fall ist asterix der Nameserver. Da er auch Mailserver der Domäne ist, erhält er den Namen mail als ersten Namen.

In der Klammer werden Parameter gesetzt, die Informationen über das Update-Verhalten festlegen. Die Zeilen geben folgende Informationen:

IN NS
Der zuständige Nameserver für die Domäne
IN MX Nummer
Der Mailserver. Es können mehrere Server angegeben werden. Die Nummer gibt die Rangfolge an.
IN A
Definiert die IP-Nummer eines Hostnamens. Es wird nur einmal für jede IP-Nummer definiert. Weitere Namen werden per CNAME angegeben.
IN CNAME
Definiert einen weiteren Namen eines Rechners (Nickname).
Es werden die Namen mail und gaston auf IP-Nummern abgebildet und für mail die Nicknames asterix und ns festgelegt.

Bei den in dieser Datei vorkommenden Namen wird vom System der Domänenname ergänzt, wenn der Name nicht mit einem Punkt beendet wird. Darum steht hinter mail.willemer.de ein Punkt. Taucht im Zusammenhang mit nslookup der Domänname doppelt auf (also max.willemer.de.willemer.de dann fehlt sicher irgendwo ein Punkt.

Tabelle Nummer nach Name

Die Datei 109.168.192.in-addr.arpa:

@	IN SOA		mail.willemer.de.	root.mail.willemer.de. 
			(
			19990627002	;serial
			36000		;refresh every 100 hours
			3600		;retry after 1 hour
			3600000		;expire after 1000 hours
			3600		;default ttl is 100 hours
			)
;			Wer ist der zustaendige Nameserver
			IN NS mail.willemer.de.

137			IN PTR	mail.willemer.de.
144			IN PTR 	gaston.willemer.de.

In dieser Datei wird definiert, welchen Namen eine IP-Nummer hat.

Das Testen einer DNS-Konfiguration erfolgt mit dem Befehl nslookup.


Homepage - TCP/IP (C) Copyright 1999, 2000 Arnold Willemer