Linux-Arbeitskreis Hamburg

DNS - Der Domain Name Service

Grundlagen

DNS ist ein Protokoll, das zur Namensauflösung im Internet dient, also um Namen wie www.hh.schule.de in IP-Addressen (134.100.9.61) umzuwandeln und umgekehrt.

Wenn also ein Computer eine Internet-Adresse aufzulösen hat und diese sich nicht in seiner hosts-Datei findet, so nimmt er zum nächstgelegenen DNS-Server Kontakt auf, dessen Nummer er entweder in seiner Konfiguration hat oder beim Booten per DHCP übermittelt bekommen hat. Der DNS-Server schaut nun in seinem Cache nach, ob er die gesuchte Adresse hat, oder fragt andere DNS-Server.

Hierbei hat jede Domain (die Internet-Domains haben nichts mit den NT-Domänen zu tun) einen primären (und einen sekundären) Nameserver, die für die betreffenden Domains zuständig sind.

Der bei unserer Lösung eingesetzte Nameserver hat folgende Aufgaben:

Die betreffenden Dateien werden von dem Skript netzconf.pl (aus master51.tgz) automatisch generiert; dabei ist zu beachten, daß weder YaST noch besagte netzconf.pl (von allconf aufgerufen) etwas gegen Hostnamen hat, die dem DNS-Dämon Probleme bereiten.
Deshalb daran denken: keine Unterstriche in den Hostnamen des Linux-Servers. Bindestriche und Zahlen stellen kein Problem dar.

(hier mit Beispiel-Angaben für den Fall, daß die IP-Adresse 192.168.1.1 für den Server gewählt wurde und dieser rote13.lumland.hh.schule.de heißt)

/etc/named.boot

Hier schaut der DNS-Server zuerst nach:

directory /var/named heißt, daß alle weiteren Dateiangaben sich - soweit nicht anders angegeben - auf eine Datei in /var/named beziehen.

cache . root.cache  root.cache enthält die IP-Adressen der Root-Nameserver. Änderungen sollte man hier nicht vornehmen.

primary lumland.hh.schule.de named.Lan gibt an, daß der Server der Primäre Nameserver der Domain lumland.hh.schule.de ist und daß die entsprechende Datenbank-Datei named.Lan ist.

primary localhost named.local tut dasselbe für den Aliasnamen localhost

primary 168.192.in-addr.arpa named.NAL gibt an, daß, wenn man zu einer IP-Addresse, die mit 192.168 anfängt, den Hostnamen sucht, unser Server sich hierfür zuständig fühlt und in der Datei named.lacol nachschaut (Das Schema ist immer <umgekehrte Netz-IP>.in-addr.arpa).

primary 0.0.127.in-addr.arpa named.lacol heißt das gleiche, nur halt für 127.0.0 und named.NAL

forwarders 194.95.246.252 194.95.249.252 heißt, daß für Anfragen, die nicht aus dem Cache zu beantworten sind, man sich erstmal an die WiNShuttle-Nameserver halten soll.

/var/named/named.Lan

@ 	IN SOA	rote13.lumland.hh.schule.de. postmaster.lumland.hh.schule.de. (
		1	;serial
		86400	;refresh
		3600	;retry
		3600000	;expire
		604800	;minimum
	)
	IN NS rote13.lumland.hh.schule.de.

gibt (unter anderem) an, daß die Kontaktperson postmaster@lumland.hh.schule.de heißt und der Nameserver rote13.lumland.hh.schule.de heißt.

NB: die vollständigen DNS-Namen bekommen noch einen Punkt dahinter. Alle Namen ohne Punkt am Ende bekommen den betreffenden Domainnamen angehängt; aus rote13.lumland.hh.schule.de würde rote13.lumland.hh.schule.de.lumland.hh.schule.de

	IN MX 0	rote13.lumland.hh.schule.de.
;
rote13	IN A		192.168.1.1
server	IN CNAME	rote13
www	IN CNAME	rote13
mail	IN CNAME	rote13
news	IN CNAME	rote13
;
hh2-1	IN A		192.168.1.2
hh3-1	IN A		192.168.1.3
hh4-1	IN A		192.168.1.4
hh1-2	IN A		192.168.2.1
hh2-2	IN A		192.168.2.2

Diese Einträge bedeuten folgendes:

/var/named/named.NAL

;
1.1	IN PTR rote13.lumland.hh.schule.de.
;
2.1	IN PTR	hh2-1.lumland.hh.schule.de.
3.1	IN PTR	hh3-1.lumland.hh.schule.de.
4.1	IN PTR	hh4-1.lumland.hh.schule.de.
;
1.2	IN PTR	hh1-2.lumland.hh.schule.de.
2.2	IN PTR	hh2-2.lumland.hh.schule.de.

2.1 IN PTR hh2-1.lumland.hh.schule.de. heißt, daß der Rechner mit der IP-Nummer 192.168.1.2 (bei den in-addr.arpa-Einträgen immer umgekehrt denken - etwa an /arpa/in-addr/192/168/1/2) den Namen hh2-1.lumland.hh.schule.de hat. Hierbei kann die Domain lumland.hh.schule.de nicht weggelassen werden: man würde sonst bei hh2-1.168.192.in-addr.arpa landen, was kompletter Nonsens wäre.

Diagnose

Wenn die Namensauflösung nicht funktioniert, liegt das meist an Problemen mit den DNS-Dateien. In /var/log/messages findet man Meldungen des DNS für Fehler, die beim Einlesen der Dateien auftraten.


Kritik, Anregungen und Ergänzungen willkommen. Zusammengestellt von Uwe Debacher, letzte Änderung am 27.01.2006