
Das Domain Name System (DNS) ist ein hierarchisches verteiltes Benennungssystem für Computer, Dienste oder andere Ressourcen, die mit dem Internet oder einem privaten Netzwerk verbunden sind. Es verknüpft verschiedene Informationen mit Domänennamen, die jeder der teilnehmenden Einheiten zugewiesen sind.
Am wichtigsten ist, dass es für Menschen bedeutungsvolle Domainnamen in numerische Kennungen übersetzt, die mit Netzwerkgeräten verbunden sind, um diese Geräte weltweit zu lokalisieren und zu adressieren.
Diese Anleitung hilft Ihnen beim Einrichten des DNS-Servers unter CentOS 8 / RHEL 8.
Annahmen
Hostname: ns1.itzgeek.local
IP-Adresse: 192.168.0.10
DNS-Server installieren
BIND steht für Berkeley Internet Name Domain, eine Software, die eine Umwandlung von Namen in IP-Adressen ermöglicht.
yum -y install bind bind-utils
DNS-Server konfigurieren
Die Hauptkonfigurationsdatei von BIND ist /etc/named.conf. Wir werden diese Datei verwenden, um den DNS-Server zu konfigurieren und die DNS-Zone zu definieren.
Standardmäßig lauscht BIND auf dem localhost. Also werden wir DNS-Server so konfigurieren, dass sie auf allen Netzwerkschnittstellen oder einer bestimmten Schnittstelle lauschen.
Bearbeiten Sie die Datei /etc/named.conf.
vi /etc/named.conf
Kommentieren Sie die folgende Zeile aus. Dies wird es BIND ermöglichen, andere Systemnetzwerkschnittstellen als localhost abzuhören.
Alle IP-Adressen abhören:
//listen-on port 53 { 127.0.0.1; }; //listen-on-v6 port 53 { ::1; };
Bestimmte IP-Adresse abhören:
listen-on port 53 { 127.0.0.1; 192.168.0.10; };
Fügen Sie Ihr Netzwerk in der folgenden Zeile hinzu. Ich habe 192.168.0.0/24 hinzugefügt, damit Clients aus dem Netzwerk 192.168.0.0/24 den DNS-Server nach der Übersetzung des Namens in die IP-Adresse abfragen können.
allow-query { localhost;192.168.0.0/24; };
Zonen erstellen
Bearbeiten Sie die Datei /etc/named.conf.
vi /etc/named.conf
Vorwärtszone
Das Folgende ist der Forward-Zone-Eintrag in der named.conf-Datei, geschrieben für die itzgeek.local-Domain.
zone "itzgeek.local" IN { // Domain Name type master; // Master DNS Server file "itzgeek.local.db"; // Zone File (/var/named/) allow-update { none; }; // Since master DNS, it is none };
itzgeek.local – Domänenname
Meister – Primärer DNS
itzgeek.local.db – Forward-Lookup-Datei
Aktualisierung zulassen – Da dies der Master-DNS ist, sollte es keiner sein
Gegenzone
Das Folgende ist der Reverse-Zone-Eintrag in der named.conf-Datei.
zone "0.168.192.in-addr.arpa" IN { // Reverse Zone Name, should match with network in reverse order type master; // Master DNS Server file "192.168.0.db"; // Zone File (/var/named/) allow-update { none; }; // Since master DNS, it is none };
0.168.192.in-addr.arpa – Reverse-Lookup-Name
Meister – Primärer DNS
192.168.0.db – Reverse-Lookup-Datei
Aktualisierung zulassen – Da dies der Master-DNS ist, sollte es keiner sein
Zonendateien erstellen
Jetzt ist es an der Zeit, eine Lookup-Datei für eine erstellte Zone zu erstellen. Standardmäßig werden Zonen-Lookup-Dateien im Verzeichnis /var/named abgelegt. Erstellen Sie eine Zonendatei namens itzgeek.local.db für die Vorwärtssuche im Verzeichnis /var/named.
Alle Domainnamen sollten mit einem Punkt (.) enden.
Vorwärtszone
Es gibt einige spezielle Schlüsselwörter für Zonendateien
Erstellen Sie eine Datei.
vi /var/named/itzgeek.local.db
A – Ein Datensatz
NS – Nameserver
MX – Mail für Exchange
CNAME – Kanonischer Name
$TTL 86400 @ IN SOA ns1.itzgeek.local. root.itzgeek.local. ( 3 ;Serial 3600 ;Refresh 1800 ;Retry 604800 ;Expire 86400 ;Minimum TTL ) ;Name Server Information @ IN NS ns1.itzgeek.local. ;IP address of Name Server ns1 IN A 192.168.0.10 ;Mail exchanger itzgeek.local. IN MX 10 mail.itzgeek.local. ;A - Record HostName To Ip Address www IN A 192.168.0.100 mail IN A 192.168.0.150 ;CNAME record ftp IN CNAME www.itgeek.local.
Wenn Sie die Zonendateien für die Aktualisierung des DNS-Eintrags aktualisieren, vergessen Sie nicht, die Seriennummer zu erhöhen.
Gegenzone
Erstellen Sie eine Zonendatei namens 192.168.0.db für die Reverse-Zone im Verzeichnis /var/named, erstellen Sie einen Reverse-Zeiger zu den obigen Forward-Zone-Einträgen.
vi /var/named/192.168.0.db
PTR – Zeiger
SOA – Beginn der Autorität
$TTL 86400 @ IN SOA ns1.itzgeek.local. root.itzgeek.local. ( 3 ;Serial 3600 ;Refresh 1800 ;Retry 604800 ;Expire 86400 ;Minimum TTL ) ;Name Server Information @ IN NS ns1.itzgeek.local. ;Reverse lookup for Name Server 10 IN PTR ns1.itzgeek.local. ;PTR Record IP address to HostName 100 IN PTR www.itzgeek.local. 150 IN PTR mail.itzgeek.local.
Wenn Sie die Zonendateien für die Aktualisierung des DNS-Eintrags aktualisieren, vergessen Sie nicht, die Seriennummer zu erhöhen.
DNS-Serverkonfiguration validieren
Verwenden Sie den Befehl named-checkconf, um die Konfigurationsdatei zu validieren.
named-checkconf /etc/named.conf
Wenn Sie keinen Fehler sehen, können Sie loslegen.
Validieren Sie die von Ihnen erstellte Forward-Zonendatei mit dem folgenden Befehl.
named-checkzone itzgeek.local /var/named/itzgeek.local.db
itzgeek.local – Domänenname
/var/named/itzgeek.local.db – Pfad zu einer Zonendatei
Ausgabe:
zone itzgeek.local/IN: loaded serial 3 OKDie in der Ausgabe erwähnte Seriennummer sollte mit der Seriennummer in den Zonendateien übereinstimmen.
Führen Sie dasselbe auch für die Rückwärtszone durch.
named-checkzone 0.168.192.in-addr.arpa /var/named/192.168.0.db
Ausgabe:
zone 0.168.192.in-addr.arpa/IN: loaded serial 3 OK
DNS-Dienst starten
Nachdem Sie die DNS-Konfigurationen validiert haben, starten Sie den Bindungsdienst neu.
systemctl restart named
Aktivieren Sie es beim Systemstart.
systemctl enable named
DNS-Eintragsaktualisierung
Wenn Sie einen DNS-Eintrag ändern, vergessen Sie nicht, die Seriennummer in der Zonendatei zu ändern und die Zone neu zu laden.
Ändern Sie itzgeek.local &0.168.192.in-addr.arpa mit Ihren Zonennamen.
### Forward Zone ### rndc reload itzgeek.local ### Reverse Zone ### rndc reload 0.168.192.in-addr.arpa
Firewall
Fügen Sie eine Firewall-Regel hinzu, um DNS-Abfragen von Client-Rechnern zuzulassen.
firewall-cmd --permanent --add-port=53/udp firewall-cmd --reload
DNS-Server überprüfen
Besuchen Sie einen beliebigen Client-Rechner und fügen Sie die IP-Adresse eines DNS-Servers in /etc/resolv.conf hinzu, wenn Network Manager das Netzwerk nicht verwaltet.
nameserver 192.168.0.10
Wenn Network Manager das Netzwerk verwaltet, platzieren Sie den folgenden Eintrag in der Datei /etc/sysconfig/network-scripts/ifcfg-eXX.
DNS1=192.168.0.10
Netzwerkdienst neu starten.
service network restart OR systemctl restart NetworkManager
Verwenden Sie den folgenden Befehl, um die Vorwärtssuche zu überprüfen, wobei der DNS-Server 192.168.0.100 als IP für www.itzgeek.local angibt .
dig www.itzgeek.local
Ausgabe:
; <<>> DiG 9.11.3-1ubuntu1.7-Ubuntu <<>> www.itzgeek.local ;; global options: +cmd ;; Got answer: ;; WARNING: .local is reserved for Multicast DNS ;; You are currently testing what happens when an mDNS query is leaked to DNS ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42679 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ; COOKIE: 99d94df91828bc8e957709ec5e13f9cd0c242970a9488a91 (good) ;; QUESTION SECTION: ;www.itzgeek.local. IN A ;; ANSWER SECTION: www.itzgeek.local. 86400 IN A 192.168.0.100 ;; AUTHORITY SECTION: itzgeek.local. 86400 IN NS ns1.itzgeek.local. ;; ADDITIONAL SECTION: ns1.itzgeek.local. 86400 IN A 192.168.0.10 ;; Query time: 0 msec ;; SERVER: 192.168.0.10#53(192.168.0.10) ;; WHEN: Tue Jan 07 08:53:56 IST 2020 ;; MSG SIZE rcvd: 124Installieren Sie das Paket bind-utils, um den Befehl nslookup oder dig zu erhalten.
Bestätigen Sie die umgekehrte Suche, bei der der DNS-Server www.itzgeek.local als Namen für 192.168.0.100 gibt . Es wurde nun bestätigt, dass sowohl die Vorwärts- als auch die Rückwärtssuche einwandfrei funktionieren.
dig -x 192.168.0.100
Ausgabe:
; <<>> DiG 9.11.3-1ubuntu1.7-Ubuntu <<>> -x 192.168.0.100 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43305 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ; COOKIE: d36aa24edb88f8951b3fbf8c5e13fa2cbf0e3ed754a00eee (good) ;; QUESTION SECTION: ;100.0.168.192.in-addr.arpa. IN PTR ;; ANSWER SECTION: 100.0.168.192.in-addr.arpa. 86400 IN PTR www.itzgeek.local. ;; AUTHORITY SECTION: 0.168.192.in-addr.arpa. 86400 IN NS ns1.itzgeek.local. ;; ADDITIONAL SECTION: ns1.itzgeek.local. 86400 IN A 192.168.0.10 ;; Query time: 0 msec ;; SERVER: 192.168.0.10#53(192.168.0.10) ;; WHEN: Tue Jan 07 08:55:30 IST 2020 ;; MSG SIZE rcvd: 148
Schlussfolgerung
Das ist alles. Sie haben BIND erfolgreich auf CentOS 8 / RHEL 8 als Masterserver installiert. In unserem nächsten Artikel werden wir sehen, wie man einen Slave-DNS-Server unter CentOS 8 / RHEL 8 konfiguriert.