Dns Client einrichten Der Domain Name Service Änderungen in der Version 8 Inhalt Index


Die Server-Seite

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


Dns Client einrichten Der Domain Name Service Änderungen in der Version 8 Inhalt Index