Configurar Servidor DNS en Ubuntu

Portada DNS

En esta entrada vamos a ver cómo configurar BIND9 para disponer de un servidor DNS para la resolución de nombres de nuestro dominio.

Para la realización de este tutorial se han utilizado dos máquinas con Ubuntu Server 14.04,  una funcionando como servidor con IP 172.16.1.10 y otra como cliente con IP 172.16.1.20.
Comenzamos instalando BIND9:

alberto@server1:~$ sudo apt-get install bind9

Una vez finalizada la instalación editamos el fichero “/etc/bind/named.conf.local”:

alberto@server1:~$ sudo nano /etc/bind/named.conf.local

Y definimos las zonas de resolución directa (labvirtual.local) e inversa (1.16.172.in-addr.arpa). Aqui es muy importante indicar correctamente cuales van a ser los ficheros de los registros de cada zona:

//
// Do any local configuration here
//

// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";
zone "labvirtual.local" {
        type master;
        file "/etc/bind/db.labvirtual";
};

zone "1.16.172.in-addr.arpa" {
  type master;
  file "/etc/bind/db.172.16.1";
};

Creamos el fichero para los registros de resolución de zona directa “/etc/bind/db.labvirtual”:

alberto@server1:~$ sudo nano /etc/bind/db.labvirtual

Podemos utilizar de plantilla el fichero “/etc/bind/db.local”. Nos quedará algo parecido a esto:

; ; BIND data file for local loopback interface ;
$TTL    604800
@ IN    SOA     labvirtual.local. root.labvirtual.local. (
                              2         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      server1.labvirtual.local.
server1 IN      A       172.16.1.10
Cliente1 IN     A       172.16.1.20
@       IN      A       127.0.0.1
@       IN      AAAA    ::1

Hacemos lo mismo con el fichero de los registros de resolución de zona inversa “/etc/bind/db.172.16.1”:

alberto@server1:~$ sudo nano /etc/bind/db.172.16.1

Podemos utilizar de plantilla el fichero “/etc/bind/db.127”. Nos quedará algo parecido a esto:

;
; BIND reverse data file for local loopback interface
;
$TTL    604800
@       IN      SOA     labvirtual.local. root.labvirtual.local. (
                              1         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      server1.labvirtual.local.
10      IN      PTR     server1.labvirtual.local.
20      IN      PTR     cliente1.labvirtual.local.

Reiniciamos el servicio bind9:

alberto@server1:~$ sudo service bind9 restart
[sudo] password for alberto: 
 * Stopping domain name service... bind9                                                waiting for pid 1073 to die
                                                                                 [ OK ]
 * Starting domain name service... bind9                                         [ OK ] 
alberto@server1:~$

Si algo va mal, podemos ejecutar los siguientes comandos que nos comprobarán el fichero “named.conf.local” y los ficheros de resolución de zona inversa y directa:

alberto@server1:~$ named-checkconf 
alberto@server1:~$ named-checkzone labvirtual.local /etc/bind/db.labvirtual 
zone labvirtual.local/IN: loaded serial 2
OK
alberto@server1:~$ named-checkzone 1.16.172.in-addr.arpa /etc/bind/db.172.16.1
zone 1.16.172.in-addr.arpa/IN: loaded serial 1
OK
alberto@server1:~$ 

Editamos el fichero de configuración de red “/etc/network/interfaces”:

alberto@server1:~$ sudo nano /etc/network/interfaces

Añadimos el servidor DNS en este caso 127.0.0.1 por tratarse del propio servidor y el dominio de búsqueda:

dns-nameservers 127.0.0.1
dns-search labvirtual.local

Y reiniciamos el servicio de red para que se hagan efectivos los cambios:

alberto@server1:~$ sudo service networking restart 
networking stop/waiting
networking start/running

Y probamos que realiza la resolución de nombres correctamente:

alberto@server1:~$ host server1.labvirtual.local
server1.labvirtual.local has address 172.16.1.10

El motivo de incluir el dominio de búsqueda en la configuración de red, es para que el servidor inicie la búsqueda en el dominio, de forma que entre otras cosas si queremos hacer ping o acceder a un equipo del dominio, bastará que indiquemos el nombre de ese equipo sin especificar el dominio:

alberto@server1:~$ ping -c 3 cliente1
PING Cliente1.labvirtual.local (172.16.1.20) 56(84) bytes of data.
64 bytes from cliente1.labvirtual.local (172.16.1.20): icmp_seq=1 ttl=64 time=0.521 ms
64 bytes from cliente1.labvirtual.local (172.16.1.20): icmp_seq=2 ttl=64 time=0.973 ms
64 bytes from cliente1.labvirtual.local (172.16.1.20): icmp_seq=3 ttl=64 time=0.799 ms

--- Cliente1.labvirtual.local ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 0.521/0.764/0.973/0.187 ms

Ahora vamos a un equipo cliente y también le añadimos el servidor DNS y el dominio de búsqueda en la configuración de red:

dns-nameservers 172.16.1.10
dns-search labvirtual.local

Reiniciamos el servicio de red para que se hagan efectivos los cambios:

alberto@cliente1:~$ sudo service networking restart
[sudo] password for alberto: 
networking stop/waiting
networking start/running

Y probamos que también funciona la resolución correctamente:

alberto@cliente1:~$ host server1.labvirtual.local
server1.labvirtual.local has address 172.16.1.10

Podemos usar el comando “nslookup” para comprobar la IP del servidor DNS que está realizando la resolución de nombres:

alberto@cliente1:~$ nslookup server1.labvirtual.local
Server:		172.16.1.10
Address:	172.16.1.10#53

Name:	server1.labvirtual.local
Address: 172.16.1.10
Anuncios

2 Responses to “Configurar Servidor DNS en Ubuntu”


  1. 1 Loren 10/28/2016 en 10:44

    ¿Este tipo de configuración solo funciona en red local? ¿Como puedo montar mi propio servidor DNS publico? ¿Algun enlace donde encuentre documentación en Español y completa para poder entender el funcionamiento de estos servicios? Muchas gracias por el manual.


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s




TELDAT CTI
VCA-DCV
JNCIA
CCNA

Introduce tu correo electrónico y recibe todas las actualizaciones

Únete a otros 146 seguidores

febrero 2015
L M X J V S D
« Nov   Jun »
 1
2345678
9101112131415
16171819202122
232425262728  

Actualizaciones de Twitter

Blog Stats

  • 422,701 Visitas
Creative Commons

A %d blogueros les gusta esto: