Como habilitar o cache de DNS no dnsmasq controlado pelo NetworkManager?

8

O Ubuntu Desktop 12.04 usa dnsmasq para realizar 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 configurar o dnsmasq controlado pelo NetworkManager para armazenar em cache os resultados de pesquisas de DNS?

    
por Community 23.06.2012 / 22:49

6 respostas

10

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

cache-size=1000

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

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

ou reinicie.

    
por jdthood 13.12.2012 / 10:24
4

Consegui habilitar o cache do DNS no Linux Mint 13 (baseado no Ubuntu 12.04) usando o método descrito na primeira resposta. Eu criei um arquivo /etc/NetworkManager/dnsmasq.d/cachedns contendo a linha cache-size=100 , depois reiniciei o network-manager. Mesmo que o dnsmasq seja executado pelo gerenciador de rede com um --cache-size=0 codificado em sua linha de comando, a configuração do tamanho do cache em um arquivo config substitui esse valor. Você pode verificar se funciona assim:

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

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

dnsmasq[17808]: cache size 100, 0/2 cache insertions re-used unexpired cache entries.
    
por bloovis 23.05.2014 / 19:18
1

Eu não queria atualizar 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/dnsmasq e altere o tamanho do cache de 1000 para o que você quiser, aproveite sua versão LTS com um cache DNS!

    
por moparisthebest 16.07.2013 / 21:31
0

em 12.04 O dnsmasq é iniciado pelo NetworkManager com o parâmetro hard-coded (ou seja, não configurável) - cache-size = 0 .

manpages for dnsmasq diz que configurar o tamanho do cache como zero desativa o armazenamento em cache. Se você quiser habilitar o cache, você provavelmente terá que desabilitar o dnsmasq-plugin para o NetworkManager para evitar 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 desabilitar o dnsmasq-plugin para o NetworkManager: link

    
por Yevgeniy M. 23.06.2012 / 23:07
0

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

    
por incase1 01.12.2014 / 12:22
0

No Ubuntu 14.04, tive que editar /etc/default/dnsmasq e definir ENABLED=1

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

    
por Arthur F 16.10.2015 / 17:30

Tags