it-swarm.com.de

Beste Weg, um DNS-Caching einzurichten?

Um die DNS-Suche zu beschleunigen, möchte ich einen DNS-Cache oder -Proxy installieren.

Ich kann mindestens drei Programme sehen, von denen ich denke, dass sie die Arbeit erledigen: bind9, pdnsd oder dnsmasq.

Ich möchte sicherstellen, dass, wenn ich eines von beiden installiere, es aus Leistungs- oder Sicherheitssicht nicht schlecht konfiguriert bleibt. Was würden die Leute empfehlen und gibt es Konfigurationsänderungen, die ich sofort nach der Installation vornehmen sollte?

27
user8979
  1. Installieren Sie bind9
  2. Zeigen Sie resolv.conf auf 127.0.0.1

Führen Sie dazu die folgenden Schritte aus:

Bind9 installieren

  1. Öffne "Ubuntu Software Center" (Programme-> Ubuntu Software Center)
  2. Suchen Sie nach bind9
  3. Aktivieren Sie dieses Kontrollkästchen, um "Technische Artikel" anzuzeigen.
  4. Markiere bind9 und installiere es

pdate /etc/resolv.conf

  1. Öffnen Sie den Netzwerkmanager (System-> Einstellungen-> Netzwerkmanager)
  2. Finde deine Verbindung und bearbeite sie (verkabelt oder kabellos)
  3. Schaltet die Registerkarte "IPV4-Konfiguration" um
  4. In das Feld "DNS-Server" schreiben Sie 127.0.0.1

Es ist fertig!

zum Testen

Öffnen Sie das Gnome-Terminal (Anwendungen> Zubehör> Terminal) und geben Sie Folgendes ein

Dig ubuntu.com 

(Wenn Sie es nicht haben, installieren Sie das dnsutils-Paket wie in bind9 beschrieben.)

Überprüfen Sie die letzten Antworten als Beispiel:

Meine erste Anfrage bei ubuntu.com

;; Query time: **209 msec**
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Jan 22 12:20:12 2011
;; MSG SIZE  rcvd: 196

Meine zweite Frage:

;; Query time: **0 msec**
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Jan 22 12:18:23 2011
;; MSG SIZE  rcvd: 156

Der Server 127.0.0.1 bedeutet, dass Sie lokal auflösen. Schauen Sie sich die Abfragezeit an (umgeben von **), die zweite wird zwischengespeichert.

15
Lin

Ich würde dnsmasq empfehlen,

Sehen Sie sich hier ein nettes Tutorial an. http://embraceubuntu.com/2006/08/02/local-dns-cache-for-faster-browsing/

Vielleicht möchten Sie hier einen Vergleich lesen.

http://en.wikipedia.org/wiki/Comparison_of_DNS_server_software

9
dblang

"Um die DNS-Suche zu beschleunigen, möchte ich einen DNS-Cache oder -Proxy installieren."

Okay. Aber es gibt auch einen einfacheren Weg. Die Verwendung von OpenDNS- und/oder Google-Nameservern ist schneller als Ihr eigener lokaler Cache für Namen, die bereits in den OpenDNS-/Google-Caches vorhanden sind. Die Verwendung von 208.67.222.222, 208.67.220.220 und/oder 8.8.8.8 als Namensserves ist fast immer schneller. Sie können dies mit time nslookup www.google.com 208.67.222.222 testen, um die Geschwindigkeit auf einem der OpenDNS-Nameserver, time nslookup www.google.com 8.8.8.8 für Google oder time nslookup www.google.com 127.0.0.1 in Ihrem lokalen Cache zu testen. Wenn ich schneller sage, meine ich technisch schneller und nicht so viel schneller, dass eine Person leicht einen Unterschied bemerken könnte.

"Ich kann mindestens drei Programme sehen, von denen ich denke, dass sie die Arbeit erledigen werden: bind9, pdnsd oder dnsmasq."

Sind Sie offen für den dnscache-Teil von djbdns? Anweisungen unten. Allerdings wird der Cache nicht ohne Patch gespeichert ...

Sudo apt-get remove bind9 dnsmasq-base
Sudo apt-get install djbdns dnscache-run
Sudo killall -9 dnsmasq
Sudo update-rc.d -f bind9 remove

Dann müssen wir das System anweisen, unseren Cache zu verwenden.

Sudo gedit /etc/resolv.conf

Bearbeiten Sie die Datei wie in diesem Beispiel. Diese Datei definiert die zu verwendenden Nameserver, die Standarddomäne und das Suchsuffix. Mit dem Suchsuffix können Abfragen nur mit dem Hostnamen eines vollqualifizierten Domänennamens ausgeführt werden. Beispielsweise wird 'nslookup www' automatisch zu 'nslookup www.example.com', wenn example.com der Wert des Parameters "search" ist.

nameserver 127.0.0.1      # Use the local resolver first.
nameserver 208.67.222.222 # OpenDNS
nameserver 8.8.8.8        # Google
domain example.com
search example.com

Das ist ein bisschen schick, aber wir müssen die neuesten Root-Nameserver besorgen.

Sudo dnsip $(dnsqr ns . | sed -e '/answer/!d;s/\(.*\)NS \(.*\)/\2/') | Sudo tee /etc/dnscache/root/servers/@

Ich denke, die resolv.conf-Datei wird überschrieben, wenn wir DHCP verwenden. Ich gebe mir selbst eine statische IP-Adresse und entferne die Software, die sie quetscht, indem ich die Interface-Datei bearbeite, um die statische IP-Adresse einzurichten. Sie können jedoch versuchen, mit Network Manager zusammenzuarbeiten, wenn Sie dazu neigen.

Sudo apt-get purge network-manager network-manager-gnome
Sudo gedit /etc/network/interfaces

Meine Interface-Datei sieht wie folgt aus, aber ändern Sie Ihre an Ihre Konfiguration.

# Loopback
#
auto lo
iface lo inet loopback

# First network card (attached to NAT router, attached to cable internet)
#
auto eth0
iface eth0 inet static
address 192.168.1.254
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1

Jetzt starten wir einfach neu.

Sudo reboot

Jetzt verwenden Sie einen lokalen Resolver und die neuesten Root-Server. Sie werden jedoch feststellen, dass OpenDNS und Google tatsächlich schneller antworten (für Namen, die sich in ihrem Cache befinden, der die beliebtesten Domains darstellt). Es gibt keine zusätzliche Konfiguration, die dazu führen könnte, dass die Software sicherer wird, als sie bereits ist.

6
user8290

Ich benutze "dnscache" (Paket "dnscache-run") und es ist sehr einfach. Sie müssen nichts konfigurieren.
Es erfasst die DNS-Petitionen (Port 5) und speichert die Antworten zwischen, wenn Linux das nächste Mal nach dieser Domain fragt, gibt dnscache die IP sofort zurück.
Obwohl es zwei Parameter gibt, die geändert werden können, um dieses Programm zu verbessern:

echo 16000000 > /etc/sv/dnscache/env/CACHESIZE
echo 16777216 > /etc/sv/dnscache/env/DATALIMIT
3
Juan Simón

Unabhängig davon, welches Tool Sie verwenden, stellen Sie sicher, dass Port 53 für Ihre Firewall nicht aktiviert ist. Möglicherweise möchten Sie nur dem Host den ausgehenden Cache-Zugriff erlauben.

DNSMasq ist einfach einzurichten und gut dokumentiert. Wenn Sie es auf einer Firewall installieren, geben Sie die Schnittstellen an, an die das Ausschließen der Internetschnittstelle gebunden werden soll.

Bind ist schwieriger zu konfigurieren und kann als Cache für ein kleines Netzwerk überfordert sein. Ich glaube, die Standardkonfiguration ist nur Caching. Möglicherweise möchten Sie eine ACL hinzufügen, um einzuschränken, welche Adressen Ihren Server verwenden dürfen.

0
BillThor

Das von dnscache ausgeführte Paket hatte die geringsten Konflikte mit anderen Paketen wie libvirt, die Bridge-Netzwerke und dnsmasq verwenden.

Sudo apt-get install dnscache-run

Dieses Paket entfernt resolvconf (/etc/resolv.conf) und Sie müssen/etc/network/interfaces oder den Netzwerkmanager verwenden, um Ihre Konfiguration anzuzeigen.

0
rickfoosusa