Como habilito o cache DNS no dnsmasq controlado pelo NetworkManager?

8

O Ubuntu Desktop 12.04 usa o dnsmasq para executar pesquisas de DNS, mas não está configurado para armazenar em cache esses resultados. (Verifiquei isso usando dig para resolver nomes e não vejo uma grande melhoria no tempo de resposta após a primeira pesquisa.) Como configuro o dnsmasq controlado pelo NetworkManager para armazenar em cache os resultados das pesquisas de DNS?

Comunidade
fonte

Respostas:

10

No Ubuntu 12.10, você pode ativar o cache da instância dnsmasq controlada pelo NetworkManager, colocando a linha

cache-size=1000

(com seu número preferido de nomes em vez de 1000) em um novo arquivo em /etc/NetworkManager/dnsmasq.d/. Para ativar essa alteração, você deve fazer

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

ou reinicie.

jdthood
fonte
Obrigado por sua informação. Para o Ubuntu 16.04 (e 15.10 desde systemd foi introduzido), use "parada serviço sudo network-manager / start" em vez de "parada sudo / start network-manager"
Fumisky Wells
Apesar de que ainda funciona, usando a ferramenta systemd que deve ser:sudo systemctl stop NetworkManager
goetzc
4

Consegui ativar o cache de DNS no Linux Mint 13 (baseado no Ubuntu 12.04) usando o método descrito na primeira resposta. Criei um arquivo /etc/NetworkManager/dnsmasq.d/cachednscontendo a linha cache-size=100e reiniciei o gerenciador de rede. Embora o dnsmasq seja executado pelo gerenciador de rede com um código embutido --cache-size=0em sua linha de comando, a configuração do tamanho do cache em um arquivo de configuração substitui esse valor. Você pode verificar se funciona, fazendo o seguinte:

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

Você deve ver uma linha assim no syslog, mostrando o tamanho do cache:

dnsmasq[17808]: cache size 100, 0/2 cache insertions re-used unexpired cache entries.
bloovis
fonte
Eu me perguntava como o código-gerente --cache-size = 0 do gerente de rede foi afetado, mas sua postagem me deixa claro. Obrigado!
Fumisky Wells
1

Eu não queria atualizar a partir do 12.04, mas ainda queria o dnsmasq gerenciado pelo NetworkManager com o cache ativado, mas como a outra resposta disse, --cache-size = 0 é codificado e não pode ser alterado com a configuração.

Então o que acabei fazendo foi o seguinte, como root:

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

e, em seguida, criando um novo arquivo, / usr / sbin / dnsmasq, com o seguinte conteúdo:

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

certifique-se de chmod +x /usr/sbin/dnsmasqalterar o tamanho do cache de 1000 para o que desejar, aproveite a versão LTS com um cache DNS!

moparisthebest
fonte
0

na versão 12.04, o dnsmasq é iniciado pelo NetworkManager com o parâmetro codificado (ou seja, não configurável) --cache-size = 0 .

As páginas de manual do dnsmasq dizem que configurar o tamanho do cache como zero desativa o cache. Se você deseja ativar o armazenamento em cache, provavelmente precisará desativar o dnsmasq-plugin do NetworkManager para impedir que o NetworkManager inicie o dnsmasq e inicie sua própria instância do dnsmasq com tamanho de cache maior que zero.

aqui você pode ler como desativar o dnsmasq-plugin para o NetworkManager: https://askubuntu.com/a/131422/71057

Yevgeniy M.
fonte
0

Para reativar o cache (com uma versão do NetworkManager que possui o diretório /etc/NetworkManager/dnsmasq.d), é realmente suficiente soltar um arquivo nesse diretório com o conteúdo "cache-size = X" (com X sendo 150 para o dnsmasq padrão teria). Os arquivos lá substituem os parâmetros codificados fornecidos na linha de comando.

incase1
fonte
0

No Ubuntu 14.04, eu tive que editar /etc/default/dnsmasqe definirENABLED=1

Eu também coloquei cache-size=1000lá e em todos os outros arquivos de configuração do dnsmasq que encontrei.

Arthur F
fonte