Aus Linux-Magazin 02/2016

Aus dem Alltag eines Sysadmin: Pdnsd

Abbildung 1: Der Anfang der Ausgabe von <custom name="code">sudo pdnsd-ctl status</custom>.

Cache it, if you can! – sagt sich Sysadmin Charly Kühnast, wenn die Latenzen seiner Internetverbindung gefühlt länger als die Regentschaft Napoleons dauern. In der heutigen Kolumne stellt er seine Cache-Lösung für die Namensauflösung vor.

Es bereitet mir stets ein großes Missvergnügen, wenn ich eine Internet-über-Satellit-Strecke nutzen muss. Die Latenz ist echt übel. Als Gegenmittel verabreiche ich Caches, wo es nur geht. Für DNS-Anfragen ist Pdnsd [1] mein Cache der Wahl. Eigentlich alle Vollsortiments-Distributionen haben den schlanken und schnellen Daemon im Regal. Beim Start frühstückt er den Inhalt der »/etc/hosts« -Datei und bunkert ihn in seinem Cache. Dazu gesellen sich alle DNS-Anfragen, die ich tätige.

Der Cache ist per Default 2 MByte groß. Wer eine kilometerlange »/etc/hosts« entlang seiner IT-Landschaft gebaut hat, kann die Cachegröße in der »/etc/pdnsd.conf« anpassen. Die zugehörige Option wohnt im Abschnitt »global« , heißt »perm_cache« und erwartet eine Größe in Bytes, bei mir sind’s »8192« . »perm_cache« heißt die Option übrigens deshalb, weil der Cache nicht nur im RAM liegt, sondern auch auf der Platte. Pdnsd muss den Cache nach einem Neustart also nicht wieder neu aufbauen.

Im Konfigurationsabschnitt »global« finden sich weitere zentrale Einstellungsmöglichkeiten. Besonders wichtig ist:

server_ip = 127.0.0.1;

Sie besagt, dass Pdnsd DNS-Abfragen nur beantwortet, wenn sie vom Localhost kommen. Sollen auch andere Maschinen im selben Netz Pdnsd IP-Fragen stellen dürfen, so ersetze ich die 127.0.0.1 durch das Interface, das ins interne Netz zeigt:

server_ip = eth1;

Mit »min-ttl« und »max-ttl« lege ich fest, wie lange der Cache einen Eintrag minimal bis maximal festhält. Die Defaults – 15 Minuten sowie eine Woche – finde ich sinnvoll und taste sie daher nicht an. Anders der Timeout, er liegt gewöhnlich bei 10 Sekunden, was auf einer üppig genutzten Satellitenstrecke zu wenig ist. Ich verdopple hier gern: »timeout = 20s;« .

Jetzt sag’ schon!

Einen frisch aufgesetzten Pdnsd treibe ich zunächst mit »verbose = 3;« die Verstocktheit aus. (In schwierigen Fällen maximiere ich die Geschwätzigkeit mit »debug = on« .) Hat sich alles eingependelt, kommentiere ich diese Option aus, und Pdnsd geht seinem Handwerk wieder in aller Stille nach.

Als sinnvoll erachte ich auch den Eintrag »status_ctl = on« . Er erlaubt es mir, Pdnsd im laufenden Betrieb mit Hilfe des Tools »pdnsd-ctl« Kommandos zu erteilen. Abbildung 1 zeigt das Kommando

Abbildung 1: Der Anfang der Ausgabe von »sudo pdnsd-ctl status«.

Abbildung 1: Der Anfang der Ausgabe von »sudo pdnsd-ctl status«.

sudo pdnsd-ctl status

in Aktion. Ganz oben steht die Auslastung des Cache, gefolgt vom Überblick über laufende Threads und globale Konfigurationsoptionen. Mit »sudo pdnsd-ctl empty-cache« könnte ich den Cache leeren, was gelegentlich nach DNS-Änderungen nötig ist, wenn ich nicht bis zum Ablauf der TTL warten möchte. Einen Überblick über weitere Kommandos verschafft »sudo pdnsd-ctl help« .

Mein Fazit nach einiger Zeit am Satelliten: Die Schmerzen bei der Arbeit auf latenzverseuchten Leitungen kann auch Pdnsd nicht kurieren, sie aber merklich lindern – und das tut gut. (jk)

Der Autor

Charly Kühnast administriert Unix-Systeme im Rechenzentrum Niederrhein. Zu seinen Aufgaben gehören Sicherheit und Verfügbarkeit der Firewalls und der DMZ.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 1 HeftseitePreis €0,99
(inkl. 19% MwSt.)
LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben