Implementado servidor DNS con BIND en CentOS 5

Bueno, la implementación que haré aquí va ser básica, como para que uno se familiarice con los archivos de configuración y pueda ver ipso facto lo que ha realizado, ten en cuenta que con BIND se puedes hacer complejas configuraciones, pero como escribí antes esto es básico.

Instalando paquetes necesarios
Los paquetes que se necesitan para instalar BIND son:

  • bind
  • bind-utils
  • bind-libs
  • bind-chroot
  • caching-nameserver

Los instalamos con nuestro manejador de paquetes:

# yum install bind bind-utils bind-libs bind-chroot caching-nameserver

Si yum se demora demasiado, puedes bajar los rpm’s : Aqui
*Ten en cuenta que los rpm son de la versión *-9.3.3.7, mientra que la versión que te bajarías con Yum seria: *-9.3.3.10

Configuración:
Para esto necesitaremos un dominio y una ip publica.
El dominio referencial sera: “ejemplo.com”
Nuestra ip referencial: 200.110.10.10

Rutas:
Los archivos de configuración se rencuentran en dos rutas que se complementan, estas son:
Ruta 1: /var/named/chroot/etc
Ruta 2: /var/named/chroot/var/named

En la ruta1 se va encontrar el archivo “named.conf”, el archivo mas importante, y en la ruta2 se van a encontrar el archivo “.zone” y el de resolucion inversa “.in-addr.arpa.zone”, los cuales van a ser llamados por “named.conf”.

Ruta1
Conociendo esto ya podemos crear “named.conf” en ruta1: (aun cuando ya existe un archivo de ejemplo en la ruta)

# vi /var/named/chroot/etc/named.conf

Dentro tendrá: Este contenido.

En esta configuración aun no esta la nuestra, sino solo hace referencia a los archivos que ya existen en ruta2, el contenido que vamos a agregar para nuestro propósito es el siguiente :( antes de la ultima linea)

# configuración para ejemplo.com
zone “ejemplo.com.” {
type master;
file “ejemplo.com.zone”;
allow-update { none; };
};

zone “10.110.200.in-addr.arpa” {
type master;
file “10.110.200.in-addr.arpa.zone”;
};

Aquí se define la zona para nuestro dominio y también la resolución inversa para nuestra ip.
Al final nuestro archivo “named .conf” quedaría: Asi.

Ruta2
Ahora pasemos a crear los archivos a los que estamos llamando en nuestro named.conf, creamos la zona del dominio:

# vi /var/named/chroot/var/named/ejemplo.com.zone

Dentro tendría lo siguiente:

$TTL 86400
@ IN SOA <nombre_maquina> administrador (
42 ; Serial formato: yyyymmddn donde n es un número cualquiera
10800 ; Refresh después de tres horas
3600 ; Reintentar después de una hora
604800 ; Expirar después de una semana
86400 ) ; TTL(Time to Live) mínimo de un día

IN NS <nombre_maquina>
ejemplo.com. IN A 200.110.10.10
<nombre_maquina> IN CNAME ejemplo.com.
www IN CNAME ejemplo.com
ftp IN CNAME ejemplo.com

Aquí se resuelve el Canonical Name para peticiones tanta si estas vengan para FTP, web o DNS. Y se enlaza nuestra IP al dominio.

Ahora creamos el archivo para la resolución inversa de nuestra ip:

# vi /var/named/chroot/var/named/10.110.200.in-addr.arpa.zone

Dentro tendría lo siguiente:

$TTL 86400
@ IN SOA ejemplo.com. administrador (
200706246 ; Serial
28800 ; Refresh
7200 ; Retry
604800 ; Expire
86400) ; Minimum TTL
NS ejemplo.com.
NS <nombre_maquina>.ejemplo.com.
;
; Servers
;
10 PTR ejemplo.com.
10 PTR <nombre_maquina>.ejemplo.com.
10 PTR www.ejemplo.com.
10 PTR ftp.ejemplo.com.

En la linea “10 PTR ….”, no olvide reemplazar el 10 por el ultimo numero de tu ip.

Listo se supone que tu servidor DNS ya debería trabajar, pero aun falta algunos detalles, como cambiarle el nombre a tu servidor y también la ip.

Para cambiar el nombre al servidor editamos el archivo “network”:

# vi /etc/sysconfig/network

Y ponemos:

NETWORKING=yes
NETWORKING_IPV6=yes
HOSTNAME=<nombre_maquina>.ejemplo.com

<nombre_maquina>, va ser el nombre que deseemos, el cual se va reemplazar en los archivos de zona donde seguro ya lo has visto.

Ahora cambiamos la ip del servidor DNS, editando “resolv.conf”

# vi /etc/resolv.conf

Y ponemos

nameserver 200.110.10.10

Listo ahora si todo ya debería funcionar, solo nos falta levantar el servicio:

# service named start

Y para que este inicie al arranque del sistema:

# chkconfig named –level 345 on

Bueno espero te halla servido, no creí escribir tanto pero en fin ^^
Cualquier duda, error, etc; solo deja comentario.

Saludos linuxeros ….

33 opiniones en “Implementado servidor DNS con BIND en CentOS 5”

  1. 0.0.0.0.0. 0..0.0.0.0
    no file found master
    no file inverse
    hago todos los paso y creo el archivo inverso y al levantar el servicio me aparece este error service named restart

  2. Por favor explicame como hago para instalarlo en la version de centos 5.4 final ya que el archivo que tu mensionas el named.conf el que me aparece a mi se llama named.caching-nameserver.conf hay otros mas como: named.rfc1912.zones localtime y rndc.key asi que creo que puede ser que en esta version hayan cambiado algunos archivos el que mas se parece al que tu haces mension es el primero que te mensione pero no estoy seguro porfa dime que puedo hacer recuerda que es la version de centos 5.4 final.

  3. Estoy instalando bind sobre Centos 5.4 y he seguido tus instrucciones, sustituyendo el por fi4server (nombre de lña maquina donde va ha residir el servidor de DNS) y 200.110.10.10 por 192.168.1.155 (la ip del futuro servidor de DNS). Y no he conseguido arrancar el servicio named.

    Cuando ejecuto ‘service named start’ la consola me devuelve los siguientes mensajes:

    root@FI4SERVER:/usr/share/doc/bind-9.3.6/sample/etc# service named start
    Iniciando named:
    Error en la configuración de named:
    zone localdomain/IN: loaded serial 42
    zone localhost/IN: loaded serial 42
    zone 0.0.127.in-addr.arpa/IN: loaded serial 1997022700
    zone 0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN: loaded serial 1997022700
    zone 255.in-addr.arpa/IN: loaded serial 42
    zone 0.in-addr.arpa/IN: loaded serial 42
    zone ejemplo.com/IN: has no NS records
    _default/ejemplo.com./IN: bad zone
    zone 1.168.192.in-addr.arpa/IN: loaded serial 200706246

    El contenido de named.conf es
    ========================
    // Red Hat BIND Configuration Tool
    //
    // Default initial “Caching Only” name server configuration
    //

    options {
    directory “/var/named”;
    dump-file “/var/named/data/cache_dump.db”;
    statistics-file “/var/named/data/named_stats.txt”;
    /*
    * If there is a firewall between you and nameservers you want
    * to talk to, you might need to uncomment the query-source
    * directive below. Previous versions of BIND always asked
    * questions using port 53, but BIND 8.1 uses an unprivileged
    * port by default.
    */
    // query-source address * port 53;
    };

    zone “.” IN {
    type hint;
    file “named.root”;
    };

    zone “localdomain.” IN {
    type master;
    file “localdomain.zone”;
    allow-update { none; };
    };

    zone “localhost.” IN {
    type master;
    file “localhost.zone”;
    allow-update { none; };
    };

    zone “0.0.127.in-addr.arpa.” IN {
    type master;
    file “named.local”;
    allow-update { none; };
    };

    zone “0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa.” IN {
    type master;
    file “named.ip6.local”;
    allow-update { none; };
    };

    zone “255.in-addr.arpa.” IN {
    type master;
    file “named.broadcast”;
    allow-update { none; };
    };

    zone “0.in-addr.arpa.” IN {
    type master;
    file “named.zero”;
    allow-update { none; };
    };

    # configuración para ejemplo.com

    zone “ejemplo.com.” {
    type master;
    file “ejemplo.com.zone”;
    allow-update { none; };
    };
    zone “1.168.192.in-addr.arpa” {
    type master;
    file “1.168.192.in-addr.arpa.zone”;
    };

    include “/etc/rndc.key”;

    El contenido de ejemplo.com.zone es
    ========================
    $TTL 86400
    @ IN SOA fi4server administrador (
    42 ; Serial formato: yyyymmddn donde n es un número cualquiera
    10800 ; Refresh después de tres horas
    3600 ; Reintentar después de una hora
    604800 ; Expirar después de una semana
    86400 ) ; TTL(Time to Live) mínimo de un día

    IN NS fi4server
    ejemplo.com. IN A 192.168.1.155
    fi4server IN CNAME ejemplo.com.
    www IN CNAME ejemplo.com
    ftp IN CNAME ejemplo.com

    El contenido de 1.168.192.in-addr.arpa.zone es
    ========================
    $TTL 86400
    @ IN SOA ejemplo.com. administrador (
    200706246 ; Serial
    28800 ; Refresh
    7200 ; Retry
    604800 ; Expire
    86400) ; Minimum TTL
    @ NS ejemplo.com.
    ;NS fi4server.ejemplo.com.
    ;
    ; Servers
    ;
    155 IN PTR ejemplo.com.
    155 IN PTR fi4server.ejemplo.com.
    155 IN PTR http://www.ejemplo.com.
    155 IN PTR http://ftp.ejemplo.com.

    Me puedes ayudar en encontrar que es lo que he hecho mal?

    Muchas gracias.
    Rafa.

  4. ¡Buenas tardes GhOsTi!.

    Te comento que tengo un VPS con CentOS 5, y estoy tratando de montar mi servidor DNS.

    Soy muy nuevo en esto, y no se para donde disparar, ¿me ayudarías?. Tal vez por MNS, o por agún foro, lo que decidad estará bien para mi.

    Tal vez podrías armar un tutorial a prueba de novatos después que me ayudes jajaja.

    Desde ya, y sin compromiso, ¡muchas gracias!.

  5. Hola, tengo un problema segui al pie de la letra tu manual, pero me devuelve el siguiente error al iniciar

    gracias por la ayuda

    Error in named configuration:
    zone localdomain/IN: loaded serial 42
    zone localhost/IN: loaded serial 42
    zone 0.0.127.in-addr.arpa/IN: loaded serial 1997022700
    zone 0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN: loaded serial 1997022700
    zone 255.in-addr.arpa/IN: loaded serial 42
    zone 0.in-addr.arpa/IN: loaded serial 42
    zone aimbox.cl/IN: has no NS records
    _default/aimbox.cl./IN: bad zone
    214.142.98.in-addr.arpa.zone:8: unknown RR type ‘aimbox.cl.’
    214.142.98.in-addr.arpa.zone:9: unknown RR type ‘WS-10308.wiresix.com.aimbox.cl. ‘
    zone 214.142.98.in-addr.arpa/IN: loading master file 214.142.98.in-addr.arpa.zon e: unknown class/type
    _default/214.142.98.in-addr.arpa/IN: unknown class/type
    [FAILED]

  6. Hola. Gracias por el tutorial de dns, esta muy bueno. Pero a pesar de que segui tus indicaciones y las de Joel Barrios, no logro que mi cliente xp pueda cargar una pagina web (generada como prueba ) a traves de la resolucion de nombre, si indico la ip del server si la puedo ver, mas si la llamo por el nombre del dominio, nada de nada. Se que hay algo en mi dns que no esta bien configurado. Me puedes indicar cómo puedo verificar?… estoy usando centos 5.2 en VMWare
    Gracias por tu atención.

  7. pero con la diferencia de que mi servidor dns solo resuelve todo localmente, cuando hago una prueba en mi cliente xp no resuelve ni por nombre de dominio ni por ip, tengo la conexion de red hecha punto a punto, por cable cruzado(crossover), uso centos 6 como servidor dns y xp como cliente, no se si puede ser problema de SElinux o firewall, esperando me ayudes te agradesco de antemano estimado amigo gracias.

  8. Hola no he logrado hacer que resuelva mi nombre de dominio, soy totalmente novato en esto de linux, por lo que agradeceria si alguien me pudiese orientar en que archivos son los que debo de verificar, segun esto ya verifique mis dns en nic.mx, y los elabore con los datos, pero mi servidor, no lo puedo ver por nombre de dominio solo lo puedo ver por direccion ip..

    Espero una ayudadota, de todos, y gracias por este foro..

  9. Hola estimado:
    Seguí al pie de la letra tu manual, pero al tratar de reiniciar el servicio named me aparece el siguiente problema, sabes como puedo solucionarlo?

    /etc/named.conf:74: open: /etc/rndc.key: file not found

    Te comento que revise la ruta y el archivo existe, por lo tanto no se que puede ser, si tienes alguna idea estaré agradecido, busque por google y no encontré nada.
    Espero tus comentarios.

  10. hola me sale este error al iniciar el servicio

    [root@www ~]# service named start
    Iniciando named:
    Error in named configuration:
    /etc/named.conf:39: unknown option ‘Le’
    [FALLÃ]

    a que se debe estoy googleando y no encuantro una solucion porfa

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *