Cómo añadir DNS secundario al panel de hosting cPanel/WHM
Por qué su servidor cPanel necesita un DNS secundario

Los servidores cPanel/WHM alojan decenas o cientos de dominios en un único nameserver. Si ese servidor deja de estar disponible (por mantenimiento, un fallo de hardware o un ataque DDoS), todos los dominios alojados quedan fuera de servicio. Los visitantes reciben errores de DNS, el correo deja de entregarse y los servicios agotan el tiempo de espera.
Un servidor de DNS secundario mantiene una copia sincronizada de todas sus zonas mediante AXFR (transferencia de zona autoritativa). Cuando el primario no está disponible, el secundario sigue respondiendo a las consultas DNS de sus dominios. Así, los sitios web, el correo y los servicios siguen activos.
La mayoría de los registradores de dominios exigen al menos dos nameservers, y la RFC 2182 recomienda tres para entornos de producción. Añadir un DNS secundario no es solo una buena práctica: es esencial para la fiabilidad en 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.
DNS secundario frente a clustering de DNS para cPanel
cPanel incluye una función de DNS Cluster integrada (WHM > Clusters > DNS Cluster) que sincroniza las zonas entre sus propios servidores WHM. Es útil, pero no equivale a un DNS secundario independiente:
- Un DNS cluster mantiene copias en servidores que usted mismo administra, a menudo en la misma red o centro de datos. Si esa infraestructura sufre una caída, todos los nodos pueden caer a la vez. - Un secundario externo como SecondDNS reside en una infraestructura aparte, con su propia red y alcance anycast. Cuando su servidor cPanel, o todo su centro de datos, no está disponible, el secundario sigue respondiendo.
Puede usar ambos: un DNS cluster para su propia redundancia y SecondDNS como secundario autoritativo externo al que recurren los registradores y los resolutores. Esta guía configura el secundario externo mediante AXFR.
Cómo funciona la integración de DNS secundario
La integración de SecondDNS para cPanel utiliza el sistema de Standardized Hooks de cPanel, el mismo mecanismo que cPanel emplea internamente para los eventos de sus plugins:
1. Cuando se crea una cuenta de cPanel, el Hook registra la zona del dominio principal en SecondDNS a través de la API. 2. Cuando se añade un dominio adicional, el Hook registra la zona de ese dominio adicional. 3. SecondDNS obtiene una copia completa de cada zona desde su servidor mediante AXFR. 4. Cuando se elimina una cuenta de cPanel o un dominio adicional, el Hook elimina la zona de SecondDNS.
El dominio principal de cada cuenta de cPanel y cada dominio adicional tienen su propia zona DNS, por lo que cada uno se registra por separado. Todos los cambios en las zonas se propagan automáticamente mediante el mecanismo DNS NOTIFY. Sin pasos manuales, sin cron jobs y sin registros desactualizados.
Compatibilidad con BIND y PowerDNS
cPanel admite dos backends de DNS: BIND (named) y PowerDNS, que es el backend predeterminado en las versiones actuales de cPanel. El Installer detecta automáticamente cuál se está ejecutando en su servidor y lo configura en consecuencia.
BIND: el Installer añade allow-transfer y also-notify al bloque options de /etc/named.conf. Como cPanel reconstruye las declaraciones de zona en named.conf, el lugar estable para estas directivas es el bloque global options, que cPanel conserva entre reconstrucciones (vea el Paso 2).
PowerDNS: el Installer define disable-axfr=no, allow-axfr-ips y also-notify, además de primary=yes (en PowerDNS 4.5 y posteriores; las versiones anteriores usan master=yes). Para evitar que cPanel los modifique, se colocan en un include adicional dentro de /etc/pdns/pdns.d/ en lugar del pdns.conf principal.
Aquí allow-transfer (o allow-axfr-ips en PowerDNS) concede al servidor SecondDNS permiso para obtener la zona, y also-notify le indica a su servidor DNS que envíe un NOTIFY para que el secundario se actualice de inmediato tras un cambio.
Requisitos de DNS secundario para cPanel
Antes de empezar, asegúrese de tener:
- Una versión actual de cPanel/WHM (v102 o posterior) con BIND o PowerDNS - Acceso root al servidor - Una clave de API de SecondDNS (consígala en seconddns.com/dashboard/api-key) - La IP de su nameserver de SecondDNS (la encontrará en el dashboard, en Settings > Nameservers) - El puerto TCP 53 abierto de entrada para la IP del servidor SecondDNS
El protocolo de transferencia de zona AXFR usa el puerto TCP 53, no UDP. Muchas configuraciones de firewall solo abren UDP 53 para las consultas DNS habituales. Si el puerto TCP 53 está bloqueado, las transferencias de zona fallan sin dar error, aunque la resolución DNS normal siga funcionando.
Abrir el puerto TCP 53 para transferencias de zona DNS
Antes de ejecutar el Installer, abra el puerto TCP 53 para el servidor SecondDNS. Busque la IP de su nameserver en el dashboard, en Settings > Nameservers, y luego sustituya SECONDARY_IP en los comandos siguientes.
Si administra el firewall con firewalld:
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="SECONDARY_IP" port port="53" protocol="tcp" accept'
firewall-cmd --reloadO con iptables:
iptables -I INPUT -s SECONDARY_IP -p tcp --dport 53 -j ACCEPTSi su servidor usa un firewall de host administrado desde WHM, añada una regla de entrada que permita el puerto TCP 53 desde SECONDARY_IP.
Para comprobar que el puerto TCP 53 es accesible desde el exterior:
nmap -p 53 -sT YOUR_SERVER_IPInstalar DNS secundario en cPanel
Ejecute el comando de una sola línea como root:
curl -sL https://raw.githubusercontent.com/seconddns/dns_integrations/main/hosting-panels/cpanel/install.sh | bash -s -- --api-key=YOUR_API_KEYEl Installer hará lo siguiente: - Verificar su clave de API contra la API de SecondDNS - Detectar la IP de su servidor (IPv4 e IPv6) - Preguntarle qué IP usar si ambos protocolos están disponibles - Detectar automáticamente su backend de DNS (BIND o PowerDNS) y pedirle que lo confirme - Configurar AXFR para el backend detectado - Añadir el nameserver de SecondDNS a todas las plantillas de zona en /var/cpanel/zonetemplates/ para que cada nueva zona lo incluya automáticamente - Registrar 4 hooks de WHM mediante manage_hooks - Ofrecerse a sincronizar todas las cuentas de cPanel existentes
Sustituya YOUR_API_KEY por la clave de su dashboard de SecondDNS.
Nota: esta integración está actualmente en Beta. Pruébela en un entorno de staging antes de desplegarla en producción.
Verificar la configuración de transferencia de zona
PowerDNS: el Installer añade las directivas de AXFR como un include adicional dentro de /etc/pdns/pdns.d/ para que cPanel no las sobrescriba en una reconstrucción. Verifíquelas:
grep -rE 'primary|master|disable-axfr|allow-axfr-ips|also-notify' /etc/pdns/pdns.conf /etc/pdns/pdns.d/Después de cualquier cambio, reinicie PowerDNS:
systemctl restart pdnsBIND: cPanel reconstruye las declaraciones de zona en /etc/named.conf, pero conserva el bloque global options. Por eso el lugar estable para las directivas de AXFR es dentro de options { ... }. Confirme que están ahí (sustituya SECONDARY_IP por la IP de su nameserver del dashboard):
allow-transfer { SECONDARY_IP; };
also-notify { SECONDARY_IP; };El Installer las añade al bloque options automáticamente. Tras editar named.conf, aplique el cambio con:
rndc reconfigSi las transferencias funcionan al principio y se rompen tras una reconstrucción de cPanel, es que las directivas se colocaron en una cláusula de zona en lugar del bloque options: muévalas a options { } para que sobrevivan.
Sincronizar dominios existentes con DNS secundario
El Installer se ofrece a sincronizar todas las cuentas de cPanel existentes durante la instalación. Si omitió ese paso, ejecute la sincronización más tarde:
seconddns syncEsto compara sus zonas locales con SecondDNS y añade las que falten. El comando es idempotente: puede ejecutarlo varias veces sin problema. Para comprobar una sola zona o listar todo lo que hay en el secundario:
seconddns status example.com
seconddns listEl cambio en la plantilla de zona (añadir el registro NS del secundario) solo afecta a las zonas nuevas creadas tras la instalación. Para los dominios existentes, añada el registro NS manualmente desde WHM > DNS Functions > Edit DNS Zone, o deje que la sincronización registre las zonas en el secundario.
Verificar la configuración de DNS secundario en cPanel
Cree una cuenta de prueba en WHM y observe el registro del Hook:
tail -f /var/log/seconddns.logDebería ver:
Zone created: testdomain.com (cpanel hook)
[+] Zone testdomain.com added to SecondDNSLuego consulte ambos nameservers. Sustituya SECONDARY_IP por la IP de su nameserver del dashboard:
dig @YOUR_SERVER_IP testdomain.com SOA +short
dig @SECONDARY_IP testdomain.com SOA +shortAmbos deberían devolver el mismo serial SOA en formato YYYYMMDDNN. Si el secundario muestra un serial menor o devuelve SERVFAIL, revise el acceso al puerto TCP 53 y el registro del Hook.
Eventos DNS de cPanel compatibles
La integración registra hooks para estos eventos de cPanel:
- Creación de cuenta (la zona del dominio principal de la cuenta) - Eliminación de cuenta - Creación de dominio adicional - Eliminación de dominio adicional
El dominio principal de cada cuenta de cPanel y cada dominio adicional tienen su propia zona DNS. Los subdominios y los dominios aparcados residen como registros dentro de la zona del dominio padre, así que se propagan al secundario con la transferencia de la zona del padre: no se registran por separado.
Solución de problemas de DNS secundario en cPanel
La zona no aparece en el secundario Revise el registro en /var/log/seconddns.log. Verifique que los hooks estén registrados:
/usr/local/cpanel/bin/manage_hooks listDebería ver 4 hooks de SecondDNS (Accounts::Create, Accounts::Remove, AddonDomain::addaddon, AddonDomain::deladdondomain). Si faltan, vuelva a ejecutar el Installer.
AXFR rechazado (BIND) Asegúrese de que allow-transfer esté dentro del bloque options de /etc/named.conf, no en una cláusula de zona individual. El bloque options es el que sobrevive a una reconstrucción de cPanel. Aplique los cambios con rndc reconfig.
AXFR rechazado (PowerDNS) Revise allow-axfr-ips en /etc/pdns/pdns.conf y reinicie PowerDNS:
grep allow-axfr-ips /etc/pdns/pdns.conf
systemctl restart pdnsTiempo de espera de conexión agotado Compruebe que el puerto TCP 53 esté abierto entre su servidor y SecondDNS. AXFR usa TCP, no UDP. La causa más común de las transferencias fallidas es tener el TCP 53 bloqueado en el firewall mientras el UDP 53 está abierto.
Probar un hook manualmente
echo '{"domain":"example.com"}' | bash /usr/local/bin/seconddns-cpanel-domain_create.shDesinstalación
Para eliminar la integración:
curl -sL https://raw.githubusercontent.com/seconddns/dns_integrations/main/hosting-panels/cpanel/uninstall.sh | bashEsto elimina los hooks de WHM, los scripts y el archivo de configuración. También elimina la entrada NS de SecondDNS de las plantillas de zona. Sus zonas en el DNS secundario no se eliminan automáticamente: bórrelas desde el dashboard de SecondDNS o ejecute:
seconddns remove-allantes de desinstalar si quiere borrarlas del secundario.
Nota: las directivas allow-transfer y also-notify del bloque options de named.conf (BIND) o el include adicional en /etc/pdns/pdns.d/ (PowerDNS) del Paso 2 no las elimina el desinstalador. Bórrelas manualmente si ya no las necesita.
Guías relacionadas
Si administra otros paneles de hosting o quiere ampliar su configuración de redundancia DNS, consulte:
- Cómo añadir DNS secundario a DirectAdmin - Cómo añadir DNS secundario a Plesk - Cómo añadir DNS secundario a CyberPanel - Monitorización de DNS secundario con Nagios - Monitorización 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