DNS Optimierung · 4 min read · Oct 01, 2025

Beschleunigung des DNS-Zugriffs in Regionen mit sehr geringer Infrastruktur

Beschleunigung des DNS-Zugriffs in Regionen mit sehr geringer Infrastruktur

Einleitung

Angenommen, Sie sind über eine teure Satellitenverbindung verbunden, die kaum genügend Bandbreite für den Internetzugang Ihres Unternehmens bereitstellt, und Sie möchten alles tun, um das Beste aus dieser Verbindung herauszuholen. Darüber hinaus verlieren Sie gelegentlich die Stromversorgung des Versorgungsunternehmens, lange genug, damit Ihre USV leer läuft. Es gibt einige Dinge, die Sie tun können, um viel mehr aus Ihrer Verbindung herauszuholen. In diesem Artikel werden wir uns damit beschäftigen, Ihre DNS-Anfragen zu beschleunigen, indem wir einen Cache von Antworten auf Ihre DNS-Anfragen auf Ihrer Festplatte speichern. Nachfolgende DNS-Anfragen werden dann aus dem Cache bedient, und da eine Kopie auf der Festplatte vorhanden ist, verlieren Sie sie nicht bei einem Stromausfall oder einem Neustart.

Die aktualisierte Version dieses Dokuments finden Sie unter: www.httpcompression.net.

Analyse

Brauche ich das? Nun, schauen wir mal. Geben Sie von Ihrem Linux-System den folgenden Befehl ein:

dig www.httpcompression.net

Unter anderem erhalte ich folgendes Ergebnis:

;; Abfragezeit: 583 msec

Nach ein paar Sekunden gab ich den Befehl erneut ein und erhielt:

;; Abfragezeit: 612 msec

Offensichtlich leitet der DNS-Server meines ISP die Anfragen einfach in die USA weiter (ich bin in Accra, Ghana, Westafrika, und verbinde mich über ein Unterseekabel mit dem Internet). Anscheinend wurde das Ergebnis der ersten Anfrage nicht im Cache gespeichert. Wenn es gespeichert war, war es zum Zeitpunkt der zweiten Anfrage abgelaufen. Sicherlich ist eine solche Umgebung ein perfekter Kandidat für dieses Setup.

Anleitung

Ich arbeite auf einem Ubuntu-Server. Die Software, die wir verwenden werden, ist pdnsd. Die Website sagt Folgendes über pdnsd:

“pdnsd ist ein Proxy-DNS-Server mit permanentem Caching (der Cache-Inhalt wird beim Beenden auf die Festplatte geschrieben), der dafür ausgelegt ist, mit unerreichbaren oder ausgefallenen DNS-Servern (zum Beispiel im Einwahl-Netzwerk) umzugehen. Seit Version 1.1.0 unterstützt pdnsd negatives Caching.”

Geben Sie von Ihrem Ubuntu oder einer anderen Debian-basierten Distribution den folgenden Befehl ein:

apt-get install pdnsd

Eine Konfigurationsseite erschien mit drei Optionen “resolvconf / Verwende Root-Server / Manuell”. Ich wählte “Manuell” und setzte die Installation fort.

Die Standardinstallation hat eine Konfigurationsdatei, von der Teile kommentiert wurden. Eine Zeile ist mit “//“ auskommentiert, während mehrzeilige Kommentare mit “/ /“ gemacht werden. Z. B.:

// Dies ist eine auskommentierte Zeile in der Konfigurationsdatei.
/*
Diese sind auskommentierte
Zeilen in der
Konfigurationsdatei.
*/

Verwenden Sie Ihren bevorzugten Texteditor, um die folgenden Konfigurationsdateien zu bearbeiten:

  1. /etc/default/pdnsd Bearbeiten Sie die Zeile mit START_DAEMON wie folgt: START_DAEMON=yes
  2. /etc/pdnsd.conf Im globalen Abschnitt möchten Sie möglicherweise die folgende Einstellung ändern: server_ip = 127.0.0.1; Dies ist die IP, unter der pdnsd erreichbar ist. Wenn die Adresse auf dem Standardwert 127.0.0.1 belassen wird, können nur Programme auf dem Server selbst auf den pdnsd-Server zugreifen. Wenn Sie jedoch möchten, dass andere Server und PCs diese pdnsd-Installation als ihren DNS-Server verwenden, sollten Sie die IP-Adresse auf die entsprechende IP-Adresse auf Ihrem Server ändern, die Ihre Clients verwenden sollen. Verwenden Sie den Serverabschnitt, um die DNS-Server festzulegen, die pdnsd zur Auflösung von Domainnamen konsultieren wird. Es gibt zwei Serverabschnitte, die standardmäßig auskommentiert sind. Die opendns-Server sind sehr zuverlässig und beliebt, Sie möchten sie möglicherweise verwenden: server { label="opendns"; ip = 208.67.220.220,208.67.222.222; } Stellen Sie sicher, dass der Serverabschnitt nicht auskommentiert ist. Wenn Ihr ISP einen zuverlässigen DNS-Server hat, können Sie ihn stattdessen verwenden. So viel wie möglich, sparen Sie die Root-Server.
  3. /etc/resolv.conf Diese Datei enthält die DNS-Server, die Programme auf Ihrem Server (z. B. squid, apache) normalerweise für die Namensauflösung konsultieren. Jetzt möchten Sie den lokalen pdnsd-Server konsultieren, den Sie gerade installiert haben, also geben Sie die IP-Adresse Ihres Loopback-Interfaces (lo) ein, nämlich 127.0.0.1. Dies sollte der einzige Eintrag in dieser Datei sein. 127.0.0.1

Tests und Fazit

Jetzt starten Sie Ihren pdnsd-Server:

/etc/init.d/pdnsd start

Geben Sie jetzt den folgenden Befehl ein und achten Sie auf die Abfragezeit: in der Antwort, um zu bestimmen, wie gut Sie abschneiden:

dig www.httpcompression.net
;  DiG 9.4.2-P2  www.httpcompression.net
;; Abfragezeit: 3323 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WANN: Mo Nov  3 20:02:37 2008
;; MSG GRÖSSE  empfangen: 71

Nach einer Weile geben Sie den Befehl erneut ein:

dig www.httpcompression.net
;  DiG 9.4.2-P2  www.httpcompression.net
;; Abfragezeit: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WANN: Mo Nov  3 20:03:07 2008
;; MSG GRÖSSE  empfangen: 71

Aus den beiden obigen Ergebnissen dauerte die erste Abfrage 3323 msecs, während die zweite, 30 Sekunden später, nur 1 msec zur Auflösung benötigte. Nach einem Neustart des Servers:

dig www.httpcompression.net
;; Abfragezeit: 3 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WANN: Mo Nov  3 20:06:38 2008
;; MSG GRÖSSE  empfangen: 71

Nach dem Neustart benötigte die Abfrage nur 3 ms zur Auflösung. Wir haben unseren Cache nicht verloren. Sie möchten möglicherweise das Handbuch lesen und einige Einstellungen ändern, um Ihre Situation anzupassen. Einige dieser Einstellungen sind:

  1. min_ttl: Die standardmäßige minimale Zeit, die eine zwischengespeicherte Antwort aufbewahrt werden sollte, beträgt 15 Minuten. Sie möchten dies möglicherweise erhöhen, um die Häufigkeit zu reduzieren, mit der Sie übergeordnete Server kontaktieren. Der Nebeneffekt ist, dass, wenn sich die Adresse einer Website ändert, es eine Weile dauert, bis Ihr qdnsd die übergeordneten Server für die neue Adresse kontaktiert. Wenn die Mindestzeit nicht lang genug ist, verlieren Sie auch Ihren Cache nach einem längeren Stromausfall.
  2. perm_cache: Dies ist die Größe des Speicherplatzes auf der Festplatte für Ihren Cache. Je nach Verkehr in Ihrem Netzwerk möchten Sie dies möglicherweise auf einen Wert erhöhen, der bequem mindestens eine Woche Daten speichern kann. Sie könnten die Größe der Cache-Datei über einen Zeitraum hinweg überwachen, um ein Gefühl dafür zu bekommen, was für Sie angemessen sein sollte.
Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.