DNS no puede resolver el nombre de host; nslookup puede

9

Tengo un usuario en Windows 7 que está intentando acceder a un servidor local con un nombre DNS de windows.cs. Tenemos dos servidores DNS internos. El servidor DHCP asigna a los usuarios los dos servidores DNS internos como primario y secundario y luego nuestros ISP DNS como un servidor DNS terciario.

De vez en cuando, el usuario no puede acceder al sitio web en windows.cs. Si lo hago ping, dice que no puede resolver el nombre del host. Vacio el caché de DNS y luego, cuando visualizo el caché de DNS, tiene lo siguiente:

windows.cs: el nombre no existe

Sin embargo, si uso nslookup, que por defecto consulta el servidor DNS primario (nuestro interno) y consulto windows.cs, devuelve la dirección IP correcta.

Entonces, ¿por qué Windows no puede resolver el nombre de host usando ping, pero puede hacerlo al usar la herramienta nslookup? ¿Y cómo soluciono esto?

Safado
fuente
1
+1, tengo este problema a menudo ... ¡incluso con los nombres de host que estaba usando hace 5 minutos!
Brad

Respuestas:

12

Por lo que dice, parece que la solicitud de windows.cs va al servidor DNS del ISP de vez en cuando. Luego, el cliente DNS de Windows almacena en caché el resultado de nxdomain y, por lo tanto, se utiliza para cualquier reintento con un navegador web, ping, etc. Borrar el caché (ipconfig / flushdns) debería obligar al cliente DNS de Windows a volver a intentar la consulta, pero no hay garantía de que no irá al servidor DNS del ISP nuevamente.

La razón por la que ping no puede resolver el nombre de host, pero nslookup sí es porque nslookup es una herramienta de bajo nivel que omite el cliente DNS de Windows. Utiliza el servidor DNS que le indique (el primero de forma predeterminada) y realiza la consulta sobre la marcha. Puede cambiar el servidor DNS que consulta escribiendo server <host>desde el indicador nslookup, donde el host es la IP o el FQDN.

Sin embargo, el cliente DNS de Windows solo hará consultas para las entradas que no están en su caché (o que han caducado). De lo contrario, devuelve el resultado en caché.

No es evidente de inmediato por qué el cliente de Windows está utilizando el servidor DNS del ISP. Quizás no pudo resolver el servidor local recientemente (quizás debido a estar en otra red), quizás el servidor local estaba devolviendo errores. O quizás no esté ordenado correctamente en Configuración avanzada de TCP / IP> DNS.

Personalmente, prefiero usar solo las direcciones del servidor DNS local en las estaciones de trabajo (propagadas por DHCP), para simplificar la configuración y evitar problemas como este. Me gustaría saber la razón detrás de configurar el servidor DNS de los ISP en los escritorios. No puedo imaginar que haya razones de rendimiento válidas, y en lo que respecta a la redundancia, dos es suficiente en la mayoría de las redes (si no se agrega una tercera).

Alex Forbes
fuente
Sacas un buen punto. No hay una razón particular por la que el servidor DHCP lo asigne como un terciario. Y eso parece una explicación razonable de por qué no se resuelve (pero ¿por qué va al tercer servidor DNS? Quién sabe ...). Gracias por la direccion. Eliminaré el servidor DNS público del servidor DNS asignado entregado a través de DHCP y veré si resuelve el problema. De todos modos, los servidores DNS internos deben pasar cualquier consulta que no puedan responder a ese servidor DNS, por lo que no debería ser un problema.
Safado
Actualización: Esto parece haber solucionado nuestro problema. ¡Gracias por la sugerencia!
Safado
0

Los resultados de nslookupdifieren de los pingde nslookupidiosincracias y errores . Sin embargo, no son realmente relevantes para su problema principal, que es que ha violado la regla de que sus servidores DNS proxy de respaldo deben proporcionar la misma vista del espacio de nombres DNS que su servidor principal . El servidor DNS proxy de su ISP no proporciona la misma vista del espacio de nombres DNS que sus propios servidores DNS proxy en su LAN.

Parecería que otro administrador del sistema se ha equivocado de lo que My ISP proporciona y lo documenta, por lo que debo usarlo. falacia. ☺

JdeBP
fuente
Entonces, en términos simples, ¿estás diciendo que no asigne servidores DNS a mis usuarios a menos que sepa que esos servidores DNS tienen la misma información? Tus enlaces no funcionan.
Safado
0

TL; Versión DR: IPv6 causó el problema de consulta DNS en mi caso, desactivarlo resolvió el problema de consulta DNS.

Tuve el mismo problema en mi máquina de desarrollo. Cada vez que iniciaba sesión en la red de nuestra empresa, no podía resolver los nombres de host internos, todos los nombres de host / URI externos podían resolverse. Verifiqué los servidores DNS que habían sido asignados en la conexión VPN y mostraron que los servidores DNS de la compañía estaban configurados como primarios y secundarios. También pude usar, nslookuppero tuve que cambiar manualmente el servidor server X.X.X.Xpara obtener una resolución de DNS.

Al final descubrí que IPv6 estaba causando problemas con la resolución de nombre: en cada consulta DNS se consultaba el DNS IPv6 en lugar de los servidores DNS de la compañía IPv4. Después de desactivar IPv6, es necesario ipconfig /flushdnsque las direcciones previamente consultadas aún no se resuelvan.

SaschaM78
fuente
0

Pude resolver el problema de manera simple al eliminar el registro DNS y ejecutar los comandos flushdns y registerdns y eso lo soluciona. La razón es la edad en el DNS en sí. El DNS no eliminó el registro después de que el contrato de arrendamiento haya expirado y no se renovó, lo que no pudo resolver el nombre porque se le otorgó. Espero que te ayude a solucionar tus problemas.

Mohamed
fuente