Infor-Ip

Informática IP, su blog de nuevas tecnologías

Servidor DNS Maestro y Esclavo

Posted by ildepe87 en 20 junio ,2008

1. Definición

Un servidor DNS es el encargado de traducir los nombres de dominio a IPs y viceversa. Para ello, el servidor DNS dispone de una base de datos en la cual se almacenan todas las direcciones IP y todos los nombres de los PCs pertenecientes a su dominio. No existe una base de datos única donde se almacenan todas las IPs existentes en el mundo, sino que cada servidor almacena las IPs correspondientes a su dominio. Los servidores DNS están dispuestos jerárquicamente de forma que cuando nuestro servidor más inmediato no puede atender nuestra petición, éste la traslada al DNS superior.

2. Instalación del servidor. bind9

· Sudo aptitude install bind9

· Sudo apt-get install bind9

3. Configuración servidor DNS.

Un servidor esclavo actuará como un servidor espejo de un servidor DNS maestro. Permanecerá sincronizado con el maestro. Se utilizan para repartir las peticiones entre varios servidores aunque las modificaciones solo se realicen en el maestro. Por tanto, primeramente configuraremos un DNS maestro.

El archivo de configuración del DNS es el archivo /etc/bind/named.conf, pero este hace referencia a otros cuantos archivos como por ejemplo:

Archivo

Descripción

named.conf

Archivo principal de configuración

named.conf.options

Opciones genéricas

named.conf.local

Especificación particular de este servidor DNS

db.127

Especificación dirección de retorno

db.root

DNSs de nivel superior

3.1. Configuración servidor DNS maestro.

Dominio ficticio que crearemos: iespepeil.com

Equipos pertenecientes al dominio: togoed

‘iespepeil.com’ será capaz de resolver peticiones internas de nombres de este dominio, tanto de forma directa como de forma inversa, es decir, si recibe una consulta acerca de quién es togoed.iespepeil.com deberá devolver su IP, pongamos por ejemplo 192.168.0.107. Si la consulta es una consulta DNS inversa acerca de quién es 192.168.0.107, deberá responder togoed.iespepeil.com. Por ello deberemos añadir en el archivo /etc/bind/named.conf.local la especificación de maestro para el dominio y para la resolución inversa:

//Archivo de Búsquedas directas

zone “iespepeil.com” {

type master;

file “/etc/bind/iespepeil.db”

};

//Archivo de Búsquedas inversas

zone “10.168.192.in-addr.arpa” {

type master;

file “/etc/bind/192.rev”;

};

Habrá que crear los archivos iespepeil.db(Búsqueda directa) y 192.rev (Búsqueda inversa) dentro de /etc/bind

Búsqueda directa (iespepeil.db)

De nombre del host a ip

;
; BIND data file for ieslapaloma.com
;
@       IN      SOA     iespepeil.com. root.iespepeil.com. (
                              1         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Default TTL

         IN      NS             dns.iespepeil.com.
         IN      MX      10      mail.iespepeil.com.

togoed   IN      A       192.168.10.35   ;listado de equipos clientes y su ip

www              IN      A       192.168.10.51   ;si mi equipo actúa como servidor web
dns              IN      A       192.168.10.51   ;si mi equipo actúa como servidor DNS
mail             IN      A       192.168.10.51   ;si mi equipo actúa como servidor de correo

Las primeras líneas son unos parámetros relacionados con la actualización del DNS (número de serie y periodos de actuación). Las dos siguientes líneas indican quién es el servidor primario (NS = Name Server. Las siguentes líneas especifican las IPs de los distintos PCs componentes del dominio.
named-checkconf y named-checkzone analizan los ficheros en busca de incorreciones ortográficas

Búsqueda inversa (192.rev)

De ip a nombre del host

;
; BIND reverse data file for 192.168.0.0
;
@       IN      SOA     iespepeil.com. root.ieslapaloma.com. (
                              1         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Default TTL

        IN      NS      dns.ieslapaloma.com.

35               IN             PTR            togoed.iespepeil.com.
40               IN             PTR            otroequipo.iespepeil.com.

51               IN             PTR            www.iespepeil.com.
51               IN             PTR            dns.iespepeil.com.
51               IN             PTR            mail.iespepeil.com. 

Se escribe la terminación de la ip asignada a cada nobre del hos y su dominio.

Una vez configurado nuestro servidor DNS, debemos indicar a nuestro servidor Linux que el servidor DNS es él mismo, lo cual se especifica en el archivo /etc/resolv.conf.

Indicamos que nosotros mismos somos servidores DNS y por defecto buscamos en nuestro dominio:

nameserver 127.0.0.1 ;acceso local de dns

search iespepeil.com ;dominio en el que quiero buscar

En el resto de PCs de la red, indicaremos en su fichero resolv.conf que el servidor DNS es 192.168.10.51, este proceso se puede hacer en el propio fichero o mediante la interfaz gráfica.

search iespepeil.com

nameserver 192.168.10.51

Finalmente reiniciamos nuestro servidor:

sudo /etc/init.d/bind9 restart

Mediante la herramienta nslookup podemos comprobar que la configuración es correcta. Una vez ejecutado este comando escribimos el nombre del equipo o el de dominio completo y debe dar la información correcta.

3.1. Configuración servidor DNS esclavo.

Si deseamos configurar nuestro servidor DNS para que actúe como esclavo de un servidor DNS maestro únicamente será necesario indicar en el DNS esclavo quién es el servidor DNS maestro, y en el DNS maestro, la IP del DNS esclavo.

Ejemplo, supongamos que el nombre del DNS maestro es dns.iespepeil.com (IP 192.168.10.50) y que el nombre del DNS esclavo es dns2.iespepeil.com. En el archivo iespepeil.db’ de zona de búsqueda directa añadiremos la línea del segundo dns justo debajo de donde está la del primero:

– Añadir línea en /etc/bind/iespepeil.db del maestro

IN NS dns. iespepeil.com.
IN NS dns2. iespepeil.com. // Nueva línea

de esta forma indicaremos que existen más servidores DNS para dicha zona. Lo mismo haremos en el archivo ‘192.rev’ de la zona inversa:

– Añadir línea en /etc/bind/192.rev del maestro

IN NS dns. iespepeil.com.
IN NS dns2. iespepeil.com. // Nueva línea

En el archivo /etc/bind/named.conf.local del servidor DNS esclavo debemos indicar que se trata de un servidor esclavo y también debemos indicar quién es el maestro:

zone “iespepeil.com” {
type slave;
file “/etc/bind/iespepeil.db”;
masters { 192.168.10.50; };
};

zone “10.168.192.in-addr.arpa” {
type slave;
file “/etc/bind/192.rev”;
masters { 192.168.10.50; };
};

En el archivo /etc/bind/named.conf.local del servidor DNS maestro podemos utilizar also-notify para mantener los DNS sincronizados. Con also-notify pasamos los cambios de zonas en el maestro al esclavo:

– Archivo /etc/bind/named.conf.local del maestro

zone “iespepeil.com” {
type master;
file “/etc/bind/iespepeil.db”;
also-notify {192.168.10.35;} //ip del esclavo
};

zone “10.168.192.in-addr.arpa” {
type master;
file “/etc/bind/192.rev”;
also-notify {192.168.10.35;} //ip del esclavo
};

De ésta forma dispondremos en la red de un servidor DNS esclavo que podrá satisfacer las peticiones DNS al igual que lo haría el maestro. Es interesante si el número de peticiones es muy elevado y se requiere distribuir la carga entre los dos servidores, o si deseamos disponer de servicio DNS de alta disponibilidad de forma que aunque el servidor maestro deje de funcionar, el servidor esclavo podrá seguir ofreciendo el servicio.

Cada vez que hagamos un cambio en los archivos /etc/bind/iespepeil.db y /etc/bind/192.rev del maestro, debemos acordarnos de actualizar el parámetro serial (incrementar en una unidad) para que los dns dependientes del maestro sepan que ha cambiado y actualicen su información para mantenerse perfectamente sincronizados.

8 comentarios to “Servidor DNS Maestro y Esclavo”

  1. papa_canaria said

    Felicitaciones, gran tutorial, me ayudó mucho. Donde unico no me funcionó fue en la última parte del mismo (cito de la pag. web):

    En el archivo /etc/bind/named.conf.local del servidor DNS esclavo […]:

    – Archivo /etc/bind/named.conf.local del maestro

    zone “iespepeil.com” {
    type master;
    file “/etc/bind/iespepeil.db”;
    also-notify {192.168.10.35;} //ip del esclavo
    };

    zone “10.168.192.in-addr.arpa” {
    type slave;
    file “/etc/bind/192.rev”;
    masters { 192.168.10.50; };
    };

    Tuve que quitar la ruta completa porque sino me devolvía un error al intentar el esclavo transferir la configuración del master (Jan 15 19:41:41.799 dumping master file: /etc/named/tmp-XXXX2RSNyT: open: permission denied
    Jan 15 19:41:41.799 transfer of ‘dominio/IN’ from 192.168.1.50#53: failed while receiving responses: permission denied) quedando así:

    zone “iespepeil.com” {
    type master;
    file “iespepeil.db”;
    also-notify {192.168.10.35;} //ip del esclavo
    };

    zone “10.168.192.in-addr.arpa” {
    type slave;
    file “192.rev”;
    masters { 192.168.10.50; };
    };

    así no hubo problemas.

    Un saludo y gracias!.

    • ildepe87 said

      El problema que describes parece deberse a permisos, puede que el usuario que ejecute el fichero no tenga permisos en toda la ruta o en alguna carpeta temporal que usa el programa por lo que te daba ese error, en cualquier caso, si se solucionó escribiendo la ruta relativa, me alegro aberte ayudado. Un saludo.

    • Oscar said

      yo al configurar tuve un problema parecido alguna vez, lo que debes de hacer en el directorio del esclavo, /var/named/chroot/var/named, éste que te menciono tiene que tener permisos 755. asó solucionarás tu problema.

      un saludo.

  2. Zerial said

    Muy util, gracias.

  3. kq said

    tengo un problema con el esclavo no me sincroniza nose donde podria estar el erro me podrias ayudar¡¡¡¡¡¡¡¡
    por favor

  4. kq said

    necesito que me ayudes por favor estoy apunto de hacer un examen y no se me sincronizan los archivos del servidor1 con el 2

    • ildepe87 said

      enviame los ficheros que estás usando a monchotopo@hotmail.com, de todas formas, un error muy común es no escribir bien la ruta, el tutorial que tengo de sincronización funciona perfectamente, asegurate de seguirlo y utiliza la herramienta nslookup para comprobar que al escribir el nombre del host nos encuentra su IP correctamente. Es tan sencillo como escribir nslookup nombre y debe decirte la ip del host. Un saludo. Ultimamente estoy bastante liado con mi trabajo pero espero contestarte lo antes posible

  5. Hetor said

    Tengo una pequena aclaracion: se puede incrementar el serial en cualquier valor, no solo en una unidad. La condicion es que debe ser MAYOR!!!!!

    Hector Acosta Ortiz

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

 
A %d blogueros les gusta esto: