Wie schon erwähnt kann PowerDNS diverse Datenbanken als Backend nutzen. Zunächst soll es aber erst einmal darum gehen, einen Nameserver in BIND-kompatibler Konfiguration zu betreiben. Das bietet sich zum Beispiel an, wenn man von einer existierenden BIND-Installation auf PowerDNS migrieren möchte. Die beiden Server, der Master und der Slave, sollen öffentlich zugänglich sein und müssen deshalb auf Rechnern – oder auch virtuellen Maschinen – außerhalb der firmeneigenen Firewall betrieben werden. Der folgende Befehl installiert die nötige Software auf einer Ubuntu-Maschine:
sudo apt-get install pdns-server
Die Konfiguration für den Primary-DNS von
»example.com
«
, die in
»/etc/powerdns
«
gespeichert wird, ist in
Listing 2
zu sehen. Außer der Vorwärtsauflösung von Namen zu IP-Adressen sollte man sich auch um den umgekehrten Weg, also die Zuordnung von IP-Adressen zu Namen, den sogenannten Reverse Lookup kümmern. Das geht aber nur, wenn man überhaupt die DNS-Autorität für den eigenen IP-Adressen-Block hat. Sonst muss man sich an seinen Provider wenden. Prinzipiell funktionieren die meisten Dienste auch ohne das umgekehrte Mapping, allerdings dauert dann beispielsweise das Login auf einem Rechner länger, wenn der entsprechende Dienst einen Reverse Lookup versucht und dann bis zum Timeout wartet.
Listing 2
example.com.zone
Die Konfigurationsdatei
»/etc/powerdns/bindbackend.conf
«
bestimmt, welche Zonen der PowerDNS-Server lädt. Sie ist in
Listing 3
zu sehen. In der Hauptkonfigurationsdatei
»/etc/powerdns/pdns.conf
«
stehen ein paar grundlegende Variablen, die die Funktion des Nameservers bestimmen (
»launch=bind
«
), und die Verweise auf weitere Konfigurationsdateien, etwa die eben entstandene BIND-Konfiguration. Die relevanten Zeilen sind in
Listing 4
wiedergegeben. Ein Neustart per
»sudo service pdns restart
«
lässt den Server die Konfiguration neu einlesen. Zum gleichen Ziel führt es, dem Server mit dem Kill-Befehl ein HUP-Signal zu schicken.
Listing 3
bindbackend.conf
Listing 4
pdns.conf (Ausschnitt)
Für den Anfang sind die Arbeitsschritte auf dem
»Secondary Name Server
«
die gleichen wie auf dem Master:
»pdns-server
«
installieren und die Konfigurationsdatei
»/etc/powerdns/bindbackend.conf
«
anlegen. Letztere unterscheidet sich nur in einem Punkt von der Master-Konfiguration in
Listing 3
: Beim Slave steht in Zeile 5 statt
»master
«
eben
»slave
«
. Der Slave-Server soll außerdem mit eigenen User- und Group-IDs laufen, weshalb Sie die Besitzrechte der Konfigurationsdateien anpassen müssen:
sudo chown -R pdns:pdns /etc/powerdns
Dementsprechend finden sich User- und Group-ID auch in der Konfigurationsdatei
»/etc/powerdns/pdns.conf
«
, die in
Listing 5
zu sehen ist. Ein weiterer Unterschied zur Master-Konfiguration ist hier die Anweisung
»slave=yes
«
.
Listing 5
Secondary-Konfiguration
Haben Sie auch die Secondary-Konfiguration per Neustart des Service oder HUP-Signal neu eingelesen, können Sie den Dienst testen, zum Beispiel mit dem Dig-Befehl. Wie das aussehen könnte, zeigt der Kasten
»DNS testen
«
. Analog zum Recursor steuern Sie Master- und Slave-Server mit einem Utility namens
»pdns_control
«
.