Definimos e Implementamos un servidor DNS local

DNS corresponde a la sigla Domain Name System y podemos definirlo de la siguiente forma:

Todos los recursos de internet se ubican en alguna dirección IP, y dado que las direcciones IP son números extensos, los usuarios difícilmente puedan recordar más de 2 o 3 direcciones. ¿Imaginan tener que recordar la IP de cada sitio web para acceder al mismo?.

Un dominio es un nombre más simple de recordar, que si se traduce en el servidor correspondiente se obtiene la IP del recurso al que se desea acceder.

Un servidor DNS es aquel que tiene información de direcciones IP de la red y a que nombres se traducen, implementar un servidor dns local puede ser de utilidad si estamos ante una infraestructura grande, y necesitamos localizar recursos de forma simple.

Configuración de Servidor DNS

Para configurar un servidor DNS debemos instalar el paquete bind9 en nuestra distribución Linux, la distribución utilizada para el ejemplo fue un Ubuntu Server.

Para realizar las configuraciones de nuestro bind9, debemos editar el siguiente fichero:

/etc/bind/named.conf.local

En este fichero debemos crear zonas, cada una de ellas nos indica que archivo de configuración corresponde a que dominio. Y además existe una zona extra que debemos incluir la cual tendrá la configuración “reversa”, porque nosotros necesitamos traducir de IP a Dominio pero también de Dominio a IP, esta zona tendrá la configuración reversa de todos los dominios incluidos en el fichero (en este caso solo sera la config de ejemplo.com.uy).

Por tanto el fichero named.conf.local nos quedará con este formato:

Aquí se delimitan las zonas y en que ruta se encuentra la base de datos con los registros para hacer la correspondiente traducción.

Nosotros debemos crear esos ficheros porque actualmente no existen, además tenemos un archivo “plantilla” para cada uno de estos dos casos.

El procedimiento a seguir seria el siguiente:

 cp /etc/bind/db.local /etc/bind/db.ejemplo.com.uy
 cp /etc/bind/db.127 /etc/bind/db.192 

De esta manera generamos la copia de las plantillas en la ruta configurada.

Ahora editamos el /etc/bind/db.ejemplo.com.uy

Nos encontramos con esta plantilla, debiendo sustituir todas las cadenas “localhost” por la IP de nuestro server, eliminamos los últimos 3 registros y agregamos los siguientes:

 @ IN NS ejemplo.com.uy.
 @  IN A 192.168.0.200
 www IN A 192.168.0.200 

Dentro de estas bases de datos todos los dominios deben terminar en “.” para que se tomen como ruta absoluta y bind no le haga agregados automáticos.

Ahora editemos el /etc/bind/db.192 (que es la base de datos de traducción reversa).

El proceso es el mismo, cambiar todos los “localhost” por nuestra IP, y luego eliminar los registros al final (las dos ultimas lineas en este caso) para colocar los siguientes:

 @ IN NS ejemplo.com.uy.
 192.168.0.200 IN PTR ejemplo.com.uy.
 10 IN PTR www.ejemplo.com.uy. 

Una vez salvados los cambios procederemos a reiniciar bind9 para que los cambios tengan impacto en el servicio.

service bind9 restart 

Podemos también comprobar si esta funcionando correctamente de esta manera:

service bind9 status 

Configuración del servicio en equipos clientes

Ahora debemos seguir otro procedimiento en todos los clientes que utilicen este servicio.

En el caso de un cliente Linux procederemos a editar el /etc/resolv.conf , el cual contiene los nombres de todos los nameservers a utilizar (pudiendo usar hasta 3 como máximo).

Simplemente agregamos al principio la siguiente cadena “nameserver 192.168.0.200”.

En el caso de Windows, deberemos incluir en la configuración de red la ip de nuestro server como DNS primario o secundario.

Prueba de funcionamiento del Servicio

La manera mas simple de probar el servicio es en un terminal Linux, con el comando dig bajo la siguiente sintaxis:

dig @192.168.0.200 www.ejemplo.com.uy 

Observen el status, que es NOERROR, significa que esta todo bien y que el nombre pudo ser resuelto correctamente, los posibles status que nos arroja bind son los siguientes:

NOERROR – Todo está bien. La zona está siendo atendida por la autoridad requerida sin problemas.

NXDOMAIN: el nombre en cuestión no existe y, por lo tanto, no hay datos de DNS autorizados para servir.

SERVFAIL: No hay servidores de nombres para el dominio

REFUSED: Solicitud denegada por el servidor dns, no se tienen los permisos para la resolucion del nombre.

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *