MyDNS: Servidor DNS alternativo a bind con datos en mysql
Enviado por miguelcarmona :: 15 de enero de 2010
De bien es sabido que el rey dns en GNU/Linux es BIND. Pero también existen grandes alternativas como MyDNS.
MyDNS es un servidor dns bastante ligero que nos permite almacenar sus datos de registros dentro de una base de datos en MySQL. Esto tiene como ventaja el poder integrarse fácilmente en proyectos que lo requieran.
Otra principal ventaja es que podemos replicar esos datos en distintos servidores y así tenerlos completamente sincronizados prescindiendo de las jerarquías de las réplicas en DNS.
Y creo que la mayor ventaja es que cada vez que realicemos un cambio, no hay que recargar el demonio (como ocurre en BIND).
Su instalación en openSuse sería tan sencillo como hacer click en:
Una vez instalado, tenemos 2 opciones. La primera sería instalar un administrador gráfico para el servidor dns; la segunda sería configurar el servicio manualmente y administrarlo haciendo consultas a mysql directamente. Por comodidad, yo me decanté por un administrador gráfico, por lo que usé MyDNSConfig.
Ya que MyDNSConfig es un gestor escrito en php y que se administra vía web, deberemos tener un servidor web (apache normalmente) con php instalado. No voy a entrar en detalles de cómo instalar Apache y php así como mysql ya que hay muchísima información (y bastante buena) al respecto. De todas formas, tengo un artículo básico sobre esta cuestión (https://miguelcarmona.com/blog/lamp-en-opensuse)
Para realizar la instalación y configuración con mydns, sólo bastará con descargarlo y ejecutar la instalación:
su
cd /tmp
wget http://downloads.sourceforge.net/mydnsconfig/MyDNSConfig-3.0.1.tar.gz?use_mirror=
tar xvfz MyDNSConfig-3.0.1.tar.gz
cd mydnsconfig/install/
php -q install.php
Seguimos el asistente de instalación, y una vez terminado, accederemos a la administración desde http://localhost:8080 (cambiar localhost por la ip del equipo si estamos en otro).
Lógicamente, deberemos tener tanto apache como mysql y mydns ejecutándose:
su
/etc/init.d/apache2 restart
/etc/init.d/mysql restart
/etc/init.d/mydns restart
MyDNSConfig es parte del proyecto ISPConfig (panel de gestión para servidores web y de correo). Es bastante fácil, sencillo e intuitivo como para tener que extender este artículo con una explicación.
Si queremos que el servidor dns y mysql inicien por defecto, haremos:
su
chkconfig --add mysql
chkconfig --add mydns
Así mismo, si queremos que apache también inicie automáticamente (para administrar MyDNS con MyDNSConfig), haremos:
su
chkconfig --add apache2
Para que nuestros equipos resuelvan correctamente con este servidor DNS, deberemos indicarle que el primer servidor DNS a utilizar es la ip del servidor donde lo hemos instalado (por ejemplo, 192.168.10.80). De forma que editaríamos el archivo /etc/resolvers.conf y añadiríamos al principio la línea:
nameserver 192.168.10.80
MyDNS no es capaz de resolver nombres de dominio que no administra, así que para obtenerlos se apoya en un servidor DNS externo (podemos usar el de nuestro ISP por ejemplo). Para especificarle dicho servidor externo, deberemos editar el archivo /etc/mydns.conf y especificárselo:
su
vim /etc/mydns.conf
Buscamos la línea:
recursive = # Location of recursive resolver
Y especificamos el servidor DNS
recursive = 80.58.61.250 # Location of recursive resolver
Reiniciamos el servidor:
/etc/init.d/mydns restart
Y ya tenemos un servidor dns completamente funcional.