Friday, November 26, 2010

Configuración de zona secundaria en Bind [DNS]


Saliendo un poco de lo básico en Bind [Guia Básica Bind] vamos a mostrarles como podemos crear una zona secundaria, osea una zona que se transferirá automáticamente de un servidor a otro, esta zona sera esclava de otra maestra, la cual definimos en la guia anterior, la manera de hacerlo es bien sencilla.


Vamos a seguir el ejemplo de la guía anterior, donde teníamos una zona declarada llamada puntolibre.org, a esta guía le deberemos especificar que pueda transferir zonas con un parámetro muy personalizable, ya que podemos definir a que direcciones se permitirá la transferencia de la zona, o también definir listas de control, aprovecho también para mostrarles como crear listas de control:

Para crear una lista de control nos llevamos del siguiente formato:

acl "NOMBRE" {
X.X.X.X;
X.X.X.X;
X.X.X.X;
};

Asi de sencillo, simplemente donde escribi X.X.X.X van las direcciones IP que perteneceran a la lista de control, y donde escribi "NOMBRE" ira obviamente el nombre de la lista de control (El nombre va entre comillas), esto se guarda en uno de los archivos que lee bind, recomendablemente ponerlo en named.conf junto con las demás zonas.

En mi caso quedo así, ya que solamente tengo dos servidores, uno con la IP 192.168.1.100, el cual es el servidor maestro de la zona puntolibre.org, y el otro servidor tiene la IP 192.168.1.101 el cual intentara transferir la zona puntolibre.org desde el 192.168.1.100:

acl "Esclavos" {
192.168.1.101;
};

Ya tenemos nuestra lista de control definida en el servidor maestro, ahora vamos a modificar nuestra zona, la cual en el ejemplo de la guia anterior habia quedado asi:

zone "puntolibre.org" {
type master;
file "/var/named/db.puntolibre.org";
};

A esta zona le vamos añadir dos cosas, la primera es el parametro allow-transfer, este nos permitira definir a que hosts o listas de control se le permitira la transferencia de la zona, y allow-query la cual nos permitira definir a que hosts o listas de control se le permitira hacer consultas, este ultimo lo mostrare simplemente para cuando quieran evitar que no todos los hosts puedan hacer consultas en nuestro servidor DNS.

En mi caso quedo asi:

zone "puntolibre.org" {
type master;
file "/var/named/db.puntolibre.org";
allow-query { any; };
allow-transfer { Esclavos; }
};

Con esto hemos definido que cualquier host (Any) pueda hacer consulta a nuestro servidor DNS, y que solamente los hosts definidos en la lista de control "Esclavos" puedan transferir esta zona, con esto ya tenemos nuestra zona configurada para la transferencia, luego reiniciamos el servicio (/etc/init.d/named restart)

Ahora nos vamos a la configuración de el segundo servidor, agregandole en mi caso las siguientes lineas:


zone "puntolibre.org" {
type slave;
file "/var/named/slaves/db.slave.puntolibre.org";
masters { 192.168.1.100; };
};

En el ejemplo anterior se declaro una zona secundaria, la cual intentara transferir la zona puntolibre.org desde el maestro 192.168.1.100, y se transferira con el nombre db.slave.puntolibre.org en el directorio especificado.

Tener en cuenta que el nombre de la zona debe de ser el mismo en los dos servidores, y tambien que no necesariamente se debe de llamar db.slave.puntolibre.org, ni debe existir, el archivo se generara al transferir la zona, tambien podemos especificar listas de control en el parametro masters.

Luego guardamos nuestro fichero de configuración, y reiniciamos los servicios, y la zona se deberia transferir correctente (Si no pueden hacer consultas desde otros hosts es posible que el cortafuegos este evitando las consultas).


Duda, aclaración o aporte, pueden escribirme y tan pronto pueda les ayudare.

Saludos

1 comentarios:

adsasddsa said...

joputaaaaaaaaaaaaaaaaaaaa falta un ; CABRÓOOOON!!!

Post a Comment