Cómo agregar DNS secundario al panel de hosting DirectAdmin
Por qué su servidor DirectAdmin necesita un DNS secundario

DirectAdmin generalmente utiliza BIND (named) o PowerDNS como servidor DNS. Por defecto, todos los dominios dependen de un único servidor de nombres. Si este falla — por mantenimiento, fallo de hardware o ataque DDoS — cada dominio se vuelve inaccesible.
Un servidor DNS secundario mantiene una copia sincronizada de todas las zonas via AXFR. Cuando el primario no está disponible, el secundario sigue respondiendo consultas DNS. Sus sitios web, correo y servicios permanecen en línea.
La mayoría de los registradores requieren al menos dos servidores de nombres, y el RFC 2182 recomienda tres para producción.
¿Aún no tiene un servidor de nombres secundario? SecondDNS le ofrece uno en una prueba gratuita de 3 meses, sin tarjeta de crédito — empiece aquí y luego siga los pasos de abajo.
Cómo funciona el DNS en DirectAdmin
DirectAdmin soporta dos backends DNS: BIND (named) y PowerDNS.
BIND (named): Las zonas se almacenan como archivos de zona en /etc/named/ o /var/named/. Las transferencias se configuran en named.conf: allow-transfer otorga al secundario permiso para descargar la zona, y also-notify hace que BIND envíe un NOTIFY para que el secundario se actualice de inmediato.
PowerDNS: Los datos DNS se almacenan en base de datos. Las transferencias se controlan via allow-axfr-ips en pdns.conf. El instalador de SecondDNS detecta automáticamente el backend y configura las directivas correctas.
En ambos casos, DirectAdmin gestiona DNS a través de scripts hook en /usr/local/directadmin/scripts/custom/. La integración SecondDNS instala sus propios hooks ahí para registro automático de zonas.
Cómo funciona la integración de DNS secundario
La integración SecondDNS usa scripts hook que DirectAdmin llama automáticamente:
1. Al crear un dominio o domain pointer — el hook registra la zona en SecondDNS via API 2. SecondDNS descarga una copia completa via AXFR 3. Al eliminar un dominio — el hook lo elimina de SecondDNS
Todos los cambios se propagan automáticamente via NOTIFY. Sin pasos manuales ni cron jobs.
Requisitos de DNS secundario para DirectAdmin
Antes de comenzar, asegúrese de tener:
- DirectAdmin 1.6 o posterior con BIND/named o PowerDNS - Acceso root (sudo) al servidor - Una clave API de SecondDNS (en seconddns.com/dashboard/api-key) - La IP de su servidor de nombres SecondDNS (en el panel bajo Settings > Nameservers) - Puerto TCP 53 abierto para conexiones provenientes de la IP del servidor SecondDNS
El protocolo de transferencia de zonas AXFR usa el puerto TCP 53, no UDP. Muchas configuraciones de firewall solo abren UDP 53 para consultas DNS regulares. Si TCP 53 está bloqueado, las transferencias de zona fallan sin dar error aunque la resolución DNS normal funcione.
Abrir el puerto TCP 53 para transferencias de zona DNS
Antes de ejecutar el instalador, abra el puerto TCP 53 para el servidor SecondDNS. Encuentre la IP en el panel bajo Settings > Nameservers y reemplace SECONDARY_IP en los comandos.
Si usa UFW:
ufw allow from SECONDARY_IP to any port 53 proto tcp
ufw reloadSi usa iptables:
iptables -I INPUT -s SECONDARY_IP -p tcp --dport 53 -j ACCEPTSi usa nftables:
nft add rule inet filter input ip saddr SECONDARY_IP tcp dport 53 acceptPara verificar que el puerto TCP 53 es accesible desde el exterior:
nmap -p 53 -sT YOUR_SERVER_IPEl instalador configura automáticamente allow-transfer (BIND) o allow-axfr-ips (PowerDNS) con su IP de SecondDNS al proporcionar la clave API.
Instalar DNS secundario en DirectAdmin
Ejecute como root:
curl -sL https://raw.githubusercontent.com/seconddns/dns_integrations/main/hosting-panels/directadmin/install.sh | bash -s -- --api-key=YOUR_API_KEYEl instalador: - Verifica su clave API contra la API de SecondDNS - Detecta la IP del servidor (IPv4 e IPv6) - Pregunta qué protocolo usar si ambos están disponibles - Detecta el backend DNS (BIND o PowerDNS) - Configura las transferencias automáticamente (allow-transfer otorga el permiso y also-notify activa NOTIFY para BIND; allow-axfr-ips para PowerDNS) - Instala scripts hook en /usr/local/directadmin/scripts/custom/ - Ofrece sincronizar dominios existentes
Reemplace YOUR_API_KEY con la clave de su panel SecondDNS. El instalador termina con un código de salida distinto de cero si algún paso falla.
Configurar servidores de nombres en DirectAdmin
Tras la instalación, registre el servidor de nombres secundario en DirectAdmin.
Opción 1: Desde el panel DirectAdmin (recomendado) Inicie sesión como Admin → Server Manager → Name Servers. Configure NS2 con el hostname de su servidor de nombres SecondDNS (en el panel bajo Settings > Nameservers). Con el complemento Personalized NS use su hostname de marca (ej. ns2.yourdomain.com). Esta configuración se aplica automáticamente a todos los nuevos dominios.
Opción 2: Editar la plantilla DNS directamente
vi /usr/local/directadmin/data/templates/custom/dns_zone.confSi el directorio no existe, créelo:
mkdir -p /usr/local/directadmin/data/templates/custom
cp /usr/local/directadmin/data/templates/dns_zone.conf /usr/local/directadmin/data/templates/custom/Agregue un registro NS apuntando al hostname de su servidor de nombres SecondDNS. Para dominios existentes use la gestión DNS de DirectAdmin o la función de actualización masiva.
Sincronizar dominios existentes con DNS secundario
Si tenía dominios en DirectAdmin antes de la instalación, sincronícelos con el secundario:
seconddns syncEsto compara sus zonas locales con SecondDNS y agrega las faltantes. Los dominios eliminados localmente se eliminan del secundario. El comando es idempotente — puede ejecutarse varias veces sin generar duplicados.
Para verificar una zona específica:
seconddns status example.comPara listar todas las zonas en el servidor secundario:
seconddns listVerificar la configuración de DNS secundario en DirectAdmin
Cree un dominio de prueba en DirectAdmin y observe el log de hooks:
tail -f /var/log/seconddns.logDebería ver:
Zone created: testdomain.com (caller=create:domain, user=admin)
[+] Zone testdomain.com added to SecondDNSLuego consulte ambos servidores de nombres. Reemplace SECONDARY_IP con la IP de su servidor de nombres del panel:
dig @YOUR_SERVER_IP testdomain.com SOA +short
dig @SECONDARY_IP testdomain.com SOA +shortAmbos deben devolver el mismo serial SOA en formato YYYYMMDDNN. Si el secundario muestra un serial menor o devuelve SERVFAIL, verifique el acceso al puerto TCP 53 y el log de hooks.
Tipos de dominio soportados
La integración maneja todos los tipos de dominio de DirectAdmin:
- Dominios principales (create:domain) - Zonas DNS (create:zone) - Domain pointers (create:pointer)
Cada tipo activa el hook automáticamente al crearse o eliminarse desde el panel o la API de DirectAdmin. El hook recibe el nombre de dominio, nombre de usuario y tipo de caller de DirectAdmin y los pasa a SecondDNS.
Solución de problemas de DNS secundario en DirectAdmin
La zona no aparece en el secundario Revise el log de hooks /var/log/seconddns.log. Verifique que los hooks estén instalados y sean ejecutables:
ls -la /usr/local/directadmin/scripts/custom/dns_*_post.shSi faltan los archivos, ejecute el instalador nuevamente. Si existen pero no son ejecutables:
chmod +x /usr/local/directadmin/scripts/custom/dns_*_post.shAXFR rechazado (BIND) Verifique named.conf para allow-transfer con su IP de SecondDNS:
grep -A3 'allow-transfer' /etc/named.confUn cambio en allow-transfer es un cambio de configuración; aplíquelo con reconfig (rndc reload solo relee los datos de zona):
rndc reconfigAXFR rechazado (PowerDNS) Verifique allow-axfr-ips en pdns.conf:
grep allow-axfr-ips /etc/pdns/pdns.confDespués de cambios, reinicie PowerDNS:
systemctl restart pdnsPuerto TCP 53 bloqueado Ejecute el test nmap de la sección de firewall. Usuarios CSF: verifique que la IP de SecondDNS esté en /etc/csf/csf.allow.
Probar el hook manualmente:
domain=example.com username=admin caller=create:domain /usr/local/directadmin/scripts/custom/dns_create_post.shHook no se activa Verifique que el sistema de hooks de DirectAdmin esté habilitado. Versiones antiguas pueden requerir que active explícitamente el directorio de scripts personalizados.
Desinstalación
Para eliminar la integración:
curl -sL https://raw.githubusercontent.com/seconddns/dns_integrations/main/hosting-panels/directadmin/uninstall.sh | bashEsto elimina los scripts hook y el archivo de configuración. Las zonas en el DNS secundario no se eliminan automáticamente — elimínelas desde el panel SecondDNS o ejecute:
seconddns remove-allantes de desinstalar si desea limpiar el servidor secundario.
Guías relacionadas
Si administra otros paneles de hosting o desea ampliar su configuración de redundancia DNS, consulte:
- Cómo agregar DNS secundario a CyberPanel - Cómo agregar DNS secundario a cPanel/WHM - Cómo agregar DNS secundario a Plesk - Monitoreo de DNS secundario con Nagios - Monitoreo de DNS secundario con Zabbix - Cómo configurar un servidor DNS secundario - Entender las transferencias de zona AXFR - Redundancia DNS: por qué es importante y cómo lograrla