Configuración del caché LDAP para DNS
C@mpus - @cademia Linux

Introducción 

En algunas ocasiones la resolución de DNS podría fallar al utilizar zonas con LDAP como backend. Este comportamiento no es debido a falla en el software sino que se atribuye a los tiempos de respuesta más largos que los que BIND puede soportar.

Este fenómeno principalmente aparece cuando los recursos al servidor de directorio son escasos; tener mucha demanda del directorio por correo electrónico o dominio requieren búsquedas muy complejas; poseer un hardware limitado no atiende de forma rápida la consulta. Se podría poner directorios esclavos para cada uno de los los servicios pero requerir hardware y una inversión extra.

Para resolver esto LXE ha desarrollado un script ldap2bind que lee del directorio y produce un archivo de zona que incrementará drásticamente la velocidad de consulta.


Paquetes necesarios

  • BIND 9.2.1+
  • Perl-LDAP
  • Perl-DNS
  • ldap2bind

Configuración

La configuración del script está basada en un cron, de esta forma se generar un archivo llamado lda2dns.cron con una línea similar por cada zona cacheada.

ldap2bind.pl -s servidor_ldap zona base -f  /var/named/linuxchange.zone

Por ejemplo para la zona linuxchange.com con el servidor de directorio en 192.168.3.1 (es importante usar direcciones IP ya que el servidor que se configura es el de resolución) y una base en ou=DNS,dc=linuxchange,dc=com se tendrá una línea como la siguiente:

ldap2bind.pl -s 192.168.3.1 -z linuxchange.com ou=DNS,dc=linuxchange,dc=com -f  /var/named/linuxchange.zone

El script deber estar en un camino donde sea ejecutable o especificar su ruta absoluta.

El archivo lda2dns.cron se deber copiar en /etc/cron.daily/ para actualizar las zonas automticamente. Mandrake/Mandriva por defecto ejecutar todo lo que está en este directorio a las 4 de la mañana.

El archivo creado deber tener permisos de lectura para el usuario que corra BIND, comunmente named. Y su ruta depender de la configuración del servidor de nombre. Mandrake/Mandriva por defecto escribe sus archivos de zona en /var/named/.

El script se conectar al servidor LDAP y a los DNS indicados en el archivo /etc/resolv.conf; los números de serie serán comparados y dependiendo de que sus valores sean iguales o no se realizar el reemplazo del archivo especificado por la bandera -f.

La ayuda correspondiente al script podrá ser leda ejecutándolo con la bandera -h.

Existe una forma alterna de la configuración en la ejecucin del script lda2bind.pl utilizando ordenes del cron y no el directorio /etc/cron.daily/. Las ventajas obtenidas serán una calendarización más personalizada.

De esta forma un cron:

0 */12 * * * ldap2bind.pl -s 192.168.1.3 -z linuxchange.com -b ou=DNS,dc=linuxchange,dc=mx -f  /var/named/linuxchange.zone

Ejecutará la regeneracin de la zona cada 12 horas, media noche y medio da correspondientemente.

La configuración de una zona BIND ser la común, esto es de la siguiente forma en
/etc/named.conf:

zone "linuxchange.com"{
  type master;
  file "linuxchange.zone";
};

El archivo linuxchange.com deber estar en el directorio configurado por BIND donde se almacenan las zonas.  Comunmente /var/named/ con permisos de lectura para el usuario que ejecuta el demonio.


Inconvenientes

La instalación de este caché impedirá la actualización automática de las zonas para los servicios de Dominio de Windows (el cual actualiza automáticamente el DNS).  El servicio de Dominio de Windows será funcional sin esta característica.