El sistema de nombres de dominio (DNS, por sus siglas en inglés, Domain Name System) es un sistema de nomenclatura jerárquico descentralizado para dispositivos conectados a redes IP como Internet o una red privada. Este sistema asocia información variada con nombre de dominio asignado a cada uno de los participantes. Su función más importante es «traducir» nombres inteligibles para las personas en identificadores binarios asociados con los equipos conectados a la red, esto con el propósito de poder localizar y direccionar estos equipos mundialmente.

El servidor DNS utiliza una base de datos distribuida y jerárquica que almacena información asociada a nombres de dominio en redes como Internet. Aunque como base de datos el DNS es capaz de asociar diferentes tipos de información a cada nombre, los usos más comunes son la asignación de nombres de dominio a direcciones IP y la localización de los servidores de correo electrónico de cada dominio.En nuestra red local tenemos un servidor Web que sirve dos páginas web: www.iesgn.org, departamentos.iesgn.org.

Vamos a instalar en nuestra red local un servidor DNS (lo puedes instalar en el mismo equipo que tiene el servidor web).

Voy a suponer en este documento que el nombre del servidor DNS va a ser apache.iesgn.org Si quieres puedes utilizar otro nombre.

DNSMASQ

Instala el servidor dns dnsmasq apt install dnsmasqen apache.iesgn.org y configúralo para que los clientes puedan conocer los nombres necesarios.

Para que dnsmasq pueda ser un servidor caché DNS, es necesario que nuestro servidor tenga en el archivo de /etc/resolv.conf configurado al menos un servidor DNS externo.

Info! En este caso, nuestro el servidor que nos proporciona resolución es de un instituto con un proxy en cada caso variará según nuestra compañía de internet.

Una vez introducidos los DNS externos en /etc/resolv.conf, debemos comprobar si dichos DNS externos funcionan correctamente y responden a las peticiones.

Ahora añadimos los hosts que se van a poder conectar a nuestro fichero «/etc/hosts» y las direcciones que va a resolver dicho servidor DNS:

Y reiniciamos el servicio(Cada vez que modifiquemos el fichero «/etc/hosts» debemos reiniciar el servicio:

Ahora nos dirigimos al cliente y configuramos el fichero «/etc/resolv.conf» y añadimos como servidor «DNS» el servidor «dnsmasq»:

Info! Como en el caso anterior la ip de nuestro nuevo servidor DNS puede variar según la ip de nuestra máquina cliente.

Y comprobamos que nos resuelve los nombres con el comando dig y nos da la ip del servidor(www.iesgn.org)

Y por ultimo comprobamos a la pagina de Jose Domingo «www.josedomingo.org» y nos va a dirigir a papion y papion nos va a resolver:

Primera vez

Segunda vez

Al haberlo ejecutado antes, lo va a guardar en cache y la resolución va a ser mas rapida.

Para comprobar que no resuelve estáticamente adjunto captura de fichero «/etc/hosts», de la maquina cliente:

Por último aclarar que el servidor «DNSmasq» también realiza resolucion inversa sin ningún tipo de configuración añadida, para ello realizamos un dig a la ip del servidor apache y veremos que hacer la resolución:

Bind9

Desinstala el servidor dnsmasq del ejercicio anterior e instala un servidor dns bind9. Las características del servidor DNS que vamos instalar son las siguientes:

  • El servidor DNS se llama apache.iesgn.org y por supuesto, va a ser el servidor con autoridad para la zona iesgn.org.
  • Vamos a suponer que tenemos un servidor para recibir los correos que se llame correo.iesgn.org y que está en la dirección x.x.x.200 (esto es ficticio).
  • Vamos a suponer que tenemos un servidor ftp que se llame ftp.iesgn.org y que está en x.x.x.201 (esto es ficticio)
  • Además queremos nombrar a los clientes.
  • También hay que nombrar a los virtual hosts de apache: www.iesgn.org y departementos.iesgn.org

Instalamos bin9 con el siguiente comando apt install bind9

Modificamos el fichero «/etc/hosts», para que lea las resoluciones DNS de nuestra maquina:

Info! Nombre largo de la maquina con el dominio con autoridad sobre la zona y nombre corto es el nombre de la maquina

Y reiniciamos el servicio:

Procedemos a configurar el fichero «named.conf.options» dado que desde la red local del instituto por el cortafuego debemos configurar el «forwarders», descomentamos las lineas y añadimos lo siguiente justo en las líneas comentadas:

El siguiente paso es configurar el fichero «named.conf.local» en el cual vamos a especificar la zona, el tipo de servidor y el fichero donde vamos a tener toda la configuración correspondiente:

Resolución DNS directa

Copiamos el fichero «db.empty» como plantilla para la realizacion de «db.iesgn»:

Y lo editamos con lo siguiente para resolver todo lo que hemos definido antes que vamos a realizar:

Para comprobar que todo lo realizado esta correcto vamos a ejecutar la siguiente orden el cual va a comprobar su funcionamiento:

Y reiniciamos el servicio service bind9 restart:

Para comprobar desde la máquina donde se encuentra el servidor DNS la sintaxis es la siguiente, para especificar una maquina sin necesidad de añadirla al «resolv.conf», especificaremos la dirección de la máquina a la que queremos pregunta:

Si lo queremos comprobar desde una maquina en la misma red solo tenemos que poner la direccion IP de la maquina del servidor DNS:

Y por ultimo vamos a comprobar que el «forwarder» que hemos configurado esta funcionando correctamente, para ello vamos a hacer lo siguiente:

Resolución DNS inversa

Copiamos en «/var/cache/bind», el fichero plantilla para la resolución inversa:

Y configuramos este fichero con lo siguiente:

Reiniciamos el servicio service bind9 restart

Y comprobamos que no hay errores en el fichero:

A continuación desde un cliente vamos a comprobar si resuelve con la IP y nos muestra el nombre, para ello utilizaremos «dig» y la sintaxis es «dig -x [IP]»

Realiza la instalación del servidor DNS esclavo

Para poder configurar un dns esclavo debemos instalar otro servidor al cual vamos a llamar afrodita (como en el caso anterior podréis poner el nombre que queráis a la maquina)

Instalamos bind9 en el servidor afroditaapt install bind9

En el servidor maestro nos dirigimos a el fichero de configuracion «/etc/bind/named.conf.options»

Añadimos la siguiente linea en el fichero «/var/cache/bind/db.iesgn»:

Y en el fichero «/var/cache/bind/172.22.rev»:

Y reiniciamos el servicio /etc/init.d/bind9 restart:

A continuación configuramos el servidor DNS esclavo, indicando que se trata de un servidor secundario en el fichero «/etc/bind/named.conf.local»:

Y en el fichero «/etc/bind/named.conf.local» del servidor DNS principal añadimos la direccion IP de la maquina que va a hacer de esclavo:

Y reiniciamos el servicio en ambas maquinas:

Comprobamos las zonas creadas

Zona directa

Zona inversa

Comprueba si la configuración de named.conf tiene algún error

Maestro

Esclavo

Reinicia los servidores y comprueba en los logs si hay algún error.

No olvides incrementar el número de serie en el registro SOA si has modificado la zona en el maestro.

Incrementamos el número de serie en los archivos de configuración de las zonas y reiniciamos los servidores:

Muestra la salida del log donde se demuestra que se ha realizado la transferencia de zona.

Configura un cliente para que utilice los dos servidores como servidores DNS.

Añadimos la ip de los dos servidores en nuestro «/etc/resolv.conf»

Realiza una consulta con dig tanto al maestro como al esclavo para comprobar que las respuestas son autorizadas. ¿En qué te tienes que fijar?

Realizamos la consulta al servidor maestro, podemos ver que las respuestas son autorizadas por las flags “aa”:

Maestro

Esclavo

Solicita una copia completa de la zona desde el cliente ¿qué tiene que ocurrir?

Desde el cliente solicitamos una copia completa de la zona y nos da error ya que no lo tenemos permitido:

Funcionamiento DNS esclavo

Cada vez que se realiza un cambio en el maestro en el cual añadimos una nueva entrada vamos a cambiar el numero de serie sino el esclavo no se entera de que se ha cambiado.