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 typischerweise BIND (named) oder PowerDNS 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 unterstützt zwei DNS-Backends: BIND (named) und PowerDNS. Der Konfigurationsansatz unterscheidet sich zwischen beiden.

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.

PowerDNS: DNS-Daten werden in einem Datenbank-Backend gespeichert. Transfers werden über allow-axfr-ips in pdns.conf gesteuert. Der SecondDNS-Installer erkennt automatisch, welches Backend Ihr Server verwendet, und konfiguriert die richtigen Direktiven.

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 oder PowerDNS - 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 (BIND) oder allow-axfr-ips (PowerDNS) 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 - Das DNS-Backend erkennen (BIND oder PowerDNS) - Zonentransfers automatisch konfigurieren (allow-transfer erteilt die Berechtigung, also-notify aktiviert NOTIFY für BIND; allow-axfr-ips für PowerDNS) - 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. Lokal gelöschte Domains werden vom sekundären Server entfernt. 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

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)

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.

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_*_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_*_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

AXFR abgelehnt (PowerDNS) Prüfen Sie allow-axfr-ips in pdns.conf:

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

Nach Änderungen PowerDNS neu starten:

systemctl restart pdns

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