Configurar un servidor DNS con BIND

Recientemente hemos montado un servidor DNS en el aula en la cual imparto clases para resolver nombres de dominio entre los ordenadores de la red. En este artículo tenéis una excelente explicación de cómo funciona el DNS
La utilización de un servidor DNS local tiene ciertas ventajas:
-
Agilizar el acceso a Internet: Al tener un servidor de nombres en nuestra propia red local (que acceda al DNS de nuestro proveedor o directamente a los root servers) se agiliza el mecanismo de resolución de nombres, manteniendo en caché los nombres recientemente usados en la red y disminuyendo el tráfico hacia/desde Internet.
-
Simplificar la administración de la red local: Al contar con un DNS propio es posible definir zonas locales (no válidas ni accesibles desde Internet) para asignar nombres a cada uno de los ordenadores de la red. De esta forma es posible, por ejemplo, referirnos al servidor web como “www.aulaesi.com” en vez de “192.168.1.1″ y a nuestra impresora de red como “impresora.aulaesi.com” en vez “192.168.1.141″. (Pensemos, por ejemplo, que ocurriría con las configuraciones de las aplicaciones si un día decidimos cambiar el esquema de direcciones IP de nuestra red.)
El dominio que hemos creado lo hemos llamado aulaESI.com, y la máquina que hace de servidor de nombres, cuyo nombre es servidor y tiene IP 192.168.1.1, hace también la función de servidor web. De esta manera, desde cualquier ordenador del aula podemos poner www.aulaesi.com en el navegador para que aparezca la página web almacenada en el servidor.
En el aula hay también un servidor ftp, cuyo nombre es servidor2 y tiene dirección IP 192.168.1.2. El resto de los ordenadores del aula, que hemos llamado pc03, pc04, pc05, pc06…., tienen las direcciones IP que se muestran en la siguiente imagen.

Para montar el servidor DNS hemos utilizado una máquina con Ubuntu Gutsy 7.10 y el paquete BIND. BIND (Berkeley Internet Name Domain, anteriormente : Berkeley Internet Name Daemon) es el servidor de DNS más comúnmente usado en Internet, especialmente en sistemas Unix, en los cuales es un standard de facto. Fue creado originalmente en la Universidad de California, y actualmente propiedad del Internet Systems Consortium.
Instalación de BIND
Para instalar BIND simplemente abrimos la consola (Aplicaciones/Accessorios/Terminal) y escribimos el siguiente comando:
- sudo apt-get install bind9
Configuración de los archivos de BIND
Los archivos de configuración que tendremos que modificar en el servidor DNS son los siguientes:
- /etc/bind/named.conf
- /etc/bind/named.conf.options
- /etc/bind/named.conf.local
- /etc/bind/db.aulaESI.com
- /etc/bind/db.192.168.1
En el resto de ordenadores de la red, sólo habrá que modificar el archivo /etc/resolv.conf.
El archivo named.conf en realidad no es necesario que lo modifiquemos. Este archivo almacena la configuración de las diferentes zonas generadas por defecto en el momento de la instalación.
Para modificar el archivo /etc/bind/named.conf.local podemos utilizar cualquier editor de textos, como gedit o vi. Para crear este fichero con gedit abriremos el terminal y escribiremos:
- sudo gedit /etc/bind/named.conf.local
Una vez abierto tendremos que poner lo siguiente (lo que hay tras el carácter # son comentarios).
#Esta es la definición de la zona. Cambia aulaESI.com por tu nombre de dominio
zone “aulaESI.com” {
type master;
file “/etc/bind/db.aulaESI.com”;
};
#Aquí definimos la zona de resolución inversa. Cambia 1.168.192 por la dirección de tu red
zone “1.168.192.in-addr.arpa” {
type master;
file “/etc/bind/db.192.168.1″;
};
A continuación modificamos el fichero /etc/bind/named.conf.options. En este fichero especificaremos aquellos servidores DNS de Internet que resolverán los nombres de dominio que nuestro servidor DNS local no pueda resolver. Será necesario especificarlos para que los ordenadores de nuestra red salgan a Internet.
options {
directory “/var/cache/bind”;
forwarders {
80.58.0.33;
62.42.230.24;
};
};
Tendremos que cambiar las IP 80.58.0.33 y 62.42.230.24 por los servidores DNS de nuestro ISP. Los servidores DNS de ONO son: 62.42.230.24 y 62.42.63.52. Los servidores DNS de telefónica son: 80.58.61.250 y 80.58.61.254, aunque también tienen muchos más (80.58.0.33, 80.58.32.97, etc.)
Después tendremos que crear el fichero de definición de zona /etc/bind/db.aulaESI.com. En este fichero es donde pondremos todos los nombres de máquinas y direcciones IP que conocerá nuestro servidor DNS.
$TTL 604800
//Cambia aulaESI.com por el nombre de tu dominio
//Cambia servidor por el nombre de tu servidor de nombres
aulaESI.com. IN SOA aulaESI.com. servidor.aulaESI.com. (
//Las siguientes líneas no es necesario que las modifiquemos
2006081401
28800
3600
604800
38400)
//Cambia las siguientes líneas si es necesario
//aulaESI.com por el nombre de tu dominio
//servidor por el nombre de tu servidor de nombres
aulaESI.com. IN NS servidor.aulaESI.com.
//Cambia los nombres máquinas y direcciones IP por las de tu red
servidor IN A 192.168.1.1
servidor2 IN A 192.168.1.2
pc03 IN A 192.168.1.3
pc04 IN A 192.168.1.4
pc05 IN A 192.168.1.5
pc05 IN A 192.168.1.6
//Así para el resto de equipos de la red
//Lo siguiente es un alias. Para que desde el navegador podamos poner
//www.aulaESI.com en lugar de servidor.aulaESI.com
www IN CNAME servidor
ftp in CNAME servidor2
A continuación creamos el archivo de zona de resolución inversa /etc/bind/1.168.192 con el siguiente contenido:
//Cambia aulaESI.com por el nombre de tu dominio
//Cambia servidor por el nombre de tu servidor de nombres.
@ IN SOA servidor.aulaESI.com.
(2006081401;
28800;
3600;
604800;
38400)
//Cambia aulaESI.com por el nombre de tu dominio
//Cambia servidor por el nombre de tu servidor de nombres de dominio
//El número que aparece delante de IN PTR es el último octeto de la dirección IP //de la máquina
//192.168.1.1 para servidor, 192.168.1.2 para servidor2, 192.168.1.3 para pc03….
//Cambia las direcciones IP y nombres por los de tu red
IN NS servidor.aulaESI.com.
1 IN PTR servidor.aulaESI.com.
2 IN PTR servidor2.aulaESI.com.
3 IN PTR pc03.aulaESI.com.
4 IN PTR pc04.aulaESI.com.
5 IN PTR pc05.aulaESI.com.
6 IN PTR pc06.aulaESI.com.
Cuando hayamos creado cada uno de los archivos tendremos que reiniciar BIND con el siguiente comando:
- sudo /etc/init.d/bind9 restart
En cada uno de los ordenadores de la red habrá que modificar el fichero /etc/resolv.conf. Este fichero tendŕa el siguiente contenido:
//Cambia 192.168.1.1 por la IP de tu servidor de nombres
//Cambia aulaESI.com por el nombre de tu dominio
nameserver 192.168.1.1
search aulaESI.com
A partir de la versión 9 de BIND se incluyen dos herramientas software para chequear la sintaxis y semántica de los archivos que describen las zonas y el archivo de configuración principal named.conf. Dichas herramientas son: named-checkzone y named-checkconf.
Una vez configurado el servidor DNS, si se quiere hacer una comprobación sintáctica del archivo de configuración named.conf hay que ejecutar:
- named-checkconf
La salida muestra los errores que genera. Si no genera salida, está todo correcto.
En el caso de los archivos de zona hay que ejecutar:
- named-checkzone aulaESI.com /etc/bind/db.aulaESI.com
(cambiando aulaESI.com por el nombre de tu dominio)
Este comando genera la siguiente salida si todo está correcto:
zone aulaESI.com/IN: loaded serial 1 OK
Comprobando el servidor de nombres DNS
Una vez hayamos reiniciado el servidor DNS (sudo /etc/init.d/bind9 restart) debemos comprobar que éste funciona correctamente. Para comprobar que el servidor de nombres resuelve nombres de dominio correctamente podemos utilizar la orden host. La orden host permite hacer búsquedas en el DNS. Se utiliza para convertir nombres en direcciones IP y viceversa.
Algunas de sus opciones son las siguientes:
- -t <tipo>: indica el tipo de registro a devolver. Puede ser A, ANY, PTR, NS, etcétera.
- -R <n>: permite modificar el número de intentos que se hacen para obtener la respuesta, ya que por defecto es uno.
- -l: lista toda la información del dominio.
Para comprobar que nuestro servidor funciona correctamente, ejecutamos la siguiente orden desde cualquier servidor del dominio: host servidor.aulaESI.com (tendrás que cambiar servidor por el nombre de tu servidor y aulaESI.com por el nombre de tu dominio).

Otra de las herramientas de las que disponemos para hacer consultas sobre un servidor DNS es dig (domain information groper). Se utiliza para detectar problemas de configuración en el servidor DNS. Su sintaxis es la siguiente:
dig <@servidor> [opciones] [nombre] [tipo]
donde:
- @servidor es el nombre o la dirección IP del servidor a consultar.
- nombre es el nombre de dominio donde se hace la consulta
- tipo es el tipo de registro por el que se consulta (ANY, NS, SOA…). Si no se indica, se asume A
Un ejemplo del uso de esta orden sería la siguiente:
- dig aulaESI.com

Comprobando el servidor web
Ya he comentado que en este dominio (aulaESI.com) el servidor DNS también hace también de servidor web. Para que el servidor haga las funciones de servidor web, tendremos que instalar apache. Para ello abrimos el terminal y escribimos:
- sudo apt-get install apache2
Una vez instalado, creamos un fichero html de prueba en el directorio /var/www. Podemos crear, por ejemplo, un fichero llamado prueba.htm que muestre el texto “Página web de prueba almacenada en el servidor”. Cuando lo hayamos creado, desde cualquier ordenador del dominio abrimos el navegador y escribimos www.aulaESI.com/prueba.htm. De esta manera comprobaremos si el servidor DNS funciona correctamente y es capaz de resolver nombres de dominio y además está haciendo las funciones de servidor web.

Para ampliar información:
Popularity: 9% [?]
Otras entradas que te pueden interesar
- Cambiar la contraseña de root en Mysql (Ubuntu)
- Cambiar el idioma de Moodle a español
- Instalar un servidor FTP en Ubuntu
- Instalar servidor SSH en Windows
- Ejercicios servicio DNS
- Módulo webquest en Moodle
- FireFTP, un cliente FTP en Firefox


muy bien explicado el tutorial…
Ya monté un servidor de DNS en mi casda usando dos notebook, un pc viejo y un router. Muy agradecido con la info…
saludos!!
gabriel
25 Nov 07 at 4:20 pm
Muchas gracias por el tuto, la verdad es que me fue de mucha ayuda para comenzar a configurar y a entender la verdadera esencia de un DNS.
Ahora tengo unas dudas, mi idea era instalar un Servidor caché DNS solo para mi equipo local, ya que no estoy en una LAN. OK, instale el GBIND,(paquete que biene con el Ubuntu 7.10), hice las configuraciones en el archivo /etc/bind/named.conf.options, poniendole en forwarders, las direcciones de los DNS de mi ISP. Tengo que hacer algun cambio en el resolv.conf? Segun tengo entendido este es el primer archivo a que se acude para buscar los DNS… le tengo que poner la direccion loop de primero (127.0.0.1), o al estar configurado el BIND, busca por defecto en el /etc/bind/named.conf.options?
* Cuando ejecuto el BIND, veo una tab que dice, “Resolvers”, por defecto esta direccionado al resolv.conf . Eso esta bien? o debe ir al /etc/bind/named.conf.options?
Les agradezco mucho la ayuda,,,, Si alguien tiene la disponibilidad, seria de ayuda si me respondiera a quillero26@yahoo.es
edo
25 Dic 07 at 6:22 pm
Amigo,
Gracias por la información, la verdad está bastante completa.
Pero te tengo una pregunta, qué debo hacer en la configuración si mi dominio termina en .com.co, como por ejemplo: www.eltiempo.com.co?
Gracias por tu colaboración.
Elkin
3 Ene 08 at 9:24 pm
Hola Elkin! Pues no lo he probado, pero me imagino que lo único que debes hacer es cambiar, en todos aquellos archivos donde aparezca, aulaESI.com por el nombre de tu dominio, en este caso eltiempo.com.co.
Un saludo.
Alejandrox
4 Ene 08 at 1:40 pm
Gracias… pero no he encontrado a alguien que me ayude con unas dudas que tengo sobre el tutorial, agradeceria q me ayudaran con esto cuando tengan un espacio…:) Gracias…
—————————————————————————
Muchas gracias por el tuto, la verdad es que me fue de mucha ayuda para comenzar a configurar y a entender la verdadera esencia de un DNS.
Ahora tengo unas dudas, mi idea era instalar un Servidor caché DNS solo para mi equipo local, ya que no estoy en una LAN. OK, instale el GBIND,(paquete que biene con el Ubuntu 7.10), hice las configuraciones en el archivo /etc/bind/named.conf.options, poniendole en forwarders, las direcciones de los DNS de mi ISP. Tengo que hacer algun cambio en el resolv.conf? Segun tengo entendido este es el primer archivo a que se acude para buscar los DNS… le tengo que poner la direccion loop de primero (127.0.0.1), o al estar configurado el BIND, busca por defecto en el /etc/bind/named.conf.options?
* Cuando ejecuto el BIND, veo una tab que dice, “Resolvers”, por defecto esta direccionado al resolv.conf . Eso esta bien? o debe ir al /etc/bind/named.conf.options?
Les agradezco mucho la ayuda,,,, Si alguien tiene la disponibilidad, seria de ayuda si me respondiera a quillero26@yahoo.es
——————————————————-
edo
11 Ene 08 at 2:40 am
Hola, tras seguir tu tutorial en ubuntu 7.10 he tenido varios problemas que he resuelto, te lo indico por si acaso a alguien mas le pasa :):
- al tocar y pegar en el fichero named.conf.local las comillas que pegamos las confunde el bind, hay que borrarlas y volver a escribirlas de forma normal. (me di cuenta al mirar el fichero /var/log/syslog)
- en tu fichero /etc/bind/db.aulaESI.com, hay que eliminr los comentarios ya que los confunde con nuevas zonas. (lo comprobé con la ejecución de named-checkconf )
Muchas gracias por tu tutorial, me ha sido de gran ayuda.
saludos
calico
6 Mar 08 at 6:09 pm
Muy buenos manuales, espero y publiques uno de servidor de correo para red local con ubuntu.
gracias por los tutoriales alejenadrox.
pon mas
Gabo
18 Abr 08 at 10:15 pm
sorry alejandrox
Gabo
18 Abr 08 at 10:16 pm
[…] 99) Bind: el servidor DNS más comúnmente usando en Internet (DNS es el protocolo que se encarga de asociar nombres de dominio con direcciones IP). Manual. […]
8chapas.com » Blog Archive » 100 aplicaciones imprescindibles para Ubuntu
11 May 08 at 4:19 pm
[…] 99) Bind: el servidor DNS más comúnmente usando en Internet (DNS es el protocolo que se encarga de asociar nombres de dominio con direcciones IP). Manual. […]
Mis 100 aplicaciones imprescindibles para Ubuntu | Alejandrox
11 May 08 at 8:20 pm
[…] 99) Bind: el servidor DNS más comúnmente usando en Internet (DNS es el protocolo que se encarga de asociar nombres de dominio con direcciones IP). Manual. […]
100 aplicaciones imprescindibles para Ubuntu at Valverde a Tope
20 May 08 at 3:22 pm
[…] 99) Bind: el servidor DNS más comúnmente usando en Internet (DNS es el protocolo que se encarga de asociar nombres de dominio con direcciones IP). Manual. […]
Charliec114 Blog’s » Blog Archive » Buena recopilación de las mejores aplicaciones para Ubuntu
22 May 08 at 6:48 pm
Muy buen tutorial, bien didactico y directo al grano!!!
Gracias por compartir tu experiencia, sigue así!!!
santiago
24 Oct 08 at 6:10 pm
[…] 99) Bind: el servidor DNS más comúnmente usando en Internet (DNS es el protocolo que se encarga de asociar nombres de dominio con direcciones IP). Manual. […]
Comunidad Linux Oriente » Archivo del weblog » 100 aplicaciones para ubuntu
5 Ene 09 at 6:10 pm
[…] 99) Bind: el servidor DNS más comúnmente usando en Internet (DNS es el protocolo que se encarga de asociar nombres de dominio con direcciones IP). Manual. […]
Mis 100 aplicaciones imprescindibles para Ubuntu « 4ngeluxpunk’s Blog
17 Ene 09 at 6:04 am
Gracias compañero. Un tutorial esplendido. Saludos
Danux
19 Ene 09 at 12:44 am
excelente tutorial, si señor.
de los que da gusto seguir cuando se quiere ir al grano y no perderte en opciones secundarias (que hay muchas, jeje)
muchas gracias
ivan
28 Ene 09 at 6:25 pm
Interesante información la de este tutorial, pero tengo una pregunta que pasa cuando hay mas pc clientes, unas cientos, se deben colocar a manos todas??
Saludos
Freddy Taborda
5 Oct 09 at 11:46 pm
Alejandro muy fácil de entender tu tutorial.
Me salió a la primera la resolución normal. El problema lo tuve con la resolución inversa que no me salía. Después de consultar muchos foros los solucioné modificando la siguiente línea:
@ SOA servidor.aulaESI.com. (
2006081401
……
Yo le puse la palabra root delante del paréntesis:
@ SOA servidor.aulaESI.com root (
…..
Así me funcionó sin problema, y la verdad no se el motivo. Me gustaría entenderlo.
Jose Fco
15 Oct 09 at 10:35 pm
jajajajaj……bieeeennnnnnn!!!!!!!!!…..gracias!!.. esta exelente!!!….estaba atrasado con esta pràctica que dejaron en admon de redes….esta super….gracias!!
kensei
12 Nov 09 at 5:17 pm
Ok, funciona excelentemente. Y si quiero dar servicio DNS a varias redes internas, en que cambia la configuración ?. Donde las declaro ?.
Robert
17 Mar 10 at 10:32 pm
Tutorial perfecto! me ha ido de maravilla! Aunque en mi caso se me ha presentado un pequeño problemilla, igual me podeis hechar una mano.
El caso es que registro \"web1.com\" i \"web2.com\" las dos webs estan en un mismo ordenador 192.168.1.10 aunque en diferentes carpetas, web1.com en /var/www/web1 i web2.com en /var/www/web2 tal como lo tengo ahora las dos me apuntan a mi web index.html del /var/www
Como puedo hacer para que se dirija cada dominio a su carpeta correspondiente? He probado con 192.168.1.10/web1 pero no ha funcionado
Espero sus respuestas,
Muchas gracias!
Legnar
20 Mar 10 at 2:48 am
[…] 99) Bind: el servidor DNS más comúnmente usando en Internet (DNS es el protocolo que se encarga de asociar nombres de dominio con direcciones IP). Manual. […]
Aplicaciones para GNU/Linux « !ajcj
3 May 10 at 4:22 pm
Es un excelente tutorial… Justo ando realizando un servidor DNS en una maquina virtual para unas practicas de la escuela y no podia dar con una buena explicacion de estos archivos de configuracion, y aqui encontre justo lo que ocupaba, muchas gracias amigo.
Saludos
Reoba
7 May 10 at 11:44 pm