Por que o resultado nslookup sempre vem do servidor 127.0.0.1

11

Acho bastante confuso que o nslookup sempre obtenha resultados do Servidor 127.0.0.1

Faz porque o Ubuntu usa um cache DNS local pelo dnsmasq ? Mas eu fechei e limpei meu cache de DNS, depois procure um host que eu nunca visitei e a saída ainda será 127.0.0.1.

Isso me deixa bastante confuso. Alguém pode explicar isso para mim? A propósito, meu servidor DNS está definido como 8.8.8.8.

47dev47null
fonte

Respostas:

11

Por padrão, o Ubuntu realmente armazena em cache as entradas DNS com o Dnsmasq. O Dnsmasq faz uma pesquisa quando uma entrada DNS não está em seu cache, e é por isso que você sempre vê o endereço IP localhost( 127.0.0.1) ao fazer uma pesquisa DNS sem especificar o servidor de nomes.

Na página de manual , é explicado da seguinte maneira:

O Dnsmasq aceita consultas DNS e as responde de um cache local pequeno, ou as encaminha para um servidor DNS real e recursivo. Carrega o conteúdo de / etc / hosts para que os nomes de host locais que não aparecem no DNS global possam ser resolvidos e também responda às consultas DNS para hosts configurados por DHCP.

Esse comportamento pode ser substituído, editando /etc/NetworkManager/NetworkManager.confe alterando dns=dnsmasqpara #dns=dnsmasq, após o qual você precisará reiniciar o serviço do gerenciador de rede ( sudo service network-manager restart).

Mais informações podem ser encontradas na documentação da comunidade e na página de manual .

Silke
fonte
1
Obrigado pela resposta. Não percebi que o Dnsmasq faz uma pesquisa quando uma entrada DNS não está no cache. Muito obrigado!
precisa saber é o seguinte
o que fazer se já não houver dns=dnsmasqlinha?
Douglas Gaskell
@DouglasGaskell: esta resposta está desatualizada: acredito que o Ubuntu tenha mudado para a systemd-resolvedversão 17.04. Veja: askubuntu.com/questions/907246/…
Silke
2

verifique se

cat /etc/NetworkManager/NetworkManager.conf

[a Principal]

plugins = ifupdown, arquivo-chave

dns = dnsmasq

[ifupdown]

managed = false

hash (#) fora dns = dnsmasq

salve o arquivo e reinicie a rede.

Se você não deseja um resolvedor local, desative-o DNSMASQ usando o seguinte procedimento

Você precisa editar o arquivo /etc/NetworkManager/NetworkManager.conf

gksudo gedit /etc/NetworkManager/NetworkManager.conf

e comente a seguinte linha de

dns=dnsmasq

para

#dns=dnsmasq

Salve e saia do arquivo

Agora você precisa gerenciar a rede usando o seguinte comando

sudo restart network-manager

Ref: http://www.stgraber.org/2012/02/24/dns-in-ubuntu-12-04/

Sourav Mishra
fonte