Mi lugar de trabajo tiene una intranet con nombres de dominio como server01.foo.local
, server02.foo.local
etc. Recientemente inicié el entorno en vivo de Fedora 16 para probarlo y descubrí que estos nombres de dominio no se resuelven.
Por ejemplo:
$ ping server01.foo.local
ping: host desconocido server01.foo.local
$ ping server01
PING server01.foo.local (XXXX) ...
¿Por qué server01
resolverá (e imprimirá el nombre como server01.foo.local
), pero server01.foo.local
no lo hará?
linux
networking
dhcp
rhollencamp
fuente
fuente
Respuestas:
Si bien no estoy al 100% en el razonamiento detrás de por qué no funciona como se esperaba, parece haber un conflicto muy grande con el servicio mDNS (Avahi en Linux, Bonjour / Zeroconf en Mac / Windows) y las redes de Windows que use .local como nombre de enrutamiento interno para dominios. Lo que parece suceder es que cuando se hace ping al servidor01, se salta el uso de mDNS para la resolución y luego se agrega el dominio de búsqueda (foo.local) a la solicitud, consultando con éxito el servidor DNS para server01.foo.local. Sin embargo, cuando usa mDNS (que usa .local como la extensión de nombre de máquina predeterminada), cuando intenta hacer ping a server01.foo.local, en realidad está transmitiendo a través de mDNS buscando una máquina con el nombre de "server01.foo"; cuando falla, no pasa a DNS directo por cualquier razón. Una gran solución para esto es no nombrar su dominio .local, lo que probablemente va en contra de la capacitación de la mayoría de los administradores de Windows para la estructuración del dominio. Habiendo dicho eso:
Si mDNS no tiene ninguna consecuencia en su red (como es común en la empresa, que tiende a ejecutar servidores DNS dedicados en comparación con la red doméstica, donde a veces se usa mDNS), cambiar el orden de búsqueda es la solución más fácil.
Esto se puede encontrar en /etc/nsswitch.conf. La sección para hosts enumerará el orden, que para Fedora 16 por defecto es:
Si cambia eso a:
donde te mueves dns adelante en el orden de búsqueda, eso debería arreglar las cosas por ahora. Alternativamente, si sabe que no necesitará mDNS en absoluto, simplemente elimine la parte "mdns4_minimal [NOTFOUND = return]".
Al observar este error en el rastreador de Red Hat , parece que este es un problema de larga data sin una solución aparente en este momento. Sin embargo, si alguien puede proporcionar más información sobre por qué sucede esto de esta manera, sería apreciado.
fuente
vpnc
no se puede conectar después de eliminar esas entradas en lahosts: .*
línea/etc/nsswitch.conf
. Reemplazar esta configuración solucionó el problema.[NOTFOUND=return]
significa "si mDNS le dice que no se encuentra un nombre local, entonces eso es autoritario y no tiene sentido preguntar más". Mover DNS antes de mDNS es una solución, pero solo hacer que las fallas de mDNS no sean autorizadas ya es suficiente.Sugeriría otra solución en caso de que esté utilizando el
.local
dominio. Primero, no es una buena idea, ya que parece un estándar / convención para usar.local
para algún descubrimiento dinámico de multidifusión.Pero si insiste, también es más fácil eliminar el
nss-mdns
paquete o ellibnss-mdns
paquete dependiendo de su distribución y resolverá el problema. Si no necesita esa funcionalidad, ¿por qué quedarse allí?Aquí está
yum info nss-mdns
:fuente
Algunas cosas que puedes consultar:
¿hay un pedido en /etc/host.conf que especifique verificar / etc / hosts antes de consultar DNS?
¿Está server01 en / etc / hosts?
¿hay un
search foo.local
/ etc / resolv, conf? Eso agregaría foo.local a cualquier nombre de host que busquesMe pregunto si su servidor de nombres está configurado correctamente. Si todavía tiene nslookup, ¿qué quiere volver para
server01
,server01.foo.local
y la dirección IP (inversa)?fuente