ZonendateiEine Zonendatei ist Teil der Konfiguration des Nameservers BIND für das Domain Name System. Sie besteht aus einer Liste von Resource Records (RR). Eine Zonendatei beschreibt eine Zone vollständig. Es muss genau ein SOA Resource Record und mindestens ein NS Resource Record vorhanden sein. Der SOA-RR befindet sich meist am Anfang einer Zonendatei. Neben den Syntax-Regeln der einzelnen RR-Typen definieren die RFC-Standards verschiedene globale Syntax-Regeln. Hauptziel dieser globalen Regeln ist, die Lesbarkeit von Zonendateien zu verbessern. Ein Syntax-Fehler führt meist dazu, dass die gesamte Zonendatei als unbrauchbar angesehen wird. Der Nameserver verhält sich dann ähnlich, als wäre diese Zone gar nicht vorhanden. Auf DNS-Anfragen reagiert er mit einer SERVFAIL-Fehlermeldung (wenn die Zone tatsächlich nicht vorhanden ist, reagiert er mit NXDOMAIN). RegelnRegel 1 – LeerzeilenLeerzeilen sind zulässig. Regel 2 – KommentareKommentare werden durch Regel 3 – mehrzeilige AnweisungenSoll ein Resource-Record auf mehrere Zeilen verteilt werden, so müssen Klammern verwendet werden. Beispiel: example.com. 1800 IN SOA ns1.example.com. mailbox.example.com. ( 100 ; Seriennummer 300 ; Refresh Time 100 ; Retry Time 6000 ; Expire Time 600 ; negative Caching Zeit ) example.com. 1800 IN NS ns1.example.com. ns1.example.com. 1800 IN A 172.27.182.17 ns1.example.com. 1800 IN AAAA 2001:db8::f:a www.example.com. 1800 IN A 192.168.1.2 www.example.com. 1800 IN AAAA 2001:db8::1:2 Regel 4 – @ als Platzhalter für ZonennamenErscheint der Name der Zone – der sogenannte Origin – ohne Extension isoliert, so darf er durch ein „ Beispiel Datei example.com: @ 1800 IN SOA ns1.example.com. mailbox.example.com. ( 100 ; Seriennummer 300 ; Refresh Time 100 ; Retry Time 6000 ; Expire Time 600 ; negative Caching Zeit ) @ 1800 IN NS ns1.example.com. @ 1800 IN A 1.2.3.4 @ 1800 IN AAAA 2001:db8::1:2:3:4 alias.example.com. 1800 IN CNAME @ ns1.example.com. 1800 IN A 172.27.182.17 ns1.example.com. 1800 IN AAAA 2001:db8::53 www.example.com. 1800 IN A 192.168.1.2 www.example.com. 1800 IN AAAA fd00::1:2 Regel 5 – Zonenname darf weggelassen werdenErscheint der Origin (Name der Zonen) am Ende eines Namens, so darf er weggelassen werden. Man beachte den Unterschied, der durch den weggelassenen Punkt am Ende des Namens entsteht: Namen mit anhängendem Punkt sind vollqualifiziert, und Namen ohne Punkt sind immer relativ zur Origin, wie man an den letzten beiden Beispielen sieht. Beispiel Zone example.com: @ 1800 IN SOA ns1 mailbox ( 100 ; Seriennummer 300 ; Refresh Time 100 ; Retry Time 6000 ; Expire Time 600 ; negative Caching Zeit ) @ 1800 IN NS ns1 ns1 1800 IN A 172.27.182.17 www 1800 IN A 192.168.1.2 www.abteilung 1800 IN A 192.168.1.3 ; bedeutet www.abteilung.example.com www.example.com 1800 IN A 192.168.1.4 ; bedeutet wegen fehlenden Punkts www.example.com.example.com Regel 6 – nur der erste Name muss angegeben werdenHaben zwei oder mehr aufeinanderfolgende RRs den gleichen Namen, so braucht nur der erste angegeben zu werden. ns1.example.com. 1800 IN A 172.27.182.17 1800 IN AAAA 2001:db8::53 www.example.com. 1800 IN A 192.168.1.2 1800 IN AAAA fd00::1:2 Regel 7 – „IN“ muss nur einmal angegeben werdenDas Klassenfeld „ Beispiel: @ 1800 IN SOA ns1 mailbox ( 100 ; Seriennummer 300 ; Refresh Time 100 ; Retry Time 6000 ; Expire Time 600 ; negative Caching Zeit ) 1800 NS ns1 ; der Name darf weggelassen werden ns1 1800 A 172.27.182.17 www 1800 A 192.168.1.2 Regel 8 – TTLIst in einem RR kein TTL (Time to live) vorhanden, so wird der Wert aus der $TTL Variable am Anfang der Zonendatei vor dem SOA Ressource Record genommen. Vor Bind Version 8.2 kam dieser TTL-Wert aus dem letzten Feld im SOA Resource Record (minimum TTL), welcher ab Bind Version 8.2 durch die „negative caching TTL“ ersetzt wurde und der $TTL vor dem SOA-RR an dessen Stelle eingeführt wurde. Beispiel: $TTL 1234 @ IN SOA ns1 mailbox 100 300 100 6000 10800 NS ns1 ns1 A 172.27.182.17 ; TTL=1234 aus $TTL www 20 A 192.168.1.2 ; nur hier gilt TTL=20 test A 1.2.3.4 ; TTL=1234 aus $TTL Die Einheit für Zeitangaben wie z. B. TTL ist Sekunden (ersichtlich in Ripe-203[1]). Die Spezifikation des TTL Feldes findet sich in RFC 2308.[2] Regel 9 – $ORIGINStandard-Origin ist der Zonenname, wie er in der Datei named.conf.local definiert wurde. Mit der Beispiel Zone example.com: $TTL = 1234 @ IN SOA ns1 mailbox 100 300 100 6000 1800 NS ns1 ns1 A 172.27.182.17 www A 192.168.1.2 $ORIGIN sub.example.com. xxx A 1.2.3.4 Regel 10 – $TTLMit der Beispiel: $TTL 1800 @ IN SOA ns1 mailbox 100 300 100 6000 600 NS ns1 ns1 A 172.27.182.17 Regel 11 – $INCLUDEMit Beispiel: @ IN SOA ns1 mailbox 100 300 100 6000 1800 NS ns1 ns1 A 172.27.182.17 $INCLUDE /var/named/mx-records.txt $INCLUDE /var/named/a-records.txt SonstigesBeim bekannten BIND-Nameserver existiert außerdem die Weblinks
Einzelnachweise
|