Alejandrox

Blog personal de Alejandro Meroño Hernández

Configurar un servidor DNS con BIND  

 

bind.jpg

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.

Image Hosted by ImageShack.us

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).

 

dns3.png

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

dns4.png

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.

dns5.png

Para ampliar información:

Popularity: 11% [?]


Otras entradas que te pueden interesar



Esta entrada tiene

12 comentarios

Escrito por Alejandrox

Noviembre 23rd, 2007 at 7:00 pm

12 comentarios en 'Configurar un servidor DNS con BIND'

Suscríbete a comentarios con RSS o TrackBack en 'Configurar un servidor DNS con BIND'.

  1. 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

  2. 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

  3. 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

  4. 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

  5. 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

  6. 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

  7. 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

  8. sorry alejandrox

    Gabo

    18 Abr 08 at 10:16 pm

  9. […] 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. […]

  10. […] 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. […]

  11. […] 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. […]

  12. […] 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. […]

Deja un comentario