Hoy aprenderemos en nuestro Curso Gratuito de Linux a configurar servidor DNS en Debian.
Podemos decir que «Internet es fácil» gracias a este servicio, pero su alcance se extiende mas allá de la «Red de Redes», por eso hoy vamos a aprender a configurar servidor DNS en Debian.
Luego de aprender a configurar servidor DNS en Debian, estaremos en condiciones de asignar un nombre amigable a un equipo o servicio disponible en nuestra red (o en Internet) para ser ubicado de manera amigable.
Breves consideraciones y aclaraciones:
En el post de hoy vamos a ver como configurar servidor DNS en Debian para una red local donde los distintos equipos disponibles en ella, y hasta la implementación del servidor de DNS son accedidos conociendo la dirección IP. Luego de configurar el servidor DNS en Debian, los mismos equipos serán ubicables con un nombre sencillo de recordar.
Comencemos por ingresar a nuestro equipo, que seguiremos utilizando el que hemos configurado en este post, con el super usuario root.
Lo primero que haremos será instalar el paquete Bind9 desde los repositorios de Debian. Como regla general, recuerden SIEMPRE actualizar la base de datos de los repositorios como hemos explicado en este otro post antes de proceder con la instalación.
Vamos a editar el archivo /etc/resolv.conf para que utilice nuestro flamante servidor de DNS eliminando lo que sea que contenga y agregando:
nameserver 127.0.0.1
ACLARACIÓN: quizás lo sepan pero no esta de más recordar que la IP 127.0.0.1 hace SIEMPRE referencia al host local, al equipo local, «a si mismo» por decirlo de alguna manera sin importar la dirección de IP que el equipo tenga, inclusive si esta varía.
Obviamente vamos a salvar los cambios.
Luego, para configurar servidor DNS en Debian correctamente, tenemos que decirle a nuestra placa de red que utilice el dns que acabamos de instalar en nuestro equipo. Editaremos la configuración de la red como hemos explicado en este post agregando nuestro nuevo servidor dns.
Luego de guardar los cambios, personalmente aconsejo REINICIAR el sistema, podemos utilizar el comando:
shutdown -r now
Verificando funcionamiento:
Hasta ahora, hemos aprendido a configurar servidor DNS en Debian que va a resolver todas las consultas que hagamos, veamos algunos ejemplos:
En el ejemplo que apreciamos en la imagen, estamos consultando por los registros MX para el dominio yahoo.com, y observamos que nuestro servidor (server: 127.0.0.1) es quien está respondiendo a nuestra consulta.
Para conocer los registros DNS aconsejo leer este articulo de Wikipedia donde se explica cada uno de ellos.
Ahora bien, hasta ahora tenemos un DNS LOCAL que resuelve direcciones de Internet correctamente. Avanzaremos ahora en la utilización del DNS para resolver nuestras direcciones locales
Configurar servidor DNS en Debian para resolver direcciones locales.
La idea es crear un dominio para utilizar en nuestra red y así poder identificar de manera sencilla los distintos equipos.
Veamos como:
Vamos a llamar a nuestro dominio cursolinux.local y aprenderemos a configurar servidor DNS en Debian para que pueda manejarlo sin problemas.
Primeramente, vamos a crear un directorio llamado /etc/bind/zones a los puros efectos de organización, ya que será ahí donde almacenaremos los archivos que contendrán la información/configuración de nuestros dominios. vamos a editar el archivo /etc/bind/zones/named.conf.local y agregaremos, al final del archivo la ubicación de nuestro archivo de zona y sus características.
Arriba observamos que establecemos el nombre de nuestro dominio (cursolinux.local), que es una zona primaria (type master), la ubicación del archivo de la zona (/etc/bind/zones/zone.cursolinux.local), que no se permiten transferencias de zonas (allow-transfer { none;}) y que permitimos que hagan consultas a nuestro servidor desde cualquier lugar (allow-query {any;})
ACLARACIÓN: si bien no es tema del post de hoy, debemos aclarar que existen configuraciones redundantes de servidores DNS para garantizar la prestación del servicio, es decir, servidores secundarios de DNS que van a tener una réplica de los dominios configurados en el servidor DNS primario y que van a responder a las consultas que se le hagan de la misma manera que lo hace el servidor primario.
Ahora, vamos a ver como crear el archivo del dominio.
Vamos a generar el archivo /etc/bind/zones/zone.cursolinux.local y agregaremos allí la información necesaria.
Como se aprecia arriba, hemos definido los datos básicos de una zona DNS, y nos vamos a concentrar en la información que encontramos a partir de la línea 11 ya que las anteriores, excepto por el nombre del dominio, podría ser reutilizada para cualquier otra zona.
Estamos entonces, definiendo un registro NS con el nombre ns1.cursolinux.local y mas abajo el registro correspondiente A donde especificamos la direccion IP a la que hace referencia. Creamos también un registro A para el host local haciendo referencia a la dirección IP correspondiente (ver aclaración más arriba), también un registro A para el dominio y por ultimo creamos un registro para un equipo al que llamaremos gateway (que no es ni más ni menos que nuestra puerta de enlace).
IMPORTANTE: como se podrán imaginar, editando este archivo agregaremos o modificaremos información necesaria. Hay que tener MUY presente que, cuando esto ocurra, hemos de INCREMENTAR SIEMPRE EL VALOR DEL REGISTRO SOA ya que de no hacerlo, el servidor DNS no va a interpretar que se ha modificado el dominio/zona en cuestión. Podemos decir que el SOA (start of authority o autoridad de la zona) es un número de serie.
Una vez que hemos realizado lo antes explicado, debemos reiniciar el servidor dns con el comando
/etc/init.d/bind9 restart
Vamos a comprobar que nuestro DNS funcione correctamente haciendo ping a ns1.cursolinux.local y a gateway.cursolinux.local
Ahora bien, hasta el momento todas las consulta que hemos realizado han sido desde el servidor mismo. ¿Qué pasa si queremos que los usuarios de nuestra red comiencen a utilizarlo?, obviamente han de configurar la dirección de IP de este servidor para resolver los nombres, pero, antes debemos HABILITAR EN NUESTRO FIREWALL que se puedan hacer consultas al servicio DNS, siempre y cuando lo tengamos configurado obviamente, y como debería ser el estado si es que vienen siguiendo nuestro curso de acuerdo a como lo explicamos en este post, con el comando
ufw allow dns
Una vez hecho esto, estamos en condiciones de que los distintos usuarios utilicen nuestro flamante servidor DNS tanto para navegar en internet como para resolver nombres locales.
Vamos a configurar para probar un Windows XP con el DNS
Luego de configurar el DNS vamos a hacer algunos «pings» para probar
Ahora vamos a generar un NUEVO registro para otro equipo, para ello editaremos nuevamente la zona, incrementaremos el numero de serie y reiniciaremos el servicio.
Editando el archivo…
Vemos arriba que hemos incremendado a 2 el numero de serie y hemos agregado el registro servidorx con la IP 192.168.2.132. Ahora, debemos reiniciar el servicio con el comando
/etc/init.d/bind9 restart
Y vamos a comprobar desde el equipo con Windows …
Y para finalizar, vamos a comprobar que se puede navegar correctamente en Internet utilizando el servidor de DNS
Como pueden ver, ingresamos al blog donde se aprecian los últimos posteos. Sepan disculpar que no se aprecie como corresponde ya que no tengo muy actualizado el Windows XP ya que lo utilizo únicamente para estos casos.
Conclusión:
Hemos aprendido a configurar servidor DNS en Debian, crear un dominio para uso local y así poder identificar fácilmente otros servidores en nuestra red sin necesidad de recordar direcciones IP y también poder navegar en Internet utilizando este flamante servidor DNS. Hemos aplicado conocimientos previos, como por ejemplo la configuración del firewall para permitir que otros usuarios puedan acceder al servicio. Les recomiendo leer los artículos que hemos linkeado para profundizar el conocimiento sobre el funcionamiento del DNS que es mucho mas extenso que lo aquí expuesto. Esto es tan solo «la punta del iceberg» (frase nunca utilizada) de lo que es posible hacer con DNS.
Espero haya sido de utilidad, no dejen de compartir
Excelente fin de semana!
Eduardo
2 comentarios en «Curso Gratuito Linux – Configurar servidor DNS»
Excelente explicación, muy láconico! Pues los DNS’s no son faciles de explicar y digerir.
Espero que haya uno más avanzado.
¡Saludos!
Gracias por tu comentario! Nos alegra que te haya sido útil e interesante el post.