|
Servidor de nombres DNS con backend MySQL
El protocolo DNS es el responsable (entre otras cosas) de averiguar
la dirección IP asociada a los nombres de servidores que usamos a diario en Internet,
tanto para hacer referencia a las webs que navegamos, los
servidores de archivos FTP de donde bajamos programas, o los
servidores de correo a los que enviamos o de los que recibimos nuestros
email.
Los seres humanos somos razonablemente buenos recordando nombres textuales asociados a las
personas o empresas con las que nos comunicamos, pero todos los protocolos de Internet usan
internamente direcciones IP numéricas. La misión del protocolo
DNS es convertir los nombres textuales usados por las personas en
direcciones IP numéricas, usadas por los programas y por las máquinas. Por ejemplo,
el nombre de máquina www.24x7linux.com equivale a la
dirección IP 66.227.74.170. Esta equivalencia se define en una
máquina concreta de Internet el servidor DNS primario para
el dominio 24x7linux.com.
Otra información que suele definirse en ese servidor de nombres primario suele ser el
servidor que se encarga de recibir todo el correo destinado a usuarios del dominio, en el
ejemplo, para todos los usuarios con dirección de correo con el dominio
@24x7linux.com. Estas equivalencias (y otras muchas más) se
almacenan en el servidor de nombres en formas diversas, dependiendo de la implementación
instalada de que se trate.
El servidor de nombres DNS más usado en Internet es
BIND en cualquiera de sus versiones (4.x, 8.x o 9.x). Todos ellos
almacenan las equivalencias (conocidas como RR o
Resource Records) en archivos de texto plano, que el administrador
puede editar directamente en un formato bien documentado. Cuando el servidor inicia lee los
archivos de texto con los RR, los almacena en memoria (por muchos que
sean) en un formato optimizado para su consulta. Sin embargo, cualquier cambio en los archivos de
texto exige al administrador forzar la relectura de los RR, lo cual
puede no resultar conveniente.
Otros servidores DNS almacenan los RR en
otros formatos o almacenamientos físicos distintos (lo que se conoce como
backend). Por una parte implementan el protocolo
DNS, pero los datos residen físicamente en, por ejemplo, un
servidor de directorio LDAP o en una base de datos
SQL. MyDNS
es un ejemplo de servidor DNS con backend
SQL, en concreto, MySQL.
MySQL es un servidor de bases de
datos relacional SQL especialmente optimizada para un patrón
de uso con muchas consultas y pocas actualizaciones (típico de las informaciones
gestionadas por el protocolo DNS).
MyDNS implementa la mayor parte de los protocolos del servicio de
nombres en Internet, de manera perfectamente interoperable con cualquier otra
implementación como BIND, pero los datos están
almacenados en una base de datos SQL.
Este backend SQL permite actualizar
continuamente los RR sin tener que recargar los datos en memoria.
También permite que cada cliente gestione la información de su dominio gracias al
completo y flexible sistema de permisos de MySQL. Y como este
servidor de bases de datos está especialmente ideado para patrones de uso similares a los
habituales en el servicio DNS proporciona elevados rendimientos,
medidos en respuestas DNS por segundo.
MyDNS lo desarrolla Don Moore, y el
idioma tanto de los mensajes, como de la documentación y de los archivos de
log es el inglés. Aprovechando que estaba probando este
servidor DNS inicié la traducción al castellano de
todo el producto, de tal manera que la futura versión 1.0 estará disponible tanto
en inglés como en castellano. Así no hay excusa alguna para no probar esta
magnífica implementación alternativa del servicio DNS.
Última modificación: 06-January-2003 13:39:47 -0500
|