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

8

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 vois pas une grande amélioration du temps de réponse après la première recherche.) Comment configurer le dnsmasq contrôlé par NetworkManager pour mettre en cache les résultats des recherches DNS?

Communauté
la source

Réponses:

10

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 de noms préféré au lieu de 1000) dans un nouveau fichier dans /etc/NetworkManager/dnsmasq.d/. Pour activer ce changement, vous devez ensuite faire

sudo stop network-manager
sudo killall dnsmasq
sudo start network-manager

ou redémarrez.

jdthood
la source
Merci pour votre info. Pour Ubuntu 16.04 (et 15.10 depuis l'introduction de systemd), utilisez "sudo service network-manager stop / start" plutôt que "sudo stop / start network-manager"
Fumisky Wells
Bien que cela fonctionne toujours, en utilisant l'outil systemd, cela devrait être:sudo systemctl stop NetworkManager
goetzc
4

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/cachednscontenant la ligne cache-size=100, puis redémarré le gestionnaire de réseau. Même si dnsmasq est exécuté par le gestionnaire de réseau avec un code dur --cache-size=0sur 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 syslog, montrant la taille du cache:

dnsmasq[17808]: cache size 100, 0/2 cache insertions re-used unexpired cache entries.
bloovis
la source
Je me demandais comment le --cache-size = 0 codé en dur du gestionnaire de réseau était affecté, mais votre message m'indique clairement. Je vous remercie!
Fumisky Wells
1

Je ne voulais pas mettre à niveau à partir de 12.04, mais je voulais toujours dnsmasq 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, en tant que root:

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 que chmod +x /usr/sbin/dnsmasq, et changez la taille du cache de 1000 à ce que vous voulez, profitez de votre version LTS avec un cache DNS!

moparisthebest
la source
0

dans 12.04 dnsmasq est démarré par NetworkManager avec le paramètre codé en dur (c'est-à-dire non configurable) --cache-size = 0 .

manpages for dnsmasq indique 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 pour empêcher NetworkManager de démarrer dnsmasq et démarrer votre propre instance de dnsmasq avec une taille de cache supérieure à zéro.

ici, vous pouvez lire comment désactiver le plug-in dnsmasq pour NetworkManager: https://askubuntu.com/a/131422/71057

Yevgeniy M.
la source
0

Pour réactiver le cache (avec une version NetworkManager qui a le répertoire /etc/NetworkManager/dnsmasq.d), il suffit en fait de déposer un fichier dans ce répertoire avec le contenu "cache-size = X" (X étant 150 pour le dnsmasq par défaut aurait). Les fichiers qui s'y trouvent remplacent les paramètres codés en dur donnés sur la ligne de commande.

incase1
la source
0

Dans Ubuntu 14.04, j'ai dû modifier /etc/default/dnsmasqet définirENABLED=1

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

Arthur F
la source