Nachdem nach wie vor die DNS Server meines Anbieters regelmässig spinnen/ausfallen/rumzicken/überlastet sind, hab' ich mir zuhause wieder einen eigenen DNS aktiviert. Hier eine kurze Anleitung, wie das unter OpenSolaris funktioniert.
Umgesetzt habe ich das Folgende mit OpenSolaris SVN_134 . Wie immer kann ich hier nur Hinweise geben und keine Verantwortung für Probleme entstehen, die aus dem Anwenden dieser Anleitung resultieren. Einen eigenen DNS Server birgt ein paar Probleme. Sehr viele davon kann man umgehen, indem man ihn nicht vom Internet aus erreichbar macht. Dass man Probleme hat, andere Rechner zu erreichen, wenn man nur einen eigenen DNS Server verwendet und der plötzlich spinnt, sollte jedem klar sein, der sich darüber traut, einen eigenen aufzusetzen. :-) Es gibt übrigens einen Grund, warum man bei (fast) allen Clients mehrere Server angeben kann. Es zahlt sich also aus, den eigenen Server als ersten DNS in der Liste anzugeben und die DNS Server des eigenen Internetanbieters als Zweiten und evtl. Dritten. Das hilft aber nur bei einem Totalausfall des eigenen Servers. Sollte der aufgrund einer Fehlkonfiguration fehlerhaft auflösen, werden die anderen Server nicht mehr befragt.
Zuerst gilt es, den DNS Server zu installieren. Dank IPS geht das einfach mit pkg install service/network/dns/bind .
Anders als z.B. RedHat Linux kommt der DNS Server ohne Defaultkonfiguration. Zuerst muss man also die Datei /etc/named.conf anlegen. Vorlagen gibts dafür unter http://www.zytrax.com/books/dns/ch6/#caching . Zu verwenden ist das File für "Caching only" Nameserver. Damit wird der Bind DNS Server so konfiguriert, dass er alle DNS Abfragen an die Rootnameserver schickt und deren Antworten zwischenspeichert. Eigene Zonen verwaltet er damit nicht.
Noch einfacher geht's mit folgendem File:
options {
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
allow-recursion { 127.0.0.1; 192.168.4.0/24; };
};
controls {
inet 127.0.0.1 allow { localhost; } ;
};
zone "." IN {
type hint;
file "named.ca";
zone "localdomain" IN {
type master;
file "localdomain.zone";
allow-update { none; };
};
zone "localhost" IN {
type master;
file "localhost.zone";
allow-update { none; };
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
allow-update { none; };
};
zone "0.in-addr.arpa" IN {
type master;
file "named.zero";
allow-update { none; };
};
Das ist im Wesentlichen das File, das ich verwende. Dabei ist natürlich 192.168.4.0 durch die Netzwerkadresse des eigenen Netzwerkes zu ersetzen. Die zusätzlichen Optionen aus den Beispieldateien, muss man ggf. anpassen. Zum Beispiel werden Logfiles unter Solaris eher unter /var/adm , als unter /var/log abgelegt.
Es macht Sinn, für die Daten des DNS ein eigenes ZFS Filesystem anzulegen.
zfs create tank/named
zfs set mountpoint=/var/named tank/named
Die in den file Zeilen angegebenen Dateien kann man von http://www.zytrax.com/books/dns/ch7/index.html#required holen und nach /var/named legen. Ich hab' sie wieder nicht getestet, sondern eigene von anderen Servern übernommen.
Danach muss nur noch der DNS Server gestartet werden:
svcadm enable dns/server
Mit svcs -xv kann überprüft werden, ob der DNS Server auch gestartet wurde. Erhält man keine Ausgabe, ist alles in Ordnung. Ansonsten bekommt man gleich den Dateinamen mit Pfad des Logfiles, in dem man Nachlesen kann, was beim Start schiefgegangen ist. Mehr Informationen erhält man mit grep named /var/adm/messages . Bei Konfigurationsänderungen sollte allerdings immer
svcadm disable dns/server
svcadm enable dns/server
ausgeführt werden. svcadm restart hilft bei einem fehlgestarteten Bind nicht.
Leider ist dieses HowTo etwas lückenhafter und "ungetesteter", als ich das normalerweise mache. Aber ich hoffe, es kann ein Anstoss in die richtige Richtung sein, wer selbst versuchen möchte, einen DNS Server auf OpenSolaris zu verwenden. Noch ein Wort der Warnung: Bind ist *sehr* pingelig, was Tipfehler in den Konfigurationsdateien angeht. Vergessene . oder ; haben schon so manchen Admin in den Wahnsinn getrieben. :-) Es zahlt sich jedenfalls aus, sich mehr mit Bind auseinanderzusetzen, da man relativ schnell in die Konfiguration eintauchen kann und wirklich feine Sachen damit machen kann.
Neuen Kommentar schreiben