207.2 Erstellen und Verwalten von DNS-Zonen Gewichtung 3

207.2 Erstellen und Verwalten von DNS-Zonen

Kandidaten sollten eine Zonendatei für eine Vorwärts- oder Rückwärtszone und Hints für Root-Level-Server erstellen können. Dieses Lernziel umfasst das Einstellen korrekter Werte für Records, das Hinzufügen von Hosts in Zonen und das Hinzufügen von Zonen zum DNS. Kandidaten sollten außerdem Zonen an einen anderen DNS-Server delegieren können.

Hauptwissensgebiete:

Dies ist eine auszugsweise Liste der verwendeten Dateien, Begriffe und Hilfsprogramme:

Prüfen der Konfigurationsfiles mit named-checkconf

Das wichtigste zuerst. Ein Neustart oder Neuladen einer fehlerhaften Konfiguration kann den gesamten DNS-Server zum erliegen bringen. Deshalb immer vorher testen!

die gesamte Konfiguration testen:

dazu nimmt man das Kommando named-checkconf mit dem Paramter -z. Der zusätzlich alle eingebundenen Zonenfiles mit überprüft.

Siehe auch man named-checkconf

root@ubuntu:/etc/bind# named-checkconf -z && echo "===============>>>>>>>>>>>>>   Die Konfiguration ist OK!  <<<<<<<<<<<<<<<<<<================"
zone localhost/IN: loaded serial 2
zone 127.in-addr.arpa/IN: loaded serial 1
zone 0.in-addr.arpa/IN: loaded serial 1
zone 255.in-addr.arpa/IN: loaded serial 1
zone lpic2.test/IN: loaded serial 2019120801
zone 17.191.10.in-addr.arpa/IN: loaded serial 2018120801
zone 18.191.10.in-addr.arpa/IN: loaded serial 2018120801
===============>>>>>>>>>>>>>   Die Konfiguration ist OK!  <<<<<<<<<<<<<<<<<<================

Hier ist alles in Ordnung. Wie es mit einem Fehler aussieht, sieht man hier:

root@ubuntu:/etc/bind# named-checkconf -z && echo "===============>>>>>>>>>>>>>   Die Konfiguration ist OK!  <<<<<<<<<<<<<<<<<<================"
zone localhost/IN: loaded serial 2
zone 127.in-addr.arpa/IN: loaded serial 1
zone 0.in-addr.arpa/IN: loaded serial 1
zone 255.in-addr.arpa/IN: loaded serial 1
zone lpic2.test/IN: loaded serial 2019120801
zone 17.191.10.in-addr.arpa/IN: loaded serial 2018120801
dns_rdata_fromtext: /etc/bind/zones/db.18.191.10:7: near eol: unexpected end of input
zone 18.191.10.in-addr.arpa/IN: loading from master file /etc/bind/zones/db.18.191.10 failed: unexpected end of input
zone 18.191.10.in-addr.arpa/IN: not loaded due to errors.
_default/18.191.10.in-addr.arpa/IN: unexpected end of input

Wenn man sich nur für den Fehler interessiert, dann lenkt man den stdout nach /dev/null um, dann kommt nur stderr zur Anzeige:

named-checkconf -z > /dev/null
_default/18.191.10.in-addr.arpa/IN: unexpected end of input

Prüfen eines Zoenenfiles mit named-checkzone

man named-checkzone

Ein Zonefile ohne Fehler bringt die folgende Ausgabe:

root@ubuntu:/etc/bind# named-checkzone db.18.191.10 /etc/bind/zones/db.18.191.10
zone db.18.191.10/IN: loaded serial 2018120801
OK

Nun kommentiere ich mal die serial-number aus und teste noch mal. Die Datei sieht dann so aus:

root@ubuntu:/etc/bind# cat /etc/bind/zones/db.18.191.10
$TTL      300 ; time-to-live - 5 min
@     IN    SOA   ns1.lpic2.test. root.localhost. (
                  ; 2018120801 ; Serial
                  604800 ; Refresh (every 7 days)
                  86400 ; Retry (every 24h)
                  2419200 ; Expire (after 28 days)
                  604800 ) ; TTL Negativ Cache (7 days)
      IN      NS      ns1.lpic2.test.
9     IN    PTR   18.test.
root@ubuntu:/etc/bind# named-checkzone db.18.191.10 /etc/bind/zones/db.18.191.10
dns_rdata_fromtext: /etc/bind/zones/db.18.191.10:7: near eol: unexpected end of input
zone db.18.191.10/IN: loading from master file /etc/bind/zones/db.18.191.10 failed: unexpected end of input
zone db.18.191.10/IN: not loaded due to errors.

Hier wird auf Zeile 7 hingewiesen, das ist die Zeile in der die Konfiguration des SOA-Records abgeschlossen wird. Also sollte man dort den Fehler suchen. Ein Fehler der mir gerne passiert, ich erstelle keine Mail-Adresse des Zonen-Verantwortlichen. In diesem Beispiel ist das die Angabe root.localhost. , das wird dann zu der Email root@localhost übersetzt.

Aufbau der Zonendatei

siehe https://de.wikipedia.org/wiki/Zonendatei

SOA Record

siehe https://de.wikipedia.org/wiki/SOA_Resource_Record

@ ist ein Platzhalter für den Zonennamen

<Name der Zone, meist @> <TTL in Sekunden: optional, wird meist weggelassen> <Zonetype: meist IN für Internet> SOA <Primary/Master für diese Zone, also der DNS-Master> <Email-Adresse des Zonenverantwortlichen>

Name der Zone TTL gibt in Sekunden an, wie lange dieser RR in einem Cache gültig sein darf IN Zonenklasse (meist IN für Internet) SOA Kürzel für Start Of Authority Primary Primary Master für diese Zone: er definiert, an wen dynamische Updates gesendet werden sollen (siehe: Dynamisches Update) er gibt an, an wen keine Notifies gesendet werden (siehe: Zonentransfer) Mail-Adresse des Verantwortlichen für diese Zone. (Das @ wird durch . ersetzt. Punkte vor dem @ werden durch . ersetzt; beispielsweise max.mustermann.wikipedia.org für die E-Mail-Adresse max.mustermann@wikipedia.org) Seriennummer wird bei jeder Änderung inkrementiert (vorzugsweise JJJJMMTTVV; dient als Hinweis, wann die Zone zuletzt aktualisiert wurde[1]) Refresh Sekundenabstand, in dem sekundäre Nameserver die Seriennummer vom primären Master abfragen sollen, um Änderungen der Zone festzustellen.[2] Empfehlung vom RIPE NCC für kleine und stabile Zonen: 86400 ≙ 24 Stunden.[1] Retry Sekundenabstand, in dem, bei ausbleibender Antwort des Masters, sekundäre Nameserver nochmals seine Seriennummer abfragen sollen. Dieser Wert muss kleiner als jener zum Refresh sein. Empfehlung vom RIPE NCC für kleine und stabile Zonen: 7200 ≙ 2 Stunden.[1] Expire Sekundenabstand, nach dem bei ausbleibender Antwort des Masters sekundäre Nameserver keine Antworten über die Zone mehr geben sollen. Dieser Wert muss größer als die Summe jener zum Refresh und Retry sein. Empfehlung vom RIPE NCC für kleine und stabile Zonen: 3600000 ≙ 1000 Stunden.[1] Minimum Time to Live für Negatives Caching (Empfehlung vom RIPE NCC für kleine und stabile Zonen: 3600 ≙ 1 Stunde[1]). Ursprünglich hatte dieses Feld die Bedeutung eines Minimum-TTL-Werts für alle Resource Records der Zone[3] und wurde in der Praxis als Standardwert verwendet, wenn bei einem Resource Record kein TTL-Wert angegeben war; diese Bedeutung wurde mit RFC 2308 abgeschafft.[4]

Weitere Record-Typen

Ein seltener aber wichtiger Typ der nich direkt als Typ so deklariert wird, ist der GLU-Record. Der GLU-Record verweisst auf eine IP-Adresse. Seine spezielle Bezeichnung bekommt er daher, dass dieser A bzw. AAAA Record die IP-Adresse des Nameservers enthält, auf die sein eigenes Zonefile verweisst.

Aus [stackoverflow][https://serverfault.com/questions/309622/what-is-a-glue-record] habe ich folgende Beschreibung, in’s deutsche übersetzt.

Wie sieht ein GLU-Record aus?


Erstellen einer privaten Zone

folgender Link hat mir bei der Einrichtung geholfen: http://www.technik-tipps-und-tricks.de/raspberry-pi/raspberry-pi-projekte/lokaler-dns-server-mit-bind/

Zum Testen erstelle ich eine Zone die nur von meinem DNS-Server aufgelöst wird. Das heißt, die Clients, die meine Zone auflösen wollen, müssen diesen DNS-Server eingetragen haben.

root@ubuntu:/etc/bind# cat /etc/bind/zones/lpic2.test
$TTL    300
@       IN      SOA     ns1.lpic2.test. root.localhost (; mail-Adresse root@localhost
                        2019120801      ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
@       IN      NS      ns1.lpic2.test.
ns1     IN      A       10.191.17.9
@       IN      A       10.191.17.9
www     IN      A       10.191.17.9
root@ubuntu:/etc/bind# cat /etc/bind/zones/db.17.191.10
$TTL      300 ; time-to-live - 5 min
@     IN    SOA   ns1.lpic2.test. root.localhost. (
                  2018120801 ; Serial
                  604800 ; Refresh (every 7 days)
                  86400 ; Retry (every 24h)
                  2419200 ; Expire (after 28 days)
                  604800 ) ; TTL Negativ Cache (7 days)
      IN      NS      ns1.lpic2.test.
9     IN    PTR   lpic2.test.
root@ubuntu:/etc/bind# cat ./named.conf.master-zones
zone "lpic2.test" {
        type master;
        file "/etc/bind/zones/lpic2.test";
};
zone "17.191.10.in-addr.arpa" {
      type master;
      file "/etc/bind/zones/db.17.191.10";
};
root@ubuntu:/etc/bind# tail -1 ./named.conf
include "/etc/bind/named.conf.master-zones";

vorwärtz:

root@ubuntu:/etc/bind# dig @127.0.0.1 +noall +answer lpic2.test
lpic2.test.             300     IN      A       10.191.17.9

und rückwärtz:

root@ubuntu:/etc/bind# dig @127.0.0.1 +noall +answer -x 10.191.17.9
9.17.191.10.in-addr.arpa. 300   IN      PTR     lpic2.test.

HOME