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?
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.
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.
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!
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
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.
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.