viernes, 9 de septiembre de 2011

Bind DNS para varios dominios

Para la resolución correcta de dns del servidor de correos ZIMBRA, yo instalo un servidor de DNS bind en la misma maquina.
Como en el servidor de correos administra varios dominios tengo que crear la zona para cada dominio. Pero como la configuración era la misma para todas las zonas me metí a reducir la configuración de estos ficheros y lo conseguí.
Con un único fichero de zona resuelve todas las zonas de la misma manero.

Empezamos por el principio.
En centos instalamos el Bind y Bind-chroot
yum install bind bind-chroot bind-utils 

Copiamos el archivo los archivos de configuración /etc/named.* y las zonas /var/named/named.* a la ruta del chroot asegurándonos que los permisos y el propietario son los mismos (con la opción -p), y al fichero /etc/named.conf le cambiamos el nombre para asegurarnos que es el fichero del chroot el que se usa.
cp -p /etc/named.conf /var/named/chroot/etc/.
mv /etc/named.conf /etc/named.conf.bck
cp -p /var/named/named.* /var/named/chroot/var/named/.
cp -R /var/named/dynamic /var/named/chroot/var/named/.
chown named:named var/named/chroot/var/named/dynamic

Antes de cambiar nada probamos que funciona poniéndolo en marcha y parandolo después.
/etc/init.d/named start
/etc/init.d/named stop

Pego a continuación la sección options del fichero /var/named/chroot/etc/named.conf para que vean un par de lineas que modifique del fichero para aceptar peticiones de la misma red 10.0.x.x y los reenviadores para resolver dominios de internet.
options {
# listen-on port 53 { 127.0.0.1; };
# 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     { localhost; 10.0.0.0/24; };
 recursion yes;
 allow-recursion { 127.0.0.1; 10.0.0.0/24; };
 dnssec-enable yes;
 dnssec-validation yes;
 dnssec-lookaside auto;
 forward first;
 forwarders { 80.58.0.33; 80.58.61.250; };

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

Creamos el fichero de la zona. Y esta es la configuración minima para que funcione y para todos los dominios.
(el nombre de la maquina es zimbra, cambiar root."dominioprincipal".com por el dominio principal para recibir los correos en en la cuenta root@"dominioprincipal".com)
/var/named/chroot/var/named/misdominios.com.zone
$TTL 86400

@ IN SOA zimbra. root."dominioprincipal".com. (

 1 ; Serial
 604800 ; Refresh
 86400 ; Retry
 2419200 ; Expire
 86400 ) ; Negative Cache TTL
 ;

@ IN NS zimbra
@ IN MX 10 zimbra
@ IN A 10.0.0.19

zimbra IN A 10.0.0.19

Ahora configuramos el fichero para que utilice la zona añadiendo la siguientes lineas al fichero
/var/named/chroot/etc/named.conf
zone "midominio.com" IN {
 type master;
 file "misdominios.com.zone";
};

Para que ahora trabaje con un nuevo dominio o todos los que queramos de la misma manera y la resolución sea la misma añadimos el nuevo dominio que apunte a la misma zona.
/var/named/chroot/etc/named.conf
zone "otrodominio.com" IN {
 type master;
 file "misdominios.com.zone";
};

NOTA: Se ha reportado diversos bug que hacen que el servició NAMED consuma muchisima CPU, cuando tengas todo funcionando antes de salir comprobar con el comando top que el servició named no aparezca, o consuma menos de 1% vamos cero coma algo si aun no lo han puesto en producción.

No hay comentarios:

Publicar un comentario