40.4. Zonendateien

Man benötigt zwei Arten von Zonen-Dateien, die einen dienen dazu, einem Rechnernamen die IP-Adresse zuzuordnen und die anderen gehen den umgekehrten Weg und liefern zu einer gegebenen IP-Adresse den Rechnernamen.

[Tip]Der Punkt (.) in Zonendateien

Eine wichtige Bedeutung hat der Punkt in den Zonendateien. Werden Rechnernamen, ohne abschließenden . angegeben, wird immer die Zone ergänzt. Man muss also komplette Rechnernamen, die bereits mit vollständiger Domain angegeben wurden, mit einem . abschließen, damit die Domain nicht noch einmal dran gehängt wird. Ein fehlender Punkt oder einer an der falschen Stelle, dürfte die häufigste Fehlerursache bei der Konfiguration von Nameservern sein.

Den ersten Fall betrachten wir die Zonendatei welt.zone, die für die Domain welt.all zuständig ist; vgl. Beispiel 40.6, „Datei /var/lib/named/welt.zone“.

Beispiel 40.6. Datei /var/lib/named/welt.zone

$TTL 2D
welt.all.   IN SOA      gateway  root.welt.all. (
            2003072441  ; serial
            1D          ; refresh
            2H          ; retry
            1W          ; expiry
            2D )        ; minimum

            IN NS       gateway
            IN MX       10 sonne

gateway     IN A        192.168.0.1
            IN A        192.168.1.1
sonne       IN A        192.168.0.2
mond        IN A        192.168.0.3
erde        IN A        192.168.1.2
mars        IN A        192.168.1.3
www         IN CNAME    mond
Zeile 1:

$TTL definiert die Standard-TTL (engl. Time To Live), also zu deutsch Gültigkeitsdauer, die für alle Einträge in dieser Datei gilt: hier 2 Tage (2D = 2 days).

Zeile 2:

Hier beginnt der SOA control record (SOA = Start of Authority):

  • An erster Stelle steht hier der Name der zu verwaltenden Domain welt.all, diese ist mit einem . abgeschlossen, da ansonsten die Zone noch einmal angehängt würde. Alternativ kann man hier ein @ schreiben, dann wird die Zone dem zugehörigen Eintrag in der /etc/named.conf entnommen.

  • Nach dem IN SOA steht der Name des Nameservers, der als Master für diese Zone zuständig ist. In diesem Fall wird der Name gateway zu gateway.welt.all ergänzt, da er nicht mit einem . abgeschlossen ist.

  • Danach folgt eine E-Mail-Adresse, der für diesen Nameserver zuständigen Person. Da das @-Zeichen bereits eine besondere Bedeutung hat, ist hier stattdessen einfach ein . zu setzen, für root@welt.all trägt man hier folglich root.welt.all. ein. Den . am Ende darf man hier nicht vergessen, da sonst die Zone noch angehängt würde.

  • Am Ende folgt eine (, um die folgenden Zeilen, bis zur ) mit in den SOA-Record einzuschließen.

Zeile 3:

Die serial number ist eine willkürliche Zahl, die bei jeder Änderung an dieser Datei erhöht werden sollte. Sie wird benötigt, um sekundäre Nameserver (Slave-Server) über Änderungen zu informieren. Eingebürgert hat sich dafür eine zehnstellige Zahl aus Datum und fortlaufender Nummer in der Form JJJJMMTTNN.

Zeile 4:

Die refresh rate gibt das Zeitintervall an, in dem Sekundär-Nameserver die serial number der Zone überprüfen. In diesem Fall 1 Tag (1D = 1 day).

Zeile 5:

Die retry rate gibt den Zeitabstand an, in dem ein sekundärer Nameserver, im Fehlerfall versucht den primären Server erneut zu kontaktieren. Hier 2 Stunden (2H = 2 hours).

Zeile 6:

Die expiration time gibt den Zeitraum an, nachdem ein sekundärer Nameserver die gecacheten Daten verwirft, wenn er keinen Kontakt zum primären Server mehr bekommen hat. Hier ist das eine Woche (1W = 1 week).

Zeile 7:

Der letzte Eintrag im SOA ist die negative caching TTL. Er sagt aus, wie lange die Ergebnisse von DNS-Anfragen von anderen Servern gecachet werden dürfen, die nicht aufgelöst werden konnten.

Zeile 9:

Das IN NS gibt den Nameserver an, der für diese Domain zuständig ist. Auch hier gilt, dass gateway wieder zu gateway.welt.all ergänzt wird, weil es nicht mit einem . abgeschlossen ist. Es kann mehrere Zeilen dieser Art geben, eine für den primären und jeweils eine für jeden sekundären Nameserver. Ist für diese Zone notify in der /etc/named.conf nicht auf no gesetzt, werden alle hier aufgeführten Nameserver über Änderungen der Zonendaten informiert.

Zeile 10:

Der MX-Record gibt den Mailserver an, der für die Domain welt.all die Mails annimmt und weiterverarbeitet oder weiterleitet. In diesem Beispiel ist das der Rechner sonne.welt.all. Die Zahl vor dem Rechnernamen ist der Präferenz-Wert, gibt es mehrere MX-Einträge, wird zuerst der Mailserver mit dem kleinsten Wert genommen und falls die Auslieferung an diesen scheitert, wird der mit dem nächst höheren Wert versucht.

Zeile 12-17:

Das sind jetzt die eigentlichen Adresseneinträge (engl. Address Records), in denen den Rechnernamen eine oder mehrere IP-Adressen zugeordnet werden. Die Namen stehen hier ohne abschließenden ., da sie ohne angehängte Domain eingetragen sind und alle um welt.all ergänzt werden dürfen. Dem Rechner gateway sind zwei IP-Adressen zugeordnet, da er über zwei Netzwerkkarten verfügt. Das A steht jeweils für eine traditionelle Rechneradresse; mit A6 trägt man IPv6-Adressen ein, und AAAA ist das obsolete Format für IPv6-Adressen.

Zeile 18:

Mit dem Alias www kann auch mond (CNAME = canonical name) angesprochen werden.

Für die Rückwärts-Auflösung (engl. reverse lookup) von IP-Adressen in Rechnernamen wird die Pseudo-Domain in-addr.arpa zu Hilfe genommen. Diese wird dazu an den in umgekehrter Reihenfolge geschriebenen Netzanteil angehängt. Aus 192.168.1 wird dann 1.168.192.in-addr.arpa. Siehe Beispiel 40.7, „Umgekehrte Adressauflösung“.

Beispiel 40.7. Umgekehrte Adressauflösung

    
$TTL 2D
1.168.192.in-addr.arpa. IN SOA gateway.welt.all. root.welt.all. (
                        2003072441      ; serial
                        1D              ; refresh
                        2H              ; retry
                        1W              ; expiry
                        2D )            ; minimum

                        IN NS           gateway.welt.all.

1                       IN PTR          gateway.welt.all.
2                       IN PTR          erde.welt.all.
3                       IN PTR          mars.welt.all.
Zeile 1:

$TTL definiert die Standard-TTL, die hier für alle Einträge gilt.

Zeile 2:

Der „Reverse Lookup“ soll mit dieser Datei für das Netz 192.168.1.0 ermöglicht werden. Da die Zone hier 1.168.192.in-addr.arpa heißt, will man dies natürlich nicht an die Rechnernamen anhängen, deshalb sind diese alle komplett mit Domain und abschließendem . eingetragen. Der Rest entspricht dem, was im vorangegangenen Beispiel für welt.all, bereits beschrieben wurde.

Zeile 3-7:

Siehe vorangegangenes Beispiel für welt.all.

Zeile 9:

Diese Zeile gibt auch hier wieder den Nameserver an, der für diese Zone zuständig ist, diesmal wird aber der Name komplett mit Domain und abschließendem . hier eingetragen.

Zeile 11-13:

Das sind die Pointer-Records, die zu einer IP-Adresse auf den zugehörigen Rechnernamen zeigen. Hier steht am Anfang der Zeile nur die letzte Stelle der IP-Adresse, ohne abschließenden . Wird jetzt die Zone daran angehängt und man denkt sich das .in-addr.arpa weg, hat man die komplette IP-Adresse in umgekehrter Reihenfolge.

Zonentransfers zwischen den verschiedenen Versionen von BIND sollten normalerweise kein Problem darstellen.