Inhaltsverzeichnis

BIND9-DNS-Server installieren und verwalten

Installation unter Ubuntu Linux

BIND9 kann unter Ubuntu Linux mit apt -y install bind9 aus den Paketquellen installiert werden. Es wird automatisch ein Systemdienst dafür angelegt und gestartet. Die Konfiguration befindet sich im Verzeichnis /etc/bind und wird weiter unten beschrieben.

Konfiguration

Die Abschnitte zur Konfiguration werden in 2 Kategorien unterschieden:

Überblick

Im Konfigurationsverzeichnis /etc/bind befinden sich bereits nach der Installation eine Reihe von Dateien.

Konfiguration des Serverdienstes

Übersicht über alle Optionen bei Zytrax.com

Die Konfiguration des Serverdienstes selbst wird in der Datei named.conf.options vorgenommen. Da die Menge möglicher Konfigurationsoptionen sehr umfangreich ist, folgt hier eine Auswahl an Optionen, deren Konfiguration auch bei einer einfachen Installation sinnvoll sein können.


Forwarder

Alle Anfragen, die der DNS-Server nicht selbst aus seinen eigenen Zonendateien beantworten kann, reicht er an die angegebenen Forwarder weiter. Hier können z. B. öffentlich verfügbare DNS-Server wie 9.9.9.9, 1.1.1.1 oder 8.8.8.8 eingetragen werden, aber auch der nächste verfügbare DNS-Server im lokalen Netz, 10.0.0.53.

Referenz zu forwarders bei Zytrax.com


Interfaces

Ein DNS-Server kann mehrere Netzwerkkarten und pro Netzwerkkarte mehrere IP-Adressen (auch v4, v6) besitzen. Hiermit kann festgelegt werden, auf welchen der vorhandenen Interfaces der DNS-Dienst Anfragen annehmen soll.

Referenz zu listen-on und listen-on-v6 bei Zytrax.com

Ein DNS-Server verwendet üblicherweise den Port 53, um seine Dienste anzubieten. Dennoch ist es möglich von diesem Standard abzuweichen.

Referenz zu port bei Zytrax.com


Rekursives Abfrageverhalten

Je nachdem, ob es sich bei dem DNS-Server um einen Server handeln soll, der nur Antworten zu seinen eigenen Zonen liefert oder auch für Clients rekursive Abfragen durchführt, kann dies in der Konfiguration festgelegt werden.

Referenz zu recursion bei Zytrax.com


Clients und Anfragen

Nicht jeder DNS-Server beantwortet Anfragen für alle Clients. Es kann eine Auswahl vorgenommen werden, wenn man den Kreis der zulässigen Clients einschränken möchte. Dabei kann man unterscheiden, wem man generell Anfragen erlauben möchte (allow-query) und wem man auch Anfragen für rekursive Auflösung erlauben möchte (allow-recursion).

Referenz zu allow-query bei Zytrax.com

Referenz zu allow-recursion bei Zytrax.com

Konfiguration der DNS-Zonen

Die Konfiguration der eigenen DNS-Zonen erfolgt in 2 Schritten.


Zuständigkeit für die Zone konfigurieren

Eine Übersicht über alle innerhalb der Zonen-Klausel erlaubten Konfigurationsoptionen findest du hier.

Hier siehst du das Schema der Zonen-Klausel (links) zusammen mit einem Beispiel (rechts):

zone "zone_name" [class] {                         zone "example.com" IN {
  // Zonen-Statements                                // Zonen-Statements
};                                                 };

Die Angabe der Klasse IN ist optional und kann weggelassen werden.

Zu den Mindestangaben in einer Zonen-Klausel gehören für einen Zonen-Master die Typangabe und der Pfad zur Zonendatei. (type und file)

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

Die Zonendatei

Die Zonendatei beinhaltet die eigentlichen Informationen zur Zone. In ihr müssen alle Resource Records für die Zone hinterlegt werden. Die Startseite für die Dokumentation dazu bei Zytrax beinhaltet auch eine Beispieldatei.

Besonders wichtig für eine funktionierende Zonenkonfiguration ist der Korrekte Umgang mit der Seriennummer. Diese muss bei jeder Änderung hochgezählt werden, da der Serverdienst die Konfigurationsdatei sonst nicht neu einliest. Für die Seriennummer hat sich eine an das Datum angelehnte Schreibweise etabliert, welche dem Muster JJJJMMTTNN folgt. Dabei stehen J, M und T für Jahr, Monat und Tag und die beiden N für eine zweistellige täglich fortlaufende Nummer.

Nach jeder Änderung an einer Zonendatei muss zuerst der Serverdienst neu gestartet werden, bevor diese wirksam wird. Dies ist unter Ubuntu Linux mit dem Befehl systemctl restart bind9 möglich.