Instalar Servidor de Nombres de Dominio DNS en Linux

Este tutorial pretende mostrar la forma de instalar y configurar un sencillo servidor de nombres de dominio o DNS por sus siglas en inglés. Puede servir para una implementación de tamaño medio o pequeño. Se trata de seguir las instrucciones, copiar y modificar algunos archivos, sin tener que profundizar en el vasto mundo de los servidores de nombres.

Instalación

El proceso de instalación es bastante sencillo, simplemente deben digitar el siguiente comando y en pocos segundos estará listo, luego deben hacerse algunas modificaciones a los archivos de configuración.

yum -y install bind bind-chroot bind-utils caching-nameserver

Configuración

En Red Hat Linux y sus derivados,  por cuestiones de seguridad la instalación automáticamente crea una jaula chroot para los archivos del servicio named (DNS), es decir, que todos los archivos se encuentran en el directorio /var/named/chroot, y no en /etc, por este motivo la implementación se hace en esta distribución.

El primer paso es renombrar el archivo /var/named/chroot/named.rfc1912.zones

mv var/named/chroot/named.rfc1912.zones  var/named/chroot/named.conf

Luego debemos editarlo y agregarle los parámetros para nuestro servidor.

options {
directory "/var/named";				(nuevo directorio de trabajo)
forwarders {200.40.30.245; 200.40.220.245;}; 	(dirección de nuestro ISP)
};

Esto significa que usará el directorio /var/named que está dentro de /etc/namded/chroot como raíz, y las direcciones ip del ISP que aparecen son las que consultará cuando no sea capaz de resolver por sí mismo. En este caso son los DNS de Antel (es el proveedor de servicios en Uruguay).

zone "prueba.com.uy" IN {
type master;
file "zona.prueba.com.uy";
allow-query {any;};
};
zone "rversa.prueba.com.uy" IN {
type master;
file "1.168.192.in-addr.arpa";
allow-query {any;};
};

Estas son las definiciones de zonas que tendremos en nuestro DNS, por cada dominio que administramos o que deseamos resolver, debemos agregar la doble entrada. En cada una de estas definiciones indicamos el nombre de la zona, de qué tipo es, en este caso una zona maestra, y el nombre del archivo que tiene los parámetros de ese dominio.
Una vez que tengamos funcionado el archivo principal debemos comenzar a crear los archivos correspondientes a los dominios que necesitemos resolver.

Ejemplo del archivo zona.prueba.com.uy

$TTL 604800
@       IN       SOA    prueba.com.uy.        root.localhost. (
2009041001; serie 10-04-09
10800 ; tiempo de refresco
7200 ; reintentos de consulta
129600 ; tiempo tras el cual expira la zona
172800 ; tiempo total de vida
)
@          IN      NS                 server.prueba.com.uy
@           IN      MX      10     server.prueba.com.uy
@           IN      A      	 192.168.1.1
www     IN      A       192.168.1.1
correo  IN      A       192.168.1.1
PC-1        IN      A       192.168.1.3

En este archivo lo importante es el nombre del dominio en el registro primario SOA, y luego las definiciones de nombre del servidor NS, MX para el correo, y A que indica la dirección IP.

Este es el ejemplo el archivo de resolución inversa, que sera utilizado para responder a un pedido de dirección IP, en este caso cuando el usuario solicita por la 192.168.1.1, le saldrá la respuesta prueba.com.uy

Aqui un ejemplo del archivo

$TTL 3600
@       IN      SOA     prueba.com.uy.         root.localhost. (
2009041001 ; serie 10-04-09
28800 ; refresco
7200 ; tiempo entre reintentos
604800 ; expira la zona
86400 ; tiempo total de vida
)
@       IN      NS      server.prueba.com.uy.
1       IN      PTR     server.prueba.com.uy.
3       IN      PTR     PC-1

En este archivo lo importante es el SOA, NS, IN, y los números que se observan son los que corresponden a final de la dirección IP de los servidores o equipos que tengamos en la subred, en la que estamos resolviendo ese dominio.

Con estos parámetros básicos debería estar pronto para funcionar nuestro servidor de nombres. Luego configuramos el servicio para que inicie con el sistema y lo ponemos en funcionamiento.

chkconfig --levels 345 named on
service named start

En este momento podemos hacer una prueba desde algún equipo de la red que tenga nuestro servidor como DNS o desde el mismo servidor, este debe ser el resultado.

nslookup prueba.com.uy

Server:        prueba.com.uy
Address:    192.168.1.1#53

Non-authoritative answer:
Name:    prueba.com.uy

address: 192.168.1.1

Para finalizar, unas últimas configuraciones en el archivo /etc/hosts, debe tener esta linea:

127.0.0.1                 localhost.localdomain          localhost

192.168.1.1             server.prueba.com.uy          server

y en el archivo /etc/resolv.conf :

nameserver 192.168.1.1

Espero que el tutorial les sea de utilidad y si tienen consultas no duden en enviármelas.

Más información:

DNS en wikipedia

12 thoughts on “Instalar Servidor de Nombres de Dominio DNS en Linux

  1. Un feivor, la direccion que le das 1.168.192.addr.arpa ..es la puerta de enlace. ….

    y en las otras maquinas que direccion ip,mascara`,puerta de enlace, dns le pongo……..si seria tan amable de responderme gracias

  2. No entiendo muy bien tu pregunta, pero tal vez esto pueda aclararte algo el panorama: 1.168.192.addr.arpa es nada mas que formalidad al momento de escribir el nombre del archivo de la zona reversa, esta es la que se encarga de devolver el nombre del dominio cuando se hace una consulta por la dirección ip. En este ejemplo particular se trata de una lan con rango 192.168.1.0 y mascara 255.255.255.0, y en este caso el servidor dns tiene la ip 192.168.1.1, es decir que en la configuración del cliente debes: primero tener una ip dentro de ese rango, y luego elegir como servidor dns el que creamos antes.
    La puerta de enlace en realidad depende de como este diseñada la red, porque por lo general depende de si se tiene algún dhcp u otro servidor que haga de proxy, nat,etc
    Saludos, espero que ayude.

  3. como hago para crear los archivos correspondientes a los dominios que necesitemos resolver. con el editor de texto,,??? con q nombre los guardo?? esa parte no entendi muy bien

  4. Los archivos los creas con tu editor de textos preferido, yo en lo personal uso vi, pero eso es gusto de cada cual, si te queda mas fácil copias y pegas el texto de arriba y le haces las modificaciones necesarias para que refleje tu realidad, en cuanto a la ubicación de los archivos tal vez no quedo clara, por ejemplo el named.conf que es donde esta la configuración general de las zonas tiene la ruta /var/named/chroot/named.conf, y los archivos con las zonas propiamente dichas van en /var/named/chroot/named/chroot/var/named/zona.prueba.com.uy
    Espero que esto te ayude otro poco.
    Saludos

  5. no puedo renombrar el archivo named.rfc1912.zones porq no existe dice y si lo copio a la carpeta chroot no lo reconoce tampoko q hagoooo???
    ayudnm gracias

  6. Hola Jorge, no tengo mucha información con respecto a que has echo hasta ese punto, ni de que distribución estás usando, pero trataré de ayudar en algo. En el caso de que hallas seguido los pasos arriba descritos, y que estés usando red hat, fedora, centos, o alguna derivada de red hat, al instalar los paquetes debería quedarte en el path /var/named/chroot los archivos necesarios para que los puedas configurar, como me dices que no están puedo suponer que no te quedaron bien instalados o que estas usando otra distribución. En el primer caso debes instalar nuevamente utilizando el comando yum y revisando que halla quedado bien. Si es la segunda opción deberías revisar en la carpeta /etc que tal vez estén ahí dentro los archivos.
    Saludos y espero haber sido de ayuda.

  7. hola tengo una duda por que le pones la direccion ip 192.168.1.1, es la puerta de enlace de tu tarjeta de red, o por que, espero tu respuesta gracias saludos!!

  8. Hola asc, gracias por la pregunta, esa es la dirección ip que elegí yo a mi gusto, va a depender de como hallas configurado tu red, o de donde vallas a poner el servidor. En este caso estamos hablando de una red 192.168.1.0/24.
    Saludos

  9. hola mira q estoy trabajando con fedora 13

    ya instale los paquetes necesarios
    yum -y install bind bind-chroot bind-utils caching-nameserver

    y trato de renombrar pero me dice que no existe
    mv var/named/chroot/named.rfc1912.zones var/named/chroot/named.conf

    y he estado revisando mis ficheros y resulta q no tengo el named.rfc1912.zone

    q puedo hacer?

    muchas gracias por su ayuda

  10. Hola
    Quiero asignar la ip de google a un dominio por ejemplo daniel.com para cuando ponga en mi navegador daniel.com me abra la pagina de google

    ¿Como darle internet al servidor DNS?

Comments are closed.