DNS-Server können so konfiguriert werden, dass sie als Master oder Slave fungieren, um die DNS-Anfrage zu bedienen. Wenn das DNS als Slave konfiguriert ist, erhält es die Kopie der Zonendaten vom Master, indem es eine Zonenübertragungsmethode verwendet, und hält diese für einen bestimmten Zeitraum in einem Cache, um DNS-Anfragen zu bedienen.
Umgebung
itzgeek.local | ||
---|---|---|
ns1.itzgeek.local | 192.168.0.10 | Master-DNS-Server |
ns2.itzgeek.local | 192.168.0.20 | Slave-DNS-Server. Kümmert sich um DNS-Anfragen, wenn der Master-Server ausfällt |
ns1.itzgeek.local ist bereits als Master für die Domain itzgeek.local konfiguriert.
LESEN :DNS-Server auf Ubuntu 18.04 / Ubuntu 16.04 konfigurieren
LESEN :DNS-Server auf Debian 10 / Debian 9 konfigurieren
Wir werden jetzt ns2.itzgeek.local als Slave-DNS-Server für die itzgeek.local-Domain konfigurieren.
Master-Server konfigurieren
Wir müssen BIND auf dem Master-Server (ns1.itzgeek.local) konfigurieren, um den Zonentransfer zu unserem sekundären Server (ns2.itzgeek.local) zu aktivieren.
Bearbeiten Sie die Datei /etc/named.conf.local in ns1.itzgeek.local.
sudo nano /etc/bind/named.conf.local
Sie müssten die bestehenden Zonen, die wir für itzgeek.local erstellt haben, mit den Parametern allow-transfer und also-notify aktualisieren.
Mit Allow-Transfer können Sie Zonen vom Master- auf einen Slave-Server übertragen und mit Notify können Sie einen Slave-Server benachrichtigen, wenn es eine Zonenänderung auf dem Master-Server gibt.
Vorwärtszone
zone "itzgeek.local" IN { // Domain name type master; // Primary DNS file "/etc/bind/forward.itzgeek.local.db"; // Forward lookup file allow-transfer { 192.168.0.20; }; //Allow Transfer of zone from the master server also-notify { 192.168.0.20; }; //Notify slave for zone changes };
Gegenzone
zone "0.168.192.in-addr.arpa" IN { //Reverse lookup name, should match your network in reverse order type master; // Primary DNS file "/etc/bind/reverse.itzgeek.local.db"; //Reverse lookup file allow-transfer { 192.168.0.20; }; //Allow Transfer of zone from the master server also-notify { 192.168.0.20; }; //Notify slave for zone changes };
Starten Sie den DNS-Dienst unter ns1.itzgeek.local neu.
sudo systemctl restart bind9
Slave-Server konfigurieren
Stellen Sie sicher, dass Sie die folgenden Pakete auf dem Slave-Server installieren.
sudo apt-get install -y bind9 bind9utils bind9-doc dnsutils
Es ist an der Zeit, eine Slave-Zonendeklaration auf dem Slave-Server (ns2.itzgeek.local) hinzuzufügen. Bearbeiten Sie die Datei /etc/bind/named.conf.local.
sudo nano /etc/bind/named.conf.local
Vorwärtszone
Fügen Sie die Slave-Zone wie unten beschrieben hinzu.
zone "itzgeek.local" IN { //Domain name type slave; //Secondary Slave DNS file "/var/cache/bind/forward.itzgeek.local.db"; //Forward Zone Cache file masters { 192.168.0.10; }; //Master Server IP };
Gegenzone
Fügen Sie die Slave-Zone wie unten beschrieben hinzu.
zone "0.168.192.in-addr.arpa" IN { //Reverse lookup name. Should match your network in reverse order type slave; // Secondary/Slave DNS file "/var/cache/bind/reverse.itzgeek.local.db"; //Reverse Zone Cache file masters { 192.168.0.10; }; //Master Server IP };
Starten Sie den DNS-Dienst unter ns2.itzgeek.local
neusudo systemctl restart bind9
Warten Sie ein paar Minuten, und Sie würden beginnen, etwas wie unten in der /var/log/syslog-Datei zu sehen.
Jan 4 23:18:49 ns2 named[2637]: zone itzgeek.local/IN: Transfer started. Jan 4 23:18:49 ns2 named[2637]: transfer of 'itzgeek.local/IN' from 192.168.0.10#53: connected using 192.168.0.20#54333 Jan 4 23:18:49 ns2 named[2637]: zone itzgeek.local/IN: transferred serial 3 Jan 4 23:18:49 ns2 named[2637]: transfer of 'itzgeek.local/IN' from 192.168.0.10#53: Transfer status: success Jan 4 23:18:49 ns2 named[2637]: transfer of 'itzgeek.local/IN' from 192.168.0.10#53: Transfer completed: 1 messages, 8 records, 228 bytes, 0.004 secs (57000 bytes/sec) Jan 4 23:18:49 ns2 named[2637]: managed-keys-zone: Key 20326 for zone . acceptance timer complete: key now trusted Jan 4 23:18:49 ns2 named[2637]: resolver priming query complete Jan 4 23:18:49 ns2 named[2637]: zone 0.168.192.in-addr.arpa/IN: Transfer started. Jan 4 23:18:49 ns2 named[2637]: transfer of '0.168.192.in-addr.arpa/IN' from 192.168.0.10#53: connected using 192.168.0.20#55105 Jan 4 23:18:49 ns2 named[2637]: zone 0.168.192.in-addr.arpa/IN: transferred serial 3 Jan 4 23:18:49 ns2 named[2637]: transfer of '0.168.192.in-addr.arpa/IN' from 192.168.0.10#53: Transfer status: success Jan 4 23:18:49 ns2 named[2637]: transfer of '0.168.192.in-addr.arpa/IN' from 192.168.0.10#53: Transfer completed: 1 messages, 6 records, 210 bytes, 0.007 secs (30000 bytes/sec) Jan 4 23:18:49 ns2 named[2637]: zone 0.168.192.in-addr.arpa/IN: sending notifies (serial 3)
DNS-Eintragsaktualisierung
Stellen Sie beim Ändern von Datensätzen einer beliebigen Zone auf dem Master-Server sicher, dass Sie die Seriennummer auf eine Zufallszahl aktualisieren, die höher als die aktuelle ist. Führen Sie außerdem den folgenden Befehl auf dem Master-Server aus, um die Zone neu zu laden, damit die Slave-Zone die aktualisierten Datensätze erhält.Ändern Sie itzgeek.local &0.168.192.in-addr.arpa mit Ihren Zonennamen.
### Forward Zone ### sudo rndc reload itzgeek.local ### Reverse Zone ### sudo rndc reload 0.168.192.in-addr.arpa
Slave-DNS-Server überprüfen
Fügen Sie auf dem Client-Rechner eine Slave-DNS-Server-IP-Adresse in der Datei /etc/resolv.conf hinzu.
sudo nano /etc/resolv.conf
Fügen Sie einen zusätzlichen DNS-Eintrag wie unten zusammen mit bestehenden Einträgen hinzu.
nameserver 192.168.0.20
ODER
Lesen Sie das folgende Tutorial, um die DNS-Server-IP unter Linux festzulegen.
LESEN: So stellen Sie die DNS-IP-Adresse in CentOS / Fedora ein
LESEN: So stellen Sie die DNS-IP-Adresse in Ubuntu / Debian ein – ifupdown
LESEN: So stellen Sie die DNS-IP-Adresse in Ubuntu 18.04 ein – Netplan
Sie können entweder den Befehl nslookup oder den Befehl dig verwenden, um den DNS-Server zu überprüfen.
Verwenden Sie den Befehl dig, um die Vorwärtssuche zusammen mit @Überprüfen Sie die Suche nach www.itzgeek.local mit ns2.itzgeek.local (192.168.0.20)
dig www.itzgeek.local @192.168.0.20
Ausgabe:
; <<>> DiG 9.11.3-1ubuntu1.7-Ubuntu <<>> www.itzgeek.local @192.168.0.20 ;; 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: 29076 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ; COOKIE: 0ff4fbeabbfe6d45cf28f0e85e11725b14943fb073203e78 (good) ;; QUESTION SECTION: ;www.itzgeek.local. IN A ;; ANSWER SECTION: www.itzgeek.local. 604800 IN A 192.168.0.100 ;; AUTHORITY SECTION: itzgeek.local. 604800 IN NS ns1.itzgeek.local. ;; ADDITIONAL SECTION: ns1.itzgeek.local. 604800 IN A 192.168.0.10 ;; Query time: 0 msec ;; SERVER: 192.168.0.20#53(192.168.0.20) ;; WHEN: Sun Jan 05 10:51:26 IST 2020 ;; MSG SIZE rcvd: 124
Jetzt können Sie sehen, dass der Slave-Server DNS-Anfragen beantwortet.
Schlussfolgerung
Das ist alles. Sie haben den Slave-DNS-Server auf Ubuntu 18.04 / Ubuntu 16.04 und Debian 10 / Debian 9 erfolgreich konfiguriert. Bitte teilen Sie Ihr Feedback im Kommentarbereich mit.