web-dev-qa-db-fra.com

Le meilleur moyen de configurer la mise en cache DNS?

Afin d'accélérer les recherches DNS, je souhaite installer un cache ou un proxy DNS.

Je peux voir au moins trois programmes qui, à mon avis, feront l'affaire: bind9, pdnsd ou dnsmasq.

Je voudrais m'assurer que, si j'installe un de ceux-ci, je ne le laisse pas mal configuré du point de vue des performances ou de la sécurité. Alors, qu'est-ce que les gens recommandent, et y a-t-il des changements de configuration que je devrais faire immédiatement après l'installation?

27
user8979
  1. Installez bind9
  2. Pointez resolv.conf sur 127.0.0.1

Pour ce faire, suivez ces étapes:

Pour installer Bind9

  1. Ouvrez le "Centre logiciel Ubuntu" (Applications-> Centre logiciel Ubuntu).
  2. Recherche de bind9
  3. Cocher pour afficher "Articles techniques"
  4. Marquez bind9 et installez-le

Mise à jour /etc/resolv.conf

  1. Ouvrez Network Manager (Système-> Préférences-> Network Manager)
  2. Trouvez votre connexion et modifiez-la (filaire ou sans fil)
  3. Activer/désactiver l'onglet "Configuration IPV4"
  4. Sur le champ "Serveurs DNS", écrivez 127.0.0.1

C'est fait!

à tester

Ouvrez gnome-terminal (Applications> Accessoires> Terminal) et tapez

Dig ubuntu.com 

(si vous ne l'avez pas, installez le paquet dnsutils comme expliqué dans bind9)

Vérifiez les dernières réponses, à titre d'exemple:

Ma première requête sur 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

Ma deuxième requête:

;; 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

Le serveur 127.0.0.1 signifie que vous résolvez localement. Jetez un coup d'œil au moment de la requête (entouré de **), le second est mis en cache.

15
Lin

Je recommanderais dnsmasq,

Voir un tutoriel de Nice ici; http://embraceubuntu.com/2006/08/02/local-dns-cache-for-faster-browsing/

Vous voudrez peut-être lire une comparaison ici;

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

9
dblang

"Afin d'accélérer les recherches DNS, je souhaite installer un cache ou un proxy DNS."

D'accord. Mais il existe aussi un moyen plus simple. L'utilisation d'OpenDNS et/ou des serveurs de noms Google sera plus rapide que votre propre cache local pour les noms qui existent déjà dans les caches OpenDNS/Google. L'utilisation de 208.67.222.222, 208.67.220.220 et/ou 8.8.8.8 comme nom de serveur sera plus rapide presque tout le temps. Vous pouvez tester cela avec time nslookup www.google.com 208.67.222.222 pour tester la vitesse sur l'un des serveurs de noms OpenDNS, time nslookup www.google.com 8.8.8.8 pour Google ou time nslookup www.google.com 127.0.0.1 sur votre cache local. Quand je dis plus vite, je veux dire techniquement plus vite et pas tellement plus vite qu'une personne pourrait facilement remarquer une différence.

"Je peux voir au moins trois programmes qui feront l'affaire: bind9, pdnsd ou dnsmasq."

Êtes-vous ouvert à la partie dnscache de djbdns? Instructions ci-dessous. Bien que, il ne sauve pas le cache sans un patch ...

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

Ensuite, nous devrons dire au système d’utiliser notre cache.

Sudo gedit /etc/resolv.conf

Editez le fichier pour qu'il ressemble à cet exemple. Ce fichier définit les serveurs de noms à utiliser, le domaine par défaut et le suffixe de recherche. Le suffixe de recherche permet d’exécuter des requêtes en utilisant uniquement la partie du nom d’hôte d’un nom de domaine complet. Par exemple, "nslookup www" devient automatiquement "nslookup www.example.com" lorsque example.com est la valeur du paramètre "search".

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

C'est un peu sophistiqué, mais nous devons obtenir les derniers serveurs de noms racine.

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

Je pense que le fichier resolv.conf est écrasé lorsque nous utilisons DHCP. J'ai choisi de me donner une adresse IP statique et de supprimer le logiciel qui l'écrase, en modifiant le fichier d'interface pour configurer l'adresse IP statique. Mais vous pouvez essayer de travailler avec Network Manager si vous le souhaitez.

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

Mon fichier d'interface ressemble à ceci, mais modifiez le vôtre en fonction de votre configuration.

# 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

Maintenant, redémarrez.

Sudo reboot

Vous utilisez maintenant un résolveur local et les derniers serveurs racine. Mais vous remarquerez que si vous essayez, OpenDNS et Google répondent en fait plus rapidement (pour les noms qui se trouvent dans leurs caches, qui sont tous les domaines les plus populaires). Il n'y a pas de configuration supplémentaire qui pourrait rendre le logiciel plus sûr qu'il ne l'est déjà.

6
user8290

J'utilise "dnscache" (le paquet "dnscache-run") et c'est très simplement. Pas besoin de configurer quoi que ce soit.
Il capture les requêtes DNS (port 5) et met en cache les réponses. La prochaine fois que Linux demande ce domaine, dnscache renvoie immédiatement l'adresse IP.
Bien que deux paramètres puissent être modifiés pour améliorer ce programme:

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

Quel que soit l’outil utilisé, assurez-vous que le port 53 n’est pas activé sur votre pare-feu. Vous souhaiterez peut-être autoriser uniquement l'hôte avec l'accès sortant du cache.

DNSMasq est facile à installer et bien documenté. Si vous l'installez sur un pare-feu, spécifiez les interfaces à lier pour exclure l'interface Internet.

La liaison est plus difficile à configurer et peut être excessive comme cache pour un petit réseau. Je crois que la configuration par défaut est uniquement mise en cache. Vous souhaiterez peut-être ajouter une liste de contrôle d'accès pour limiter les adresses pouvant utiliser votre serveur.

0
BillThor

Le paquet dnscache-run a eu le moins de conflits avec d’autres paquets, tels que libvirt, qui utilise le réseau en pont et Dnsmasq.

Sudo apt-get install dnscache-run

Ce paquet supprime resolvconf (/etc/resolv.conf) et vous devrez utiliser/etc/network/interfaces ou le gestionnaire de réseau pour afficher votre configuration.

0
rickfoosusa