Eigenes DynDNS mit PowerDNS
Vor einiger Zeit hat dyndns.org seinen freien dynamischen DNS-Dienst eingestellt und die Kunden so gezwungen, entweder in einen Premium-Account zu migrieren oder sich anderwaltig umzuschauen. Ich habe mich dann für no-ip.org entschieden, mit dessen Service ich bis heute sehr zufrieden. Lediglich einmal kam es zu DNS-Problemen, die dann aber auch schnell gelöst waren. Da ich öfter DynDNS-Dienste einsetze, lege ich für alle Kunden verschiedene Konten an, was dann natürlich gerne mal zu Passwortverwechslungen führt.
DynDNS kann man aber auch selber machen. Der Trick ist in der c't 24/2013 und auch im Debacher-Wiki beschrieben. Der besteht darin, dass nicht BIND als DNS-Server eingesetzt wird, sondern PowerDNS, der seine Domain-Daten in einer Datenbank speichert. Dadurch sind sie durch PHP manipulierbar und können so ohne wenig Aufwand von außen aktualisiert werden.
Installation von PDNS
Wir erstellen danach eine leere Datenbank mit einem Benutzer mit Grant-Rechten.
Unter Ubuntu sind folgende Pakete zu installieren, falls MySQL als Backend benutzt werden soll:
apt-get update apt-get install pdns-server pdns-backend-mysql
Hier werden wir beim Installieren nach MySQL-Zugangsdaten gefragt, diese tragen wir ein und lassen die Installation auch gleich die Datenbank-Struktur anlegen.
Manuell installiert werden muss die Administrationsoberfläche für PowerDNS, PowerAdmin. Das ist aber über den Browser schnell erledigt.
Danach können wir prinzipiell schon Zonen anlegen, PowerDNS läuft standardmäßig aber noch nicht. Wir passen die Datei /etc/powerdns/pdns.conf wie folgt an (Die Zeilen können einfach auskommentiert und neu eingefügt werden):
allow-axfr-ips=<oeffentliche-ipv4-des-servers> 127.0.0.1 173.244.206.26 88.198.106.11 allow-recursion=127.0.0.1 daemon=yes master=yes
Nun lässt PowerDNS den Zonen-Download vom lokalen Server und den Servern von BuddyNS zu (siehe unten), startet als Daemon und sieht sich als Zonen-Master (standardmäßig nämlich nicht).
Nun startet PowerDNS aber noch nicht richtig. Dieser Fehler hat mich einige Zeit gekostet: Unter /etc/powerdns/pdns.d/ müssen zwei Konfiguration-Dateien angepasst werden: In /etc/powerdns/pdns.d/pdns.simplebind.conf kommentieren wir beide Zeilen aus:
#launch=bind #bind-config=/etc/powerdns/bindbackend.conf
und in /etc/powerdns/pdns.d/pdns.local.gmysql.conf kontrollieren wir die Zugangsdaten zu MySQL und ändern folgende Zeile von yes auf no:
gmysql-dnssec=no
Damit sollte PowerDNS via
service pdns restart
starten.
Eintragen der Zonen
Damit sich unser Server auch als Master für die Domain sieht, müssen wir eine Master Zone anlegen. Das geht über PowerAdmin nach einer Anmeldung über den Link "Master Zone hinzufügen". Der Name der Zone ist der Name der Domain. Unter "Zonen auflisten" können wir dann die Zone mit dem kleinen Stift neben dem Namen bearbeiten. Hier sind vor allem erstmal drei Einträge der Marke "NS" wichtig:
Diese Einträge sagen den weltweiten DNS-Servern, wer die DNS-Server für unsere Domain sind. Danach müssen wir natürlich die Standard-Records (A für Adressauflösung und MX für Mail) eintragen.
Zweiter Nameserver
Für die Ausfallsicherheit sind Domains immer zwei unterschiedliche Nameserver zuzuweisen. Idealerweise sind beide auch nicht im gleichen Netz. Für alle, die keine zwei getrennten 24 Stunden erreichbaren Server betreiben, bietet sich der Service von http://www.buddyns.com an. Nach dem Registrieren mit Domainname, IP-Adresse des primären DNS-Servers (IP des eigenen Servers) und E-Mail-Adresse bekommt man ein Passwort zugeschickt, mit dem man Zugriff auf das Bullyboard hat:
Hier ist besonders der Reiter "Zones" interessant.
Bis alles korrekt eingestellt ist, ist der obige Balken noch rot. Haben wir noch keine Einstellungen beim Registrar vorgenommen, sollten die Felder "Authority declares BuddyNS" und "Registry declares BuddyNS" nicht auf OK stehen. Sollte hier aber alles andere stimmen, können wir die DNS-Einstellungen unter http://www.denic.de/hintergrund/nast.html testen. Dazu geben wir unseren Domainnamen und die beiden DNS-Server an. BuddyNS bittet darum, die regionalen Nameserver zu benutzen. Für Europa sind das e.ns.buddyns.com und c.ns.buddyns.com
Gibt die Denic grünes Licht, können wir die Nameserver beim Registrar ändern (meist per Domain-Update o.ä. auslösbar).