web-dev-qa-db-fra.com

Comment activer la mise en cache DNS dans le Dnsmasq contrôlé par NetworkManager?

Ubuntu Desktop 12.04 utilise dnsmasq pour effectuer des recherches DNS, mais il n'est pas configuré pour mettre en cache ces résultats. (J'ai vérifié cela en utilisant Dig pour résoudre les noms et je ne constate pas d'amélioration importante du temps de réponse après la première recherche.) Comment configurer le dnsmasq contrôlé par NetworkManager pour qu'il mette en cache les résultats des recherches DNS?

8
user8979

Dans Ubuntu 12.10, vous pouvez activer le cache de l’instance Dnsmasq contrôlée par NetworkManager en mettant la ligne

cache-size=1000

(avec votre nombre préféré de noms au lieu de 1000) dans un nouveau fichier dans /etc/NetworkManager/dnsmasq.d/. Pour activer ce changement, vous devez alors faire

Sudo stop network-manager
Sudo killall dnsmasq
Sudo start network-manager

ou redémarrez.

10
jdthood

J'ai pu activer la mise en cache DNS dans Linux Mint 13 (basé sur Ubuntu 12.04) en utilisant la méthode décrite dans la première réponse. J'ai créé un fichier /etc/NetworkManager/dnsmasq.d/cachedns contenant la ligne cache-size=100, puis j'ai redémarré le gestionnaire de réseau. Même si dnsmasq est exécuté par network-manager avec un --cache-size=0 codé en dur sur sa ligne de commande, la définition de la taille du cache dans un fichier de configuration remplace cette valeur. Vous pouvez vérifier que cela fonctionne en procédant comme suit:

Sudo killall -USR1 dnsmasq
tail /var/log/syslog

Vous devriez voir une ligne qui ressemble à ceci dans le journal système, indiquant la taille du cache:

dnsmasq[17808]: cache size 100, 0/2 cache insertions re-used unexpired cache entries.
4
bloovis

Je ne voulais pas mettre à niveau à partir de 12.04, mais je voulais toujours que Dnsmasq soit géré par NetworkManager avec la mise en cache activée, mais comme le disait l'autre réponse, --cache-size = 0 est codé en dur et ne peut pas être modifié avec la configuration.

Donc, ce que j'ai fini par faire était le suivant:

mv /usr/sbin/dnsmasq /usr/sbin/dnsmasq.real

puis en créant un nouveau fichier,/usr/sbin/dnsmasq avec le contenu suivant:

#!/bin/bash
args=$(echo "$@" | sed 's/--cache-size=0/--cache-size=1000/')
/usr/sbin/dnsmasq.real $args

assurez-vous de bien chmod +x /usr/sbin/dnsmasq et modifiez la taille du cache de 1000 à votre guise, profitez de votre version LTS avec un cache DNS!

1
moparisthebest

dans 12.04, NetworkManager démarre Dnsmasq avec un paramètre codé en dur (c’est-à-dire non configurable) - cache-size = 0 .

les pages de manuel pour dnsmasq indiquent que la définition de la taille du cache à zéro désactive la mise en cache. Si vous souhaitez activer la mise en cache, vous devrez probablement désactiver le plug-in Dnsmasq pour NetworkManager afin d'empêcher NetworkManager de démarrer Dnsmasq et de démarrer votre propre instance de Dnsmasq avec une taille de cache supérieure à zéro.

ici, vous pouvez lire comment désactiver Dnsmasq-plugin pour NetworkManager: https://askubuntu.com/a/131422/71057

0
Yevgeniy M.

Pour réactiver le cache (avec une version de NetworkManager comportant le répertoire /etc/NetworkManager/dnsmasq.d), il suffit en fait de supprimer un fichier dans ce répertoire avec le contenu "cache-size = X" (X étant égal à 150). pour le défaut Dnsmasq aurait). Les fichiers qu’ils contiennent remplacent les paramètres codés en dur donnés sur la ligne de commande.

0
incase1

Dans Ubuntu 14.04, je devais éditer /etc/default/dnsmasq et définir ENABLED=1

J'ai également mis cache-size=1000 là-bas et dans tous les autres fichiers de configuration Dnsmasq que j'ai trouvés.

0
Arthur F