domingo, 18 de agosto de 2013

¿Qué es Bind DLZ?

Antes de entrar en detalle de lo que es Bind DLZ, primero veamos lo que es Bind: Berkeley Internet Domain Name es el sevirdor DNS defacto en prácticamente toda la red. Para ver lo que es un DNS, si no lo sabs, mejor visita este enlace. Entonces Bind DLZ no es en sí mismo un sevidor de nombres, sino algo que se ha agregado a Bind para mejorarlo en aspectos como los siguientes:

  • Bind lee los datos DNS desde archivos de texto plano. Esto puede provocar problemas al cometer errores ortográficos durante la edición de estos archivos o hacer que Bind no los pueda leer.
  • Bind guarda los datos DNS en la memoria RAM. Cuando tenemos un servidor DNS autoritativo para muchas zonas, se hace necesario recompilar el kernel para satisfacer las necesidades de memoria de Bind.
  • Bind analiza gramaticalmente todos los archivos de zonas durante el inicio. Si tenemos muchas zonas es posible que esta tarea consuma mucho tiempo.
  • Si cambiamos cualquier información en los archivos de las zonas, debemos reiniciar el daemon de Bind para que dichos cambios tomen efecto. Finalmente Bind podría pasar más tiempo recargando datos que respondiendo consultas.



En este punto es que hace su entrada DLZ: Dynamically Loadable Zones, introducido en 2007 para Bind 9.4, es un parche para Bind 9 que simplifica la administración y reduce el uso de memoria y tiempo de incio. DLZ nos permite almacenar las zonas en una base de datos. En vez de usar scripts, los cambios en la base de datos son reflejados inmediatamente en la respuesta de Bind a las consultas, por lo que no es necesario reiniciar el daemon de Bind. El resultado es que Bind carga de forma dinámica los datos de las zonas que necesita para responder consultas.

Esto nos deja claro que DLZ no es un servidor DNS, más bien es parte de Bind y lo ayuda a crear zonas en las que ya no será necesario usar archivos de texto plano.

DLZ fue pensado, desde el principio, en la flexibilidad, ya que soporta una amplia variedad de bases de datos como PostgreSQL, MySQL, Berkeley DB, ODBC (como Firebird, DB2, Oracle, Sybase, SAPDB) y LDAP. Además provee un API para desarrollar nuevos controladores.


Otro escenario en el que DLZ toma un rol importantísimo es en los casos en que utilizamos el servicio DHCP, el cual actualiza el DNS. Como por ejemplo la configuración del Controlador de Dominio con Samba4, que dejó los archivos de zonas atrás para usar DLZ.

Finalmente, no debemos confundir DLZ con actualización dinámica DNS (DDNS), ya que no son lo mismo.  DLZ fue elegido porque al ser usado, Bind no necesita cargar las zonas durante su inicio como normalmente lo hace. En vez de eso Bind pregunta a un controlador por la zona y récord cuando necesita responder una consulta DNS. En esencia, los datos de la zona son cargados de forma dinámica desde la base de datos cuando es necesario.

1 comentario: