![]() ![]() ![]() |
![]() ![]() |
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 cache . root.cache primary 0.0.127.in-addr.arpa pz/127.0.0 primary 85.168.192.in-addr.arpa pz/192.168.85 primary galaxis.de pz/galaxis.de
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 ; . 3600000 IN NS A.ROOT-SERVERS.NET. A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4 ; ; formerly NS1.ISI.EDU ; . 3600000 NS B.ROOT-SERVERS.NET. B.ROOT-SERVERS.NET. 3600000 A 128.9.0.107 ; ; formerly C.PSI.NET ; . 3600000 NS C.ROOT-SERVERS.NET. C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12 ; ; formerly TERP.UMD.EDU ; . 3600000 NS D.ROOT-SERVERS.NET. D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90 ; ; formerly NS.NASA.GOV ; . 3600000 NS E.ROOT-SERVERS.NET. E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10
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. ( 1 ; serial 10800 ; refresh 3600 ; retry 604800 ; expire 86400 ); minimum TTL ; NS sonne.galaxis.de. ; 1 PTR localhost.
Eine andere Schreibweise für dieselbe Datei ist:
0.0.127.in-addr.arpa. IN SOA sonne.galaxis.de. root.sonne.galaxis.de. ( 1 ; serial 10800 ; refresh 3600 ; retry 604800 ; expire 86400 ); minimum TTL ; 0.0.127.in-addr.arpa. IN NS sonne.galaxis.de. ; 1.0.0.127.in-addr.arpa. IN PTR localhost.
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 Nov 25 07:34:49 sonne named[185]: starting Nov 25 07:34:49 sonne named[185]: cache zone "" loaded (serial 0) Nov 25 07:34:49 sonne named[185]: primary zone "0.0.127.in-addr.arpa" loaded (serial 1) Nov 25 07:34:49 sonne named[186]: Ready to answer queries.
Eine erste Abfrage lässt sich mit nslookup
tätigen:
user@sonne> nslookup Default Server: localhost Address: 127.0.0.1 > 127.0.0.1 Server: localhost Address: 127.0.0.1 Name: localhost Address: 127.0.0.1 > exit
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. ( 1 ; serial 10800 ; refresh 3600 ; retry 604800 ; expire 86400 ); ; NS sonne.galaxis.de. ; 10 PTR sonne.galaxis.de. 22 PTR mars.galaxis.de. 23 PTR venus.galaxis.de. 24 PTR merkur.galaxis.de. 25 PTR melmac.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. ( 1 ; serial 10800 ; refresh 3600 ; retry 604800 ; expire 86400 ); ; NS sonne.galaxis.de. ; localhost A 127.0.0.1 sonne A 192.168.85.10 mars A 192.168.85.22 venus A 192.168.85.23 merkur A 192.168.85.24 melmac A 192.168.85.25
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 Default Server: localhost Address: 127.0.0.1 > set q=any > galaxis.de Server: localhost Address: 127.0.0.1 galaxis.de origin = sonne.galaxis.de mail addr = root.sonne.galaxis.de serial = 1 refresh = 10800 (3 hours) retry = 3600 (1 hour) expire = 604800 (7 days) minimum ttl = 86400 (1 day) galaxis.de nameserver = sonne.galaxis.de galaxis.de nameserver = sonne.galaxis.de sonne.galaxis.de internet address = 192.168.85.10 > exit
Jetzt provozieren wir einmal einen Fehler, indem wir den Punkt "vergessen":
@ IN SOA sonne.galaxis.de. root.sonne.galaxis.de. ( 1 ; serial 10800 ; refresh 3600 ; retry 604800 ; expire 86400 ); ; ; NS sonne.galaxis.de. MX 10 mail.sonne.galaxis.de ; da fehlt der Punkt! ; localhost A 127.0.0.1 sonne A 192.168.85.10 mars A 192.168.85.22 venus A 192.168.85.23 merkur A 192.168.85.24 melmac A 192.168.85.25
Das Ergebnis sieht man beim nächsten nslookup (Ausschnitt):
user@sonne> nslookup > set q=any> galaxis.de ... galaxis.de nameserver = sonne.galaxis.de galaxis.de preference = 10, mail exchanger=mail.sonne.galaxis.de.galaxis.de galaxis.de nameserver = sonne.galaxis.de ...
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. ( 1 ; serial 10800 ; refresh 3600 ; retry 604800 ; expire 86400 ); ; NS sonne MX 10 mail.sonne.galaxis.de. TXT "sonne.galaxis.de, your DNS Server" sonne MX 10 mail HINFO "K6-450" "Linux 2.2.1" ; localhost A 127.0.0.1 sonne A 192.168.85.10 mars A 192.168.85.22 venus A 192.168.85.23 merkur A 192.168.85.24 melmac A 192.168.85.25
nslookup
erlaubt uns auf solche Informationen uzugreifen
(es existieren weitere Optionen, man informiere sich in den Manuals):
user@sonne> nslookup > ls galaxis.de ls galaxis.de [localhost] galaxis.de. server = sonne.galaxis.de mars.galaxis.de 192.168.85.22 sonne 192.168.85.10 venus.galaxis.de 192.168.85.23 merkur.galaxis.de 192.168.85.24 melmac.galaxis.de 192.168.85.25 localhost 127.0.0.1 > ls -t HINFO galaxis.de [localhost] sonne K6-450 Linux 2.2.1 > exit
![]() ![]() ![]() |
![]() ![]() |