Sekundären DNS zum DirectAdmin Hosting-Panel hinzufügen
Warum Ihr DirectAdmin-Server einen sekundären DNS braucht

DirectAdmin verwendet BIND (named) als DNS-Server. Standardmäßig hängen alle Domains von einem einzelnen Nameserver ab. Fällt dieser aus — bei Wartung, Hardware-Ausfall oder DDoS-Angriff — wird jede Domain unerreichbar. Besucher erhalten DNS-Fehler, E-Mails werden nicht zugestellt und Dienste laufen in ein Timeout.
Ein sekundärer DNS-Server hält eine synchronisierte Kopie aller Zonen via AXFR. Wenn der primäre nicht verfügbar ist, beantwortet der sekundäre weiterhin DNS-Anfragen. Ihre Websites, E-Mails und Dienste bleiben online.
Die meisten Domain-Registrare verlangen mindestens zwei Nameserver, RFC 2182 empfiehlt drei. Sekundärer DNS ist nicht nur Best Practice — im Produktivbetrieb ist er für einen zuverlässigen Betrieb 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.
Wie DNS in DirectAdmin funktioniert
DirectAdmin schreibt seine Zonen für BIND (named); ein anderes DNS-Backend hat das Panel nicht.
BIND (named): Zonen werden als Zonendateien unter /etc/named/ oder /var/named/ gespeichert. Zonentransfers werden in named.conf konfiguriert: allow-transfer erteilt dem sekundären Server die Berechtigung, die Zone abzuholen, und also-notify lässt BIND ein NOTIFY senden, damit der sekundäre Server die Zone sofort aktualisiert. Dies ist der traditionelle Ansatz, den die meisten Anleitungen beschreiben.
In beiden Fällen verwaltet DirectAdmin DNS über Hook-Skripte. Wenn Sie eine Domain erstellen oder löschen, ruft DirectAdmin Skripte in /usr/local/directadmin/scripts/custom/ auf. Die SecondDNS-Integration installiert eigene Hooks an diesem Ort, um Zonen automatisch zu registrieren und zu entfernen — keine manuelle Zonenverwaltung erforderlich.
Wie die Sekundär-DNS-Integration funktioniert
Die SecondDNS-Integration für DirectAdmin verwendet Hook-Skripte, die DirectAdmin automatisch nach DNS-Ereignissen aufruft:
1. Beim Erstellen einer Domain oder eines Domain-Pointers — registriert der Hook die Zone bei SecondDNS über die API 2. SecondDNS lädt eine vollständige Kopie der Zone per AXFR 3. Beim Löschen einer Domain — entfernt der Hook sie aus SecondDNS
Alle Zonenänderungen werden automatisch über den NOTIFY-Mechanismus propagiert.
Voraussetzungen für sekundäres DNS mit DirectAdmin
Stellen Sie vor Beginn sicher, dass Sie Folgendes haben:
- DirectAdmin 1.6 oder neuer mit BIND/named - Root-Zugriff (sudo) auf den Server - Einen SecondDNS API-Schlüssel (unter seconddns.com/dashboard/api-key) - Die IP Ihres SecondDNS-Nameservers (im Dashboard unter Settings > Nameservers) - TCP-Port 53 eingehend für Anfragen der SecondDNS-IP freigegeben
Das Zonentransferprotokoll AXFR verwendet TCP-Port 53, nicht UDP. Viele Firewall-Konfigurationen öffnen nur UDP 53 für reguläre DNS-Anfragen. Wenn TCP 53 gesperrt ist, schlagen Zonentransfers stillschweigend fehl, auch wenn die normale DNS-Auflösung funktioniert.
TCP-Port 53 für DNS-Zonentransfers öffnen
Öffnen Sie vor dem Ausführen des Installers TCP-Port 53 für den SecondDNS-Server. Die IP finden Sie im Dashboard unter Settings > Nameservers. Ersetzen Sie SECONDARY_IP in den Befehlen.
Falls Sie UFW verwenden:
ufw allow from SECONDARY_IP to any port 53 proto tcp
ufw reloadFalls Sie iptables verwenden:
iptables -I INPUT -s SECONDARY_IP -p tcp --dport 53 -j ACCEPTFalls Sie nftables verwenden:
nft add rule inet filter input ip saddr SECONDARY_IP tcp dport 53 acceptUm zu prüfen, ob TCP-Port 53 von außen erreichbar ist:
nmap -p 53 -sT YOUR_SERVER_IPDer Installer konfiguriert allow-transfer automatisch auf Ihre SecondDNS-IP.
Sekundäres DNS auf DirectAdmin installieren
Als root ausführen:
curl -sL https://raw.githubusercontent.com/seconddns/dns_integrations/main/hosting-panels/directadmin/install.sh | bash -s -- --api-key=YOUR_API_KEYDer Installer wird: - Ihren API-Schlüssel über die SecondDNS API prüfen - Die Server-IP erkennen (IPv4 und IPv6) - Fragen, welches Protokoll zu verwenden ist, wenn beide verfügbar sind - named.conf finden und vor dem Bearbeiten sichern - Zonentransfers automatisch konfigurieren (allow-transfer erteilt die Berechtigung, also-notify aktiviert NOTIFY für BIND) - Hook-Skripte nach /usr/local/directadmin/scripts/custom/ installieren - Anbieten, bestehende Domains zu synchronisieren
Ersetzen Sie YOUR_API_KEY durch den Schlüssel aus Ihrem SecondDNS-Dashboard. Der Installer beendet sich mit einem Fehlercode, wenn ein Schritt fehlschlägt.
Nameserver in DirectAdmin konfigurieren
Registrieren Sie nach der Installation den sekundären Nameserver in DirectAdmin.
Option 1: Über das DirectAdmin-Panel (empfohlen) Melden Sie sich als Admin an → Server Manager → Name Servers. Setzen Sie NS2 auf den Hostnamen Ihres SecondDNS-Nameservers (im Dashboard unter Settings > Nameservers). Mit dem Personalized NS Add-on verwenden Sie Ihren gebrandeten Hostnamen (z.B. ns2.yourdomain.com). Diese Einstellung wird automatisch für alle neuen Domains übernommen.
Option 2: DNS-Vorlage direkt bearbeiten
vi /usr/local/directadmin/data/templates/custom/dns_zone.confFalls das Verzeichnis nicht existiert, erstellen Sie es:
mkdir -p /usr/local/directadmin/data/templates/custom
cp /usr/local/directadmin/data/templates/dns_zone.conf /usr/local/directadmin/data/templates/custom/Fügen Sie einen NS-Eintrag hinzu, der auf Ihren SecondDNS-Nameserver-Hostnamen zeigt. Für bestehende Domains verwenden Sie das DNS-Management oder die Massen-DNS-Update-Funktion von DirectAdmin.
Bestehende Domains mit sekundärem DNS synchronisieren
Wenn Sie vor der Installation bereits Domains in DirectAdmin hatten, synchronisieren Sie diese:
seconddns syncDies vergleicht Ihre lokalen Zonen mit SecondDNS und fügt fehlende hinzu. Der Befehl ist idempotent — sicher mehrfach ausführbar, ohne Duplikate zu erzeugen.
Um den Status einer bestimmten Zone zu prüfen:
seconddns status example.comUm alle Zonen auf dem sekundären Server aufzulisten:
seconddns listLöschen ist getrennt: `seconddns sync` fügt nur hinzu. Um auch Zonen zu entfernen, die dieses Panel nicht mehr bedient, führen Sie `seconddns sync --prune` aus — der Befehl verweigert den Dienst, wenn er mehr als die Hälfte der Zonen dieses Servers löschen würde, denn so sieht ein nicht lesbares Panel aus.
DirectAdmin-Sekundär-DNS-Einrichtung prüfen
Erstellen Sie eine Test-Domain in DirectAdmin und beobachten Sie das Hook-Log:
tail -f /var/log/seconddns.logSie sollten Folgendes sehen:
Zone created: testdomain.com (caller=create:domain, user=admin)
[+] Zone testdomain.com added to SecondDNSFragen Sie dann beide Nameserver ab. Ersetzen Sie SECONDARY_IP durch Ihre Nameserver-IP aus dem Dashboard:
dig @YOUR_SERVER_IP testdomain.com SOA +short
dig @SECONDARY_IP testdomain.com SOA +shortBeide sollten die gleiche SOA-Seriennummer im Format YYYYMMDDNN zurückgeben. Wenn der sekundäre eine niedrigere Seriennummer zeigt oder SERVFAIL zurückgibt, prüfen Sie den TCP-Port-53-Zugang und das Hook-Log.
Unterstützte Domain-Typen
Die Integration behandelt alle DirectAdmin-Domain-Typen:
- Hauptdomains (create:domain) - DNS-Zonen (create:zone) - Domain-Pointer (create:pointer) - Umbenannte Domains (`domain_change_post`) — DirectAdmin löst bei einer Umbenennung kein DNS-Erstellungsereignis aus, daher entfernt ein eigener Hook die alte Zone und registriert die neue
Bei jedem dieser Typen wird der Hook automatisch ausgelöst, sobald er über das DirectAdmin-Panel oder die API erstellt oder gelöscht wird. Der Hook empfängt den Domainnamen, Benutzernamen und den Caller-Typ von DirectAdmin und leitet sie an SecondDNS weiter.
Wenn SecondDNS nicht erreichbar ist
Zonenänderungen gehen nie direkt an die API. Jeder Hook schreibt den Vorgang in eine lokale Warteschlange, ein Hintergrunddienst liefert ihn der Reihe nach aus und wiederholt den Versuch mit wachsender Verzögerung, solange SecondDNS nicht erreichbar ist — ein Wartungsfenster oder eine Netzstörung kostet nichts, und keine Aktion Ihrer Kunden im Panel geht verloren.
Den Zustand der Warteschlange können Sie jederzeit abfragen:
seconddns statuspending=0 failed=0 oldest_age_seconds=0 last_error=Ein `pending` über null zusammen mit `last_error` bedeutet, dass die Auslieferung wartet, nicht dass etwas verloren ging. `failed` sind Vorgänge, die SecondDNS abgelehnt hat; `seconddns-queue retry --all` stellt sie erneut ein.
Fehlerbehebung für DirectAdmin-Sekundär-DNS
Zone erscheint nicht auf dem sekundären Server Prüfen Sie das Hook-Log /var/log/seconddns.log. Stellen Sie sicher, dass Hooks installiert sind und die Ausführungsrechte gesetzt sind:
ls -la /usr/local/directadmin/scripts/custom/{dns_create_post,dns_delete_post,domain_change_post}.shFehlen die Dateien, führen Sie den Installer erneut aus. Falls die Ausführungsrechte fehlen:
chmod +x /usr/local/directadmin/scripts/custom/{dns_create_post,dns_delete_post,domain_change_post}.shAXFR abgelehnt (BIND) Prüfen Sie named.conf auf allow-transfer mit Ihrer SecondDNS-IP:
grep -A3 'allow-transfer' /etc/named.confEine Änderung an allow-transfer ist eine Konfigurationsänderung; wenden Sie sie mit reconfig an (rndc reload liest nur Zonendaten neu):
rndc reconfigTCP-Port 53 gesperrt Führen Sie den nmap-Test aus dem Firewall-Abschnitt aus. CSF-Nutzer: prüfen Sie, ob die SecondDNS-IP in /etc/csf/csf.allow eingetragen ist.
Hook manuell testen:
domain=example.com username=admin caller=create:domain /usr/local/directadmin/scripts/custom/dns_create_post.shHook wird nicht ausgelöst Prüfen Sie, ob das Hook-System von DirectAdmin aktiviert ist. Ältere DirectAdmin-Versionen erfordern eventuell explizite Aktivierung des custom-scripts-Verzeichnisses in der Konfiguration.
Deinstallation
Um die Integration zu entfernen:
curl -sL https://raw.githubusercontent.com/seconddns/dns_integrations/main/hosting-panels/directadmin/uninstall.sh | bashDies entfernt Hook-Skripte und Konfigurationsdatei. Zonen auf dem sekundären DNS werden nicht automatisch gelöscht. Wenn Sie den sekundären Server vor der Deinstallation bereinigen möchten, entfernen Sie die Zonen über das SecondDNS-Dashboard oder führen Sie aus:
seconddns remove-allDer Befehl zeigt zunächst, was entfernt würde, und verlangt die eingetippte Master-IP als Bestätigung; im Skript überspringt `--yes` diese Rückfrage.
Verwandte Anleitungen
Wenn Sie andere Hosting-Panels verwalten oder Ihr DNS-Redundanz-Setup erweitern möchten, lesen Sie:
- Sekundären DNS zu CyberPanel hinzufügen - Sekundären DNS zu cPanel/WHM hinzufügen - Sekundären DNS zu Plesk hinzufügen - Sekundären DNS-Monitoring mit Nagios - Sekundären DNS-Monitoring mit Zabbix - So richten Sie einen sekundären DNS-Server ein - AXFR-Zonentransfers verstehen - DNS-Redundanz: Warum sie wichtig ist und wie Sie sie erreichen