Guías

Cómo agregar DNS secundario al panel de hosting CyberPanel

Por qué CyberPanel necesita un DNS secundario

Servidor DNS secundario para CyberPanel — servicio DNS secundario via REST API

CyberPanel utiliza PowerDNS como su servidor DNS integrado. Por defecto, todos sus dominios dependen de un único servidor de nombres. Si ese servidor cae — durante un reinicio, actualización del kernel, ataque DDoS o fallo de hardware — cada dominio alojado en él se vuelve inaccesible. Los visitantes reciben errores de resolución DNS, la entrega de correo falla y las llamadas a la API agotan el tiempo de espera (timeout).

Agregar un servidor DNS secundario elimina este punto único de fallo. Cada zona se replica automáticamente mediante AXFR (transferencia de zona autoritativa), por lo que su DNS sigue respondiendo consultas incluso cuando el servidor primario no está disponible o está en mantenimiento.

Los registradores de dominios requieren al menos dos servidores de nombres, y el RFC 2182 recomienda tres para entornos de producción. Sin un DNS secundario, basta un solo fallo para provocar una interrupción total de DNS que afecta a todos los dominios del servidor.

¿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 CyberPanel

CyberPanel ejecuta PowerDNS, no BIND. Esto importa porque el enfoque de configuración es diferente al que describen la mayoría de los tutoriales de DNS secundario.

En PowerDNS, los datos DNS se almacenan en una base de datos MySQL (tablas domains y records de la base cyberpanel) en lugar de archivos de zona en texto plano. PowerDNS lee y escribe a través del backend de base de datos. Esto significa que no puede simplemente editar un archivo named.conf para configurar transferencias de zona — necesita actualizar la configuración de PowerDNS en pdns.conf y usar las utilidades de PowerDNS (pdnsutil).

Al configurar DNS secundario para CyberPanel, le está indicando a PowerDNS que:

1. Marque cada zona como MASTER para que PowerDNS envíe mensajes NOTIFY cuando cambie una zona 2. Permita que la IP del servidor SecondDNS realice solicitudes AXFR (allow-axfr-ips) 3. Actualice el serial SOA en un formato que active la actualización de zona en el servidor secundario

El plugin SecondDNS maneja todo esto automáticamente interceptando los eventos de creación y eliminación de dominios de CyberPanel.

Cómo funciona la integración de DNS secundario

El plugin SecondDNS para CyberPanel se integra en el flujo de creación y eliminación de dominios. Cuando agrega un nuevo dominio en CyberPanel, el plugin automáticamente:

1. Cambia el tipo de zona de NATIVE a MASTER para que PowerDNS envíe NOTIFY al servidor secundario cuando la zona cambie (el propio AXFR se permite mediante allow-axfr-ips) 2. Actualiza el serial SOA al formato estándar YYYYMMDDNN 3. Registra la zona en SecondDNS via API para que el servidor secundario descargue una copia completa

Cuando elimina un dominio, el plugin lo elimina del servidor secundario. Sin pasos manuales, sin zonas huérfanas, sin registros obsoletos.

Después de la configuración, su servidor de nombres SecondDNS asignado mantiene una copia de solo lectura de cada zona y responde consultas DNS con plena autoridad. El hostname y la IP de su servidor de nombres se muestran en el panel SecondDNS bajo Settings > Nameservers.

Requisitos de DNS secundario para CyberPanel

Antes de comenzar, asegúrese de tener:

- CyberPanel v2.x o posterior con PowerDNS - Acceso root (sudo) al servidor - git instalado en el servidor - Una clave API de SecondDNS (obténgala en seconddns.com/dashboard/api-key) - La IP de su servidor de nombres SecondDNS (encuéntrela 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, verifique que el puerto TCP 53 sea accesible desde el servidor SecondDNS. Encuentre la IP de su servidor de nombres en el panel SecondDNS bajo Settings > Nameservers, luego reemplace SECONDARY_IP en los siguientes comandos.

Si usa UFW:

ufw allow from SECONDARY_IP to any port 53 proto tcp
ufw reload

Si usa iptables:

iptables -I INPUT -s SECONDARY_IP -p tcp --dport 53 -j ACCEPT

Para verificar que el puerto TCP 53 es accesible desde el exterior:

nmap -p 53 -sT YOUR_SERVER_IP

El instalador agrega automáticamente la IP correcta a allow-axfr-ips de PowerDNS cuando proporciona su clave API — lee su servidor de nombres asignado desde la API de SecondDNS.

Instalar DNS secundario en CyberPanel

Ejecute como root:

curl -sL https://raw.githubusercontent.com/seconddns/dns_integrations/main/hosting-panels/cyberpanel/install.sh | bash -s -- --api-key=YOUR_API_KEY

El instalador: - Verifica su clave API - Detecta la IP del servidor (IPv4 e IPv6) - Instala la herramienta CLI y el plugin de CyberPanel - Configura PowerDNS para AXFR (modo master, allow-axfr-ips apuntando a su IP SecondDNS asignada, formato de serial SOA) - Ofrece reiniciar CyberPanel para activar el plugin

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.

Corregir el esquema de PowerDNS en CyberPanel

CyberPanel v2.4.5 incluye un esquema de base de datos de PowerDNS desactualizado. Dos columnas faltantes causan que PowerDNS se bloquee al actualizar zonas. Ejecute estas consultas SQL en la consola MySQL:

mysql -e "ALTER TABLE cyberpanel.domains ADD COLUMN options TEXT DEFAULT NULL;"
mysql -e "ALTER TABLE cyberpanel.domains ADD COLUMN catalog VARCHAR(255) DEFAULT NULL;"

Luego reinicie PowerDNS:

systemctl restart pdns

Si una columna ya existe, el comando mostrará un error de columna duplicada sin consecuencias — puede ignorarlo. Este paso solo es necesario para CyberPanel v2.4.5.

Configurar servidores de nombres en CyberPanel

Vaya a CyberPanel > DNS > Create/Edit Nameservers y configure:

- NS1: su servidor de nombres primario (ej. ns1.yourdomain.com) - NS2: el hostname de su servidor de nombres SecondDNS (en el panel bajo Settings > Nameservers)

Si tiene el complemento Personalized NS, use su hostname de marca (ej. ns2.yourdomain.com). Esto asegura que cada nueva zona incluya el servidor de nombres secundario correcto en sus registros NS.

Sincronizar dominios existentes con DNS secundario

Si ya tenía dominios en CyberPanel antes de la instalación, sincronícelos con el DNS secundario:

seconddns sync

Esto compara sus zonas locales con el servidor secundario y agrega las faltantes. Los dominios eliminados localmente se eliminan del secundario. El comando sync es idempotente — puede ejecutarlo varias veces sin generar duplicados.

Para verificar el estado de una zona específica:

seconddns status example.com

Verificar la configuración de DNS secundario en CyberPanel

Cree un dominio de prueba en CyberPanel y confirme que aparece en el servidor secundario:

seconddns list

Luego consulte ambos servidores de nombres para confirmar la transferencia de zona. Reemplace SECONDARY_IP con la IP de su servidor de nombres del panel:

dig @YOUR_PRIMARY_SERVER_IP example.com SOA +short
dig @SECONDARY_IP example.com SOA +short

Ambos comandos deben devolver el mismo serial SOA en formato YYYYMMDDNN. Si el secundario muestra un serial menor, la transferencia de zona aún no se ha completado — espere 30 segundos y reintente.

Si el secundario devuelve SERVFAIL o no responde, verifique las reglas de firewall para el puerto TCP 53. La causa más común de transferencias fallidas es TCP 53 bloqueado a nivel de firewall mientras UDP 53 está abierto.

Solución de problemas de DNS secundario en CyberPanel

La zona no aparece en el secundario Revise el log del plugin en /var/log/seconddns.log. Asegúrese de que CyberPanel fue reiniciado después de la instalación. Verifique la validez de la clave API:

seconddns status

AXFR rechazado PowerDNS está rechazando la solicitud de transferencia de zona. El instalador configura allow-axfr-ips automáticamente, pero los cambios manuales en pdns.conf pueden sobrescribirlo. Verifique el valor actual:

grep allow-axfr-ips /etc/pdns/pdns.conf

El valor debe coincidir con la IP de su servidor de nombres SecondDNS (del panel). Si no, actualícelo y reinicie PowerDNS:

systemctl restart pdns

El serial SOA se mantiene en 1 El plugin actualiza el serial después de crear la zona. Si la zona fue creada antes de instalar el plugin, ejecute:

seconddns sync

o fuerce una actualización manual del serial:

pdnsutil increase-serial YOURDOMAIN.COM

PowerDNS se bloquea al actualizar la zona Aplique la corrección de esquema del Paso 2. Este es un problema conocido de CyberPanel v2.4.5.

El plugin no se activa Verifique que el bloque de signals existe en el punto de entrada de CyberPanel. Ejecute el instalador nuevamente para volver a registrar los signals del plugin — esto es seguro para una instalación existente.

La prueba de puerto TCP 53 falla Ejecute el test nmap de la sección de firewall. Si TCP 53 está bloqueado, agregue la regla para la IP de su servidor de nombres SecondDNS (del panel) y reintente la transferencia.

La transferencia de zona expira (timeout) Las zonas grandes pueden tardar más. Verifique el tamaño de la zona:

pdnsutil list-zone YOURDOMAIN.COM | wc -l

Las zonas con más de 10.000 registros pueden tardar varios minutos en la transferencia inicial.

Desinstalación

Para eliminar la integración:

curl -sL https://raw.githubusercontent.com/seconddns/dns_integrations/main/hosting-panels/cyberpanel/uninstall.sh | bash

Esto elimina el CLI, el plugin, el registro de signals y el hook de systemd. Sus zonas en el servidor secundario no se eliminan automáticamente — elimínelas desde el panel SecondDNS o ejecute:

seconddns remove-all

antes de desinstalar si desea limpiar el servidor secundario.