15.3 djbdns
Das djbdns-Paket besteht aus mehreren DNS-Servern die jeweils einen eigenen Aufgabenbereich erledigen. Dazu zählen
- dnscache – Ein Caching DNS Resolver (den wir im Folgenden beschreiben werden)
- tinydns – Ein kleiner DNS-Server
- pickdns – Ein Load-Ballancing-DNS-Server
- walldns – Ein Reverse-Lookup-Server, der nur IP-Adressen in Domains übersetzt
- axfrdns – Ein Server für Zone-Transfers
Außerdem beinhaltet djbdns noch diverse kleinere Tools zum Auffinden von Konfigurationsproblemen sowie DNS-Clients.
Zur Installation genügt meist nicht die Installation des Packages oder Ports. Unter Debian muss beispielsweise erst djbdns-installer sowie daemontools-installer installiert und anschließend build-daemontools und build-djbdns aufgerufen werden. Für die meisten Distributionen gibt es aber zahlreiche Anleitungen im Internet.
15.3.1 Der djbdns Caching-Only-Server
Wir werden im Folgenden einen Caching-Only-Server mit dnscache aufsetzen. Das Prinzip eines Caching-Servers ist einfach zu erklären: Die DNS-Clients im lokalen Netzwerk (das sind üblicherweise alle mit dem Internet verbundenen Rechner) greifen nicht mehr auf den DNS-Server eines Providers oder auf einen anderen Nameserver direkt zu, sondern verwenden als DNS-Server den Caching-Server. Dieser kennt keine eigenen DNS-Records und leitet die Anfragen der Clients nur an die eigentlichen DNS-Server weiter. Die erhaltenen Antworten »merkt« er sich allerdings für eine gewisse Zeit. Greifen DNS-Clients nun auf bereits erhaltene Antworten zu, so muss der Caching-Server keine neue Anfrage an den zugehörigen Nameserver stellen, sondern kann die gespeicherte Antwort an den Client weiterleiten. Wozu das gut ist? Es erhöht die Performance! Einen solchen Server setzt man sehr häufig sowohl im eigenen als auch in Unternehmensnetzwerken ein.
dnscache-conf
Die Konfiguration von dnscache erfolgt mithilfe von dnscache-conf. Dem Programm gibt man in dieser Reihenfolge folgende Informationen: den Accountnamen, unter dem dnscache laufen soll, den Eigentümer der Logging-Informationen, das Verzeichnis, in dem dnscache arbeiten soll, sowie (optional) die IP-Adresse, auf der der Dienst (auf Port 53 UDP und TCP) Verbindungen entgegennimmt.
Unter Debian (und den meisten anderen Distributionen und Derivaten) werden für die djbdns-Dienste automatisch entsprechende Benutzer (hier »dnscache« und »dnslog«) angelegt.
# dnscache-conf dnscache dnslog /etc/dnscache
Listing 15.9 dnscache konfigurieren
Für die Daemontools muss nun im Verzeichnis /service ein Link zu /etc/dnscache erstellt werden, damit dnscache gestartet wird.
Ob der Service läuft, erfährt man durch ein svstat:
# svstat /service/dnscache /service/dnscache: up (pid 23196) 24 seconds
Listing 15.10 Prüfen, ob dnscache läuft
Die Funktionalität lässt sich mit dem Programm nslookup feststellen, das wir gleich noch beschreiben werden.
$ nslookup > server 127.0.0.1 Default server: 127.0.0.1 Address: 127.0.0.1#53 > google.de Server: 127.0.0.1 Address: 127.0.0.1#53 Non-authoritative answer: Name: google.de Address: 66.249.93.104 Name: google.de Address: 216.239.59.104 Name: google.de Address: 72.14.221.104 > exit
Listing 15.11 Prüfen, ob der lokale Caching-Server arbeitet
Zudem sollte bei allen Clients, die den Caching-Server benutzen sollen, die Konfiguration des DNS-Servers entsprechend auf die IP-Adresse des Caching-Servers abgeändert werden (unter Linux in /etc/resolv.conf).