NSD, eine Alternative zu Bind

Author: | Posted in Solaris No comments

Bind, welches als authorativer und rekursiver DNS arbeitet, der Platzhirsch in Sachen DNS Server Software. Es ist allerdings auch bekannt, dass Bind, obwohl die Version 9 ein Rewrite ist, gravierende Design Probleme hat, welche sich im vergangen Jahr in Form von teils gravierenden Sicherheitslücken gezeigt hat. Auf diese Problematik hat in der Vergangenheit bereits Dan Bernstein hingewiesen und djbdns geschrieben, welches aber ziemlich eigen ist. Auch wurde die  Entwicklung  von djbdns eingestellt, wobei die spezielle Lizenz von djb nicht unschuldig daran ist. Die Kritik gegenüber Bind wird vom ISC insofern bestätigt, dass das Design der Kommenden Version 10 geändert wird – darauf kann man aber 5 Jahre lang warten.

Für den, der nicht so lange warten mag, ist NSD die Alternative zu Bind. NSD wurde von der NLnet Labs in zusammenarbeit mit der RIPE NCC entwickelt. Ein Hauptaugenmerk der Entiwicklung war dabei nicht nur die Performance, sondern auch die Sicherheit, weshalb NSD per Design nur ein authorativer DNS Server ist.

Die Installation von NSD ist mit OpenCSW denkbar einfach:

# pkg-get install nsd

Nach der Installation muss man das Konfigurationsfile nsd.conf bearbeiten, welches unter /etc/opt/csw/nsd zu finden ist. Das File ist selbsterklärend und mit der dazugehörigen Mangpage ist auch ausreichend Dokumentationvorhanden.

Um eine Zone erstellen, ist Beispielsweise folgender Eintrag notwendig:

zone:
   name: "opencsw.org"
   zonefile: "master/db.opencsw.org"
   outgoing-interface: 147.87.98.73

   # secondary: ns2.sixxs.net
   notify: 193.109.122.62 NOKEY
   provide-xfr: 193.109.122.62 NOKEY

   # secondary: ns1.tomppa.ch
   notify: 195.182.53.134 NOKEY
   provide-xfr: 195.182.53.134 NOKEY

Das für Bind erstellte Zone File kann man dabei 1:1 übernehmen und es ist keinerlei Anpassung notwendig.

Nachdem die nsd.conf bearbeitet wurde, kann man mit

# nsd-checkconf /etc/opt/csw/nsd/nsd.conf

das File auf allfällige Fehlber überprüft werden.

Der grösste Unterschied zu Bind dürfte sein, dass NSD nicht direkt die Zonenfiles lädt, sondert eine Datenbank, welche zuerst mit zonec erstellt wurde. Das tönt zwar umständlich, hat aber den Vorteil, dass NSD in grösseren Konfigurationen sehr schnell gestartet werden kann.

# nsdc rebuild

Erstellt die Datenbank /var/opt/csw/nsd/nsd.db. Nachdem die Datenbank erstellt worden ist, kann NSD gestartet werden.

WICHTIG: Alfällige Fehlermeldungen, dass Slave Zonen nicht gefunden werden können, können ignoriert werden.

# svcadm enable svc:/network/cswnsd:default

Abschliessend ist ein Eintrag in der crontab notwendig:

42 4 * * *      /opt/csw/sbin/nsdc patch >/dev/null 2>&1

Dieser Eintrag bewirkt, dass die Slave Zonen von der ixfr.db in die in der nsd.conf angebenen Zonen Files geschrieben werden und das die ixfr.db mit der Zeit nicht zu gross wird. Es empfiehlt sich, nsd-patch ein mal am Tag laufen zu lassen.

Mehr Dokumentation zu NSD ist in den Mitgelieferten Manpages nsdc(8), nsd.conf(5), nsd-checkconf(8), nsd-notify(8), nsd-patch(8), nsd-xfer(8) und zonec(8) zu finden.

Add Your Comment