Come abilitare la memorizzazione nella cache DNS nel dnsmasq controllato da NetworkManager?


8

Ubuntu Desktop 12.04 utilizza dnsmasq per eseguire ricerche DNS, ma non è configurato per memorizzare questi risultati nella cache . (Ho controllato questo usando dig per risolvere i nomi e non vedo un grande miglioramento nei tempi di risposta dopo la prima ricerca.) Come configuro il dnsmasq controllato da NetworkManager per memorizzare nella cache i risultati delle ricerche DNS?

Risposte:


10

In Ubuntu 12.10 è possibile abilitare la cache dell'istanza dnsmasq controllata da NetworkManager inserendo la linea

cache-size=1000

(con il tuo numero preferito di nomi anziché 1000) in un nuovo file in /etc/NetworkManager/dnsmasq.d/. Per attivare questa modifica devi quindi fare

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

o riavviare.


Grazie per le tue informazioni. Per Ubuntu 16.04 (e 15.10 dall'introduzione di systemd), utilizzare "arresto / avvio del gestore di rete del servizio sudo" anziché "arresto / avvio del gestore di rete del sudo"
Fumisky Wells,

Anche se funziona ancora, usando lo strumento systemd dovrebbe essere:sudo systemctl stop NetworkManager
goetzc

4

Sono stato in grado di abilitare la memorizzazione nella cache DNS in Linux Mint 13 (basato su Ubuntu 12.04) utilizzando il metodo descritto nella prima risposta. Ho creato un file /etc/NetworkManager/dnsmasq.d/cachednscontenente la linea cache-size=100, quindi ho riavviato il gestore della rete. Anche se dnsmasq viene eseguito dal gestore della rete con un hardcoded --cache-size=0sulla sua riga di comando, l'impostazione della dimensione della cache in un file di configurazione sovrascrive quel valore. Puoi verificare che funzioni nel modo seguente:

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

Dovresti vedere una linea simile a questa nel syslog, che mostra la dimensione della cache:

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

Mi chiedevo come fosse influenzato il codice di gestione di rete --cache-size = 0, ma il tuo post mi ha chiarito. Grazie!
Fumisky Wells,

1

Non volevo aggiornare da 12.04, ma volevo comunque dnsmasq gestito da NetworkManager con la memorizzazione nella cache abilitata, ma come diceva l'altra risposta, --cache-size = 0 è hardcoded e non può essere modificato con la configurazione.

Quindi quello che ho finito per fare è stato il seguente, come root:

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

e quindi creando un nuovo file, / usr / sbin / dnsmasq con il seguente contenuto:

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

assicurati di chmod +x /usr/sbin/dnsmasqcambiare la dimensione della cache da 1000 a quella che desideri, goditi la tua versione LTS con una cache DNS!


0

in 12.04 dnsmasq viene avviato da NetworkManager con il parametro hardcoded (ovvero non configurabile) --cache-size = 0 .

Le pagine man di dnsmasq indicano che l'impostazione della dimensione della cache su zero disabilita la memorizzazione nella cache. Se si desidera abilitare la memorizzazione nella cache, sarà probabilmente necessario disabilitare il plug-in dnsmasq per NetworkManager per impedire a NetworkManager di avviare dnsmasq e avviare la propria istanza di dnsmasq con dimensioni della cache maggiori di zero.

qui puoi leggere come disabilitare dnsmasq-plugin per NetworkManager: https://askubuntu.com/a/131422/71057


0

Per riattivare la cache (con una versione di NetworkManager che ha la directory /etc/NetworkManager/dnsmasq.d), è effettivamente sufficiente rilasciare un file in quella directory con il contenuto "cache-size = X" (con X che è 150 per il predefinito dnsmasq avrebbe). I file presenti sovrascrivono i parametri codificati specificati sulla riga di comando.


0

In Ubuntu 14.04, ho dovuto modificare /etc/default/dnsmasqe impostareENABLED=1

Ho anche messo cache-size=1000lì e in tutti gli altri file di configurazione di dnsmasq che ho trovato.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.