

 
Leser haben mir vorgeschlagen, dass ich ein existierendes Beispiel einer funktionierenden Domain zusätzlich zu dem Lehrbeispiel hinzufüge.
Ich benutze dieses Beispiel mit Erlaubnis von David Bullock von LAND-5. Diese Dateien stammen vom 24. September 1996 und sind nachträglich von mir editiert worden, damit sie die Bind8-Restriktionen und Erweiterungen enthalten. Also unterscheiden sich diese Daten ein wenig von denen, die man erhält, wenn einer der LAND-5 Nameserver befragt wird.
Hier findet man die Zonenabschnitte, für die zwei benötigten reversen
Zonen: Das 127.0.0-Netz und auch das LAND-5 206.6.177-Subnetz.
Ausserdem ist eine primary-Zeile für die LAND-5-Forward-Zone land-5.com
enthalten. Ausserdem ist zu beachten, dass David die Dateien nicht in ein
Verzeichnis mit dem Namen pz legt, wie ich das in dieser HOWTO gemacht
habe. Er benutzt ein Verzeichnis namens zone.
// Boot-Datei fuer den LAND-5 Nameserver
options {
        directory "/var/named";
};
zone "." {
        type hint;
        file "root.hints";
};
zone "0.0.127.in-addr.arpa" {
        type master;
        file "zone/127.0.0";
};
zone "land-5.com" {
        type master;
        file "zone/land-5.com";
};
zone "177.6.206.in-addr.arpa" {
        type master;
        file "zone/206.6.177";
};
Sofern man dieses Beispiel in die eigene named.conf-Datei 
packt, wovon abzuraten ist, sollte man bitte auch noch ein 
»notify no;« in die Zonenabschnitte für die zwei 
land-5-Zonen schreiben, um Konflikte zu vermeiden.
Hierbei ist zu beachten, dass diese Datei relativ dynamisch ist. Die hier aufgelistete ist alt. Jetzt sollte besser eine mit dig neu erzeugte benutzt werden, wie bereits beschrieben wurde.
; <<>> DiG 8.1 <<>> @A.ROOT-SERVERS.NET. 
; (1 server found)
;; res options: init recurs defnam dnsrch
;; got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10
;; flags: qr aa rd; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 13
;; QUERY SECTION:
;;      ., type = NS, class = IN
;; ANSWER SECTION:
.                       6D IN NS        G.ROOT-SERVERS.NET.
.                       6D IN NS        J.ROOT-SERVERS.NET.
.                       6D IN NS        K.ROOT-SERVERS.NET.
.                       6D IN NS        L.ROOT-SERVERS.NET.
.                       6D IN NS        M.ROOT-SERVERS.NET.
.                       6D IN NS        A.ROOT-SERVERS.NET.
.                       6D IN NS        H.ROOT-SERVERS.NET.
.                       6D IN NS        B.ROOT-SERVERS.NET.
.                       6D IN NS        C.ROOT-SERVERS.NET.
.                       6D IN NS        D.ROOT-SERVERS.NET.
.                       6D IN NS        E.ROOT-SERVERS.NET.
.                       6D IN NS        I.ROOT-SERVERS.NET.
.                       6D IN NS        F.ROOT-SERVERS.NET.
;; ADDITIONAL SECTION:
G.ROOT-SERVERS.NET.     5w6d16h IN A    192.112.36.4
J.ROOT-SERVERS.NET.     5w6d16h IN A    198.41.0.10
K.ROOT-SERVERS.NET.     5w6d16h IN A    193.0.14.129
L.ROOT-SERVERS.NET.     5w6d16h IN A    198.32.64.12
M.ROOT-SERVERS.NET.     5w6d16h IN A    202.12.27.33
A.ROOT-SERVERS.NET.     5w6d16h IN A    198.41.0.4
H.ROOT-SERVERS.NET.     5w6d16h IN A    128.63.2.53
B.ROOT-SERVERS.NET.     5w6d16h IN A    128.9.0.107
C.ROOT-SERVERS.NET.     5w6d16h IN A    192.33.4.12
D.ROOT-SERVERS.NET.     5w6d16h IN A    128.8.10.90
E.ROOT-SERVERS.NET.     5w6d16h IN A    192.203.230.10
I.ROOT-SERVERS.NET.     5w6d16h IN A    192.36.148.17
F.ROOT-SERVERS.NET.     5w6d16h IN A    192.5.5.241
;; Total query time: 215 msec
;; FROM: roke.uio.no to SERVER: A.ROOT-SERVERS.NET.  198.41.0.4
;; WHEN: Sun Feb 15 01:22:51 1998
;; MSG SIZE  sent: 17  rcvd: 436
Hier ist nur das Minimum enthalten: Der obligatorische SOA-Eintrag und
ein Eintrag, der 127.0.0.1 in localhost umwandelt. Beide Einträge sind
nötig, allerdings sollte diese Datei nicht mehr enthalten. Sie wird
vermutlich niemals mehr geändert werden müssen, es sei denn der Nameserver
oder die hostmaster-Adresse ändert sich.
@               IN      SOA     land-5.com. root.land-5.com. (
                                199609203       ; Serial
                                28800   ; Refresh
                                7200    ; Retry
                                604800  ; Expire
                                86400)  ; Minimum TTL
                        NS      land-5.com.
        
1                       PTR     localhost.
Hier sieht man den notwendigen SOA-Eintrag und NS-Einträge. Man kann
erkennen, dass er einen Zweit (Secondary)-Nameserver mit der Adresse
ns2.psi.net hat. Es sollte übrigens immer ein zweiter Nameserver
als Backup-Server zur Verfügung stehen. Außerdem kann man sehen, dass es
einen Hauptrechner gibt, der land-5 heißt und viele verschiedene
Internetdienste anbietet - und dass dieser als Alternative zu A-Einträgen
mit CNAMEs realisiert wurde.
Der SOA-Eintrag enthält die Informationen über den Ursprung der
Zonendatei (land-5.com) und dass die Kontaktperson root@land-5.com
ist. hostmaster ist die meistens benutzte Adresse für die
Kontaktperson. Die Seriennummer ist in dem Format jjjjmmtt, wobei noch die
Seriennummer des laufenden Tages angehängt wird; vermutlich handelt es sich
um die sechste Version der Zonendatei vom 20. September 1996. Man sollte
immer daran denken, dass die Seriennummer monoton ansteigen muss. Da
dieses Beispiel eine einstellige Nummer für die Seriennnummer nutzt,
können maximal neun Änderungen an einem Tag gemacht werden können.
Darum empfehle ich die Verwendung von zwei Stellen für die Seriennummer.
@       IN      SOA     land-5.com. root.land-5.com. (
                        199609206       ; serial, todays date + todays serial #
                        8H              ; refresh, seconds
                        2H              ; retry, seconds
                        1W              ; expire, seconds
                        1D )            ; minimum, seconds
                NS      land-5.com.
                NS      ns2.psi.net.
                MX      10 land-5.com.  ; Primary Mail Exchanger
                TXT     "LAND-5 Corporation"
localhost       A       127.0.0.1
router          A       206.6.177.1
        
land-5.com.     A       206.6.177.2
ns              A       206.6.177.3
www             A       207.159.141.192
ftp             CNAME   land-5.com.
mail            CNAME   land-5.com.
news            CNAME   land-5.com.
funn            A       206.6.177.2
;
;       Workstations
;
ws-177200       A       206.6.177.200
                MX      10 land-5.com.   ; Primary Mail Host
ws-177201       A       206.6.177.201
                MX      10 land-5.com.   ; Primary Mail Host
ws-177202       A       206.6.177.202
                MX      10 land-5.com.   ; Primary Mail Host
ws-177203       A       206.6.177.203
                MX      10 land-5.com.   ; Primary Mail Host
ws-177204       A       206.6.177.204
                MX      10 land-5.com.   ; Primary Mail Host
ws-177205       A       206.6.177.205
                MX      10 land-5.com.   ; Primary Mail Host
; {Many repetitive definitions deleted - SNIP}
ws-177250       A       206.6.177.250
                MX      10 land-5.com.   ; Primary Mail Host
ws-177251       A       206.6.177.251
                MX      10 land-5.com.   ; Primary Mail Host
ws-177252       A       206.6.177.252
                MX      10 land-5.com.   ; Primary Mail Host
ws-177253       A       206.6.177.253
                MX      10 land-5.com.   ; Primary Mail Host
ws-177254       A       206.6.177.254
                MX      10 land-5.com.   ; Primary Mail Host
Bei genauerer Betrachtung der Nameserver von LAND-5, fällt auf, dass die
Rechnernamen immer die Form ws_nummer haben. Seit einer der
letzten der Bind-4-Versionen achtet der named auf Einschränkungen, welche
Zeichen in einem Rechnernamen vorkommen dürfen. Da die angegeben Namen mit
Bind-8 auf keinen Fall funktionieren würden, habe ich in der HOWTO die
Unterstriche »_« durch einen Bindestrich »-« ersetzt.
Ich sollte noch darauf hinweisen, dass die Workstations keine individuellen Namen haben, sondern aus einem Prefix mit den angehängten letzten beiden Teilen der IP-Adresse bestehen. Das vereinfacht die Wartung zwar erheblich, es ist aber sehr unpersönlich.
Man kann außerdem sehen, dass funn.land-5.com ein Alias für
land-5.com ist, dass aber ein A-Eintrag anstelle eines CNAME-Eintrages
gewählt wurde. Wie ich oben bereits sagte, ist diese Vorgehensweise der
Nutzung von CNAMES vorzuziehen.
Diese Datei wird weiter unten beschrieben.
@               IN      SOA     land-5.com. root.land-5.com. (
                                199609206       ; Serial
                                28800   ; Refresh
                                7200    ; Retry
                                604800  ; Expire
                                86400)  ; Minimum TTL
                        NS      land-5.com.
                        NS      ns2.psi.net.
;
;       Servers
;
1       PTR     router.land-5.com.
2       PTR     land-5.com.
2       PTR     funn.land-5.com.
;
;       Workstations
;
200     PTR     ws-177200.land-5.com.
201     PTR     ws-177201.land-5.com.
202     PTR     ws-177202.land-5.com.
203     PTR     ws-177203.land-5.com.
204     PTR     ws-177204.land-5.com.
205     PTR     ws-177205.land-5.com.
; {Many repetitive definitions deleted - SNIP}
250     PTR     ws-177250.land-5.com.
251     PTR     ws-177251.land-5.com.
252     PTR     ws-177252.land-5.com.
253     PTR     ws-177253.land-5.com.
254     PTR     ws-177254.land-5.com.
Die reverse Zone ist der unbeliebteste Teil der Einrichtung eines
Nameservers. Sie dient dazu, den Rechnernamen herauszufinden, wenn nur die
IP-Adresse bekannt ist. Wenn man zum Beispiel einen IRC-Server in Norwegen
betreibt und nur Clients aus Norwegen und anderen Skandinavischen Ländern
zulassen möchte, hat man die Möglichkeit, durch eine C-Bibliothek die 
IP-Nummer der
gerade verbundenen Maschine zu bekommen, da diese mit jedem Datenpaket über
das Netz geschickt wird. Jetzt kann man eine Funktion namens 
gethostbyaddr() aufrufen, die den Namen anhand einer 
übergebenen IP-Nummer herausfindet. gethostbyaddr() fragt dazu 
einen DNS-Server, der dann das DNS-System nach einem zu der 
IP-Nummer gehörigen Namen durchsucht. Wenn die Verbindung zum Beispiel
von ws-177200.land-5.com ausgeht, liefert die C-Funktion die IP-Adresse
206.6.177.200. Um den Namen des Rechners herauszufinden, müssen wir
200.177.6.206.in-addr.arpa finden.  Der DNS-Server geht dann über die
arpa.-Server, dann findet er in-addr.arpa.-Server, folgt der Route
über 206, 6 und zum Schluss findet er den Server für die
177.6.206.in-addr.arpa-Zone bei LAND-5. Dort wird er schlussendlich die
Antwort bekommen, dass ein »PTR ws-177200.land-5.com«-Eintrag
existiert. Das bedeutet, dass der zu der IP-Nummer 206.6.177.200 gehörende
Name ws-177200.land-5.com ist. Genau wie die obige Beschreibung ist auch
das ein wenig fiktiv - entspricht aber ungefähr dem tatsächlichen Ablauf.
Zurück zum IRC-Server-Beispiel. Der IRC-Server nimmt nur Verbindungen aus
Skandinavischen Ländern wie *.no, *.se oder *.dk an. Der
Rechner ws-177200.land-5.com passt zu keinem der genannten Länder,
darum wird der Server die Verbindung ablehnen. Wenn es keine
reverse Umwandlung für 206.6.177.200 durch die inn-addr.arpa-Zone
gäbe, würde der Server den Rechnernamen nicht herausfinden können und
müsste die IP-Nummer 206.6.177.200 mit *.no, *.se und *.dk
vergleichen - keine Domain würde zutreffen.
Es gibt viele Leute, die behaupten, dass reverse Mappings nur für Server wichtig sind oder überhaupt keinen Sinn haben. Das ist falsch: Viele FTP, News, IRC und sogar einige HTTP (WWW)-Server akzeptieren keine Verbindungen von Rechnern ohne Namen. Also sind reverse Mappings ein muss bei der Verwaltung eines eigenen Nameservers.


