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 nslookup
uno 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.conf
tiene 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
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.conf
y 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:
agregar nuevos servidores de nombres. Edite el archivo
/etc/systemd/resolved.conf
como sudoer. Aquí comenté la entrada DNS y coloqué mi DNS.[Resolve] DNS=10.96.0.10 8.8.8.8 8.8.4.4
cancelar el enlace simbólico real a
/etc/resolv.conf
- crear un nuevo enlace simbólico
sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
- reiniciar el servicio
sudo service systemd-resolved restart
- reinicie el administrador de red
sudo 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.conf
era 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.conf
para señalar/run/systemd/resolve/resolv.conf
y ahora funciona correctamente.