Anleitungen

Sekundäres DNS im cPanel/WHM-Hosting-Panel einrichten

Warum Ihr cPanel-Server ein sekundäres DNS braucht

Secondary-DNS-Server für cPanel — Secondary-DNS-Dienst via REST API

Auf cPanel/WHM-Servern liegen Dutzende oder Hunderte Domains hinter einem einzigen Nameserver. Fällt dieser Server aus, sei es wegen Wartung, eines Hardwaredefekts oder eines DDoS-Angriffs, ist jede gehostete Domain nicht mehr erreichbar. Besucher bekommen DNS-Fehler, E-Mails werden nicht mehr zugestellt, und Dienste laufen in einen Timeout.

Ein sekundärer DNS-Server hält über AXFR (autoritativer Zonentransfer) eine laufend synchronisierte Kopie all Ihrer Zonen vor. Ist der primäre Server nicht erreichbar, beantwortet der sekundäre weiterhin DNS-Anfragen für Ihre Domains. Websites, E-Mail und Dienste bleiben online.

Die meisten Domain-Registrare verlangen mindestens zwei Nameserver, und RFC 2182 empfiehlt für Produktivumgebungen drei. Ein sekundäres DNS ist daher nicht nur Best Practice, sondern für einen zuverlässigen Produktivbetrieb unverzichtbar.

Sie haben noch keinen sekundären Nameserver? SecondDNS stellt einen in einer kostenlosen 3-monatigen Testphase bereit, ohne Kreditkarte — jetzt starten, dann folgen Sie den Schritten unten.

Sekundäres DNS vs. DNS-Clustering für cPanel

cPanel bringt eine eigene DNS-Cluster-Funktion mit (WHM > Clusters > DNS Cluster), die Zonen zwischen Ihren eigenen WHM-Servern synchronisiert. Das ist nützlich, aber nicht dasselbe wie ein unabhängiges sekundäres DNS:

- Ein DNS-Cluster hält Kopien auf Servern vor, die Sie selbst betreiben, oft im selben Netz oder Rechenzentrum. Fällt diese Infrastruktur aus, können alle Knoten zugleich ausfallen. - Ein externes sekundäres DNS wie SecondDNS läuft auf einer eigenständigen Infrastruktur mit eigenem Netz und Anycast-Reichweite. Ist Ihr cPanel-Server oder sein ganzes Rechenzentrum nicht erreichbar, antwortet der sekundäre trotzdem.

Sie können beides betreiben: einen DNS-Cluster für Ihre eigene Redundanz und SecondDNS als externes autoritatives sekundäres DNS, auf das Registrare und Resolver zurückgreifen. Diese Anleitung richtet das externe sekundäre DNS über AXFR ein.

Wie die Sekundär-DNS-Integration funktioniert

Die SecondDNS-Integration für cPanel nutzt das Standardized-Hooks-System von cPanel, also denselben Mechanismus, den cPanel intern für Plugin-Ereignisse verwendet:

1. Wird ein cPanel-Konto angelegt, registriert der Hook die Zone der Hauptdomain per API bei SecondDNS 2. Wird eine Addon-Domain hinzugefügt, registriert der Hook die Zone der Addon-Domain 3. SecondDNS holt sich per AXFR eine vollständige Kopie jeder Zone von Ihrem Server 4. Wird ein cPanel-Konto oder eine Addon-Domain gelöscht, entfernt der Hook die Zone aus SecondDNS

Die Hauptdomain jedes cPanel-Kontos und jede Addon-Domain haben ihre eigene DNS-Zone, daher wird jede einzeln registriert. Alle Zonenänderungen werden über den DNS-NOTIFY-Mechanismus automatisch verteilt. Keine manuellen Schritte, keine Cron-Jobs, keine veralteten Einträge.

BIND- und PowerDNS-Unterstützung

cPanel unterstützt zwei DNS-Backends: BIND (named) und PowerDNS, das in aktuellen cPanel-Versionen die Voreinstellung ist. Der Installer erkennt automatisch, welches davon auf Ihrem Server läuft, und richtet es entsprechend ein.

BIND: Der Installer fügt allow-transfer und also-notify in den options-Block von /etc/named.conf ein. Da cPanel die Zonendeklarationen in named.conf neu aufbaut, ist der globale options-Block der dauerhafte Ort für diese Direktiven, denn cPanel behält ihn über alle Neuaufbauten hinweg bei (siehe Schritt 2).

PowerDNS: Der Installer setzt disable-axfr=no, allow-axfr-ips und also-notify sowie primary=yes (ab PowerDNS 4.5+; ältere Versionen nutzen master=yes). Damit cPanel sie nicht überschreibt, landen sie in einer Drop-in-Include-Datei unter /etc/pdns/pdns.d/ statt in der Haupt-pdns.conf.

Dabei erlaubt allow-transfer (beziehungsweise allow-axfr-ips bei PowerDNS) dem SecondDNS-Server, die Zone abzurufen, und also-notify weist Ihren DNS-Server an, ein NOTIFY zu senden, damit der sekundäre sich nach einer Änderung sofort aktualisiert.

Voraussetzungen für sekundäres DNS mit cPanel

Bevor Sie beginnen, stellen Sie sicher, dass Sie Folgendes haben:

- Eine aktuelle cPanel/WHM-Version (v102 oder neuer) mit BIND oder PowerDNS - Root-Zugriff auf den Server - Einen SecondDNS-API-Key (erhältlich unter seconddns.com/dashboard/api-key) - Die IP Ihres SecondDNS-Nameservers (im Dashboard unter Settings > Nameservers zu finden) - TCP-Port 53 eingehend offen für die IP des SecondDNS-Servers

Das Zonentransfer-Protokoll AXFR nutzt TCP-Port 53, nicht UDP. Viele Firewall-Konfigurationen öffnen für normale DNS-Anfragen nur UDP 53. Ist TCP 53 blockiert, schlagen Zonentransfers stillschweigend fehl, obwohl die normale DNS-Auflösung funktioniert.

TCP-Port 53 für DNS-Zonentransfers öffnen

Öffnen Sie vor dem Ausführen des Installers den TCP-Port 53 für den SecondDNS-Server. Die IP Ihres Nameservers finden Sie im Dashboard unter Settings > Nameservers; ersetzen Sie damit SECONDARY_IP in den folgenden Befehlen.

Wenn Sie die Firewall mit firewalld verwalten:

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="SECONDARY_IP" port port="53" protocol="tcp" accept'
firewall-cmd --reload

Oder mit iptables:

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

Wenn Ihr Server eine in WHM verwaltete Host-Firewall nutzt, fügen Sie eine eingehende Regel hinzu, die TCP-Port 53 von SECONDARY_IP erlaubt.

Um zu prüfen, ob TCP-Port 53 von außen erreichbar ist:

nmap -p 53 -sT YOUR_SERVER_IP

Sekundäres DNS auf cPanel installieren

Führen Sie den Einzeiler als root aus:

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

Der Installer wird: - Ihren API-Key gegen die SecondDNS-API prüfen - Die IP-Adresse Ihres Servers ermitteln (IPv4 und IPv6) - Nachfragen, welche IP verwendet werden soll, falls beide Protokolle verfügbar sind - Ihr DNS-Backend (BIND oder PowerDNS) automatisch erkennen und Sie um Bestätigung bitten - AXFR für das erkannte Backend einrichten - Den SecondDNS-Nameserver zu allen Zonenvorlagen in /var/cpanel/zonetemplates/ hinzufügen, damit jede neue Zone ihn automatisch enthält - 4 WHM-Hooks per manage_hooks registrieren - Anbieten, alle bestehenden cPanel-Konten zu synchronisieren

Ersetzen Sie YOUR_API_KEY durch den Key aus Ihrem SecondDNS-Dashboard.

Hinweis: Diese Integration befindet sich derzeit in der Beta-Phase. Testen Sie sie in einer Staging-Umgebung, bevor Sie sie im Produktivbetrieb ausrollen.

Zonentransfer-Konfiguration prüfen

PowerDNS: Der Installer legt die AXFR-Direktiven als Drop-in-Include unter /etc/pdns/pdns.d/ ab, damit cPanel sie bei einem Neuaufbau nicht überschreibt. Prüfen Sie sie:

grep -rE 'primary|master|disable-axfr|allow-axfr-ips|also-notify' /etc/pdns/pdns.conf /etc/pdns/pdns.d/

Starten Sie PowerDNS nach jeder Änderung neu:

systemctl restart pdns

BIND: cPanel baut die Zonendeklarationen in /etc/named.conf neu auf, behält aber den globalen options-Block bei. Der dauerhafte Ort für die AXFR-Direktiven ist daher innerhalb von options { ... }. Vergewissern Sie sich, dass sie dort stehen (ersetzen Sie SECONDARY_IP durch die IP Ihres Nameservers aus dem Dashboard):

allow-transfer { SECONDARY_IP; };
also-notify { SECONDARY_IP; };

Der Installer fügt diese automatisch in den options-Block ein. Wenden Sie die Änderung nach dem Bearbeiten von named.conf so an:

rndc reconfig

Wenn Transfers zunächst funktionieren und nach einem cPanel-Neuaufbau abbrechen, standen die Direktiven in einer Zonen-Klausel statt im options-Block. Verschieben Sie sie nach options { }, damit sie erhalten bleiben.

Bestehende Domains mit sekundärem DNS synchronisieren

Der Installer bietet während der Installation an, alle bestehenden cPanel-Konten zu synchronisieren. Wenn Sie diesen Schritt übersprungen haben, führen Sie die Synchronisation später aus:

seconddns sync

Dies vergleicht Ihre lokalen Zonen mit SecondDNS und fügt alle fehlenden hinzu. Der Befehl ist idempotent und lässt sich gefahrlos mehrfach ausführen. Um eine einzelne Zone zu prüfen oder alles auf dem sekundären aufzulisten:

seconddns status example.com
seconddns list

Die Änderung an der Zonenvorlage (das Hinzufügen des sekundären NS-Eintrags) wirkt sich nur auf neue Zonen aus, die nach der Installation angelegt werden. Fügen Sie bei bestehenden Domains den NS-Eintrag manuell über WHM > DNS Functions > Edit DNS Zone hinzu, oder lassen Sie die Synchronisation die Zonen auf dem sekundären registrieren.

cPanel-Sekundär-DNS-Einrichtung prüfen

Legen Sie in WHM ein Testkonto an und beobachten Sie das Hook-Log:

tail -f /var/log/seconddns.log

Sie sollten Folgendes sehen:

Zone created: testdomain.com (cpanel hook)
[+] Zone testdomain.com added to SecondDNS

Fragen Sie anschließend beide Nameserver ab. Ersetzen Sie SECONDARY_IP durch die IP Ihres Nameservers aus dem Dashboard:

dig @YOUR_SERVER_IP testdomain.com SOA +short
dig @SECONDARY_IP testdomain.com SOA +short

Beide sollten dieselbe SOA-Seriennummer im Format YYYYMMDDNN zurückgeben. Zeigt der sekundäre eine niedrigere Seriennummer oder gibt SERVFAIL zurück, prüfen Sie den Zugriff auf TCP-Port 53 und das Hook-Log.

Unterstützte cPanel-DNS-Ereignisse

Die Integration registriert Hooks für diese cPanel-Ereignisse:

- Kontoanlage (die Zone der Hauptdomain des Kontos) - Kontoentfernung - Anlage einer Addon-Domain - Entfernung einer Addon-Domain

Die Hauptdomain jedes cPanel-Kontos und jede Addon-Domain haben ihre eigene DNS-Zone. Subdomains und geparkte Domains liegen als Einträge innerhalb der Zone der übergeordneten Domain, daher gelangen sie zusammen mit dem Transfer der übergeordneten Zone zum sekundären; sie werden nicht einzeln registriert.

Fehlerbehebung für cPanel-Sekundär-DNS

Zone erscheint nicht auf dem sekundären Prüfen Sie das Log unter /var/log/seconddns.log. Vergewissern Sie sich, dass die Hooks registriert sind:

/usr/local/cpanel/bin/manage_hooks list

Sie sollten 4 SecondDNS-Hooks sehen (Accounts::Create, Accounts::Remove, AddonDomain::addaddon, AddonDomain::deladdondomain). Fehlen sie, führen Sie den Installer erneut aus.

AXFR abgelehnt (BIND) Stellen Sie sicher, dass allow-transfer im options-Block von /etc/named.conf steht und nicht in einer einzelnen Zonen-Klausel. Der options-Block ist das, was einen cPanel-Neuaufbau überlebt. Wenden Sie Änderungen mit rndc reconfig an.

AXFR abgelehnt (PowerDNS) Prüfen Sie allow-axfr-ips in /etc/pdns/pdns.conf und starten Sie PowerDNS neu:

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

Verbindungs-Timeout Vergewissern Sie sich, dass TCP-Port 53 zwischen Ihrem Server und SecondDNS offen ist. AXFR nutzt TCP, nicht UDP. Die häufigste Ursache fehlgeschlagener Transfers ist ein an der Firewall blockierter TCP-Port 53 bei offenem UDP 53.

Einen Hook manuell testen

echo '{"domain":"example.com"}' | bash /usr/local/bin/seconddns-cpanel-domain_create.sh

Deinstallieren

Um die Integration zu entfernen:

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

Dies entfernt die WHM-Hooks, die Skripte und die Konfigurationsdatei. Es entfernt außerdem den SecondDNS-NS-Eintrag aus den Zonenvorlagen. Ihre Zonen auf dem sekundären DNS werden nicht automatisch gelöscht; entfernen Sie sie über das SecondDNS-Dashboard oder führen Sie:

seconddns remove-all

vor der Deinstallation aus, wenn Sie sie vom sekundären entfernen möchten.

Hinweis: Die Direktiven allow-transfer / also-notify im options-Block der named.conf (BIND) oder im Drop-in unter /etc/pdns/pdns.d/ (PowerDNS) aus Schritt 2 werden vom Uninstaller nicht entfernt. Löschen Sie sie manuell, wenn Sie sie nicht mehr brauchen.