Servidor de nombres incorrecto establecido por resolvconf y NetworkManager

Servidor de nombres incorrecto establecido por resolvconf y NetworkManager

Mi servidor DNS es 192.168.1.152.

Este DNS lo proporciona DHCP a los clientes. Los clientes de Windows en mi LAN resuelven nombres correctamente usando ese DNS, pero mi máquina virtual Ubuntu no.

La máquina virtual está configurada con una red puente y se le proporciona correctamente el servidor DNS, pero nslookup o los navegadores no resuelven mis nombres de host locales.

Aquí hay nslookupuno de mis dominios locales:

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

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

Esto es lo que debería resolver usando mi 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.conftiene un servidor de nombres incorrecto:

# 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

Ejecuté ese comando. En Servidores DNS, de manera confusa, especifica el servidor correcto (y mi puerta de enlace predeterminada).

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

No quiero "codificar" la IP del servidor DNS en un archivo de configuración porque no podré resolverlo cuando cambie de red.

¿Cómo puedo hacer que resolvconf y NetworkManager funcionen?automáticamenteconfigure la IP del servidor DHCP en /etc/resolv.conf?

Respuesta1

Conocidosistemadbicho.

Solución temporalsin necesidad de reconfigurar si la IP del DNS cambia:

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

Respuesta2

Intente editar /etc/systemd/resolved.confy agregue el servidor DNS que desee:

cambia esto:

[Resolve]
#DNS=

a esto (pero usa el que quieras; este es un ejemplo):

[Resolve]
DNS=192.168.1.152

después de eso, reinicie el servicio:

service systemd-resolved restart

Y cuando verifiques el estado deberías 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

Respuesta3

Finalmente obtuve una solución para este problema para ubuntu 17.10. De forma predeterminada, esta versión de Ubuntu usa systemd-resolved, que espero que sea estable para las próximas versiones.

Para utilizar DNS personalizado en lugar del caché local resuelto por systemd, haga lo siguiente:

  1. agregar nuevos servidores de nombres. Edite el archivo /etc/systemd/resolved.confcomo sudoer. Aquí comenté la entrada DNS y coloqué mi DNS. [Resolve] DNS=10.96.0.10 8.8.8.8 8.8.4.4

  2. cancelar el enlace simbólico real a/etc/resolv.conf

  3. crear un nuevo enlace simbólicosudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
  4. reiniciar el serviciosudo service systemd-resolved restart
  5. reinicie el administrador de redsudo systemctl restart networking

Y ahora, si busca un nombre proporcionado por su add dns, debería ver el registro resuelto.dig nexus.default.svc.cluster.mydomain

El último paso es actualizar el orden de resolución en /etc/nsswitch.conf, colocando el dns antes del mdns4_minimal

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

Respuesta4

En mi sistema encontré un enlace simbólico incorrecto: /etc/resolv.confera un enlace simbólico que apunta a/run/systemd/resolve/stub-resolv.conf

Este archivo contiene solo una línea:

nameserver 127.0.0.53#53

Como resultado, a menudo faltaba la búsqueda de DNS de la red local.

Entonces, en lugar de eso cambié /etc/reolv.confpara señalar/run/systemd/resolve/resolv.conf

y ahora funciona correctamente.

información relacionada