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 Slave

Jetzt 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.local

FQDN auf dem „ ns2 “-Server einrichten.

sudo hostnamectl set-hostname ns2.howtoforge.local

Bearbeiten Sie als Nächstes die Datei „ /etc/hosts “ mit dem folgenden Befehl.

sudo nano /etc/hosts

Fügen Sie die folgende Konfiguration zu jedem Server hinzu.

192.168.5.21 ns1.howtoforge.local ns1  
192.168.5.22 ns2.howtoforge.local ns2

Speichern 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 -f

Installation 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 update

Danach 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

install bind

Nachdem die BIND-Installation abgeschlossen ist, bearbeiten Sie die Konfiguration „ /etc/default/named “ mit dem folgenden Befehl.

sudo nano /etc/default/named

Die 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

setup bind

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.options

Fü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.options

Einrichten 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.local

In 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.120

Speichern und schließen Sie die Datei, wenn Sie fertig sind.

setup forward zone

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.120

Speichern und schließen Sie die Datei, wenn Sie fertig sind.

setup reverse zone

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-checkconf

Fü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

check zone files

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 named

Einrichten 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.options

Fü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.local

Fü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

setup secondary dns

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

check named status secondary dns

Ü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.conf

Fü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.local

Speichern 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-utils

Nachdem 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

check dns records dig

dig mail.howtoforge.local +short  
dig mail.howtoforge.local

check dns record using dig

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

check mx records

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

check reverse dns

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.

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.