Los servidores DNS se pueden configurar para actuar como maestros o esclavos para atender la solicitud de DNS. Cuando el DNS está configurado como esclavo, obtiene la copia de los datos de la zona del maestro mediante un método de transferencia de zona y los mantiene en un caché durante un período determinado para atender las consultas de DNS.
itzgeek.local |
ns1.itzgeek.local | 192.168.0.10 | Servidor DNS maestro |
ns2.itzgeek.local | 192.168.0.20 | Servidor DNS esclavo. Se encarga de las solicitudes de DNS cuando el servidor maestro deja de funcionar |
ns1.itzgeek.local ya está configurado como maestro para el dominio itzgeek.local.
LEER :Configurar servidor DNS en Ubuntu 18.04/Ubuntu 16.04
LEER :Configurar servidor DNS en Debian 10 / Debian 9
Ahora configuraremos ns2.itzgeek.local como un servidor DNS esclavo para el dominio itzgeek.local.
Configurar servidor maestro
Necesitamos configurar BIND en el servidor maestro (ns1.itzgeek.local) para habilitar la transferencia de zona a nuestro servidor secundario (ns2.itzgeek.local).
Edite el archivo /etc/named.conf.local en ns1.itzgeek.local.
sudo nano /etc/bind/named.conf.local
Deberá actualizar las zonas existentes que creamos para itzgeek.local con el parámetro allow-transfer y also-notify.
allow-transfer le permitirá transferir zonas del servidor maestro a un servidor esclavo y también notificar nos ayudará a notificar a un servidor esclavo cuando haya un cambio en las zonas del servidor maestro.
Zona delantera
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
};
Zona inversa
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
};
Reinicie el servicio DNS en ns1.itzgeek.local.
sudo systemctl restart bind9
Configurar servidor esclavo
Asegúrese de instalar los siguientes paquetes en el servidor esclavo.
sudo apt-get install -y bind9 bind9utils bind9-doc dnsutils
Es el momento de agregar una declaración de zona esclava en el servidor esclavo (ns2.itzgeek.local). Edite el archivo /etc/bind/named.conf.local.
sudo nano /etc/bind/named.conf.local
Zona delantera
Agregue la zona esclava como se muestra a continuación.
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
};
Zona inversa
Agregue la zona esclava como se muestra a continuación.
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
};
Reinicie el servicio DNS en ns2.itzgeek.local
sudo systemctl restart bind9
Espere unos minutos y comenzará a ver algo como lo siguiente en el archivo /var/log/syslog.
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)
Actualización de registros DNS
Mientras modifica los registros de cualquier zona en el servidor maestro, asegúrese de actualizar el número de serie a algún número aleatorio, más alto que el actual. Además, ejecute el siguiente comando en el servidor maestro para recargar la zona para que la zona esclava obtenga los registros actualizados.
Cambie itzgeek.local &0.168.192.in-addr.arpa con sus nombres de zona.
### Forward Zone ###
sudo rndc reload itzgeek.local
### Reverse Zone ###
sudo rndc reload 0.168.192.in-addr.arpa
Verificar Servidor DNS Esclavo
En la máquina cliente, agregue una dirección IP de servidor DNS esclavo en el archivo /etc/resolv.conf.
sudo nano /etc/resolv.conf
Agregue una entrada de DNS adicional como la siguiente junto con las entradas existentes.
nameserver 192.168.0.20
O
Lea el siguiente tutorial para configurar la IP del servidor DNS en Linux.
LEER: Cómo configurar la dirección IP de DNS en CentOS / Fedora
LEER: Cómo configurar la dirección IP de DNS en Ubuntu / Debian – ifupdown
LEER: Cómo configurar la dirección IP de DNS en Ubuntu 18.04 – Netplan
Puede usar el comando nslookup o dig para verificar el servidor DNS.
Utilice el comando dig para verificar la búsqueda directa junto con @ en caso de que no pueda realizar una entrada en /etc/resolv.conf.
Verifique la búsqueda de www.itzgeek.local usando ns2.itzgeek.local (192.168.0.20)
dig www.itzgeek.local @192.168.0.20
Salida:
; <<>> 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
Ahora, puede ver que el servidor esclavo responde a las consultas de DNS.
Conclusión
Eso es todo. Ha configurado correctamente el servidor DNS esclavo en Ubuntu 18.04/Ubuntu 16.04 y Debian 10/Debian 9. Comparta sus comentarios en la sección de comentarios.