O DNS não está funcionando, o /etc/resolv.conf não é sobrescrito. Por quê?

0

Eu tenho esta configuração no meu servidor na conexão do Network Manager:

/etc/NetworkManager/system-connections/wired-connection

[connection]
id=wired-connection
uuid=0c501f08acc5497cb7...
type=8023ethernet

[8023ethernet]

[ipv4]
method=manual
dns=8.8.8.8;
address1=192.168.1.250/24,192.168.1.1

[ipv6]
method=auto
ip6privacy=0

/etc/NetworkManager/NetworkManager.conf

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

[ifupdown]
managed=true

Mas meu arquivo /etc/resolv.conf (link simbólico) não é sobrescrito pelo Network Manager. Se eu adicionar manualmente a linha nameserver 8.8.8.8 ao arquivo, ele funciona bem, mas é apenas uma solução temporal. Se eu abrir a configuração do IP, na interface do Kubuntu, vejo os campos do DNS vazios.

Eu também tentei com este comando, mas não funcionou dpkg-reconfigure resolvconf

A rota do meu arquivo de configuração original está em /run/resolvconf/resolv.conf

E eu encontrei este arquivo, ele pertence a uma configuração antiga /etc/resolvconf/resolv.conf.d/original

nameserver 213.60.205.175
nameserver 213.60.205.174
nameserver 212.51.33.110

Devo remover ou editar este arquivo para que ele funcione?

Eu posso acessar apenas remotamente ao servidor, devido a isso eu gostaria de ter certeza de que vai funcionar. Se não, eu poderia quebrar a conexão

Obrigado antecipadamente

Atualização 03/08/15 . Saída de /usr/share/resolvconf/dump-debug-info

###### Start of debugging information for resolvconf ######
### ls -l /etc/resolvconf
total 16
-rw-r--r-- 1 root root  172 dic 13  2012 interface-order
drwxr-xr-x 2 root root 4096 jul  8 18:33 resolv.conf.d
drwxr-xr-x 2 root root 4096 jul  8 18:33 update.d
drwxr-xr-x 2 root root 4096 jul  8 19:11 update-libc.d
### cat /etc/resolvconf/interface-order
# interface-order(5)
lo.inet*
lo.dnsmasq
lo.pdnsd
lo.!(pdns|pdns-recursor)
lo
tun*
tap*
hso*
em+([0-9])?(_+([0-9]))*
p+([0-9])p+([0-9])?(_+([0-9]))*
eth*
ath*
wlan*
ppp*
*
### ls -l /etc/resolvconf/resolv.conf.d
total 8
-rw-r--r-- 1 root root   0 dic 13  2012 base
-rw-r--r-- 1 root root 151 dic 13  2012 head
-rw-r--r-- 1 root root  77 jul  8 18:21 original
-rw-r--r-- 1 root root   0 jul  8 18:26 tail
### cat /etc/resolvconf/resolv.conf.d/base
### cat /etc/resolvconf/resolv.conf.d/head
# 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
### cat /etc/resolvconf/resolv.conf.d/original
nameserver 213.60.205.175
nameserver 213.60.205.174
nameserver 212.51.33.110
### cat /etc/resolvconf/resolv.conf.d/tail
### ls -l /etc/resolvconf/run
ls: no se puede acceder a /etc/resolvconf/run: No existe el archivo o el directorio
### ls -l /run/resolvconf
total 4
-rw-r--r-- 1 root root   0 jul 29 10:10 enable-updates
drwxr-xr-x 2 root root  40 jul 29 10:10 interface
-rw-r--r-- 1 root root 151 ago  3 09:40 resolv.conf
### cat /run/resolvconf/enable-updates
### cat /run/resolvconf/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
### ls -l /run/resolvconf/interface
total 0
### ls -l /etc/resolv.conf
lrwxrwxrwx 1 root root 29 jul 24 12:59 /etc/resolv.conf -> ../run/resolvconf/resolv.conf
### lsattr /etc/resolv.conf
lsattr: La operación no está soportada Mientras se leían las banderas en /etc/resolv.conf
### 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
### cat /etc/NetworkManager/NetworkManager.conf
[main]
plugins=ifupdown,keyfile,ofono
dns=dnsmasq

[ifupdown]
managed=true
###### End of debugging information for resolvconf ######

Estou usando o Kubuntu 14.04 pelo caminho

    
por ChesuCR 29.07.2015 / 15:17

3 respostas

1

O binário executável dnsmasq está incluído no pacote dnsmasq-base.

Quando dns=dnsmasq aparece sem comentário no NetworkManager.conf, o NetworkManager executa uma instância do dnsmasq para servir como um servidor de nomes de encaminhamento local.

O pacote dnsmasq inclui arquivos de configuração que suportam a execução de uma instância do dnsmasq independentemente do NetworkManager. A última instância do dnsmasq é configurada por /etc/dnsmasq.conf.

O utilitário resolvconf é usado pelos configuradores de interface de rede para gerenciar as informações do servidor de nomes. Com base nas informações que foram fornecidas, ele grava um arquivo /run/resolvconf/resolv.conf que deve ser usado para configurar o resolvedor da libc. O arquivo é ativado nesta função, criando um link simbólico de /etc/resolv.conf para /run/resolvconf/resolv.conf.

NetworkManager e ifup enviam as informações do servidor de nomes para o resolvconf. Normalmente /etc/resolv.conf é um link simbólico para /run/resolvconf/resolv.conf e tudo funciona bem.

No caso de dns=dnsmasq parecer descomentado no NetworkManager.conf, o NetworkManager fornece o resolvconf com o endereço do servidor de nomes 127.0.1.1 que aparece no resolv.conf; O processo escravo dnsmasq do NetworkManager atende no endereço 127.0.1.1 e encaminha as consultas para os servidores de nomes externos nos endereços que o NetworkManager foi configurado para conhecer ou aprendeu via DHCP.

A primeira observação do questionador é:

But my file /etc/resolv.conf (symbolic link) is not overwritten by the Network Manager. 

Isso indica que há um erro de configuração. /etc/resolv.conf deve ser um link simbólico para /run/resolvconf/resolv.conf e o resolvconf deve atualizar o último quando alguma interface de rede estiver configurada ou desconfigurada. Dado que você tem dns=dnsmasq no NetworkManager.conf, a linha nameserver no resolv.conf deve ser nameserver 127.0.1.1 , a menos que você tenha a instância do servidor do dnsmasq em execução, caso em que pode ser nameserver 127.0.0.1 , direcionando a libc resolver para usar a instância do servidor do dnsmasq que atende em 127.0.0.1.

A pergunta subsequente do questionador é:

[...] /etc/resolvconf/resolv.conf.d/original [...]
Should I remove or edit this file to make it work?

Este arquivo ( original ), que é simplesmente uma cópia do /etc/resolv.conf no momento em que o pacote resolvconf é instalado, normalmente não tem efeito. Ele é mantido pelo pacote resolvconf no caso de o pacote ser desinstalado, então esse arquivo original é colocado de volta em /etc/resolv.conf. Em alguns casos, o /etc/resolvconf/resolv.conf.d/tail é um link simbólico para original , mas isso não é padrão e, se isso for válido para o seu sistema, você deve alterar o /etc/resolvconf/resolv.conf.d / tail para ser um arquivo vazio ou um link simbólico para /dev/null .

    
por jdthood 30.07.2015 / 16:31
0

O que funcionou para mim é habilitar o serviço resolvconf:

sudo systemctl enable resolvconf
sudo reboot

O problema foi o resolvconf não iniciar na inicialização depois de instalar alguma porcaria VPN.

    
por Florin Samoila 11.04.2018 / 16:37
-1

Parece que você está usando dnsmasq , que é um servidor DNS de armazenamento em cache.

Se você quiser adicionar um servidor DNS, você pode executar este comando:

echo nameserver X.X.X.X | sudo resolvconf -a IFACE.PROGNAME
sudo service dnsmasq restart 

onde IFACE.PROGNAME é o nome da rede que você usa (eth0, eth1, wlan0 ...)

Para uma mudança permanente, você pode criar um /etc/resolv.dnsmasq.conf com

nameserver  8.8.8.8

edite o /etc/dnsmasq.conf e defina:

resolv-file=/etc/resolv.dnsmasq.conf

Outra solução, poderia ser desabilitar o uso do dnsmasq comentando a linha

dns=dnsmasq

no arquivo /etc/NetworkManager/NetworkManager.conf. E use o arquivo /etc/resolv.conf.

    
por aklmie 29.07.2015 / 15:59