DNS-Server · 13 min read · Sep 08, 2025
So richten Sie einen DNS-Server mit BIND auf Ubuntu 22.04 ein

BIND oder Berkeley Internet Name Domain ist eine kostenlose und Open-Source-DNS-Server-Software. Es ist eine der beliebtesten DNS-Server-Software, die von mehr als 70 % der DNS im Internet verwendet wird. BIND gibt es seit den 1980er Jahren und es ist bekannt für seine Flexibilität, Leistung und Funktionen. BIND kann sowohl als autoritativer DNS-Server als auch als Caching-DNS-Server verwendet werden, unterstützt Lastenausgleich, dynamische Updates, Split-DNS, DNSSEC, IPv6 und vieles mehr.
Die BIND-DNS-Software ist einer der zuverlässigsten DNS-Server für Unix-ähnliche Betriebssysteme. Sie ist auf den meisten Linux-Distributionen verfügbar und bietet zusätzliche Tools zur Diagnose und zum Testen des DNS-Servers.
Dieser Leitfaden zeigt Ihnen, wie Sie einen DNS-Server mit BIND auf einem Ubuntu 22.04-Server installieren. Dieses Tutorial zeigt Ihnen, wie Sie die Master-Slave-BIND-DNS-Serverinstallation mit zwei Ubuntu-Servern einrichten.
Voraussetzungen
Bevor Sie mit diesem Leitfaden beginnen, sollten Sie die folgenden Anforderungen haben:
- Zwei Ubuntu 22.04-Server.
- Ein Nicht-Root-Benutzer mit Root-/Administratorrechten.
Einrichten des FQDN (Fully Qualified Domain Name)
Bevor Sie mit der Installation der BIND-Pakete beginnen, müssen Sie sicherstellen, dass der Hostname und der FQDN Ihrer Server korrekt sind. In dieser Demonstration werden wir zwei Ubuntu-Server mit den folgenden Details verwenden:
Hostname IP-Adresse FQDN Verwendet Als
---------------------------------------------------------
ns1 192.168.5.21 ns1.howtoforge.local BIND Master
ns2 192.168.5.22 ns2.howtoforge.local BIND SlaveJetzt melden Sie sich bei jedem Server an und führen Sie den folgenden Befehl aus, um den FQDN (Fully Qualified Domain Name) einzurichten.
FQDN auf dem „ ns1 “-Server einrichten.
sudo hostnamectl set-hostname ns1.howtoforge.localFQDN auf dem „ ns2 “-Server einrichten.
sudo hostnamectl set-hostname ns2.howtoforge.localBearbeiten Sie als Nächstes die Datei „ /etc/hosts “ mit dem folgenden Befehl.
sudo nano /etc/hostsFügen Sie die folgende Konfiguration zu jedem Server hinzu.
192.168.5.21 ns1.howtoforge.local ns1
192.168.5.22 ns2.howtoforge.local ns2Speichern und schließen Sie die Datei, wenn Sie fertig sind.
Überprüfen Sie schließlich den FQDN auf jedem Server mit dem folgenden Befehl. Auf dem „ ns1 “-Server erhalten Sie den FQDN als „ ns1.howtoforge.local “, und auf dem „ ns2 “-Server erhalten Sie die Ausgabe „ ns2.howtoforge.local “.
sudo hostname -fInstallation der BIND-Pakete
BIND-Pakete sind standardmäßig im Ubuntu-Server-Repository verfügbar. Jetzt können Sie BIND ganz einfach mit dem apt-Befehl auf beiden Servern „ns1“ und „ns2“ installieren.
Führen Sie den folgenden apt-Befehl aus, um die Ubuntu-Repositories zu aktualisieren und zu aktualisieren.
sudo apt updateDanach installieren Sie die BIND-Pakete mit dem folgenden Befehl. Geben Sie Y ein, um die Installation zu bestätigen, und drücken Sie ENTER, um fortzufahren. Und die Installation beginnt.
sudo apt install bind9 bind9utils bind9-doc dnsutils
Nachdem die BIND-Installation abgeschlossen ist, bearbeiten Sie die Konfiguration „ /etc/default/named “ mit dem folgenden Befehl.
sudo nano /etc/default/namedDie Zeile „ OPTIONS= “ ermöglicht es Ihnen, spezifische Optionen festzulegen, wenn der BIND-Dienst ausgeführt wird. In dieser Demo werden Sie BIND nur mit IPv4 ausführen, daher müssen Sie die Zeile „ OPTIONS “ wie folgt ändern.
OPTIONS="-u bind -4"Speichern und schließen Sie die Datei, wenn Sie fertig sind.
Führen Sie jetzt den folgenden Befehl aus, um den BIND-Dienst „ named “ neu zu starten. Überprüfen Sie dann den Status des BIND-Dienstes. Sie sollten sehen, dass der BIND-Dienst „ named “ auf beiden Servern läuft.
sudo systemctl restart named
sudo systemctl status named
Einrichten von BIND Master
Nachdem Sie die BIND-Pakete auf beiden Servern „ns1“ und „ns2“ installiert haben, richten Sie den BIND-DNS-Server ein. Sie werden den Server „ns1“ als Master des BIND-DNS-Servers einrichten. Sie können BIND auf einem einzelnen Server ausführen, es wird jedoch empfohlen, mehrere Server zu verwenden, um den Hochverfügbarkeits-DNS-Server einzurichten.
Zurück zur Terminal-Sitzung des „ ns1 “-Servers.
Führen Sie den folgenden Befehl aus, um die Konfigurationsdatei „ /etc/bind/named.conf.options “ zu bearbeiten.
sudo nano /etc/bind/named.conf.optionsFügen Sie die folgende Konfiguration oben in die Datei ein, vor der Zeile „ options {….}; “.
Mit dieser Konfiguration erstellen Sie eine ACL (Access Control List) mit dem Namen „ trusted “, die alle vertrauenswürdigen IP-Adressen und Netzwerke in Ihrer Umgebung umfasst. Stellen Sie außerdem sicher, dass Sie die lokale Server-IP-Adresse „ ns1 “ und die IP-Adresse des sekundären DNS-Servers „ ns2 “ hinzufügen.
acl "trusted" {
192.168.5.21; # ns1 - oder Sie können localhost für ns1 verwenden
192.168.5.22; # ns2
192.168.5.0/24; # vertrauenswürdige Netzwerke
};Ändern Sie nun den Abschnitt „ options {..}; “ wie folgt.
Im folgenden Beispiel deaktivieren wir die Unterstützung für IPv6, indem wir die Option „ listen-on-v6 “ auskommentieren, aktivieren und erlauben die Rekursion von der ACL „ trusted “ und führen den BIND-Dienst auf der spezifischen IP-Adresse „ ns1 “ „ 192.168.5.21 “ aus. Außerdem deaktivieren wir die standardmäßige Zonentransfer und definieren die spezifischen Weiterleitungen für den BIND-DNS-Server zu Google Public DNS „ 8.8.8.8 “ und „ 8.8.4.4 “.
options {
directory "/var/cache/bind";
//listen-on-v6 { any; }; # bind auf IPv6 deaktivieren
recursion yes; # aktiviert rekursive Abfragen
allow-recursion { trusted; }; # erlaubt rekursive Abfragen von „trusted“ - verwiesen auf ACL
listen-on { 192.168.5.21; }; # ns1 IP-Adresse
allow-transfer { none; }; # Zonentransfers standardmäßig deaktivieren
forwarders {
8.8.8.8;
1.1.1.1;
};
};Speichern und schließen Sie die Datei, wenn Sie fertig sind.
Führen Sie schließlich den folgenden Befehl aus, um die Konfigurationsdatei „ /etc/bind/named.conf.options “ zu überprüfen und zu verifizieren. Wenn keine Ausgabemeldung angezeigt wird, ist Ihre Konfiguration korrekt.
sudo named-checkconf /etc/bind/named.conf.optionsEinrichten von Zonen
Nachdem Sie die grundlegende Konfiguration des BIND-Masters eingerichtet haben, richten Sie nun Zonen für Ihren Domainnamen ein. Im folgenden Beispiel verwenden wir den Domainnamen „ howtoforge.local “ mit dem Nameserver „ ns1.howtoforge.local “ und „ ns2.howtoforge.local “.
Bearbeiten Sie die Konfigurationsdatei „ /etc/bind/named.local “ mit dem folgenden Befehl.
sudo nano /etc/bind/named.conf.localIn dieser Konfiguration definieren Sie zwei Zonen-Dateien, die Vorwärts- und Rückwärtszone für Ihren Domainnamen. Die Vorwärtszone enthält die Konfiguration, wo Ihre Domainnamen in die IP-Adresse aufgelöst werden, während die Rückwärtszone die IP-Adresse in den Domainnamen übersetzt.
Im folgenden Beispiel definieren wir die Vorwärtszone „ /etc/bind/zones/db.howtoforge.local “ für die Domain „ hwdomain.i o“ und die Rückwärtszone „ /etc/bind/zones/db.192.168.5 “.
zone "howtoforge.local" {
type master;
file "/etc/bind/zones/db.howtoforge.local"; # Zonendateipfad
allow-transfer { 192.168.5.22; }; # ns2 IP-Adresse - sekundärer DNS
};
zone "5.168.192.in-addr.arpa" {
type master;
file "/etc/bind/zones/db.192.168.5"; # Subnetz 192.168.5.0/24
allow-transfer { 192.168.5.22; }; # ns2 private IP-Adresse - sekundärer DNS
};Speichern und schließen Sie die Datei, wenn Sie fertig sind.
Führen Sie als Nächstes den folgenden Befehl aus, um ein neues Verzeichnis „ /etc/bind/zones “ zu erstellen, das zur Speicherung der Zonenkonfigurationsdateien verwendet wird.
sudo mkdir -p /etc/bind/zones/Kopieren Sie danach die Standardvorwärtszonen-Konfiguration „/etc/bind/zones/db.howtoforge.local“ und bearbeiten Sie die Datei mit dem folgenden Befehl.
sudo cp /etc/bind/db.local /etc/bind/zones/db.howtoforge.local
sudo nano /etc/bind/zones/db.howtoforge.localÄndern Sie den Standard-SOA-Eintrag mit Ihrem Domainnamen. Außerdem müssen Sie die „ Serial “-Nummer innerhalb der SOA-Einträge jedes Mal ändern, wenn Sie Änderungen an der Datei vornehmen, und diese muss die gleiche „Serial“-Nummer wie der sekundäre/slave-DNS-Server haben.
Dann können Sie NS-Einträge und A-Einträge für Ihren DNS-Server definieren. In diesem Beispiel wird der Nameserver „ ns1.howtoforge.local “ mit der A-Eintrags-IP-Adresse „ 192.168.5.21 “ und „ ns2.howtoforge.local “ mit dem A-Eintrag der IP-Adresse des sekundären DNS-Servers „ 192.168.5.22 “ definiert.
Zuletzt können Sie andere Domainnamen definieren. In diesem Beispiel definieren wir einen MX-Eintrag (Mail-Handler) für die Domain „ howtoforge.local “, der vom Mailserver „ mail.howtoforge.local “ behandelt wird. Außerdem definieren wir den Domainnamen „ howtoforge.local “, der auf den Server mit der IP-Adresse „ 192.168.5.100 “ aufgelöst wird, und die Subdomain für den Mailserver „ mail.howtoforge.local “ auf die Server-IP-Adresse „ 192.168.5.120 “.
;
; BIND-Daten-Datei für die lokale Loopback-Schnittstelle
;
$TTL 604800
@ IN SOA ns1.howtoforge.local. admin.howtoforge.local. (
3 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
; NS-Einträge für Nameserver
IN NS ns1.howtoforge.local.
IN NS ns2.howtoforge.local.
; A-Einträge für Nameserver
ns1.howtoforge.local. IN A 192.168.5.21
ns2.howtoforge.local. IN A 192.168.5.22
; Mail-Handler oder MX-Eintrag für die Domain howtoforge.local
howtoforge.local. IN MX 10 mail.howtoforge.local.
; A-Einträge für Domainnamen
howtoforge.local. IN A 192.168.5.100
mail.howtoforge.local. IN A 192.168.5.120Speichern und schließen Sie die Datei, wenn Sie fertig sind.

Kopieren Sie als Nächstes die Standard-Rückwärtszonen-Konfigurationsdatei nach „ /etc/bind/zones/db.192.168.5 “ und bearbeiten Sie die neue Datei mit dem folgenden Befehl.
sudo cp /etc/bind/db.127 /etc/bind/zones/db.192.168.5
sudo nano /etc/bind/zones/db.192.168.5Ändern Sie den Standard-SOA-Eintrag mit Ihrem Domainnamen. Vergessen Sie auch nicht, die „ Serial “-Nummer innerhalb des SOA-Eintrags zu ändern.
Definieren Sie NS-Einträge für Ihre DNS-Server. Dies sind dieselben Nameserver, die Sie in der Vorwärtszone verwendet haben.
Definieren Sie schließlich die PTR-Einträge für Ihre Domainnamen. Die Zahl in den PTR-Einträgen ist die letzte Zahl der IP-Adresse. In diesem Beispiel wird der Nameserver „ ns1.howtoforge.local “ auf die IP-Adresse „ 192.168.5.21 “ aufgelöst, sodass der PTR-Eintrag jetzt „ 21 “ sein wird und so weiter für andere Domainnamen.
;
; BIND-Rückwärtsdaten-Datei für die lokale Loopback-Schnittstelle
;
$TTL 604800
@ IN SOA ns1.howtoforge.local. admin.howtoforge.local. (
3 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
; Nameserver - NS-Einträge
IN NS ns1.howtoforge.local.
IN NS ns2.howtoforge.local.
; PTR-Einträge
21 IN PTR ns1.howtoforge.local. ; 192.168.5.21
22 IN PTR ns2.howtoforge.local. ; 192.168.5.22
100 IN PTR howtoforge.local. ; 192.168.5.100
120 IN PTR mail.howtoforge.local. ; 192.168.5.120Speichern und schließen Sie die Datei, wenn Sie fertig sind.

Führen Sie jetzt den folgenden Befehl aus, um die BIND-Konfigurationen zu überprüfen, und stellen Sie sicher, dass Sie keine Fehlermeldungen erhalten.
sudo named-checkconfFühren Sie dann den folgenden Befehl aus, um jede Zonendatei zu überprüfen und zu verifizieren, die Sie gerade erstellt haben, die Vorwärtszone und die Rückwärtszonen-Konfigurationsdatei. Wenn Ihre Zonendateien keine Fehler aufweisen, sollten Sie eine Ausgabemeldung wie „ OK “ sehen. Wenn es keinen Fehler gibt, zeigt der Befehl Ihnen an, welche Zeile der Datei einen Fehler verursacht hat.
sudo named-checkzone howtoforge.local /etc/bind/zones/db.howtoforge.local
sudo named-checkzone 5.168.192.in-addr.arpa /etc/bind/zones/db.192.168.5
Um die BIND-Masterkonfiguration abzuschließen, führen Sie den folgenden Befehl aus, um den BIND-Dienst neu zu starten und die neuen Änderungen an den Konfigurationen anzuwenden, die Sie vorgenommen haben.
sudo systemctl restart namedEinrichten von BIND Slave
Jetzt haben Sie die Konfiguration des Master-BIND-DNS-Servers abgeschlossen. Es ist an der Zeit, den Server „ns2“ als sekundären oder Slave des BIND-DNS-Servers einzurichten.
Der Master-Server speichert Zonendateien, die die DNS-Konfiguration Ihrer Domain enthalten und rekursive oder iterative Abfragen bearbeiten. Der sekundäre/slave-DNS-Server speichert DNS-Einträge für eine bestimmte Zeit vorübergehend, und diese DNS-Einträge werden automatisch vom Master-BIND-Server übertragen.
Wechseln Sie jetzt zur Terminal-Sitzung von „ ns2 “ und beginnen Sie mit der Konfiguration des „ ns2 “-Servers als Sekundär/Slave des BIND-DNS-Servers.
Führen Sie den folgenden Befehl aus, um die Konfigurationsdatei „ /etc/bind/named.conf.options “ zu bearbeiten.
sudo nano /etc/bind/named.conf.optionsFügen Sie oben in der Datei die folgende Konfiguration hinzu. Dadurch wird dieselbe ACL (Access Control List) wie auf dem Master-Server erstellt.
acl "trusted" {
192.168.5.21; # ns1
192.168.5.22; # ns2 - oder Sie können localhost für ns2 verwenden
192.168.5.0/24; # vertrauenswürdige Netzwerke
};Ändern Sie innerhalb der Zeile „ options {…}; “ die Konfiguration wie folgt. Diese Konfiguration ist immer noch dieselbe wie auf dem Master-BIND-DNS-Server, und der einzige Unterschied hier ist die Option „ listen-on “, die auf die IP-Adresse des „ ns2 “-Servers festgelegt ist.
options {
directory "/var/cache/bind";
//listen-on-v6 { any; }; # bind auf IPv6 deaktivieren
recursion yes; # aktiviert rekursive Abfragen
allow-recursion { trusted; }; # erlaubt rekursive Abfragen von „trusted“ - verwiesen auf ACL
listen-on { 192.168.5.22; }; # ns2 IP-Adresse
allow-transfer { none; }; # Zonentransfers standardmäßig deaktivieren
forwarders {
8.8.8.8;
1.1.1.1;
};
};Speichern und schließen Sie die Datei, wenn Sie fertig sind.
Bearbeiten Sie als Nächstes die Konfigurationsdatei „ /etc/bind/named.conf.local “ mit dem folgenden Befehl, um den „ ns2 “-Server als sekundären/slave-DNS-Server einzurichten.
sudo nano /etc/bind/named.conf.localFügen Sie die folgende Konfiguration in die Datei ein. Wie Sie sehen können, definieren wir die Vorwärts- und Rückwärtszonen, jedoch mit dem „ type slave “ und definieren den DNS-Master-Server „ 192.168.5.21 “. Sie müssen keine Zonendatei erstellen, da DNS-Einträge und Daten automatisch vom DNS-Master-Server übertragen werden und vorübergehend für eine bestimmte Zeit auf dem sekundären/slave-DNS-Server gespeichert werden.
zone "howtoforge.local" {
type slave;
file "/etc/bind/zones/db.howtoforge.local";
masters { 192.168.5.21; }; # ns1 IP-Adresse - Master-DNS
};
zone "5.168.192.in-addr.arpa" {
type slave;
file "/etc/bind/zones/db.192.168.5";
masters { 192.168.5.21; }; # ns1 IP-Adresse - Master-DNS
};Speichern und schließen Sie die Datei, wenn Sie fertig sind.
Führen Sie jetzt den folgenden Befehl aus, um die BIND-Konfiguration zu überprüfen und sicherzustellen, dass alle Konfigurationen korrekt sind. Danach können Sie den BIND-Dienst „named“ auf dem „ ns2 “-Server neu starten, um die neuen Änderungen anzuwenden. Und Sie haben jetzt die Konfiguration auf dem „ ns2 “-Server als sekundären/slave des BIND-DNS-Servers abgeschlossen.
sudo named-checkconf
sudo systemctl restart named
Führen Sie zuletzt den folgenden Befehl aus, um den BIND-Dienst „ named “ auf dem „ ns2 “-Server zu überprüfen und sicherzustellen, dass der „ named “-Dienst läuft.
sudo systemctl status named
Überprüfen des DNS-Servers von der Client-Maschine
Auf der Client-Maschine gibt es mehrere Möglichkeiten, den DNS-Resolver einzurichten. Sie können den DNS-Resolver über den NetworkManager oder über die Netplan-Konfiguration einrichten. Der einfachste Weg ist jedoch, den DNS-Resolver manuell über die Datei „/etc/resolv.conf“ einzurichten. Dies ermöglicht es Ihnen, einen statischen DNS-Resolver für Client-Maschinen einzurichten.
Führen Sie den folgenden Befehl aus, um die Standard-Link-Datei „ /etc/resolv.conf “ zu entfernen und eine neue Datei mit dem Nano-Editor zu erstellen.
sudo unlink /etc/resolv.conf
sudo nano /etc/resolv.confFügen Sie die folgende Konfiguration in die Datei ein. In der folgenden Konfiguration definieren wir drei verschiedene Resolver, den BIND-DNS-Master, den sekundären BIND-DNS-Server und den öffentlichen Google-DNS-Resolver. Wenn die Client-Maschine Informationen über den Domainnamen anfordert, werden die Informationen vom DNS-Resolver von oben nach unten abgerufen.
nameserver 192.168.5.21
nameserver 192.168.5.22
nameserver 8.8.8.8
search howtoforge.localSpeichern und schließen Sie die Datei, wenn Sie fertig sind.
Führen Sie als Nächstes den folgenden Befehl aus, um einige DNS-Dienstprogramme auf Ihrer Client-Maschine zu installieren. In diesem Beispiel ist die Client-Maschine ein Ubuntu-System, daher installieren wir das DNS-Dienstprogramm mit dem apt-Befehl wie folgt.
sudo apt install dnsutils bind9-utilsNachdem Sie das DNS-Dienstprogramm auf Ihrem System installiert haben, können Sie beginnen, alle DNS-Einträge von der Client-Maschine aus zu überprüfen.
Führen Sie den folgenden dig-Befehl aus, um den Domainnamen „ howtoforge.local “ und „ mail.howtoforge.local “ zu überprüfen. Und Sie sollten sehen, dass „ howtoforge.local “ auf die Server-IP-Adresse „ 192.168.5.100 “ aufgelöst wird, während die Subdomain „ mail.howtoforge.local “ vom Server mit der IP-Adresse „ 192.168.5.120 “ behandelt wird.
dig howtoforge.local +short
dig howtoforge.local
dig mail.howtoforge.local +short
dig mail.howtoforge.local
Führen Sie als Nächstes den dig-Befehl wie folgt aus, um den Mail-Handler für den Domainnamen „howtoforge.local“ zu überprüfen. Und Sie sollten die Ausgabe erhalten, dass „ mail.howtoforge.local “ die Mail für die Hauptdomain „ howtoforge.local “ behandelt.
dig howtoforge.local MX +short
dig howtoforge.local MX
Jetzt können Sie auch die Rückwärtszonen-Konfiguration für Ihren Domainnamen mit dem nslookup-Befehl überprüfen.
Führen Sie den nslookup-Befehl aus, um die Rückwärts-DNS für einige IP-Adressen zu überprüfen.
Jetzt sollten Sie sehen, dass die IP-Adresse „ 192.168.5.21 “ auf den Nameserver „ ns1.howtoforge.local “ zurückgeführt wird, die IP-Adresse „ 192.168.5.22 “ auf den Nameserver „ ns2.howtoforge.local “ zurückgeführt wird, und die IP-Adresse „ 192.168.5.100 “ auf den Hauptdomainnamen „ howtoforge.local “ zurückgeführt wird, und schließlich wird die IP-Adresse „ 192.168.5.120 “ auf die Subdomain „ mail.howtoforge.local “ zurückgeführt.
slookup 192.168.5.21
slookup 192.168.5.22
slookup 192.168.5.100
slookup 192.168.5.120
Fazit
Herzlichen Glückwunsch! In diesem Tutorial haben Sie die Installation und Konfiguration des BIND-DNS-Servers auf Ubuntu 22.04-Servern gelernt. Sie haben erfolgreich den Master-Slave-BIND-DNS-Server mit zwei verschiedenen Ubuntu-Servern konfiguriert. Außerdem haben Sie die grundlegenden Befehle von Dig und Nslookup zum Überprüfen und Verifizieren von DNS-Einträgen und -Konfigurationen gelernt.
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.