Servidor de nomes errado definido por resolvconf e NetworkManager

Servidor de nomes errado definido por resolvconf e NetworkManager

Meu servidor DNS é 192.168.1.152.

Este DNS é fornecido aos clientes pelo DHCP. Os clientes Windows na minha LAN resolvem nomes corretamente usando esse DNS, mas minha VM Ubuntu não.

A VM está configurada com rede de ponte e está sendo fornecida corretamente ao servidor DNS, mas meus nomes de host locais não estão sendo resolvidos pelo nslookup ou pelos navegadores.

Aqui está um nslookupdos meus domínios locais:

# nslookup unraid.local
Server:     127.0.0.53
Address:    127.0.0.53#53

** server can't find unraid.local: SERVFAIL

Aqui está o que deve ser resolvido usando meu servidor DNS:

# nslookup unraid.local 192.168.1.152
Server:     192.168.1.152
Address:    192.168.1.152#53

Name:   unraid.local
Address: 192.168.1.152

/etc/resolv.conftem um servidor de nomes errado:

# 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
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.

nameserver 127.0.0.53

Eu executei esse comando. Em Servidores DNS, de forma confusa, ele especifica o servidor correto (e meu gateway padrão).

root@ubuntu:~# systemd-resolve --status
Global
          DNSSEC NTA: 10.in-addr.arpa
                      16.172.in-addr.arpa
                      168.192.in-addr.arpa
                      17.172.in-addr.arpa
                      18.172.in-addr.arpa
                      19.172.in-addr.arpa
                      20.172.in-addr.arpa
                      21.172.in-addr.arpa
                      22.172.in-addr.arpa
                      23.172.in-addr.arpa
                      24.172.in-addr.arpa
                      25.172.in-addr.arpa
                      26.172.in-addr.arpa
                      27.172.in-addr.arpa
                      28.172.in-addr.arpa
                      29.172.in-addr.arpa
                      30.172.in-addr.arpa
                      31.172.in-addr.arpa
                      corp
                      d.f.ip6.arpa
                      home
                      internal
                      intranet
                      lan
                      local
                      private
                      test

Link 2 (ens33)
      Current Scopes: DNS LLMNR/IPv4 LLMNR/IPv6
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
         DNS Servers: 192.168.1.152
                      192.168.1.1

Não quero "codificar" o IP do servidor DNS em um arquivo de configuração porque não poderei resolver quando mudar de rede.

Como posso fazer com que o resolvconf e o NetworkManagerautomaticamentedefinir o IP do servidor DHCP em /etc/resolv.conf?

Responder1

Conhecidosistemaerro.

Solução temporáriasem necessidade de reconfiguração se o IP do DNS mudar:

sudo rm -f /etc/resolv.conf
sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
reboot

Responder2

Tente editar /etc/systemd/resolved.conf, adicionando o servidor DNS desejado:

mude isso:

[Resolve]
#DNS=

para isso (mas use o que você quiser - este é um exemplo):

[Resolve]
DNS=192.168.1.152

depois disso, reinicie o serviço:

service systemd-resolved restart

E quando você verificar o status, você deverá ver

$ systemd-resolve --status
Global
         DNS Servers: 192.168.1.152

      DNSSEC NTA: 10.in-addr.arpa
                  16.172.in-addr.arpa
                  168.192.in-addr.arpa
                  17.172.in-addr.arpa
                  18.172.in-addr.arpa
                  19.172.in-addr.arpa

Responder3

Finalmente consegui uma solução para este problema para o Ubuntu 17.10. Por padrão, esta versão do Ubuntu usa o systemd-resolved, que espero que seja estável para as próximas versões.

Para usar o DNS personalizado em vez do cache local resolvido pelo systemd, faça o seguinte:

  1. adicione novos servidores de nomes. Edite o arquivo /etc/systemd/resolved.confcomo sudoer. Aqui comentei a entrada DNS e coloquei meu DNS [Resolve] DNS=10.96.0.10 8.8.8.8 8.8.4.4

  2. cancelar o link simbólico real para/etc/resolv.conf

  3. crie um novo link simbólicosudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
  4. reinicie o serviçosudo service systemd-resolved restart
  5. reinicie o gerenciador de redesudo systemctl restart networking

E agora, se você procurar um nome fornecido pelo seu add DNS, deverá ver o registro resolvidodig nexus.default.svc.cluster.mydomain

O último passo é atualizar a ordem de resolução /etc/nsswitch.conf, colocando o DNS antes do mdns4_minimal

hosts           files dns mdns4_minimal [NOTFOUND=return] resolve [!UNAVAIL=return] myhostname

Responder4

No meu sistema encontrei um link simbólico incorreto: /etc/resolv.confera um link simbólico que aponta para/run/systemd/resolve/stub-resolv.conf

Este arquivo contém apenas uma linha:

nameserver 127.0.0.53#53

Como resultado, muitas vezes faltava a pesquisa de DNS da rede local.

Então, em vez disso, mudei /etc/reolv.confpara apontar para/run/systemd/resolve/resolv.conf

e agora funciona corretamente.

informação relacionada