Wir beschränken uns zunächst auf die Beschreibung der Konfigurationsdateien für die bind-Versionen 4.xxx.
Der Domain-Server wird mittels named
gestartet. Dieser
Dämon wertet beim Start die Datei /etc/named.boot
aus, deren
Aufbau wir uns näher betrachten wollen:
directory /var/named
|
Die directory
-Zeile veranlasst den Server, sein Arbeitsverzeichnis
entsprechend dem Eintrag zu wechseln.
Die cache
-Zeile spezifiziert den Inhalt der Datei root.cache
als Backup-Cache. Die Datei selbst enthält Informationen zu den
Wurzel-Domain-Servern und wird bei SuSE mitgeliefert. Da die Informationen
dieser Datei aber nicht mehr dem aktuellen Stand entsprechen müssen, kann
von ftp.rs.internic.net
ein Update geholt werden.
; Ausschnitt aus root.cache
|
Zur Verwendung dieser Datei verfolgen wir die Auflösung einer
Anfrage nach der IP-Adresse des Rechners example.edu.saxedu.de
.
Wir erinnern uns, daSs die Datenbasis des DNS hierarchisch strukturiert ist,
also werden wir zuerst die Lage von .de
in Erfahrung bringen wollen.
Wer kennt einen Server, der sich mit de
auskennt? Ein Server der
Wurzel, eben einer der in root.cache
spezifizierten Rechner.
Also wird zunächst eine Anfrage an den ersten Server aus der Liste gestellt.
Antwortet dieser nicht (time-out), wird der nächste Server kontaktiert, bis
- hoffentlich - ein Server die Information liefert. Diese Information wird
die Adresse eines Nameservers sein, der de
verwaltet. Die nächste
Anfrage nach saxedu
richtet sich an letzteren Server, der uns weiter an einen
Server vermittelt, der etwas über saxedu
zu berichten vermag...
Letztlich steigen wir in der Hierarchie zu einem Server ab, der die IP-Adresse des gesuchten Hosts kennt.
Nun zur ersten primary
-Zeile. In ihr wird die Datei
pz/127.0.0
als
0.0.127.in-addr.arpa
definiert.
pz
(steht für primary zone; es
kann ein beliebiger Name gewählt werden) ist hierbei ein Unterverzeichnis
in /var/named
(Vergleiche directory
), welches die
Dateien mit den Resource Records enthält. 127.0.0
ist die
Netzwerkadresse des Loopback-Devices und wird hier benutzt, um einen Nur-Cache-Server
zu aktivieren, d.h. einen DNS-Server, der Anfragen zu anderen Servern
weiterleitet und die gewonnenen Informationen lokal zwischenspeichert, um
zukünftige Anfragen direkt beantworten zu können.
in-addr.arpa
ist eine besondere Domain, die ermöglicht, den
Hostnamen zu einer gegebenen IP-Adresse zu ermitteln. Üblicherweise
werden symbolische Namen so angegeben, dass die Top-Level-Domain
rechts steht (snoopy.gnu.org
). arpa
ist aus einer
Top-Level-Domain
und steht demzufolge ganz rechts. Schaut man sich die Suche nach einem
Hostnamen an, wird auch die "verdrehte" IP-Adresse klar:
Gesucht wird der Hostname zur (fiktiven) Adresse 192.168.85.12
.
Intern sucht
DNS nach 12.85.168.192.in--addr.arpa.
Also sucht DNS zunächst den Server,
der arpa
bedient, dann den Server für in-addr.arpa
, nun den
Server 192.in--addr.arpa
..., also wird ausgehend von der Wurzel die
Adresse aufgelöst.
Werfen wir einen Blick auf die Datei 127.0.0
:
@ IN SOA sonne.galaxis.de. root.sonne.galaxis.de.
|
Eine andere Schreibweise für dieselbe Datei ist:
0.0.127.in-addr.arpa. IN SOA sonne.galaxis.de. root.sonne.galaxis.de.
|
Bezug nehmend auf letztere Version folgt nach SOA
der Hostname und der
Verantwortliche für diesen Host, also root
. Genau genommen müsste
root als root@sonne.galaxis.de
angegeben werden, allerdings ist
@ ein Sonderzeichen (siehe erste Version), das das Orignal beschreibt
und dieses kann hier nicht nochmals verwendet werden.
NS teilt DNS mit, wer für 0.0.127.in-addr.arpa
der Nameserver ist,
PTR erklärt, dass 1.0.0.127.in-addr.arpa
als localhost
bekannt ist.
Entfernt man in /etc/named.boot
die beiden weiteren
primary
-Zeilen
(ein Semikolon zu Beginn der Zeile leitet einen Kommentar ein) und
startet den Name-Server:
root@sonne> ndc start
|
sollte man, falls man alles richtig konfiguriert hat, in /var/log/messages Einträge ähnlich der Folgenden finden:
root@sonne> tail /var/log/messages
|
Eine erste Abfrage lässt sich mit nslookup
tätigen:
user@sonne> nslookup
|
Hat so weit alles geklappt, wenden wir uns der nächsten primary
-Zeile
zu und schauen uns die zugehörige Datei an:
@ IN SOA sonne.galaxis.de. root.sonne.galaxis.de. (
|
Diese Datei ermöglicht uns das Ermitteln des Hostnamens aus einer
gegebenen IP-Adresse. Für die umgekehrte Auflösung sorgt der
dritte primary
-Eintrag:
@ IN SOA sonne.galaxis.de. root.sonne.galaxis.de. (
|
Es sei besonders auf den abschließenden Punkt nach den Hostnamen hingewiesen. Dieser teilt dem Server mit, dass es sich um einenvollständigen Namen handelt, der nicht erweitert werden muss!
user@sonne> nslookup
|
Jetzt provozieren wir einmal einen Fehler, indem wir den Punkt "vergessen":
@ IN SOA sonne.galaxis.de. root.sonne.galaxis.de. (
|
Das Ergebnis sieht man beim nächsten nslookup (Ausschnitt):
user@sonne> nslookup
|
Zum Abschluss schauen wir uns noch einige mögliche Zusatzeinträge an, die
z.B. Informationen zur Hardware liefern können (Datei galaxis.de
):
@ IN SOA sonne.galaxis.de. root.sonne.galaxis.de.
|
nslookup
erlaubt uns auf solche Informationen uzugreifen
(es existieren weitere Optionen, man informiere sich in den Manuals):
user@sonne> nslookup
|