Dhclient não atualizando /etc/resolv.conf

4

No Linux Mint, quando vejo o arquivo /etc/resolv.conf, o primeiro comentário afirma que o arquivo /etc/resolv.conf é gerado pelo resolvconf (8).

~ $ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)

Para parafrasear a página man resolvconf (8), "o programa resolvconf é executado por clientes DHCP, como dhclient".

Eu corro o dhclient dhclient.

~ $ dhclient wlan0

O dhclient deve fazer com que o programa resolvconf atualize o /etc/resolv.conf. O arquivo /var/lib/dhcp/dhclient.leases verifica se posso conceder o endereço IP do servidor de nomes (192.168.0.6).

~ $ cat /var/lib/dhcp/dhclient.leases 
lease {
  interface "wlan0";
  . . .
  option domain-name-servers 192.168.0.6;
  . . .
}

No entanto, o arquivo /etc/resolv.conf não é atualizado. O arquivo /etc/resolv.conf possui o servidor de nomes 127.0.1.1.

~ $ cat /etc/resolv.conf
# 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 127.0.1.1
search software.eng.apl

Não há servidores de nomes listados em / etc / network / interfaces.

~ $ cat /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

Não tenho certeza do que estou perdendo aqui para obter o arquivo /etc/resolv.conf para atualizar usando o servidor de nomes que está sendo alugado do servidor DHCP. O servidor DHCP é uma máquina Linux CentOS usando DHCPD.

    
por JeremyCanfield 16.04.2017 / 01:16

3 respostas

6

O Mint e outras distribuições modernas vêm com mdns por padrão, o que envolve o DNS público regular com um wrapper "descentralizado" local que habilita o suporte ao zeroconf para sua rede local. Basicamente, um servidor DNS local resolve nomes na rede local que descobriu, depois volta para o DNS público (agora proxied) para resolução pública da Internet, ou seja, para nomes fora da sua rede local.

Em tantas palavras, o seu resolv.conf está correto e apropriado para este cenário, e se mdns tiver problemas para acessar o servidor de nomes do seu ISP, você deve olhar dentro da sua configuração - embora, é claro, Se você não se importa com o suporte ao zeroconf, desabilitar mdns (e provavelmente também o Avahi) permite gerenciar resolv.conf da maneira tradicional.

Veja também, por exemplo link

    
por 16.04.2017 / 11:41
0

Eu tive o mesmo problema descrito no OP, mas nenhuma das respostas anteriores funcionou para mim. Estou executando o Linux Mint 18 e descobri esse problema ao tentar usar recursos de rede dentro de um contêiner docker. O Docker esperava resolver os valores de DNS de /etc/resolv.conf . Mas como o único servidor de nomes listado era o 127.0.1.1, a rede do docker não teve êxito.

Eu encontrei outra solução no askubuntu que funcionou para mim. Estou postando aqui como uma referência cruzada no caso de ajudar alguém.

NetworkManager é o programa que (via utilitário resolvconf) insere o endereço 127.0.1.1 no resolv.conf. O NetworkManager insere esse endereço se e somente se estiver configurado para iniciar uma instância do programa dnsmasq para servir como um servidor de nomes de encaminhamento local. Essa instância do dnsmasq escuta as consultas no endereço 127.0.1.1.

Se você não quiser usar um servidor de nomes de encaminhamento local, configure o NetworkManager para não iniciar uma instância do dnsmasq e não inserir esse endereço. Em /etc/NetworkManager/NetworkManager.conf comente a linha dns=dnsmasq

sudo vim /etc/NetworkManager/NetworkManager.conf

[main]
plugins=ifupdown,keyfile,ofono
#dns=dnsmasq

e reinicie o serviço NetworkManager.

sudo service network-manager restart

Neste modo, o NetworkManager atualiza o /etc/resolv.conf (ainda via resolvconf) para incluir os endereços do servidor de nomes que o NetworkManager possui para conexões ativas.

Se você quiser desabilitar o mecanismo resolvconf para atualizar o resolv.conf e apenas usar um arquivo estático resolv.conf, faça o seguinte.

sudo rm -f /etc/resolv.conf  # Delete the symbolic link
sudo vim /etc/resolv.conf   # Create static file
    
por 03.07.2018 / 01:31
-1

você pode editar /etc/dhcp/dhclient.conf edite a linha removendo o comentário de #prepend domain-name-server

    
por 03.08.2017 / 15:48