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.
Die Abschnitte zur Konfiguration werden in 2 Kategorien unterschieden:
Im Konfigurationsverzeichnis /etc/bind
befinden sich bereits nach der Installation eine Reihe von Dateien.
.conf
named.conf
: Hauptdatei für die Konfiguration; verweist über include-Anweisungen nur auf andere Konfigurationsteilenamed.conf.options
: beinhaltet Einstellungen für die Konfiguration des Serverdienstesnamed.conf.local
: beinhaltet Einstellungen zu den lokalen DNS-Zonendb.
db.empty
: kann als Vorlage für eigene Zonendateien kopiert und angepasst werden.db.
beginnen oder gänzlich in ein eigenes Unterverzeichnis verlegt werden.Ü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.
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
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
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
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
Die Konfiguration der eigenen DNS-Zonen erfolgt in 2 Schritten.
named.conf.local
festgelegt werden.db.*
muss angelegt und mit den entsprechenden Resource Records gefüllt werden.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 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.