Erstellen und Verwalten von DNS-Zonen

Das Domain Name System (DNS) ist das Herzstück des Internets und ermöglicht die Auflösung von menschenlesbaren Domainnamen in IP-Adressen, die von Computern genutzt werden, um Daten zu senden und zu empfangen. Als Systemadministrator ist es unerlässlich zu verstehen, wie man DNS-Zonen erstellt und verwaltet, insbesondere wenn man einen eigenen DNS-Server betreibt oder ein internes Netzwerk konfiguriert.

In diesem Beitrag wirst du lernen, was DNS-Zonen sind, wie du sie unter Linux mit BIND9, einer weit verbreiteten DNS-Server-Software, erstellst und verwaltest, sowie einige Best Practices zur Pflege von DNS-Zonen.


Was ist eine DNS-Zone?

Eine DNS-Zone ist ein Bereich des Domain Name Systems, der für die Verwaltung einer bestimmten Domain oder eines Teils einer Domain zuständig ist. Jede DNS-Zone enthält eine Sammlung von DNS-Einträgen, die Domainnamen mit IP-Adressen verknüpfen (z.B. example.com -> 192.168.1.1). Es gibt verschiedene Arten von Zonen, abhängig davon, wie sie verwendet werden:

  • Forward-Zonen: Diese Zonen dienen der Umwandlung von Domainnamen in IP-Adressen.
  • Reverse-Zonen: Diese Zonen sind das Gegenteil von Forward-Zonen und wandeln IP-Adressen in Domainnamen um.
  • Master-Zonen: Die primäre Zone, in der DNS-Einträge für eine Domain verwaltet werden.
  • Slave-Zonen: Sekundäre Zonen, die Kopien von Master-Zonen sind und zur Lastverteilung und Redundanz verwendet werden.

Vorbereitung: Installation von BIND9

Um DNS-Zonen zu erstellen und zu verwalten, musst du einen DNS-Server installieren. In diesem Beispiel verwenden wir BIND9, die am häufigsten eingesetzte DNS-Server-Software auf Linux-Systemen.

Für Debian/Ubuntu-basierte Systeme installierst du BIND9 mit folgendem Befehl:

sudo apt update
sudo apt install bind9 bind9utils bind9-doc

Für Red Hat/CentOS-basierte Systeme:

sudo yum install bind bind-utils

Nach der Installation läuft der DNS-Server in der Regel automatisch. Überprüfe dies mit:

sudo systemctl status bind9

Erstellen einer Forward-Zone

Eine Forward-Zone ist die häufigste Art von DNS-Zone. Sie ermöglicht die Umwandlung eines Domainnamens (z.B. example.com) in eine IP-Adresse (z.B. 192.168.1.10).

  1. Zone in named.conf.local hinzufügen

Die Datei /etc/bind/named.conf.local ist der Ort, an dem du deine eigenen Zonen definierst. Um eine neue Forward-Zone zu erstellen, fügst du Folgendes in die Datei ein:

sudo nano /etc/bind/named.conf.local

Füge die folgende Zone für die Domain example.com hinzu:

zone "example.com" {
type master;
file "/etc/bind/db.example.com";
};

Dies definiert example.com als Master-Zone und gibt an, dass die DNS-Einträge in der Datei /etc/bind/db.example.com gespeichert werden.

  1. Erstellen der Zonen-Datei

Erstelle die Datei /etc/bind/db.example.com, in der die DNS-Einträge für die Domain example.com definiert werden. Du kannst eine Vorlage von der Datei db.local kopieren:

sudo cp /etc/bind/db.local /etc/bind/db.example.com

Bearbeite die neue Zonen-Datei:

sudo nano /etc/bind/db.example.com

Füge die DNS-Einträge wie folgt hinzu:

;
; BIND-Zone für example.com
;
$TTL 604800
@ IN SOA ns1.example.com. admin.example.com. (
2025011901 ; Seriennummer
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; TTL

; Nameserver
@ IN NS ns1.example.com.

; A-Eintrag für den Nameserver
ns1 IN A 192.168.1.10

; A-Eintrag für die Hauptdomain
@ IN A 192.168.1.10

; CNAME für www
www IN CNAME example.com.

Erläuterung:

  • SOA (Start of Authority): Der SOA-Eintrag enthält wichtige Informationen über die Zone, wie den primären Nameserver (ns1.example.com), die E-Mail-Adresse des Administrators (admin.example.com), und eine Seriennummer.
  • NS-Eintrag: Der NS-Eintrag definiert den Nameserver für die Domain.
  • A-Eintrag: Dieser Eintrag verknüpft den Domainnamen example.com und ns1.example.com mit der IP-Adresse 192.168.1.10.
  • CNAME-Eintrag: Ein Alias für www.example.com, der auf example.com verweist.

Speichere die Datei und überprüfe sie mit:

sudo named-checkzone example.com /etc/bind/db.example.com

Wenn die Prüfung erfolgreich ist, starte BIND neu:

sudo systemctl restart bind9

Erstellen einer Reverse-Zone

Eine Reverse-Zone ermöglicht den umgekehrten DNS-Lookup, bei dem eine IP-Adresse in einen Domainnamen aufgelöst wird. Dies ist besonders nützlich in Netzwerken und für E-Mail-Server.

  1. Reverse-Zone in named.conf.local hinzufügen

Bearbeite die Datei /etc/bind/named.conf.local, um eine Reverse-Zone hinzuzufügen:

sudo nano /etc/bind/named.conf.local

Füge eine Zone für das Subnetz 192.168.1.x hinzu:

zone "1.168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.192.168.1";
};
  1. Erstellen der Reverse-Zonen-Datei

Erstelle die Datei /etc/bind/db.192.168.1, die die DNS-Einträge für die Reverse-Zone enthält:

sudo cp /etc/bind/db.127 /etc/bind/db.192.168.1

Bearbeite die Datei:

sudo nano /etc/bind/db.192.168.1

Füge die Reverse-DNS-Einträge hinzu:

;
; Reverse-DNS-Zone für 192.168.1.x Subnetz
;
$TTL 604800
@ IN SOA ns1.example.com. admin.example.com. (
2025011901 ; Seriennummer
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; TTL

@ IN NS ns1.example.com.

10 IN PTR ns1.example.com.
20 IN PTR www.example.com.

Erläuterung:

  • PTR-Eintrag: Ein PTR-Eintrag (Pointer) weist einer IP-Adresse einen Domainnamen zu. Hier verknüpft 10.168.192.in-addr.arpa die IP-Adresse 192.168.1.10 mit ns1.example.com.

Speichere die Datei und überprüfe sie:

sudo named-checkzone 1.168.192.in-addr.arpa /etc/bind/db.192.168.1

Starte BIND neu:

sudo systemctl restart bind9

Verwalten von DNS-Zonen

Aktualisieren von DNS-Einträgen

Wenn du Änderungen an einer Zone vornehmen möchtest, z.B. neue DNS-Einträge hinzufügen oder bestehende Einträge aktualisieren, kannst du dies direkt in der entsprechenden Zonen-Datei tun. Wichtig ist, dass du nach jeder Änderung die Seriennummer im SOA-Eintrag erhöhst. Dies ist entscheidend, da DNS-Server die Seriennummer verwenden, um festzustellen, ob eine Zone aktualisiert wurde.

Beispiel: Erhöhe die Seriennummer von 2025011901 auf 2025011902.

Zonenüberprüfung und Neustart von BIND

Nach jeder Änderung an einer Zone solltest du die Konfigurationsdateien überprüfen und BIND neu starten:

sudo named-checkzone example.com /etc/bind/db.example.com
sudo systemctl restart bind9

Slave-Zonen

Für Redundanz und Lastverteilung kannst du Slave-Zonen einrichten. Diese Server synchronisieren automatisch ihre Zonen mit dem Master-Server. In der Konfigurationsdatei des Slave-Servers definierst du die Zone wie folgt:

zone "example.com" {
    type slave;
    masters { 192.168.1.10; };  # IP-Adresse des Master-Servers
    file "/var/cache/bind/db.example.com";
};

Best Practices für DNS-Zonenverwaltung

  1. Seriennummern konsequent aktualisieren: Bei jeder Änderung einer Zonen-Datei muss die Seriennummer erhöht werden, damit alle DNS-Server die Änderungen erkennen und synchronisieren können.
  2. Regelmäßige Überprüfungen: Verwende regelmäßig Tools wie named-checkzone, um die Konsistenz deiner Zonen-Dateien sicherzustellen.
  3. Backup von DNS-Zonen: Sichere regelmäßig deine Konfigurations- und Zonen-Dateien. Fehler oder Datenverluste können zu erheblichen Ausfällen führen.
  4. Überwachung der DNS-Server: Nutze Überwachungstools, um die Verfügbarkeit und Performance deines DNS-Servers zu prüfen.

Fazit

Das Erstellen und Verwalten von DNS-Zonen unter Linux mit BIND9 ist eine essentielle Aufgabe für Systemadministratoren, um ein stabiles und sicheres Netzwerk zu gewährleisten. Mit den Grundlagen aus diesem Beitrag solltest du in der Lage sein, sowohl Forward- als auch Reverse-Zonen einzurichten und zu verwalten. BIND9 bietet eine leistungsstarke und flexible Möglichkeit, DNS-Server zu konfigurieren und zu betreiben, sowohl in kleinen Netzwerken als auch in großen, unternehmensweiten Implementierungen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert