DNS Server · 4 min read · Oct 02, 2025

Cómo instalar el servidor DNS rápido y ligero MaraDNS en CentOS 7

MaraDNS es un pequeño, gratuito y ligero servidor de nombres de dominio. Es un servidor DNS alternativo de código abierto, que actúa como un servidor de nombres en caché, recursivo o autoritativo. Es notablemente fácil de configurar y está disponible para plataformas Linux y Windows. Se puede descargar desde aquí. Puedes leer más sobre DNS, DNS recursivo, DNS autoritativo aquí.

A continuación se presentan algunas características interesantes de MaraDNS:

  • Fácil de instalar
  • Bajo uso de memoria (Usa aproximadamente 5MB de RAM)
  • Puede actuar como un servidor de nombres autoritativo y un servidor de nombres recursivo.
  • No hay que olvidar, la documentación en el sitio web de MaraDNS es muy fácil de entender.

Ahora comencemos con MaraDNS en CentOS 7. Los siguientes pasos te guiarán sobre la instalación y configuración de MaraDNS:

Instalando MaraDNS

Por ahora, no hay RPMs disponibles de MaraDNS para CentOS 7, así que lo instalaremos y compilaremos desde el código fuente.

Instala gcc:

sudo yum install gcc

Descarga el último archivo fuente desde aquí. Puedes hacerlo así:

wget http://maradns.samiam.org/download/2.0/2.0.11/maradns-2.0.11.tar.bz2

Extrae el contenido del archivo:

tar -xjf maradns-2.0.11.tar.bz2

Cambia al directorio de MaraDNS extraído, compila e instala los programas:

cd maradns-2.0.11
sudo make
sudo make install

MaraDNS está ahora instalado. El servicio de MaraDNS se instala en /etc/init.d/maradns. Puedes simplemente iniciar el servicio con:

sudo /etc/init.d/maradns start

Para iniciar el demonio recursivo, ejecuta:

sudo /etc/init.d/maradns.deadwood start

Por defecto, el servidor de nombres autoritativo escucha en el puerto 127.0.0.1 y el recursivo en el puerto 127.0.0.2.

Asegurémonos de iniciar MaraDNS al arrancar:

chkconfig maradns on

El script de inicio del servidor DNS recursivo debe hacerse compatible con chkconfig antes de que pueda ejecutarse al inicio. Agrega el siguiente contenido a la parte superior del archivo /etc/init.d/maradns.deadwood:

# chkconfig: - 55 45  
# description: MaraDNS es un servidor de nombres de dominio (DNS) seguro  
# probe: true

Configúralo para que se ejecute al inicio:

chkconfig maradns.deadwood on

Configurando MaraDNS como un servidor de nombres autoritativo

Los servidores DNS autoritativos “conocen” el mapeo de URL a IP para cualquier dominio dado. Son la fuente de la información que los servidores DNS recursivos envían a los clientes web como navegadores (Chrome, Firefox). Puedes configurar MaraDNS como un servidor de nombres autoritativo de la siguiente manera:

Edita el archivo de configuración de MaraDNS, es decir, /etc/mararc:

ipv4_bind_addresses = "127.0.0.1"
chroot_dir = "/etc/maradns"  
csv2 = {}
csv2["example.net."] = "db.example.net"
    

La primera línea le dice a MaraDNS que escuche en la IP- 127.0.0.1. Puedes agregar más IPs, separadas por comas. Por ejemplo: 127.0.0.1, x.x.x.x

La segunda línea chroot_dir es para mencionar el directorio donde se mantendrán todos los archivos de zona.

La tercera línea inicializa el hash csv2 con el comando csv2 = {}.

La cuarta línea menciona el archivo de zona llamado db.example.net para el nombre de dominio example.net.

Aquí está el archivo de zona llamado db.example.net para el nombre de dominio example.net, que es autoexplicativo:

example.net.      +14400    soa    ns1.example.net. [email protected]. 2012010117 14400 3600 604800 14400 ~ 
example.net.      +14400    ns     ns1.example.net. ~ 
example.net.      +14400    ns     ns2.example.net. ~ 
ns1.example.net.  +14400    a      127.0.0.1 ~ 
ns2.example.net.  +14400    a      127.0.0.1 ~ 
example.net.      +14400    a      127.0.0.1 ~ 
www.example.net.  +14400    a      127.0.0.1 ~ 
example.net.      +14400    mx     10 mail.example.net. ~
mail.example.net. +14400    a      127.0.0.1 ~

Comienzas con la línea de Inicio de Autoridad (SOA). Luego especificas los servidores de nombres autoritativos y los otros registros. Un registro consiste en el nombre de dominio, TTL (Tiempo de vida), tipo de registro y el valor del registro.
Dos cosas a tener en cuenta son que todos los nombres de dominio terminan con un punto, es decir, deben ser nombres de dominio completamente calificados y todos los registros terminan con un carácter de tilde (~). Para saber más, consulta la documentación sobre el formato de los archivos de zona.

Para ser más simple, simplemente apuntamos example.net a 127.0.0.1. Así es como lo haces:

example.net.    127.0.0.1 ~

Reinicia el servicio como:

sudo /etc/init.d/maradns restart

Configurando MaraDNS como un servidor de nombres recursivo

Cuando tu navegador web envía una consulta DNS —suponiendo que el navegador no tenga ya el mapeo almacenado en su caché— se envía a un servidor DNS recursivo. También se le llama reenvío DNS. Por defecto, escucha en el puerto 127.0.0.2 y puedes agregar más IPs, separadas por comas. Por ejemplo: 127.0.0.2, x.x.x.x. Puedes configurar MaraDNS como un servidor de nombres recursivo agregando las siguientes líneas al archivo /etc/dwood3rc:

upstream_servers = {}  
upstream_servers["."] = "8.8.8.8, 8.8.4.4" # Reenviando solicitudes a los servidores DNS de Google

Reinicia el servicio como:

sudo /etc/init.d/maradns.deadwood restart

¡Has terminado de configurar el servidor MaraDNS! :)

Consejo: Si deseas que tu servidor MaraDNS responda a consultas DNS externas, necesitarás:

Agregar la IP pública de tu máquina a ambos archivos de configuración (/etc/mararc y /etc/dwood3rc) y modificarlos como:

/etc/mararc:

ipv4_bind_addresses = "127.0.0.1, x.x.x.x" #Reemplaza x.x.x.x con la dirección pública de tu máquina.

/etc/dwood3rc:

bind_address="127.0.0.2, x.x.x.x" #Reemplaza x.x.x.x con la dirección pública de tu máquina.

recursive_acl = “0.0.0.0/0” #Para permitir conexiones desde cualquier lugar.

Puedes obtener estos archivos de ejemplo desde aquí. No olvides reiniciar los servicios una vez más.

¡Eso es todo!

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.