Estoy usando una Raspberry Pi 3 con Ubuntu 18.04. En mi empresa tenemos un servidor DNS y un par de dominios con ".local". Sé técnicamente que esto no es correcto y debería ser ".lan" en su lugar, porque .local está reservado para DNS de multidifusión. Pero así es y no se puede cambiar fácilmente. Entonces, en mi máquina Windows, puedo hacer ping y buscar esos nombres de dominio sin problemas. En mi Ubuntu, sin embargo, no puedo.
No puedo usar IP porque algunos dominios están en la misma máquina y el servidor web IIS clasifica las cosas a dónde va.
He buscado y aparece con bastante frecuencia:
- https://smallbusiness.chron.com/resolving-local-ubuntu-38861.html
- ¿Por qué ninguno de mis servidores locales se resuelve?
- el servidor ubuntu no resuelve los nombres de host LAN
Sin embargo, cambiar /etc/nsswitch.conf no funciona para mí. Lo intenté
- hosts: archivos mdns4_minimal [NOTFOUND = return] dns myhostname # default
- hosts: archivos dns
- hosts: archivos mdns4_minimal [NOTFOUND = continue] dns myhostname
- hosts: archivos mdns4 [NOTFOUND = return] dns myhostname
- hosts: archivos mdns4 [NOTFOUND = continue] dns myhostname
- hosts: archivos dns mdsn4_minimal myhostname
- anfitriones: dns
- algunos otros
Ninguno de los cuales funcionó. Intenté reiniciar después de un cambio también. Intenté decirle a avahi que el nombre de dominio = alocal en /etc/avahi/avahi-daemon.conf, no funcionó después del reinicio del servicio, no funcionó después del reinicio. Después de que esto no funcionaba, intenté deshabilitar el servicio avahi-daemon por completo.
sudo systemctl disable avahi-daemon
Después de reiniciar, intenté un par de permutaciones en /etc/nsswitch.conf nuevamente, sin ningún efecto.
con mi configuración actual en hosts (archivos dns) obtengo esta respuesta:
dig login.name.local # not the actual name
; <<>> Dig 9.11.3-1ubuntu1.1-Ubuntu <<>> login.name.local
;; global options: +cmd
;; Got answer:
;; WARNING .local is reserved for Multicast DNS
;; You are currently testing what happens when an mDNS query is leaked to DNS
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33538
;; flags: qr rd ra; QUERY: 1, ANSWER:0, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;login.name.local. 0 IN A
;; Query time: 2msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Thu Aug 23 10:51:50 CEST 2018
;; MSG SIZE rcvd: 56
Sin embargo, cuando le doy instrucciones a dig para consultar el servidor directamente, obtengo la respuesta correcta:
dig @dnsIP login.name.local
; <<>> Dig 9.11.3-1ubuntu1.1-Ubuntu <<>> login.name.local
; (1 server found)
;; global options: +cmd
;; Got answer:
;; WARNING .local is reserved for Multicast DNS
;; You are currently testing what happens when an mDNS query is leaked to DNS
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57866
;; flags: qr aa rd ra; QUERY: 1, ANSWER:1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;login.name.local. 0 IN A
;; ANSWER SECTION:
login.name.local. 3600 IN A serverIP
;; Query time: 2msec
;; SERVER: dnsIP#53(dnsIP)
;; WHEN: Thu Aug 23 10:51:50 CEST 2018
;; MSG SIZE rcvd: 56
Esta versión de Ubuntu usa netplan con el administrador de red. El IP DNS correcto definitivamente está en la lista. (de hecho, es el DNS primario). Además, dnsIp es lo mismo que serverIP, pero eso no debería ser un problema.
Haga ping o conecte a través del navegador y eso no funciona, por supuesto. Ninguno usa la consulta dns.
No sé qué hacer. Ciertamente no podemos cambiar a un nombre de dominio diferente. Puse el nombre del servidor en / etc / hosts pero eso es solo una solución temporal.
fuente
Respuestas:
Me enfrenté a un problema muy similar (si no exactamente el mismo) en Linux Mint 19 (Tara). He logrado resolverlo combinando 3 piezas diferentes de información. Parece que todo está relacionado con cambios recientes con systemd-resolve.
Primero, sí, he necesitado configurar /etc/nsswitch.conf como lo hizo y esperaría. Mientras dns venga antes que mdns, deberías ser bueno. Terminé con simplemente:
ref: /unix//a/457172/271210
Antes de actualizar a esta versión de Mint, esto es lo único que necesitaba hacer. Ahora también terminé haciendo los otros dos cambios a continuación para que funcione ...
Después de eso, configuré mi dominio de búsqueda para que systemd-resolve funcionara como quería. Así que he editado el archivo /etc/systemd/resolved.conf , la configuración de Dominios en la sección [resolver] . En mi caso, terminó pareciéndose a:
ref: /ubuntu//a/1031271/872881
También he cambiado la configuración de avahi a otra cosa ("mdns" si no recuerdo mal, pero no importa). Sin embargo, no debería ser necesario desde mi entendimiento. Solo agregando para completar.
Pero nada de eso funcionó hasta que llamé lo siguiente:
ref: /ubuntu//a/938703/872881
Después de llamar a esto, ¡todo comenzó a funcionar perfectamente y como se esperaba!
Por lo tanto, es posible que realmente no necesite cambiar el archivo /etc/systemd/resolved.conf , pero mantuve este cambio ya que tenía sentido y me permite escribir solo el nombre de una máquina, sin el FQDN completo, para que funcione la resolución DNS .
fuente
La respuesta aceptada no resolvió mi problema. No tenía nada que ver con avahi: no tenía instalado el servicio de avahi. Tengo mi sistema configurado para obtener su ip Y su configuración de servidor dns de DHCP. Sin embargo, el DNS proporcionado por dhcp no se estaba comprobando en busca de consultas utilizando .local
El verdadero problema es que Ubuntu 18.4 tiene su resolv.conf vinculado de manera simbólica a un archivo apéndice que apunta al localhost para la resolución de nombres. La resolución de nombre dns localhost significa que el sistema se niega a verificar el servidor DNS suministrado por nombres locales, creyendo (incorrectamente) que dichos nombres no son válidos. Esta es la configuración predeterminada de /etc/resolv.conf:
El contenido del archivo apéndice es (comentarios eliminados):
la resolución 'real' conf tiene la configuración dns 'correcta' (de dhcp):
Para que el sistema use su solucionador DNS preferido en lugar de localhost, cambie el enlace simbólico para que apunte a /run/systemd/resolve/resolv.conf en lugar de /run/systemd/resolve/stub-resolv.conf:
Inmediatamente después de esto, la resolución de .local comenzó a funcionar. No es necesario reiniciar ni reiniciar ningún servicio.
fuente
Para mí, la forma de trabajar para Ubuntu 18.04 es:
Editar avahi conf:
y cambie .local a .alocal:
luego, abra resolve.conf:
y descomentar y editar dominios:
y finalmente reiniciar los servicios:
fuente
Domains
en/etc/systemd/resolved.conf
(y reiniciar el servicio).Lo que funcionó para mí fue agregar el DNS local como servidor de nombres
/etc/resolvconf/resolv.conf.d/head
(como se describe aquí ).Instale el paquete resolvconf.
Edite
/etc/resolvconf/resolv.conf.d/head
y agregue lo siguiente:Reinicie el servicio resolvconf.
La solución debe ser permanente.
fuente
head
archivo es la fuente utilizada para generar/run/resolvconf/resolv.conf
. Sin embargo, tampoco editaría este archivo.Mi situación era similar pero algo diferente: utilizamos nombres de servidor como
myserver
en Windows, pero esto no funcionó en Ubuntu 16.04 y tuve que usarlomyserver.mycompany.local
. Después de actualizar a 18.04, obtuve el siguiente comportamiento:Simplemente tuve que reemplazar
myserver.mycompany.local
conmyserver
en mis aplicaciones.fuente