Domain Name Service (DNS) ist ein Internetdienst, der IP-Adressen vollqualifizierten Domainnamen (FQDN) zuordnet und umgekehrt.
BIND steht für Berkley Internet Naming Daemon.
BIND ist das am häufigsten verwendete Programm zur Verwaltung eines Nameservers unter Linux.
In diesem Tutorial erklären wir, wie man einen DNS-Server installiert und konfiguriert.
Wenn DNS neu für Sie ist, sollten Sie zuerst die Grundlagen von DNS und seine Funktionsweise verstehen.
1. Netzwerkinformationen
In diesem Tutorial richten wir einen lokalen DNS-Server für das im folgenden Diagramm gezeigte Netzwerk ein.
Wir verwenden die Domain „thegeekstuff.net“ als Beispiel für diese DNS-Installation. „mail“, „web“, „ns“ sind die Hosts, die sich innerhalb dieser Domain befinden.
Es ist möglich, ein einzelnes System so zu konfigurieren, dass es als Caching-Nameserver fungiert, primär/Master und sekundär/Slave. Wir werden diesen DNS als Primär-/Master- sowie als Caching-DNS-Server konfigurieren.
Wir installieren den DNS-Server auf „10.42.0.83“.
2. Bind installieren
Installieren Sie das bind9-Paket mit den entsprechenden Paketverwaltungsprogrammen für Ihre Linux-Distributionen.
Gehen Sie bei Debian/Ubuntu-Varianten wie folgt vor:
$ sudo apt-get install bind9
Gehen Sie bei Redhat/CentOS/Fedora-Varianten wie folgt vor:
# yum install bind9
Alle DNS-Konfigurationen werden im Verzeichnis /etc/bind gespeichert. Die primäre Konfiguration ist /etc/bind/named.conf, die andere benötigte Dateien enthält. Die Datei namens /etc/bind/db.root beschreibt die Root-Nameserver der Welt.
3. Cache NameServer konfigurieren
Die Aufgabe eines DNS-Caching-Servers besteht darin, andere DNS-Server abzufragen und die Antwort zwischenzuspeichern. Wenn dieselbe Abfrage das nächste Mal gegeben wird, wird die Antwort aus dem Cache bereitgestellt. Der Cache wird regelmäßig aktualisiert.
Bitte beachten Sie, dass Sie bind zwar so konfigurieren können, dass es als primärer und als Caching-Server funktioniert, dies jedoch aus Sicherheitsgründen nicht empfohlen wird. Es ist ratsam, einen separaten Caching-Server zu haben.
Alles, was wir tun müssen, um einen Cache NameServer zu konfigurieren, ist, den DNS-Server Ihres ISP (Internet Service Provider) oder einen beliebigen OpenDNS-Server zur Datei /etc/bind/named.conf.options hinzuzufügen. Zum Beispiel verwenden wir die öffentlichen DNS-Server von Google, 8.8.8.8 und 8.8.4.4.
Entkommentieren und bearbeiten Sie die folgende Zeile wie unten gezeigt in der Datei /etc/bind/named.conf.options.
forwarders { 8.8.8.8; 8.8.4.4; };
Starten Sie nach der obigen Änderung den DNS-Server neu.
$ sudo service bind9 restart
4. Testen Sie den Cache NameServer
Mit dem Befehl dig können Sie DNS-Dienste testen. DIG-Befehlsbeispiele erklären mehr darüber, wie man DNS-Lookups durchführt.
$ dig ubuntu.com ;; Query time: 1323 msec
Wenn Sie jetzt die Ausgrabung zum zweiten Mal ausführen, sollte sich die Abfragezeit verbessern. Wie Sie unten sehen, dauerte es beim zweiten Mal nur 3 ms, da die Informationen von unserem Caching-DNS-Server abgerufen wurden.
$ dig ubuntu.com ;; Query time: 3 msec
5. Primären/Master-Nameserver konfigurieren
Als Nächstes konfigurieren wir bind9 als Primary/Master für die Domain/Zone „thegeekstuff.net“.
Als ersten Schritt bei der Konfiguration unseres primären/Master-Nameservers sollten wir die Vorwärts- und Rückwärtsauflösung zu bind9 hinzufügen.
Um eine DNS-Forward- und Reverse-Auflösung zu bind9 hinzuzufügen, bearbeiten Sie /etc/bind9/named.conf.local.
zone "thegeekstuff.net" { type master; file "/etc/bind/db.thegeekstuff.net"; }; zone "0.42.10.in-addr.arpa" { type master; notify no; file "/etc/bind/db.10"; };
Jetzt enthält die Datei /etc/bind/db.thegeekstuff.net die Details zum Auflösen des Hostnamens in die IP-Adresse für diese Domäne/Zone, und die Datei /etc/bind/db.10 enthält die Details zum Auflösen der IP-Adresse in den Hostnamen .
6. Erstellen Sie die Weiterleitungsauflösung für Primär-/Master-Nameserver
Jetzt werden wir die für die Vorwärtsauflösung erforderlichen Details in /etc/bind/db.thegeekstuff.net hinzufügen.
Kopieren Sie zuerst /etc/bind/db.local nach /etc/bind/db.thegeekstuff.net
$ sudo cp /etc/bind/db.local /etc/bind/db.thegeekstuff.net
Bearbeiten Sie als Nächstes /etc/bind/db.thegeekstuff.net und ersetzen Sie Folgendes.
- In der Zeile mit SOA:localhost. – Dies ist der FQDN des für diese Domain zuständigen Servers. Ich habe bind9 in 10.42.0.83 installiert, dessen Hostname „ns“ ist. Ersetzen Sie also den „localhost“. mit "ns.thegeekstuff.net.". Stellen Sie sicher, dass es mit einem Punkt (.) endet.
- In der Zeile mit SOA:root.localhost. – Dies ist die E-Mail-Adresse der Person, die für diesen Server verantwortlich ist. Verwenden Sie Punkt (.) anstelle von @. Ich habe sie durch lak.localhost. ersetzt
- In der Zeile mit NS:localhost. – Dies definiert den Nameserver für die Domain (NS). Wir müssen dies in den vollqualifizierten Domänennamen des Nameservers ändern. Ändern Sie es in „ns.thegeekstuff.net“. Stellen Sie sicher, dass Sie ein "." am Ende.
Definieren Sie als Nächstes den A-Eintrag und den MX-Eintrag für die Domain. Ein Eintrag ist derjenige, der den Hostnamen der IP-Adresse zuordnet, und der MX-Eintrag teilt dem Mailserver mit, dass er diese Domain verwenden soll.
Sobald die Änderungen vorgenommen wurden, sieht die Datei /etc/bind/db.thegeekstuff.net wie folgt aus:
$TTL 604800 @ IN SOA ns.thegeekstuff.net. lak.localhost. ( 1024 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS ns.thegeekstuff.net. thegeekstuff.net. IN MX 10 mail.thegeekstuff.net. ns IN A 10.42.0.83 web IN A 10.42.0.80 mail IN A 10.42.0.70
6. Erstellen Sie die umgekehrte Auflösung für Primär-/Master-Nameserver
Wir werden die für die umgekehrte Auflösung erforderlichen Details in die Datei /etc/bind/db.10 einfügen. Kopieren Sie die Datei /etc/bind/db.127 nach /etc/bind/db.10
$ sudo cp /etc/bind/db.127 /etc/bind/db.10
Bearbeiten Sie als Nächstes die Datei /etc/bind/db.10 und ändern Sie im Wesentlichen die gleichen Optionen wie in /etc/bind/db.thegeekstuff.net
$TTL 604800 @ IN SOA ns.thegeekstuff.net. root.localhost. ( 20 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS ns.
Als nächstes fügen Sie für jeden A-Eintrag in /etc/bind/db.thegeekstuff.net einen PTR-Eintrag hinzu.
$TTL 604800 @ IN SOA ns.thegeekstuff.net. root.thegeekstuff.net. ( 20 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS ns. 83 IN PTR ns.thegeekstuff.net. 70 IN PTR mail.thegeekstuff.net. 80 IN PTR web.thegeekstuff.net.
Immer wenn Sie die Datei db.thegeekstuff.net und db.10 ändern, müssen Sie auch die „Seriennummer“ erhöhen. Normalerweise verwendet der Administrator DDMMYYSS für Seriennummern und ändert die Seriennummer entsprechend, wenn er sie ändert.
Starten Sie schließlich den bind9-Dienst neu:
$ sudo service bind9 restart
7. Testen Sie den DNS-Server
Jetzt haben wir den DNS-Server für unsere Domain konfiguriert. Wir werden unseren DNS-Server testen, indem wir mail.thegeekstuff.net von web.thegeekstuff.net aus anpingen.
Wenn der Ping erfolgreich ist, haben wir den DNS erfolgreich konfiguriert.
Sie können auch nslookup und dig verwenden, um DNS-Server zu testen.
Fügen Sie auf dem Server web.thegeekstuff.net Folgendes zu /etc/resolv.conf
hinzunameserver 10.42.0.83
Pingen Sie jetzt mail.thegeekstuff.net, was die Adresse entsprechend vom DNS-Server auflösen sollte, den wir gerade konfiguriert haben.
$ ping mail.thegeekstuff.net PING mail.thegeekstuff.net (10.42.0.70) 56(84) bytes of data. 64 bytes from mail.thegeekstuff.net (10.42.0.70): icmp_req=1 ttl=64 time=0.482 ms 64 bytes from mail.thegeekstuff.net (10.42.0.70): icmp_req=2 ttl=64 time=0.532 ms