Anleitungen

Sekundären DNS zum DirectAdmin Hosting-Panel hinzufügen

Warum Ihr DirectAdmin-Server einen sekundären DNS braucht

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

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 reload

Falls Sie iptables verwenden:

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

Falls Sie nftables verwenden:

nft add rule inet filter input ip saddr SECONDARY_IP tcp dport 53 accept

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

nmap -p 53 -sT YOUR_SERVER_IP

Der 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_KEY

Der 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.conf

Falls 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 sync

Dies 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.com

Um alle Zonen auf dem sekundären Server aufzulisten:

seconddns list

Lö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.log

Sie sollten Folgendes sehen:

Zone created: testdomain.com (caller=create:domain, user=admin)
[+] Zone testdomain.com added to SecondDNS

Fragen 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 +short

Beide 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 status
pending=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}.sh

Fehlen 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}.sh

AXFR abgelehnt (BIND) Prüfen Sie named.conf auf allow-transfer mit Ihrer SecondDNS-IP:

grep -A3 'allow-transfer' /etc/named.conf

Eine Änderung an allow-transfer ist eine Konfigurationsänderung; wenden Sie sie mit reconfig an (rndc reload liest nur Zonendaten neu):

rndc reconfig

TCP-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.sh

Hook 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 | bash

Dies 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-all

Der Befehl zeigt zunächst, was entfernt würde, und verlangt die eingetippte Master-IP als Bestätigung; im Skript überspringt `--yes` diese Rückfrage.