Wir möchten einen Secondary DNS auf Basis von PowerDNS und SQLite als Backend installieren. Wir verwenden Ubuntu Server 18.04 (bionic) mit PowerDNS 4.1 aus dem Repository.
Die Installation ist sehr einfach. Die Abhängigkeiten werden automatisch mit installiert.
sudo apt install pdns-backend-sqlite3
Bei der Einrichtung antworten wir mit „YES“. Damit wird die Einrichtung zu 90% durchgeführt. Wer die Frage mit „NO“ beantwortet muss selber Hand anlegen. Weitere Informationen am Ende von dem Artikel.
Der Start von dem Dienst „PDNS“ ist fehlgeschlagen.
Systemd enthält einen DNS Resolver für die Namensauflösung. Der Dienst läuft auch auf Port 53 und auf der IP Adresse 127.0.0.1.
Deshalb müssten wir PowerDNS auf die richtig IP Adresse des Server legen und nicht auf alle IP Adessen (0.0.0.0).
sudo vim /etc/powerdns/pdns.d/pdns.local.conf
local-address=123.123.123.123 local-ipv6=2a0:1:2:3:ff::1 local-port=53 version-string=anonymous master=no slave=yes disable-axfr=yes disable-tcp=no slave-cycle-interval=60 |
Nach der Änderung sollten die Dienste PowerDNS und Resolver ohne Fehler starten.
sudo systemctl restart systemd-resolved pdns
Die Tabellen von PowerDNS wurden mit der Installation automatisch angelegt. Jetzt müssen noch weitere Einstellung hinterlegt werden.
Für den Primary DNS wird in der Tabelle „supermasters“ der Hostname und die IP Adresse von dem Haupserver eingetragen.
sudo sqlite3 /var/lib/powerdns/pdns.sqlite3 "insert into supermasters values ('123.123.123.123', 'ns1.domain.com', 'admin');" |
Sollten Sie bei der Einrichtung die Frage mit „NO“ beantwortet haben, fehlt die Tabelle. Dann müssen Sie die Datenbank selbst anlegen.
wget -O /tmp/schema.sqlite3.sql https://raw.githubusercontent.com/PowerDNS/pdns/master/modules/gsqlite3backend/schema.sqlite3.sql sudo sqlite3 /var/lib/powerdns/pdns.sqlite3 < /tmp/schema.sqlite3.sql |
Der Import ist auch mit der Command Line Shell so möglich.
sudo sqlite3 /var/lib/powerdns/pdns.sqlite3 .read schema.sqlite3.sql .quit |
Die Datenbank braucht auch die richtig Rechte.
sudo chown pdns:pdns /var/lib/powerdns/pdns.sqlite3
Die Datenbank muß manuell für das PowerDNS Backend konfiguriert werden.
sudo vim /etc/powerdns/pdns.d/pdns.local.gsqlite3.conf
launch+=gsqlite3 # Database location gsqlite3-database=/var/lib/powerdns/pdns.sqlite3 gsqlite3-dnssec=on |
Hier noch einige Hinweise zur Fehlersuche.
Sollte es nicht auf Anhieb funktionieren, kann man PowerDNS aus als Anwendung starten und sieht auf der Konsole die Fehlermeldungen.
sudo /usr/sbin/pdns_server
Mit dem Tool „dig“ kann man die Funktion und Erreichbarkeit des Primary und Secondary DNS überprüfen.
dig @ns2.domain.com meinname.info AXFR
Quellen: Powerdns Backend Sqlite