Talleres DNS
Talleres DNS
Taller 1: Instalación y configuración del servidor bind9 en nuestra red local.
- Creamos una máquina en Proxmox configurada con cloud init e instalamos bind9.
apt install bind9
-
Realizamos la siguiente configuración para que funcione como servidor.
-
En el fichero
/etc/default/named/
modificamos el fichero con la siguiente línea:
OPTIONS="-4 -f -u bind"
- Además, debemos tener en cuenta que solo se permitirán consultas desde la red local. En caso de realizarlo con una VPNm debemos modificar el fichero
/etc/bind/named.conf.options
allow-query {172.29.0.0/16; 172.22.0.0/16;};
- Reiniciamos el servidor y realizamos la siguiente consulta desde nuestro pc:
dig @172.22.7.159 www.josedomingo.org
- ¿Cuánto ha tardado en realizar la consulta?
- 367 msec
- ¿Qué consultas se han realizado para averiguar la dirección IP?
- La consulta es de tipo A y se ha realizado a la zona directa de josedomingo.org.
- Realizamos de nuevo la consulta. ¿Cuánto ha tardado ahora?
- 0 msec
- ¿Por qué ha tardado menos?
- Porque ya se ha realizado la consulta anteriormente y se ha guardado en el caché.
- ¿Qué consultas se han realizado para averiguar la dirección IP?
- La consulta es de tipo A y se ha realizado a la zona directa de josedomingo.org.
- Creamos una zona directa para nuestro dominio
maria.org
, añadiendo al fichero/etc/bind/named.conf.local
:
zone "maria.org" {
type master;
file "db.maria.org";
};
- Creamos el fichero de la zona
/var/cache/bind/db.maria.org
y el fichero quedaría de la siguiente manera:
$TTL 86400
@ IN SOA dns1.maria.org. root.maria.org. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
86400 ) ; Negative Cache TTL
;
@ IN NS dns1.maria.org.
@ IN MX 10 correo.maria.org.
$ORIGIN maria.org.
dns1 IN A 172.22.7.159
correo IN A 172.22.200.101
asterix IN A 172.22.200.102
obelix IN A 172.22.200.103
www IN CNAME asterix
informatica IN CNAME asterix
ftp IN CNAME obelix
- Creamos una zona inversa:
zone "22.172.in-addr.arpa" {
type master;
file "db.172.22.0.0";
};
Y descomentamos la línea include "/etc/bind/zones.rfc1918";
para así incluir todas las zonas correspondientes a las redes privadas para que no se pregunten por ellas al servidor DNS raíz.
...
zone "21.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
//zone "22.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "23.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
...
- Creamos el fichero
/var/cache/bind/db.172.22.0.0
:
$TTL 86400
@ IN SOA dns1.maria.org. root.maria.org. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
86400 ) ; Negative Cache TTL
;
@ IN NS dns1.maria.org.
$ORIGIN 22.172.in-addr.arpa.
159.7 IN PTR dns1.maria.org.
101.200 IN PTR correo.maria.org.
102.200 IN PTR asterix.maria.org.
103.200 IN PTR obelix.maria.org.
-
Reiniciamos el servicio. Y configuramos el nuevo DNS en otra máquina, desde la que vamos a realizar las siguentes consultas con dig.
-
Incluimos en el fichero
/etc/resolv.conf
la IP del servidor DNS:
- Dirección IP de una máquina o servicio.
dig www.maria.org
- Servidor DNS con autoridad de dominio:
dig ns www.maria.org
- Servidor de correo del dominio.
dig mx maria.org
- Una resolución inversa.
dig -x 172.22.200.103
Taller 2: Instalación y configuración de un servidor DNS esclavo.
Un servidor DNS esclavo contiene una réplica de las zonas del servidor maestro. Se debe producir una transferencia de zona (el esclavo hace una solicitud de la zona completa al maestro) para que se sincronicen los servidores.
Antes que nada, cabe decir que el número de serie de la zona de transferencia tiene como función decirle al esclavo si la zona ha cambiado o no. Si el número de serie del esclavo es menor que el del maestro, el esclavo solicitará la zona al maestro. Si el número de serie del esclavo es mayor que el del maestro, el esclavo no solicitará la zona al maestro.
Los diferentes tiempos que se configuran enel registro SOA
son:
Refresh
: Tiempo que debe pasar antes de que el esclavo vuelva a consultar al maestro si la zona ha cambiado.Retry
: Tiempo que debe pasar antes de que el esclavo vuelva a consultar al maestro si la zona no ha cambiado.Expire
: Tiempo que debe pasar antes de que el esclavo considere que la zona ha expirado y la borre.-
Negative Cache TTL
: Tiempo que debe pasar antes de que el esclavo considere que la zona ha expirado. - Creamos otra máquina en Proxmox cuyo rol será de Servidor DNS esclavo, al que le instalaremos bind9 y lo nombraremos con el nombre
dns2.maria.org
. La transferencia de zona entre maestro y esclavo usará el puerto 53/tcp, que abriremos en el grupo de seguridad.
sudo ufw allow 53/tcp
- Solo deberemos aceptar las transferencias de zonas hacia los esclavos autorizados, que lo haremos en el fichero
/etc/bind/named.conf.options
:
options {
...
allow-transfer { none; };
...
}
- Modificamos el fichero
/etc/bind/named.conf.local
para definir la zona del DNS maestro:
include "/etc/bind/zones.rfc1918";
zone "maria.org" {
type master;
file "db.maria.org";
allow-transfer { 172.22.6.208; };
notify yes;
};
zone "22.172.in-addr.arpa" {
type master;
file "db.172.22.0.0";
allow-transfer { 172.22.6.208; };
notify yes;
};
- Modificamos el fichero
/etc/bind/named.conf.local
para definir la zona del DNS esclavo:
include "/etc/bind/zones.rfc1918";
zone "maria.org" {
type slave;
file "db.maria.org";
masters { 172.22.6.208; };
};
zone "22.172.in-addr.arpa" {
type slave;
file "db.172.22.0.0";
masters { 172.22.6.208; };
};
- Añadimos la información del DNS esclavo en las zonas. Añadimos un nuevo registro NS y su correspondiente registro
A
en el fichero/var/cache/bind/db.maria.org
:
$TTL 86400
@ IN SOA dns1.maria.org. root.maria.org. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
86400 ) ; Negative Cache TTL
;
@ IN NS dns1.maria.org.
@ IN NS dns2.maria.org.
@ IN MX 10 correo.maria.org.
$ORIGIN maria.org.
dns1 IN A 172.22.7.159
dns2 IN A 10 172.22.6.208
...
Y modificamos el fichero /var/cache/bind/db.172.22.0.0
:
$TTL 86400
@ IN SOA dns1.maria.org. root.maria.org. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
86400 ) ; Negative Cache TTL
;
@ IN NS dns1.maria.org.
@ IN NS dns2.maria.org.
$ORIGIN 22.172.in-addr.arpa.
159.7 IN PTR dns1.maria.org.
208.6 IN PTR dns2.maria.org.
...
-
Reiniciamos los servidores DNS, tanto el maestro como el esclavo.
-
En caso de que nos salga algún error, probamos con los siguientes comandos:
named-checkzone maria.org /var/cache/bind/db.maria.org
named-checkzone 22.172.in-addr.arpa /var/cache/bind/db.172.22.0.0
#Para detectar errores de configuración en `named.conf`, podemos usar:
named-checkconf
-
Configuramos el cliente con los dos servidores DNS. En el fichero
/etc/resolv.conf
utiliza dos directivasnameserver
. Si hacemos una consulta desde un cliente, y el dns maestro no responde, responderá el esclavo. Prueba a realizar una consulta. -
¿Quién ha respondido?.
- Al realizar
dig www.maria.org
el servdor que responde es el maestro.
- Al realizar
[
Apagamos el servidor maestro, y volvemos a hacer la misma consulta.
---Apagamos el servicio de la máquina dns1
$ sudo systemctl stop bind9
---Hacemos la consulta
$ dig www.maria.org
- ¿Ha respondido el servidor DNS esclavo?
- Al apagar el servidor maestro y realizar la consulta, el servidor que responde es el esclavo.
[
- Modificamos la zona, y para ello lo modificamos en el servidor maestro en el fichero
/var/cache/bind/db.maria.org
añadiendo:
...
prueba IN A 172.22.6.208
...
-
Desde el cliente realizaremos una consulta para preguntar por la dirección IP de
prueba.maria.org
. -
¿Quién ha respondido?.
- Al realizar
dig prueba.maria.org
el servdor que responde es el maestro.
- Al realizar
[
Apagamos el servidor maestro, y volvemos a hacer la misma consulta.
---Apagamos el servicio de la máquina dns1
$ sudo systemctl stop bind9
---Hacemos la consulta
$ dig www.maria.org
- ¿Ha respondido el servidor DNS esclavo?
- Al apagar el servidor maestro y realizar la consulta, el servidor que responde es el esclavo.
Comprobamos en el esclavo que se ha producido la transferencia.
-
EXTRA. Crea un registro nuevo en el maestro y regístrarlo en el esclavo.
- En el maestro añadimos el registro
prueba2
con la IP172.22.7.169
en el fichero/var/cache/bind/db.maria.org
:
- En el maestro añadimos el registro
...
prueba2 IN A 172.22.7.169
...
- Modificamos el fichero
/etc/resolv.conf
del host para realizar las pruebas.
...
nameserver 172.22.7.159
nameserver 172.22.6.208
...
- Hacemos la consulta desde el cliente para comprobar que se ha registrado correctamente y comprobamos que responde el servidor maestro.
dig prueba2.maria.org
- Apagamos el servidor maestro y volvemos a hacer la consulta. En este caso, el servidor que responde es el esclavo.
$ sudo systemctl stop bind9
#Hacemos la consulta en el host
$ dig prueba2.maria.org
Taller 3: Delegación de subdominios con bind9
- Crea una nueva máquina e instala un servidor DNS bind9, será el servidor DNS con autoridad para la zona delegada que será
informatica.maria.org
. Nombra de manera adecuada esta máquina para que tenga el nombredns.informatica.maria.org
.- Tendremos el servidor
dns1.maria.org
(y el esclavodns2.maria.org
) con autoridad para la zonamaria.org
. En esta zona, por ejemplo, puede existir el nombrewww.maria.org
. - Tendremos el servidor
dns.informatica.maria.org
con autoridad sobre el subdominio delegado, es decir tendrá autoridad para la zonainformatica.maria.org
. En esta zona, por ejemplo, puede existir el nombrewww.informatica.maria.org
.
- Tendremos el servidor
- Vamos a realizar la delegación de autoridad para el subdominio en el servidor DNS principal (en
dns1.maria.org
) para ello modificamos el fichero/var/cache/bind/db.maria.org
añadiendo las siguientes líneas donde realizamos la delegación:
...
$ORIGIN informatica.maria.org.
@ IN NS dns
dns IN A 172.22.2.218
...
- Ahora vamos a configurar el servidor DNS delegado. Por lo tanto en el servidor
dns.informatica.maria.org
creamos una nueva zona en el fichero/etc/bind/named.conf.local
:
zone "informatica.maria.org" {
type master;
file "db.informatica.maria.org";
};
Y creamos la zona en el fichero /var/cache/bind/db.informatica.maria.org
:
$TTL 86400
@ IN SOA dns.informatica.maria.org. root.informatica.maria.org. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
86400 ) ; Negative Cache TTL
;
@ IN NS dns.informatica.maria.org.
@ IN MX 10 mail.informatica.maria.org.
$ORIGIN informatica.maria.org.
dns IN A 172.22.2.218
mail IN A 172.22.200.121
web IN A 172.22.200.122
www IN CNAME web
...
- No modifiques el fichero
/etc/resolv.conf
del cliente, es decir, las consultas se hacen al servidor DNS principal, cuando preguntemos por un nombre en la zona delegada el servidor DNS principal, preguntará al servidor DNS delegado y guardara la respuesta en su caché. Pregunta por la dirección ip del nombre www.informatica.maria.org. ¿Quién ha respondido?- El servidor DNS que ha respondido es el servidor maestro
dns1.maria.org
ya que es el que tiene la autoridad sobre la zonamaria.org
.
- El servidor DNS que ha respondido es el servidor maestro
Comprobaciones de funcionamiento
- Vamos a realizar una consulta para averiguar la dirección IP de
www.informatica.maria.org
desde el cliente sin modificar el fichero/etc/resolv.conf
del cliente.
dig www.informatica.maria.org
- Realizamos una consulta para averiguar el servidor DNS con autoridad para la zona del dominio
informatica.maria.org
. ¿Es el mimso que el servidor DNS con autoridad para la zona del dominiomaria.org
?
dig ns wwwinformatica.maria.org
-
El servidor DNS con autoridad para la zona del dominio
informatica.maria.org
es el servidordns.informatica.maria.org
y el servidor DNS con autoridad para la zona del dominiomaria.org
es el servidordns1.maria.org
. -
Realizamos una consulta para averiguar el servidor de correo confgurado para
informatica.maria.org
.
dig mx informatica.maria.org