Un poco atascado aquí.
Tengo 2 máquinas que no pueden resolver los nombres de los hosts de LAN, a menos que haya entradas específicas en / etc / hosts
Pero otras máquinas en la LAN pueden resolver nombres de host.
Mi LAN:
2 x NAS (también resuelve todos los nombres correctamente)
1 x Ubuntu Server 12.04 (esto NO resuelve los nombres de host locales a menos que se ingresen en / etc / hosts)
¿Cómo obtengo los últimos 2 para usar las entradas DNSMasq en el enrutador? Cada máquina está configurada para usar el enrutador como servidor de nombres, y todas las unidades resuelven las direcciones externas correctamente.
Gracias.
más información:
Mientras estoy en el servidor, si hago ping a otra PC (wstation)
$ ping wstation PING wstation.local.domain (xxxx)
Si luego agrego .local
$ ping wstation.local PING wstation.local.local.domain (xxxx)
y directamente
$ ping 10.0.0.4 PING 10.0.0.4 (10.0.0.4) 56(84) bytes of data. 64 bytes from 10.0.0.4: icmp_req=1 ttl=64 time=0.387 ms 64 bytes from 10.0.0.4: icmp_req=2 ttl=64 time=0.316 ms 64 bytes from 10.0.0.4: icmp_req=3 ttl=64 time=0.312 ms 64 bytes from 10.0.0.4: icmp_req=4 ttl=64 time=0.280 ms 64 bytes from 10.0.0.4: icmp_req=5 ttl=64 time=0.322 ms ^C --- 10.0.0.4 ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 3998ms rtt min/avg/max/mdev = 0.280/0.323/0.387/0.038 ms
ping wstation PING wstation.local.domain
Indica claramente que su PC está agregando .local.domain
a las consultas que no son FQDN. Esto es algo configurado incorrectamente o al menos incorrecto en su configuración. (a menos que realmente use el sufijo .local.domain
a propósito)
Una cosa importante que mucha gente no sabe, es que un nombre completo siempre debe terminar con un punto ( .
). Si lo omite, la máquina intentará resolverlo dentro del dominio de búsqueda local (por ejemplo, mydomain.tld). Entonces, en ese caso, una consulta para mypc.local
se convertiría en mypc.local.mydomain.tld
. Para evitar esto, consulta con el punto.
La configuración del resolutor es de gran importancia aquí. En Ubuntu (y Debian) esto está configurado en el archivo /etc/network/interfaces
(asumiendo que no está ejecutando NetworkManager):
iface eth0 inet static address 192.168.3.3 netmask 255.255.255.0 gateway 192.168.3.1 dns-nameservers 192.168.3.45 192.168.8.10 dns-search foo.org bar.com # <-- these are the search domains
La resolución de nombres en Linux también se puede lograr de otras maneras. No es solo que el servidor DNS local está siendo consultado por todo esto. Eche un vistazo a su archivo /etc/nsswitch.conf
para la configuración de los hosts
de resolución:
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
Esto significa que los archivos se prueban primero (este es el /etc/hosts
), luego mDNS y solo más tarde se consulta el servidor DNS real. mDNS se implementa utilizando Avahi en Linux y se llama Bonjour en dispositivos Apple. Utiliza el sufijo .local
de forma predeterminada y funciona a través de mensajes de difusión. Al igual que ARP funciona, pero luego para DNS.
Todos estos sistemas pueden ser muy confusos e incluso más cuando se usa .local
en una configuración de DNS normal combinada con dispositivos mDNS. Supongo que esta es la razón por la que ahora estás confundido en cuanto a por qué un dispositivo funciona y el otro no: no todos están usando el mismo método de resolución.
.local
menos que quiera confiar completamente en mDNS. Por su pregunta, entiendo que le gustaría mantener las cosas configuradas en un lugar central, mi enfoque aquí es evitarlas. my.home
. Para dnsmasq, esta es una configuración única, pero en las configuraciones regulares debe configurarse tanto en el servidor DNS como en el servidor DHCP (como se anuncia a través de DHCP). /etc/resolv.conf
en caso de que haya jugado con ella en el pasado. Configure las PC en su red para usar my.home
como el dominio de búsqueda local. Esto se puede hacer a través de DHCP automáticamente, o si se usan direcciones estáticas a través del /etc/network/interfaces
o en Network Manager:
ping hostname
) como el nombre completo (nombre de ping hostname.my.home
). Basado en la respuesta de gertvdijk, acabo de comentar la línea en nsswitch.conf
sudo vim /etc/nsswitch.conf . . . hosts: files dns # mdns4_minimal [NOTFOUND=return] dns
Tengo problemas similares con un / etc / hosts que contiene múltiples espacios entre la IP y el nombre de host, en lugar de usar una TAB Después de cambiar a TAB, el nombre de host se podría resolver haciendo ping.
127.0.0.1 test.local ^^^^^^^^ → Should be a TAB not multiple spaces.
vea también en https://superuser.com/a/938366/467479