El sistema de nombres de dominio (DNS, por sus siglas en inglés, Domain Name System) es un sistema de nomenclatura jerárquico descentralizado para dispositivos conectados a redes IP como Internet o una red privada. Este sistema asocia información variada con nombre de dominio asignado a cada uno de los participantes. Su función más importante es «traducir» nombres inteligibles para las personas en identificadores binarios asociados con los equipos conectados a la red, esto con el propósito de poder localizar y direccionar estos equipos mundialmente.

El servidor DNS utiliza una base de datos distribuida y jerárquica que almacena información asociada a nombres de dominio en redes como Internet. Aunque como base de datos el DNS es capaz de asociar diferentes tipos de información a cada nombre, los usos más comunes son la asignación de nombres de dominio a direcciones IP y la localización de los servidores de correo electrónico de cada dominio.En nuestra red local tenemos un servidor Web que sirve dos páginas web: www.iesgn.org, departamentos.iesgn.org.

Vamos a instalar en nuestra red local un servidor DNS (lo puedes instalar en el mismo equipo que tiene el servidor web).

Voy a suponer en este documento que el nombre del servidor DNS va a ser apache.iesgn.org Si quieres puedes utilizar otro nombre.

DNSMASQ

Instala el servidor dns dnsmasq apt install dnsmasqen apache.iesgn.org y configúralo para que los clientes puedan conocer los nombres necesarios.

Para que dnsmasq pueda ser un servidor caché DNS, es necesario que nuestro servidor tenga en el archivo de /etc/resolv.conf configurado al menos un servidor DNS externo.

domain gonzalonazareno.org
search gonzalonazareno.org. 41011038.41.andared.ced.junta-andalucia.es.
nameserver 192.168.102.2
nameserver 172.22.200.9
nameserver 192.168.0.1
Info! En este caso, nuestro el servidor que nos proporciona resolución es de un instituto con un proxy en cada caso variará según nuestra compañía de internet.

Una vez introducidos los DNS externos en /etc/resolv.conf, debemos comprobar si dichos DNS externos funcionan correctamente y responden a las peticiones.

Ahora añadimos los hosts que se van a poder conectar a nuestro fichero «/etc/hosts» y las direcciones que va a resolver dicho servidor DNS:

Y reiniciamos el servicio(Cada vez que modifiquemos el fichero «/etc/hosts» debemos reiniciar el servicio:

root@apache:/home/vagrant# /etc/init.d/dnsmasq restart
[ ok ] Restarting dnsmasq (via systemctl): dnsmasq.service.

Ahora nos dirigimos al cliente y configuramos el fichero «/etc/resolv.conf» y añadimos como servidor «DNS» el servidor «dnsmasq»:

# Generated by NetworkManager
#search gonzalonazareno.org gonzalonazareno.org. 41011038.41.andared.ced.junta-andalucia.es.
#nameserver 192.168.102.2
#nameserver 172.22.200.9
#nameserver 192.168.0.1
nameserver 172.22.9.129
Info! Como en el caso anterior la ip de nuestro nuevo servidor DNS puede variar según la ip de nuestra máquina cliente.

Y comprobamos que nos resuelve los nombres con el comando dig y nos da la ip del servidor(www.iesgn.org)

juanlu@Juanlu-PC:~$ dig www.iesgn.org

; <<>> DiG 9.9.5-9+deb8u8-Debian <<>> www.iesgn.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8940
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.iesgn.org.			IN	A

;; ANSWER SECTION:
www.iesgn.org.		0	IN	A	172.22.9.129

;; Query time: 0 msec
;; SERVER: 172.22.9.129#53(172.22.9.129)
;; WHEN: Thu Nov 17 09:19:40 CET 2016
;; MSG SIZE  rcvd: 58

Y por ultimo comprobamos a la pagina de Jose Domingo "www.josedomingo.org" y nos va a dirigir a papion y papion nos va a resolver:

Primera vez

juanlu@Juanlu-PC:~$ dig www.josedomingo.org

; <<>> DiG 9.9.5-9+deb8u8-Debian <<>> www.josedomingo.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46165
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 4, ADDITIONAL: 5

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.josedomingo.org.		IN	A

;; ANSWER SECTION:
www.josedomingo.org.	900	IN	CNAME	wordpress-pledin.rhcloud.com.
wordpress-pledin.rhcloud.com. 60 IN	CNAME	ex-std-node697.prod.rhcloud.com.
ex-std-node697.prod.rhcloud.com. 150 IN	CNAME	ec2-52-90-64-199.compute-1.amazonaws.com.
ec2-52-90-64-199.compute-1.amazonaws.com. 357001 IN A 52.90.64.199

;; AUTHORITY SECTION:
amazonaws.com.		764	IN	NS	r2.amazonaws.com.
amazonaws.com.		764	IN	NS	r1.amazonaws.com.
amazonaws.com.		764	IN	NS	u1.amazonaws.com.
amazonaws.com.		764	IN	NS	u2.amazonaws.com.

;; ADDITIONAL SECTION:
r1.amazonaws.com.	1716	IN	A	205.251.192.27
r2.amazonaws.com.	4075	IN	A	205.251.195.199
u1.amazonaws.com.	1680	IN	A	156.154.64.10
u2.amazonaws.com.	676	IN	A	156.154.65.10

;; Query time: 177 msec
;; SERVER: 172.22.9.129#53(172.22.9.129)
;; WHEN: Thu Nov 17 09:03:01 CET 2016
;; MSG SIZE  rcvd: 323

Segunda vez

juanlu@Juanlu-PC:~$ dig www.josedomingo.org

; <<>> DiG 9.9.5-9+deb8u8-Debian <<>> www.josedomingo.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38263
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 13, ADDITIONAL: 12

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.josedomingo.org.		IN	A

;; ANSWER SECTION:
www.josedomingo.org.	797	IN	CNAME	wordpress-pledin.rhcloud.com.
wordpress-pledin.rhcloud.com. 60 IN	CNAME	ex-std-node697.prod.rhcloud.com.
ex-std-node697.prod.rhcloud.com. 150 IN	CNAME	ec2-52-90-64-199.compute-1.amazonaws.com.
ec2-52-90-64-199.compute-1.amazonaws.com. 536180 IN A 52.90.64.199

;; AUTHORITY SECTION:
compute-1.amazonaws.com. 219	IN	NS	pdns1.ultradns.net.
compute-1.amazonaws.com. 219	IN	NS	u4.amazonaws.com.
compute-1.amazonaws.com. 219	IN	NS	u5.amazonaws.com.
compute-1.amazonaws.com. 219	IN	NS	pdns3.ultradns.org.
compute-1.amazonaws.com. 219	IN	NS	pdns5.ultradns.info.
compute-1.amazonaws.com. 219	IN	NS	ns3.p31.dynect.net.
compute-1.amazonaws.com. 219	IN	NS	u1.amazonaws.com.
compute-1.amazonaws.com. 219	IN	NS	u3.amazonaws.com.
compute-1.amazonaws.com. 219	IN	NS	u6.amazonaws.com.
compute-1.amazonaws.com. 219	IN	NS	ns4.p31.dynect.net.
compute-1.amazonaws.com. 219	IN	NS	ns1.p31.dynect.net.
compute-1.amazonaws.com. 219	IN	NS	u2.amazonaws.com.
compute-1.amazonaws.com. 219	IN	NS	ns2.p31.dynect.net.

;; ADDITIONAL SECTION:
u1.amazonaws.com.	1119	IN	A	156.154.64.10
u2.amazonaws.com.	1119	IN	A	156.154.65.10
ns1.p31.dynect.net.	17598	IN	A	208.78.70.31
ns2.p31.dynect.net.	17595	IN	A	204.13.250.31
ns3.p31.dynect.net.	17598	IN	A	208.78.71.31
ns4.p31.dynect.net.	17597	IN	A	204.13.251.31
pdns1.ultradns.net.	3363	IN	A	204.74.108.1
pdns1.ultradns.net.	3363	IN	AAAA	2001:502:f3ff::1
pdns3.ultradns.org.	83280	IN	A	199.7.68.1
pdns5.ultradns.info.	3363	IN	A	204.74.114.1
pdns5.ultradns.info.	3363	IN	AAAA	2610:a1:1016::1

;; Query time: 82 msec
;; SERVER: 172.22.9.129#53(172.22.9.129)
;; WHEN: Thu Nov 17 09:22:01 CET 2016
;; MSG SIZE  rcvd: 670

Al haberlo ejecutado antes, lo va a guardar en cache y la resolución va a ser mas rapida.

Para comprobar que no resuelve estáticamente adjunto captura de fichero "/etc/hosts", de la maquina cliente:

Por último aclarar que el servidor "DNSmasq" también realiza resolucion inversa sin ningún tipo de configuración añadida, para ello realizamos un dig a la ip del servidor apache y veremos que hacer la resolución:

juanlu@Juanlu-PC:~$ dig -x 172.22.9.129

; <<>> DiG 9.9.5-9+deb8u8-Debian <<>> -x 172.22.9.129
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11472
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;129.9.22.172.in-addr.arpa.	IN	PTR

;; ANSWER SECTION:
129.9.22.172.in-addr.arpa. 0	IN	PTR	www.iesgn.org.

;; Query time: 0 msec
;; SERVER: 172.22.9.129#53(172.22.9.129)
;; WHEN: Thu Nov 17 09:29:41 CET 2016
;; MSG SIZE  rcvd: 81

Bind9

Desinstala el servidor dnsmasq del ejercicio anterior e instala un servidor dns bind9. Las características del servidor DNS que vamos instalar son las siguientes:

  • El servidor DNS se llama apache.iesgn.org y por supuesto, va a ser el servidor con autoridad para la zona iesgn.org.
  • Vamos a suponer que tenemos un servidor para recibir los correos que se llame correo.iesgn.org y que está en la dirección x.x.x.200 (esto es ficticio).
  • Vamos a suponer que tenemos un servidor ftp que se llame ftp.iesgn.org y que está en x.x.x.201 (esto es ficticio)
  • Además queremos nombrar a los clientes.
  • También hay que nombrar a los virtual hosts de apache: www.iesgn.org y departementos.iesgn.org

Instalamos bin9 con el siguiente comando apt install bind9

Modificamos el fichero "/etc/hosts", para que lea las resoluciones DNS de nuestra maquina:

127.0.0.1 [Nombre largo] [Nombre Corto]
Info! Nombre largo de la maquina con el dominio con autoridad sobre la zona y nombre corto es el nombre de la maquina

Y reiniciamos el servicio:

root@apache:/home/vagrant# /etc/init.d/bind9 restart
[ ok ] Restarting bind9 (via systemctl): bind9.service.

Procedemos a configurar el fichero "named.conf.options" dado que desde la red local del instituto por el cortafuego debemos configurar el "forwarders", descomentamos las lineas y añadimos lo siguiente justo en las líneas comentadas:

        forwarders {
        192.168.102.2;
        };

El siguiente paso es configurar el fichero "named.conf.local" en el cual vamos a especificar la zona, el tipo de servidor y el fichero donde vamos a tener toda la configuración correspondiente:

Resolución DNS directa

zone "iesgn.org" {
type master;
file "db.iesgn";
};

Copiamos el fichero "db.empty" como plantilla para la realizacion de "db.iesgn":

root@apache:/home/vagrant# cp /etc/bind/db.empty /var/cache/bind/db.iesgn

Y lo editamos con lo siguiente para resolver todo lo que hemos definido antes que vamos a realizar:

; BIND reverse data file for empty rfc1918 zone
;
; DO NOT EDIT THIS FILE - it is used for multiple zones.
; Instead, copy it, edit named.conf, and use that copy.
;
$TTL    86400
@       IN      SOA     apache.iesgn.org. mail.iesgn.org. (
                              1         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                          86400 )       ; Negative Cache TTL
;
@       IN      NS      apache.iesgn.org.
$ORIGIN iesgn.org.
apache  IN      A       172.22.9.129
correo  IN      A       192.168.0.200
ftp     IN      A       192.168.0.201
www     IN      CNAME   apache
departamentos   IN      CNAME   apache
@               IN      MX      10 correo.iesgn.org.

Para comprobar que todo lo realizado esta correcto vamos a ejecutar la siguiente orden el cual va a comprobar su funcionamiento:

root@apache:/var/cache/bind# named-checkzone iesgn.org /var/cache/bind/db.iesgn 
zone iesgn.org/IN: loaded serial 1
OK

Y reiniciamos el servicio service bind9 restart:

Para comprobar desde la máquina donde se encuentra el servidor DNS la sintaxis es la siguiente, para especificar una maquina sin necesidad de añadirla al "resolv.conf", especificaremos la dirección de la máquina a la que queremos pregunta:

root@apache:/var/cache/bind# dig @localhost www.iesgn.org

; <<>> DiG 9.9.5-9+deb8u6-Debian <<>> @localhost www.iesgn.org
; (2 servers found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28418
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.iesgn.org.			IN	A

;; ANSWER SECTION:
www.iesgn.org.		86400	IN	CNAME	apache.iesgn.org.
apache.iesgn.org.	86400	IN	A	192.168.1.51

;; AUTHORITY SECTION:
iesgn.org.		86400	IN	NS	apache.iesgn.org.

;; Query time: 5 msec
;; SERVER: ::1#53(::1)
;; WHEN: Tue Nov 22 07:46:44 GMT 2016
;; MSG SIZE  rcvd: 93

Si lo queremos comprobar desde una maquina en la misma red solo tenemos que poner la direccion IP de la maquina del servidor DNS:

juanlu@Juanlu-PC:~/Vagrant/SERV/practica2$ dig @172.22.9.129 www.iesgn.org

; <<>> DiG 9.9.5-9+deb8u8-Debian <<>> @172.22.9.129 www.iesgn.org
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29518
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.iesgn.org.			IN	A

;; ANSWER SECTION:
www.iesgn.org.		86400	IN	CNAME	apache.iesgn.org.
apache.iesgn.org.	86400	IN	A	192.168.1.51

;; AUTHORITY SECTION:
iesgn.org.		86400	IN	NS	apache.iesgn.org.

;; Query time: 4 msec
;; SERVER: 172.22.9.129#53(172.22.9.129)
;; WHEN: Tue Nov 22 08:47:41 CET 2016
;; MSG SIZE  rcvd: 93

Y por ultimo vamos a comprobar que el "forwarder" que hemos configurado esta funcionando correctamente, para ello vamos a hacer lo siguiente:

root@Juanlu-PC:/home/juanlu# dig www.josedomingo.org

; <<>> DiG 9.9.5-9+deb8u8-Debian <<>> www.josedomingo.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10837
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 4, ADDITIONAL: 5

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.josedomingo.org.		IN	A

;; ANSWER SECTION:
www.josedomingo.org.	154	IN	CNAME	wordpress-pledin.rhcloud.com.
wordpress-pledin.rhcloud.com. 60 IN	CNAME	ex-std-node697.prod.rhcloud.com.
ex-std-node697.prod.rhcloud.com. 150 IN	CNAME	ec2-52-90-64-199.compute-1.amazonaws.com.
ec2-52-90-64-199.compute-1.amazonaws.com. 5209 IN A 52.90.64.199

;; AUTHORITY SECTION:
amazonaws.com.		2470	IN	NS	r1.amazonaws.com.
amazonaws.com.		2470	IN	NS	r2.amazonaws.com.
amazonaws.com.		2470	IN	NS	u1.amazonaws.com.
amazonaws.com.		2470	IN	NS	u2.amazonaws.com.

;; ADDITIONAL SECTION:
r1.amazonaws.com.	82872	IN	A	205.251.192.27
r2.amazonaws.com.	82872	IN	A	205.251.195.199
u1.amazonaws.com.	670	IN	A	156.154.64.10
u2.amazonaws.com.	670	IN	A	156.154.65.10

;; Query time: 71 msec
;; SERVER: 172.22.9.129#53(172.22.9.129)
;; WHEN: Thu Nov 24 09:11:31 CET 2016
;; MSG SIZE  rcvd: 323

Resolución DNS inversa

zone "22.172.in-addr.arpa" {
type master;
file "172.22.rev";
};

Copiamos en "/var/cache/bind", el fichero plantilla para la resolución inversa:

root@apache:/var/cache/bind# cp /etc/bind/db.127 ./172.22.rev

Y configuramos este fichero con lo siguiente:

;
; BIND reverse data file for local loopback interface
;
$TTL    604800
@       IN      SOA     apache.iesgn.org. mail.iesgn.org. (
                              1         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      apache.iesgn.org.
$ORIGIN 22.172.in-addr.arpa.
129.9   IN      PTR     apache.iesgn.org.

Reiniciamos el servicio service bind9 restart

Y comprobamos que no hay errores en el fichero:

root@apache:/var/cache/bind# named-checkzone 22.172.in-addr.arpa /var/cache/bind/172.22.rev
zone 22.172.in-addr.arpa/IN: loaded serial 1
OK

A continuación desde un cliente vamos a comprobar si resuelve con la IP y nos muestra el nombre, para ello utilizaremos "dig" y la sintaxis es "dig -x [IP]"

root@Juanlu-PC:/home/juanlu# dig -x 172.22.9.129

; <<>> DiG 9.9.5-9+deb8u8-Debian <<>> -x 172.22.9.129
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 3565
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;129.9.22.172.in-addr.arpa.	IN	PTR

;; ANSWER SECTION:
129.9.22.172.in-addr.arpa. 604800 IN	PTR	apache.iesgn.org.

;; AUTHORITY SECTION:
22.172.in-addr.arpa.	604800	IN	NS	apache.iesgn.org.

;; ADDITIONAL SECTION:
apache.iesgn.org.	86400	IN	A	172.22.9.129

;; Query time: 1 msec
;; SERVER: 172.22.9.129#53(172.22.9.129)
;; WHEN: Thu Nov 24 09:59:10 CET 2016
;; MSG SIZE  rcvd: 114

Realiza la instalación del servidor DNS esclavo

Para poder configurar un dns esclavo debemos instalar otro servidor al cual vamos a llamar afrodita (como en el caso anterior podréis poner el nombre que queráis a la maquina)

Instalamos bind9 en el servidor afroditaapt install bind9

En el servidor maestro nos dirigimos a el fichero de configuracion "/etc/bind/named.conf.options"

acl slaves {
        172..22.2.123
        };
        allow-transfer { none; };

Añadimos la siguiente linea en el fichero "/var/cache/bind/db.iesgn":

@               IN      NS      afrodita.iesgn.org.
afrodita        IN      A       172.22.2.123

Y en el fichero "/var/cache/bind/172.22.rev":

@       IN      NS      afrodita.iesgn.org.
123.2   IN      PTR     afrodita.iesgn.org.

Y reiniciamos el servicio /etc/init.d/bind9 restart:

A continuación configuramos el servidor DNS esclavo, indicando que se trata de un servidor secundario en el fichero "/etc/bind/named.conf.local":

// Archivo de configuracion directa

zone "iesgn.org" {
type slave;
file "db.iesgn";
masters { 172.22.9.129; };
};

// Archivo de configuracion inversa

zone "22.172.in-addr.arpa" {
type slave;
file "172.22.rev";
masters { 172.22.9.129; };
};

Y en el fichero "/etc/bind/named.conf.local" del servidor DNS principal añadimos la direccion IP de la maquina que va a hacer de esclavo:

zone "iesgn.org" {
type master;
file "db.iesgn";
allow-transfer { 172.22.2.123; };
};

// Archivo de configuracion inversa

zone "22.172.in-addr.arpa" {
type master;
file "172.22.rev";
allow-transfer { 172.22.2.123; };
};

Y reiniciamos el servicio en ambas maquinas:

root@apache:/home/vagrant# /etc/init.d/bind9 restart
[ ok ] Restarting bind9 (via systemctl): bind9.service.

root@afrodita:/home/vagrant# /etc/init.d/bind9 restart
[ ok ] Restarting bind9 (via systemctl): bind9.service.

Comprobamos las zonas creadas

Zona directa

root@apache:/home/vagrant# named-checkzone iesgn.org /var/cache/bind/db.iesgnzone iesgn.org/IN: loaded serial 1
OK

Zona inversa

root@apache:/home/vagrant# named-checkzone 22.172.in-addr.arpa /var/cache/bind/172.22.rev
zone 22.172.in-addr.arpa/IN: loaded serial 1
OK

Comprueba si la configuración de named.conf tiene algún error

Maestro

root@apache:/home/vagrant# named-checkconf
root@apache:/home/vagrant#

Esclavo

root@afrodita:/home/vagrant# named-checkconf 
root@afrodita:/home/vagrant#

Reinicia los servidores y comprueba en los logs si hay algún error.

No olvides incrementar el número de serie en el registro SOA si has modificado la zona en el maestro.

Incrementamos el número de serie en los archivos de configuración de las zonas y reiniciamos los servidores:

Muestra la salida del log donde se demuestra que se ha realizado la transferencia de zona.

Configura un cliente para que utilice los dos servidores como servidores DNS.

Añadimos la ip de los dos servidores en nuestro "/etc/resolv.conf"

nameserver 172.22.9.129
nameserver 172.22.2.123

Realiza una consulta con dig tanto al maestro como al esclavo para comprobar que las respuestas son autorizadas. ¿En qué te tienes que fijar?

Realizamos la consulta al servidor maestro, podemos ver que las respuestas son autorizadas por las flags “aa”:

Maestro

root@Juanlu-PC:/home/juanlu# dig +norec @172.22.9.129 iesgn.org. soa

; <<>> DiG 9.9.5-9+deb8u8-Debian <<>> +norec @172.22.9.129 iesgn.org. soa
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41722
;; flags: qr aa ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;iesgn.org.			IN	SOA

;; ANSWER SECTION:
iesgn.org.		86400	IN	SOA	apache.iesgn.org. mail.iesgn.org. 1 604800 86400 2419200 86400

;; AUTHORITY SECTION:
iesgn.org.		86400	IN	NS	afrodita.iesgn.org.
iesgn.org.		86400	IN	NS	apache.iesgn.org.

;; ADDITIONAL SECTION:
apache.iesgn.org.	86400	IN	A	172.22.9.129
afrodita.iesgn.org.	86400	IN	A	172.22.2.123

;; Query time: 1 msec
;; SERVER: 172.22.9.129#53(172.22.9.129)
;; WHEN: Wed Nov 30 13:48:47 CET 2016
;; MSG SIZE  rcvd: 155

Esclavo

root@Juanlu-PC:/home/juanlu# dig +norec @172.22.2.123 iesgn.org. soa

; <<>> DiG 9.9.5-9+deb8u8-Debian <<>> +norec @172.22.2.123 iesgn.org. soa
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17632
;; flags: qr aa ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;iesgn.org.			IN	SOA

;; ANSWER SECTION:
iesgn.org.		86400	IN	SOA	apache.iesgn.org. mail.iesgn.org. 1 604800 86400 2419200 86400

;; AUTHORITY SECTION:
iesgn.org.		86400	IN	NS	afrodita.iesgn.org.
iesgn.org.		86400	IN	NS	apache.iesgn.org.

;; ADDITIONAL SECTION:
apache.iesgn.org.	86400	IN	A	172.22.9.129
afrodita.iesgn.org.	86400	IN	A	172.22.2.123

;; Query time: 1 msec
;; SERVER: 172.22.2.123#53(172.22.2.123)
;; WHEN: Wed Nov 30 13:49:25 CET 2016
;; MSG SIZE  rcvd: 155

Solicita una copia completa de la zona desde el cliente ¿qué tiene que ocurrir?

Desde el cliente solicitamos una copia completa de la zona y nos da error ya que no lo tenemos permitido:

root@afrodita:/home/vagrant# dig @172.22.9.129 axfr iesgn.org

; <<>> DiG 9.9.5-9+deb8u8-Debian <<>> @172.22.9.129 axfr iesgn.org
; (1 server found)
;; global options: +cmd
iesgn.org.		86400	IN	SOA	apache.iesgn.org. mail.iesgn.org. 1 604800 86400 2419200 86400
iesgn.org.		86400	IN	MX	10 correo.iesgn.org.
iesgn.org.		86400	IN	NS	apache.iesgn.org.
iesgn.org.		86400	IN	NS	afrodita.iesgn.org.
afrodita.iesgn.org.	86400	IN	A	172.22.2.123
apache.iesgn.org.	86400	IN	A	172.22.9.129
correo.iesgn.org.	86400	IN	A	192.168.0.200
departamentos.iesgn.org. 86400	IN	CNAME	apache.iesgn.org.
ftp.iesgn.org.		86400	IN	A	192.168.0.201
www.iesgn.org.		86400	IN	CNAME	apache.iesgn.org.
iesgn.org.		86400	IN	SOA	apache.iesgn.org. mail.iesgn.org. 1 604800 86400 2419200 86400
;; Query time: 6 msec
;; SERVER: 172.22.9.129#53(172.22.9.129)
;; WHEN: Wed Nov 30 12:51:45 GMT 2016
;; XFR size: 11 records (messages 1, bytes 285)

Funcionamiento DNS esclavo

Cada vez que se realiza un cambio en el maestro en el cual añadimos una nueva entrada vamos a cambiar el numero de serie sino el esclavo no se entera de que se ha cambiado.