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
    

1

  • ¿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

2

  • ¿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";
    };
    

3

  • 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
    

4

  • Creamos una zona inversa:
    zone "22.172.in-addr.arpa" {
    type master;
    file "db.172.22.0.0";
    };
    

7

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.

5

    ...
    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"; };
    ...
    

6

  • 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.
    

7

  • 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:

8

  • Dirección IP de una máquina o servicio.
        dig www.maria.org
        

9

  • Servidor DNS con autoridad de dominio:
        dig ns www.maria.org
        

10

  • Servidor de correo del dominio.
        dig mx maria.org
        

11

  • Una resolución inversa.
        dig -x 172.22.200.103
        

12

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; };
    ...
    }
    

13

  • 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;
    };
    

14

  • 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; };
    };
    

15

  • 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
    ...
    

16

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.  
    ...
    

17

  • 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 directivas nameserver. 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.

[18

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.

[19

  • 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.

[20

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.

21

  • EXTRA. Crea un registro nuevo en el maestro y regístrarlo en el esclavo.

    • En el maestro añadimos el registro prueba2 con la IP 172.22.7.169 en el fichero /var/cache/bind/db.maria.org:
    ...
    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
    

22

  • 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
    

23

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 nombre dns.informatica.maria.org.
    • Tendremos el servidor dns1.maria.org (y el esclavo dns2.maria.org) con autoridad para la zona maria.org. En esta zona, por ejemplo, puede existir el nombre www.maria.org.
    • Tendremos el servidor dns.informatica.maria.org con autoridad sobre el subdominio delegado, es decir tendrá autoridad para la zona informatica.maria.org. En esta zona, por ejemplo, puede existir el nombre www.informatica.maria.org.
  • 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
    ...
    

24

  • 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";
    };
    

25

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
    ...
    

26

  • 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 zona maria.org.

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
    

27

  • 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 dominio maria.org?
    dig ns wwwinformatica.maria.org
    

28

  • El servidor DNS con autoridad para la zona del dominio informatica.maria.org es el servidor dns.informatica.maria.org y el servidor DNS con autoridad para la zona del dominio maria.org es el servidor dns1.maria.org.

  • Realizamos una consulta para averiguar el servidor de correo confgurado para informatica.maria.org.

     dig mx informatica.maria.org
    

29