Login
Newsletter
Werbung

Do, 21. November 2013, 15:00

PowerDNS – die andere VerBINDung

Der nächste Schritt besteht im Anlegen der minimal notwendigen DNS-Records. Konkret geht es um den »Start of Authority«, kurz SOA-Eintrag, und um die Nameserver einer Domain. Der SOA-Eintrag ist ein vergleichsweise komplexer Eintrag. Er enthält die E-Mail-Adresse des administrativen Kontaktes, den Namen des primären DNS-Servers einer Domain und mehrere Zeitwerte, unter anderem für die Mindestgültigkeitsdauer der Einträge. Nun zeigt sich auch der Sinn hinter den soa-Einträgen in der Konfigurationsdatei: Die Werte für den SOA-Eintrag sind für alle Domains, die von einer Organisation verwaltet werden, meistens identisch. Über die Konfigurationsdatei können so die Standardwerte gesetzt werden, die, sollten konkrete Werte in der Datenbank fehlen, an deren Stelle ausgeliefert werden. Dadurch wird der SOA-Eintrag in der Datenbank trivial.

Zunächst benötigt man die ID der eben eingetragenen Domain:

> SELECT id FROM domains WHERE name = 'example.com';

Da es sich im Beispiel um die erste eingetragene Domain handelt, ist auch die ID entsprechend 1. Nun kann man den SOA und die NS-Einträge setzen:

> INSERT INTO records (domain_id, type, name, content) VALUES (1, 'SOA', 'example.com', NULL);
> INSERT INTO records (domain_id, type, name, content) VALUES (1, 'NS', 'ns1.example.com', NULL);
> INSERT INTO records (domain_id, type, name, content) VALUES (1, 'NS', 'ns2.example.com', NULL);

Sobald die Einträge gesetzt sind, ist die Konfiguration auch schon aktiv. Ein Neuladen entfällt in dem Fall.

Neben dieser Basisfunktionalität bietet PowerDNS noch einige weitere Features, die den täglichen Betrieb oder auch die Migration vereinfachen.

Hat man vorher BIND verwendet, so müsste man nun natürlich die ganzen vorhandenen Einträge manuell aus der BIND-Konfiguration in die Datenbank übertragen. Glücklicherweise liefert PowerDNS ein Skript namens zone2sql mit. Dieses Skript wandelt die BIND-Konfiguration in einen SQL-Dump. Es gibt einige Optionen, je nach Backend und BIND-Konfigurationsdetails. Für diesen Beispielfall reicht folgendes aus:

# zone2sql --gmysql --named-conf=/etc/bind/named.conf > bind.dump

Den so erzeugten SQL-Dump kann man über den folgenden Befehl einspielen:

$ mysql -u root -p dns < bind.dump

Bearbeitung einer Zone mit PowerAdmin

Benjamin Fleckenstein

Bearbeitung einer Zone mit PowerAdmin

Für PowerDNS gibt es auch eine Webschnittstelle. Das PowerAdmin genannte Werkzeug ist ein PHP-Skript, das die Verwaltung der Zonendaten und Einträge per Browser ermöglicht. Es bietet auch ein Usermanagement, sodass man die Verwaltung von bestimmten Zonen an andere Personen übertragen kann, ohne dass diese direkten Zugriff auf die Datenbank benötigen oder einen eigenen Nameserver betreiben müssen.

Zu guter Letzt sei noch auf das Feature hingewiesen, das PowerDNS »Supermaster« nennt. Der Betrieb einer DNS-Infrastruktur sollte eigentlich aus mindestens zwei Maschinen bestehen: dem Master-Nameserver, auf dem die DNS-Daten gepflegt werden, und einem oder mehreren Slave-Nameservern, welche diese Daten nur kopieren und sie, im Sinne von Ausfallsicherheit und Lastverteilung, an die Clients weiterreichen.

Es lässt sich nicht vermeiden, dass dieses Konzept zusätzlichen Administrationsaufwand mit sich bringt. Zwar kopiert der Slave-Nameserver alle Daten vom Master automatisch, allerdings muss ihm mitgeteilt werden, für welche Zonen er überhaupt ein Slave-Nameserver ist. Das heißt im Klartext: bei jeder neuen Zone muss man diese auf zwei Maschinen anlegen.

PowerDNS kontert diese Anforderung mit dem Konzept des Supermasters. Ein Slave erhält einmalig bei der Installation die Information, welcher Server der Supermaster ist. Teilt ihm dieser Supermaster dann mit, dass es für eine Zone ein Update gibt, so übernimmt der Slave nicht nur die geänderten Daten, sondern konfiguriert sich für diese Zone selbst als Slave, sofern noch nicht geschehen.

Das Einrichten einer Zone auf dem Slave entfällt somit, was den administrativen Aufwand wieder auf die Pflege eines einzelnen Servers reduziert.

Fazit

PowerDNS ist ein sehr komfortabler DNS-Server, welcher sich dank multipler Backends auch deutlich leichter in automatische Setups einbinden lässt, als dies mit BIND möglich wäre. Zusätzliche Features wie WebGUI und Supermaster-Konzept erleichtern die Administration noch darüber hinaus.

Autoreninformation

Benjamin Fleckenstein ist leidenschaftlicher Systemadministrator und betreut gegenwärtig die Plattformen namhafter Kunden eines mittelständischen Telekommunikations-und Hostingunternehmens in Frankfurt/Main.

Dieser Artikel ist in freiesMagazin 10/2013 (ISSN 1867-7991) erschienen. Veröffentlichung mit freundlicher Genehmigung.

  • Das Werk darf vervielfältigt, verbreitet und öffentlich zugänglich gemacht werden, Abwandlungen und Bearbeitungen des Werkes müssen unter den gleichen Bedingungen weitergegeben werden. Der Name des Autors/Rechteinhabers muss in der von ihm festgelegten Weise genannt werden.

    - Weitere Informationen
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung