O raciocínio por trás da introdução do dnsmasq como um relay de DNS local é declarado aqui em um post de blog de Stéphane Graber.
Citando o motivo principal:
% bl0ck_qu0te%Você também encontrará muitos comentários a seguir!
Estou tentando alterar os servidores de nomes que estão sendo usados pela minha máquina Ubuntu (apenas meu laptop, não um servidor).
Nos bons velhos tempos em que eu estava usando o Slackware eu só precisava editar /etc/resolv.conf
e meu trabalho estava pronto.
Depois de descobrir que /etc/resolv.conf
é realmente gerado por resolvconf
, editei /etc/resolvconf/resolv.conf.d/head
como tal:
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 8.8.8.8
nameserver 8.8.4.4
Mas meu trabalho não está terminado. Vejo que uma linha indesejada ainda é adicionada em /etc/resolv.conf
:
nameserver 127.0.1.1
Eu não gosto disso porque quero que a resolução do nome falhe logo após experimentar os servidores de nomes do Google.
Esta linha não está em nenhum arquivo em /etc/resolvconf/resolv.conf.d/
e aqui minha confusão começa. Por sudo netstat -ltnp
, vejo que tenho um daemon do servidor de nomes em execução no meu laptop:
tcp 0 0 127.0.1.1:53 0.0.0.0:* LISTEN 4889/dnsmasq
Por que eu precisaria disso? Não consigo remover o pacote contendo dnsmasq
(que é dnsmasq-base
) porque esses pacotes dependem dele:
checkbox-gui checkbox-qt dnsmasq-base network-manager network-manager-gnome plainbox-provider-checkbox plainbox-provider-resource-generic ubuntu-desktop
Este serviço em execução na porta 53 é realmente necessário para o bem-estar da minha máquina? Como posso evitar que ele seja executado sem usar ferramentas GUI e sem comprometer o NetworkManager?
Tentei alterar /etc/NetworkManager/NetworkManager.conf
e reiniciar o NetworkManager comentando a linha referente a dnsmasq
[main]
plugins=ifupdown,keyfile,ofono
#dns=dnsmasq
[ifupdown]
managed=false
A linha indesejada mencionada anteriormente em resolv.conf
realmente desapareceu. Mas, infelizmente, parece ser substituído por esta linha:
nameserver 192.168.0.1
Seria bom ter alguma elucidação sobre o significado e o propósito de tal comportamento.
Uma correção temporária é remover o link /etc/resolv.conf -> ../run/resolvconf/resolv.conf
e criar um novo arquivo /etc/resolv.conf
do zero. Isso funcionaria .. um pouco. Ele não adicionaria outras informações de nome úteis (como as diretivas search
) que vêm do DHCP.
Portanto, uma solução definitiva que permita que resolv.conf
seja gerado por resolvconf
ou NetworkManager ainda precisa ser encontrada.
Em primeiro lugar, você geralmente não precisa editar arquivos em /etc/resolvconf/resolv.conf.d/ para obter o comportamento desejado. A edição desses arquivos deve ser considerada como um hack temporário. Geralmente você quer configurar seu configurador de interface (no seu caso NetworkManager) para se comportar da maneira que você quiser.
Para remover nameserver 127.0.1.1
você fez a coisa certa, você comentou dns=dnsmasq
em /etc/NetworkManager/NetworkManager.conf. Isso impede que o NetworkManager inicie um servidor de nomes de encaminhamento local (uma instância do dnsmasq) que atende no endereço IP 127.0.1.1
. Quando esse endereço não está registrado no resolvconf, o resolvconf expõe outros endereços de servidores de nomes em /etc/resolv.conf que foram fornecidos a ele. O endereço 192.168.0.1
que aparece no seu resolv.conf deve vir de um dos arquivos em /etc/resolvconf/resolv.conf.d/ ou de um configurador de interface que envia informações do servidor de nomes para o resolvconf. Você está usando o NetworkManager, então o que você quer fazer é configurar o NetworkManager para não usar (isto é, não encaminhar para o resolvconf) nenhum endereço do servidor de nomes que ele receba do servidor DHCP. A configuração dns=none
(sugerida por Serg) faria isso. No entanto, o mais convencional é deixar o /etc/resolvconf/resolv.conf.d/head sozinho (com apenas o comentário de aviso) e usar o editor de conexão do NetworkManager para selecionar Method: Automatic (DHCP) addresses only
e os endereços desejados (em seu caso, 8.8.8.8
e 8.8.4.4
) no campo Additional DNS servers
na guia Configurações do IPv4.