zonas_maestras_esclavas

9
ZONAS MAESTRAS Y ESCLAVAS Zona Maestra Ya hemos visto cómo dar de alta en el servidor DNS zonas maestras. Se trata básicamente de añadir una entrada en el fichero de configuración del servidor DNS (/etc/named.conf en el caso de CentOS), donde indicamos el nombre de la zona, el tipo (master en este caso) y el fichero donde vamos a almacenar los datos de la zona propiamente dichos. Por ejemplo, si queremos definir una zona maestra que se va a llamar tia.es podemos hacerlo añadiendo las siguientes líneas en el fichero /etc/named.conf: zone "tia.es" IN {         type master;         file "tia.es.zone"; }; Aquí especificamos el nombre de la zona (tia.es), el tipo maestro(master) y la ubicación del archivo con los datos de la zona. En este caso, al no haber especificado la ruta, asumimos que el archivo se encuentra en el directorio de trabajo por defecto del servidor dns. Este directorio se especifica en el parámetro directory del fichero /etc/named.conf, por defecto es el siguiente: directory       "/var/named"; Es decir, el fichero con la información acerca de la zona debe ubicarse en /var/named/tia.es.zone. Este fichero podría estar definido de la siguiente forma: tia.es.                 IN SOA  mortadelo.tia.es. root.tia.es. (                                 2013091500 ; serial                                 86400      ; refresh (1 day)                                 7200       ; retry (2 hours)                                 604800     ; expire (1 week)                                 172800     ; minimum (2 days)                                 )                         NS      mortadelo.tia.es.                         MX      10 mortadelo.tia.es. $ORIGIN tia.es. filemon                 A       192.168.1.101 mortadelo               A       192.168.1.61 www                     CNAME   mortadelo Como recordaremos es importante indicar quiénes son los servidores de nombres de la zona tia.es. En este caso solo hay un servidor de nombres de la zona, que es de hecho nuestro servidor maestro (mortadelo.tia.es). Una vez que se ha completado la configuración del servidor maestro, se comprueba que el fichero /etc/named.conf sea correcto:

Upload: jose-congosto

Post on 25-Oct-2015

11 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: zonas_maestras_esclavas

ZONAS MAESTRAS Y ESCLAVAS

Zona Maestra

Ya hemos visto cómo dar de alta en el servidor DNS zonas maestras. Se trata básicamente de añadir una entrada en el fichero de configuración del servidor DNS (/etc/named.conf en el caso de CentOS), donde indicamos el nombre de la zona, el tipo (master en este caso) y el fichero donde vamos a almacenar los datos de la zona propiamente dichos.

Por ejemplo, si queremos definir una zona maestra que se va a llamar tia.es podemos hacerlo añadiendo las siguientes líneas en el fichero /etc/named.conf:

zone "tia.es" IN {        type master;        file "tia.es.zone";};

Aquí especificamos el nombre de la zona (tia.es), el tipo maestro(master) y la ubicación del archivo con los datos de la zona. En este caso, al no haber especificado la ruta, asumimos que el archivo se encuentra en el directorio de trabajo por defecto del servidor dns. Este directorio se especifica en el parámetro directory del fichero /etc/named.conf, por defecto es el siguiente:

directory       "/var/named";

Es decir, el fichero con la información acerca de la zona debe ubicarse en /var/named/tia.es.zone.

Este fichero podría estar definido de la siguiente forma:

tia.es.                 IN SOA  mortadelo.tia.es. root.tia.es. (                                2013091500 ; serial                                86400      ; refresh (1 day)                                7200       ; retry (2 hours)                                604800     ; expire (1 week)                                172800     ; minimum (2 days)                                )                        NS      mortadelo.tia.es.                        MX      10 mortadelo.tia.es.$ORIGIN tia.es.filemon                 A       192.168.1.101mortadelo               A       192.168.1.61www                     CNAME   mortadelo

Como recordaremos es importante indicar quiénes son los servidores de nombres de la zona tia.es. En este caso solo hay un servidor de nombres de la zona, que es de hecho nuestro servidor maestro (mortadelo.tia.es).

Una vez que se ha completado la configuración del servidor maestro, se comprueba que el fichero /etc/named.conf sea correcto:

Page 2: zonas_maestras_esclavas

[root@centosv6 ~]# named­checkconf [root@centosv6 ~]# 

Si hubiera algún error de sintaxis, la salida del comando lo indicaría. Como en este caso la salida está vacía, no existen errores sintácticos.

A continuación comprobamos que la definición del archivo de zona sea también la correcta.

[root@centosv6 ~]# named­checkzone tia.es /var/named/tia.es.zone zone tia.es/IN: loaded serial 2013091500OK[root@centosv6 ~]# 

En este caso si el fichero es correcto, aparecerá al final la palabra OK. Del mismo modo, de existir errores se indicaría.

Terminadas las comprobaciones se recarga el servicio named.

[root@centosv6 ~]# service named restartStopping named: .                                          [  OK  ]Starting named:                                            [  OK  ][root@centosv6 ~]# 

Y comprobamos si la resolución es correcta con la utilidad dig. Suponiendo que nuestro servidor de nombres tiene la dirección 10.99.1.101, escribimos:

[root@centosv6 ~]# dig @192.168.1.101 filemon.tia.es

; <<>> DiG 9.8.2rc1­RedHat­9.8.2­0.17.rc1.el6_4.4 <<>> @192.168.1.101 filemon.tia.es; (1 server found);; global options: +cmd;; Got answer:;; ­>>HEADER<<­ opcode: QUERY, status: NOERROR, id: 21644;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:;filemon.tia.es. IN A

;; ANSWER SECTION:filemon.tia.es. 172800 IN A 192.168.1.101

;; AUTHORITY SECTION:tia.es. 172800 IN NS mortadelo.tia.es.;; ADDITIONAL SECTION:mortadelo.tia.es. 172800 IN A 192.168.1.61

Page 3: zonas_maestras_esclavas

;; Query time: 2 msec;; SERVER: 192.168.1.101#53(192.168.1.101);; WHEN: Fri Jun 14 08:12:59 2013;; MSG SIZE  rcvd: 88

Como podemos comprobar ha resuelto correctamente el nombre filemon.tia.es, indicando que su dirección IP es la 10.99.1.61. Además aparecen datos adicionales como los servidores de nombres de la zona. En este caso solo uno, mortadelo.tia.es.

Zonas esclavas

Hemos visto que tener una zona maestra en un servidor DNS es suficiente para realizar la traducción de nombres en direcciones IP en la red local. Sin embargo, se plantea el problema de que si ese servidor sufre una avería se perdería la capacidad de resolver nombres.

Para evitar eso surge el concepto de la zona esclava. Lo que esto significa exactamente es que tenemos un segundo servidor DNS, en el que definimos también esa zona (en nuestro ejemplo tia.es). Pero en este caso el servidor solo tendrá una copia de lectura de dicha zona, y los cambios se harán en el maestro.

El proceso para montar una zona esclava en un servidor DNS no es muy distinto del que ya hemos visto a la hora de montar la zona maestra. Igual que antes tenemos que introducir en el fichero /etc/named.conf el nombre de la zona y el fichero donde se van a almacenar los datos. Pero en este caso tenemos que especificar que la zona es esclava (slave) e indicar quién es el servidor maestro.

Suponemos que tenemos un servidor CentOS, con la dirección IP 192.168.1.133 y con el paquete bind instalado. Para crear una copia esclava de la zona tia.es tendríamos que escribir lo siguiente en el fichero /etc/named.conf:

zone "tia.es" IN {        type slave;        file "slaves/tia.es.zone";        masters { 192.168.1.101; };};

Donde se indica el nombre de la zona(tia.es). El tipo de zona, en este caso esclava(slave). La dirección del servidor maestro de la zona que, como recordaremos, era el 192.168.1.101, mortadelo.tia.es. Y la ubicación del fichero de zona, en este caso en /var/named/slaves/tia.es.zone.

IMPORTANTE: En el caso de los ficheros de zona del servidor con la copia maestra, las altas y bajas en la zona dns las gestiona el administrador del servidor, habitualmente el usuario root, que se encargará de borrar, añadir y guardar las modificaciones en el fichero. Dado que el usuario root tiene derechos de escritura en la práctica totalidad del sistema la ubicación exacta del fichero de zona no supone habitualmente un problema.

Esto es completamente distinto en el caso de las zonas esclavas, en este caso el servidor con la

Page 4: zonas_maestras_esclavas

zona esclava se pone en contacto por red con el servidor con la zona maestra, y una vez que éste le transfiere los datos tiene que guardar esos datos en el archivo indicado. Esto lo va a hacer con los privilegios del usuario named, por lo que en la ruta que hayamos indicado el usuario named deberá tener derechos de escritura.

Tendremos que comprobar que el fichero /etc/named.conf es correcto, para ello podemos utilizar el comando named-checkconf.

El archivo de zona se transferirá desde el servidor con la copia maestra, por lo que no es necesario chequearlo desde el esclavo. Lo que sí debemos comprobar es que el usuario named tiene derechos de escritura en el directorio que hemos indicado en el fichero /etc/named.conf:

[root@centos2 ~]# ls ­ld /var/named/slaves/drwxrwx­­­. 2 named named 4096 Mar 28 23:18 /var/named/slaves/[root@centos2 ~]# 

En este caso vemos que el usuario named es el propietario del directorio /var/named/slaves, y que tiene derechos de lectura, escritura y ejecución.

Con esto ya habríamos terminado en el servidor con la zona esclava. Pero es necesario hacer una modificación más en el servidor con la zona maestra.

Como hemos comentado en varias ocasiones, en el archivo de zona se indican los servidores de nombres de dicha zona. Puesto que ahora pretendemos añadir un nuevo servidor de nombres a la zona con una copia esclava, deberemos especificarlo en el archivo tia.es.zone del servidor maestro. De modo que el archivo debería quedar así:

tia.es.                 IN SOA  mortadelo.tia.es. root.tia.es. (                                2013091500 ; serial                                86400      ; refresh (1 day)                                7200       ; retry (2 hours)                                604800     ; expire (1 week)                                172800     ; minimum (2 days)                                )                        NS      mortadelo.tia.es.                        NS      super.tia.es.                        MX      10 mortadelo.tia.es.$ORIGIN tia.es.filemon                 A       192.168.1.101mortadelo               A       192.168.1.61super                   A       192.168.1.133www                     CNAME   mortadelo

Como se puede ver los cambios consisten en añadir el que va a ser el servidor DNS esclavo (super.tia.es) y su dirección (192.168.1.133).

Hecho esto se recarga el servicio named en el servidor maestro para que actualice los cambios.

Page 5: zonas_maestras_esclavas

Posteriormente se hace lo mismo en el servidor esclavo, con lo que se iniciará la transferencia de zona.

Si todo ha ido bien deberíamos ver que en el directorio indicado ha aparecido el fichero de zona.

[root@centos2 ~]# ls /var/named/slaves/tia.es.zone[root@centos2 ~]# 

Además en el fichero de log veríamos una serie de líneas similares a estas:

Sep 13 06:17:03 localhost2 named[17669]: zone tia.es/IN: Transfer started.Sep 13 06:17:03 localhost2 named[17669]: transfer of 'tia.es/IN' from 192.168.1.101#53: connected using 192.168.1.133#35131Sep 13 06:17:03 localhost2 named[17669]: zone tia.es/IN: transferred serial 2013091500Sep 13 06:17:03 localhost2 named[17669]: transfer of 'tia.es/IN' from 192.168.1.101#53: Transfer completed: 1 messages, 9 records, 235 bytes, 0.004 secs (58750 bytes/sec)

Finalmente verificamos que el servidor con la zona esclava puede resolver correctamente los nombres de dicha zona.

[root@centos2 ~]# dig @192.168.1.133 filemon.tia.es

; <<>> DiG 9.8.2rc1­RedHat­9.8.2­0.17.rc1.el6_4.4 <<>> @192.168.1.133 filemon.tia.es; (1 server found);; global options: +cmd;; Got answer:;; ­>>HEADER<<­ opcode: QUERY, status: NOERROR, id: 16398;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:;filemon.tia.es. IN A

;; ANSWER SECTION:filemon.tia.es. 172800 IN A 192.168.1.101

;; AUTHORITY SECTION:tia.es. 172800 IN NS mortadelo.tia.es.tia.es. 172800 IN NS super.tia.es.

;; ADDITIONAL SECTION:mortadelo.tia.es. 172800 IN A 192.168.1.61super.tia.es. 172800 IN A 192.168.1.133

Page 6: zonas_maestras_esclavas

;; Query time: 2 msec;; SERVER: 192.168.1.133#53(192.168.1.133);; WHEN: Fri Sep 13 06:23:30 2013;; MSG SIZE  rcvd: 124

Como vemos el servidor resuelva correctamente.

En el caso de que la transferencia de zona no se completara correctamente habría que revisar si existe un firewall activo que bloquee la conexión de red.

Con esto ya tenemos dos servidores DNS, uno maestro y otro esclavo capaces de ofrecer el servicio de resolución de nombres de la zona tia.es. Los cambios se realizarían en el servidor maestro, sin olvidar actualizar el número de serie en el fichero de zona. Dependiendo de la configuración de los dos servidores maestro y esclavo estos cambios se propagarán inmediato o al cabo de x tiempo, y en cualquier caso siempre que el servidor esclavo se recargue.

En nuestra red podríamos configurar la mitad de los clientes con el maestro como servidor DNS primario y el esclavo como servidor DNS secundario. De este modo repartiríamos la carga entre los dos, al mismo tiempo que nos aseguramos que si uno de los servidores sufre una avería el otro continuará ofreciendo el servicio.

Por último, si el servidor maestro sufriera un fallo irrecuperable, podríamos convertir el servidor esclavo en maestro. Para ello únicamente tendríamos que cambiarle el tipo de slave a master y eliminar la referencia al servidor maestro en el fichero /etc/named.conf.

APÉNDICE (FICHEROS DE CONFIGURACIÓN)

/etc/named.conf (del servidor maestro)

//// named.conf//// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS// server as a caching only nameserver (as a localhost DNS resolver only).//// See /usr/share/doc/bind*/sample/ for example named configuration files.//

options {listen­on port 53 { any; };listen­on­v6 port 53 { ::1; };directory  "/var/named";dump­file  "/var/named/data/cache_dump.db";

     statistics­file "/var/named/data/named_stats.txt";

Page 7: zonas_maestras_esclavas

     memstatistics­file "/var/named/data/named_mem_stats.txt";allow­query     { any; };recursion yes;

dnssec­enable no;dnssec­validation no;dnssec­lookaside auto;/* Path to ISC DLV key */bindkeys­file "/etc/named.iscdlv.key";

managed­keys­directory "/var/named/dynamic";};

logging {        channel default_debug {                file "data/named.run";                severity dynamic;        };};

zone "." IN {type hint;file "named.ca";

};

zone "tia.es" IN {type master;

file "tia.es.zone";};

include "/etc/named.rfc1912.zones";include "/etc/named.root.key";

/etc/named.conf (del servidor esclavo)

//// named.conf//// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS// server as a caching only nameserver (as a localhost DNS resolver only).//// See /usr/share/doc/bind*/sample/ for example named configuration files.//

options {

Page 8: zonas_maestras_esclavas

listen­on port 53 { any; };listen­on­v6 port 53 { ::1; };directory  "/var/named";dump­file  "/var/named/data/cache_dump.db";

     statistics­file "/var/named/data/named_stats.txt";     memstatistics­file "/var/named/data/named_mem_stats.txt";

allow­query     { any; };dnssec­enable no;dnssec­validation no;dnssec­lookaside auto;

/* Path to ISC DLV key */bindkeys­file "/etc/named.iscdlv.key";

managed­keys­directory "/var/named/dynamic";

};

logging {        channel default_debug {                file "data/named.run";                severity dynamic;        };};

zone "." IN {type hint;file "named.ca";

};

zone "tia.es" IN {type slave;file "slaves/tia.es.zone";masters { 192.168.1.101; };

};

include "/etc/named.rfc1912.zones";include "/etc/named.root.key";

Fichero tia.es.zone

tia.es.                 IN SOA  mortadelo.tia.es. root.tia.es. (                                2013091500 ; serial                                86400      ; refresh (1 day)                                7200       ; retry (2 hours)                                604800     ; expire (1 week)                                172800     ; minimum (2 days)                                )

Page 9: zonas_maestras_esclavas

                        NS      mortadelo.tia.es.                        NS      super.tia.es.                        MX      10 mortadelo.tia.es.$ORIGIN tia.es.filemon                 A       192.168.1.101mortadelo               A       192.168.1.61super                   A       192.168.1.133www                     CNAME   mortadelo