Após a atualização para a 13.10, minha resolução de DNS falha. Parece que os servidores DNS que eu recebo pelo DHCP (LAN) não são usados.
Eu poderia resolver temporariamente o problema adicionando nameserver 8.8.8.8
a /etc/resolv.conf
. Mas os hosts da intranet ainda não podem ser resolvidos.
Ao clicar no item de menu Informações da conexão no indicador de rede, o DNS primário e o DNS secundário são definidos corretamente. Mas meu computador parece não usá-los.
Então, minhas perguntas:
- No que devo colocar
resolv.conf
, se alguma coisa? - Como descobrir quais servidores de nome meu computador está consultando?
- Onde procurar a seguir e descobrir por que os servidores de nomes recebidos pelo DHCP não são usados?
network-manager
Witek
fonte
fonte
Respostas:
Primeiro, você precisa saber um pouco sobre como a resolução de nomes funciona no Ubuntu desde o Ubuntu 12.04.
Stéphane Graber postou algumas informações sobre o assunto no ano passado aqui . A coisa mais importante a saber é que o Ubuntu Server e o Ubuntu Desktop usam o resolvconf para gerenciar o
resolv.conf
arquivo. Isso significa que você não deve mais editar/etc/resolv.conf
diretamente; em vez disso, você deve configurar o utilitário de configuração da interface de rede para fornecer as informações corretas para o resolvconf. Para o Ubuntu Server, o utilitário de configuração da interface de rede é ifup e é configurado pelo arquivo/etc/network/interfaces
. Para o Ubuntu Desktop, o utilitário de configuração da interface de rede é o NetworkManager . Isto é o que você está usando.O NetworkManager é configurado por meio do indicador de rede> Editar conexões . No entanto, para interfaces de rede configuradas pelo DHCP, normalmente não é necessário alterar nenhuma configuração manualmente. Normalmente, o que acontece é que o servidor DHCP (remoto) fornece ao NetworkManager um endereço IP para a interface local e o endereço de um servidor de nomes DNS (remoto) a ser usado. O NetworkManager inicia uma instância de um servidor de nomes de encaminhamento que escuta localmente em 127.0.1.1. Este endereço, 127.0.1.1, é enviado para resolvconf que coloca
nameserver 127.0.1.1
em/etc/resolv.conf
. O NetworkManager também fornece o endereço IP (remoto) do servidor de nomes DNS fornecido pelo DHCP ao servidor de nomes de encaminhamento. Assim, um programa em execução no sistema local solicita que o resolvedor traduza um nome de host em um endereço IP; o resolvedor consulta o servidor de nomes de encaminhamento local em 127.0.1.1; o servidor de nomes de encaminhamento consulta os servidores de nomes remotos sobre os quais foi informado, recebe uma resposta e a envia de volta à cadeia.O NetworkManager se comunica com o processo do servidor de nomes de encaminhamento pelo D-Bus. Você pode ver o que o NetworkManager disse ao servidor de nomes de encaminhamento executando o comando
Atualização resultante dos comentários:
Observe que resolvconf realmente grava o arquivo
/run/resolvconf/resolv.conf
no qual/etc/resolv.conf
deveria ser um link simbólico. Se/etc/resolv.conf
não for um link simbólico, será necessário recriá-lo. Para fazer isso, você pode executarou
fonte
sudo dpkg-reconfigure resolvconf
ou pode fazêmv /etc/resolv.conf /run/resolvconf/resolv.conf && ln -s ../run/resolvconf/resolv.conf /etc/resolv.conf
sudo dpkg-reconfigure resolvconf
conforme sugerido na última parte da resposta.sudo dpkg-reconfigure resolveconf
parecia funcionar muito bem!Fiz a alteração sugerida no link abaixo (desativando o dnsmasq). Agora tudo funciona muito bem! http://www.ubuntugeek.com/how-to-disable-dnsmasq-in-ubuntu-12-04precise.html
Abra o
/etc/NetworkManager/NetworkManager.conf
arquivoLinha de comentário como:
fonte
sudo restart network-manager
.sudo /etc/init.d/network-manager restart
dns=default
a[main]
seção. O NetworkManager possui seu próprio plugin desagradável do dnsmasq, que ele usará de outra forma.network-manager
- #sudo service network-manager restart
EDIT 2: A postagem anterior foi excluída por moderação, estou postando o que eu achei uma solução. Desculpe por isso.
EDIT: Acabei de encontrar a resposta e está nesta página - desculpe pelo meu miopy. Publiquei minhas descobertas abaixo, expandindo a resposta correta por Richard Lindstedt encontrada nesta página. Eu deixei meu estrondo cedo para um pouco de contexto. Por favor, vote na resposta de Richard, ele merece.
Isso com certeza não ajudou o OP e não me ajuda agora. Não queremos endereços estáticos, queremos usar os que o servidor DHCP nos envia. O NetworkManager parece reconhecê-los, mas o Ubuntu os ignora sem rodeios:
Mas...
E minhas / etc / network / interfaces são:
o que é um pouco estranho, eu esperaria que todas as interfaces fossem declaradas aqui (ou estou faltando alguma coisa?).
Então, resumindo:
dpkg-reconfigure resolvconf
Não estou abrindo outro encadeamento porque é o problema exato, exceto que estou com 14.10 agora (mas isso me incomoda desde a atualização das 12.10 para as 13.04).
SOLUÇÃO
Essa última frase me colocou no caminho certo e só então percebi a resposta de Richard.
O problema parece estar relacionado aos pacotes
dnsmasq
e conflitoresolvconf
. Até as 12.10,dnsmasq
foi utilizado. A partir do 13.04, o Ubuntu parecia mudar para um híbrido dnsmasq / resolvconf, onde você instalou os pacotesdnsmasq-base
eresolvconf
, mas nãodnsmasq
ele próprio.Não posso dizer se é um bug nos scripts de atualização para 13.04 ou algo mais, porque ao atualizar (como em novas instalações) o resolvconf é instalado, o dnsmasq-base é atualizado e o dnsmasq é (corretamente) desinstalado.
O problema é que o script de atualização falha ao comentar a entrada de
dns=dnsmasq
linha/etc/NetworkManager/NetworkManager.conf
. Portanto, mesmo que o daemon dnsmasq não esteja mais presente no sistema, /etc/resolv.conf ainda espera que esteja.fonte
dnsmasq
ednsmasq-base
instalou, o NM colocará127.0.0.1
em/etc/resolv.conf
vez de127.0.1.1
. Eu simplesmente desinstaleidnsmasq
(e habilitei o NM) e tudo funciona muito bem.sudo service network-manager restart
isso entre em vigor.É realmente muito fácil.
basta abrir seu arquivo conf de interfaces -> sudo vi / etc / network / interfaces
e sob sua interface (provavelmente eth0), você verá toda a configuração usual.
Após o gateway, basta adicionar 'dns-nameservers 8.8.8.8 8.8.8.9' ou qualquer servidor de nomes que você usará.
Portanto, sua configuração deve ser:
basta fazer uma 'reinicialização da rede de serviço sudo' e pronto!
fonte