DNS no responde

Qué hacer cuando el Servidor DNS no responde

Compartir

Descubre que pruebas hacer y que operativas ejecutar cuando el Servidor DNS no responde y estás en un cliente Microsoft Windows.

El servicio de DNS (Domain Name Services o Servicio de Nombres de Dominio) es un estándar definido por la IETF (Internet Engineering Task Force) que como servicio permite que los equipos cliente (tanto máquinas cliente propiamente dichas como servidores) pertenecientes a un dominio se registren y resuelvan nombres. Dicho de otra manera, este servicio es el encargado de proporcionar la traducción de IP a nombres de dominio, o sea, de proporcionar unos nombres más sencillos de aprender que las IP y viceversa.

Los tres componentes básicos del servicio de DNS son:

  1. Servidor (o Servidores) DNS: Equipos servidor que poseen el rol de DNS y ofrecen el servicio de resolución de nombres para un espacio de nombres de dominio. Se encargan de la resolución en ambos sentidos y de que los servicios de dominio operen correctamente mediante la resolución de los FQDN (Fully Qualified Domain Name).
  2. Espacio de nombres de dominio: Básicamente contiene los registros de recursos asociados al espacio DNS.
  3. Clientes DNS: Equipos que llaman al servicio de resolución de nombres proporcionado por los servidores de DNS para obtener las traducciones que necesitan para operar.

Dentro de esta arquitectura, vamos a centrarnos en los problemas detectados en la parte de los Clientes DNS, donde veremos una serie de problemas relacionados con el clásico “Servidor DNS no responde” que todos hemos sufrido en una ocasión u otra.

Los procesos que se van a describir en este artículo son operativos para sistemas clientes Windows 7, Windows 8, Windows 8.1, Windows 10 o Windows 11, además de poderse aplicar también sobre equipos Windows Server que sean clientes de otro DNS de la infraestructura.

¿Qué podemos hacer cuando el Servidor DNS no responde?

Comprobación del estado del DNS:

Lo primero que debemos hacer cuando el Servidor DNS no responde es comprobar su estado. Una de las cosas que debemos tener más que claras es cómo podemos comprobar el estado de nuestro servicio de DNS, más allá de hacer consultas vía web y ver si carga o no correctamente, cosa que es funcional, pero poco “elegante”.

Lo más normal es que hagamos consultas desde el intérprete de comandos (CMD) o desde la consola de PowerShell (fuera del alcance de este artículo), que nos permitirá ejecutar algunos comandos adicionales. Por el momento, vamos a ver los comandos básicos que podemos usar, y a ver cómo usarlos mediante algún ejemplo.

Los comandos que podremos usar para comprobar el estado del DNS son:

  • Ipconfig.
  • Nslookup.
  • Ping (pero poco).
  • Otros comandos.

El comando “ipconfig”:

El primer comando que vamos a repasar es nuestro viejo amigo “ipconfig”, un comando que los administradores de sistemas hemos utilizado hasta la saciedad, y que los que venimos del mundo UNIX (o GNU/Linux) solemos confundir con “ifconfig”, su homónimo del mundo UNIX.

Con el comando ipconfig podemos hacer múltiples configuraciones y comprobaciones de todo tipo, pero ahora, como nos estamos centrando en DNS, vamos a tratar únicamente los comandos relacionados con este servicio.

Para comenzar, podemos usar el comando “ipconfig /displaydns” para ver la caché de resolución que tenemos implementada dentro del cliente de DNS desde el que estamos lanzando el comando.

Ejecución de ipconfig para mostrar los DNS

Ejecución de ipconfig para mostrar los DNS

El comando, tal como hemos comentado, muestra el contenido de la caché del cliente, incluyendo todo lo que se ha cargado desde el propio servicio y lo que existe cargado en la ruta “C:\Windows\System32\drivers\etc\hosts”, que muchas veces veremos referenciado en la documentación como “%systemroot%\system32\drivers\etc\hosts”, ya que “%systemroot%” representa la cadena “C:\Windows\”.

Ejemplo de contenido de archivo host de Windows Client

Ejemplo de contenido de archivo host de Windows Client

El contenido del fichero host es consultado, junto a la caché de DNS existente en el equipo antes de lanzar la consulta al servidor de nombres de dominio.

En la segunda parte de este artículo, podremos ver otros usos de “ipconfig” para solventar problemas relacionados con resolución de nombres.

El comando “nslookup”:

El siguiente comando que podemos usar para comprobar el estado del servicio de resolución de nombres (DNS) es “nslookup”. Es un comando ampliamente usado para enviar solicitudes desde una máquina cliente a un servidor y así poder observar si la petición se resuelve correctamente, aportando, además, un gran volumen de información adicional sobre el servicio.

El comando puede funcionar en dos modos:

  • Modo no interactivo: Es el modo de ejecución en el que pasamos los parámetros junto al propio comando, siendo ideal para consultas únicas y para ser incrustado dentro en scripts.
  • Modo interactivo: Es el modo de ejecución en el que lanzamos el comando “nslookup” para posteriormente lanzarle los parámetros a comprobar. Es el más utilizado para tareas de troubleshooting.

Vamos a ver las dos opciones haciendo una consulta para que resuelva: www.google.com.

Para usar el modo no interactivo lanzaremos el siguiente comando:  

# nslookup www.google.com

Para usar el modo interactivo lanzaremos el siguiente comando: 

# nslookup

A continuación, deberemos introducir el servidor o dominio por el que consultamos:

www.google.com

Como respuesta para ambos casos, podremos ver que el sistema nos informa de una serie de cosas:

  • Respuesta no autoritativa: Nos indica que es una información recibida de otro DNS externo a nuestra organización.
  • Nombre: Nos da el nombre del servidor.
  • Addresses: Nos proporciona información sobre las direcciones resueltas.

Ejecutamos el comando nslookup en los dos modos

Ejecutamos el comando nslookup en los dos modos

Existen varios parámetros y opciones que se pueden añadir a la ejecución y que en este caso dejamos que investigue al lector.

El comando “ping”:

La última “herramienta” que podemos usar es el clásico “ping” que podremos usar también para lanzar una consulta para ver si somos capaces de alcanzar el servidor de DNS, ya que si por alguna razón, o bien el servidor no responde o no es alcanzable, no podremos hacer uso del servicio.

La forma de usar ping es la clásica “ping <Nombre_De_Servidor>” que podría ser “ping 8.8.8.8” en caso de lanzar la consulta contra el servicio de Google.

Otros comandos:

Tenemos otros comandos que se pueden usar en determinados sistemas operativos o versiones de estos que, en este caso, simplemente los listaremos y haremos un pequeño comentario sobre cada uno de ellos.

  • Dig: Comando para realizar consultas de servidores DNS desde sistemas GNU/Linux o MacOSX.
  • Netdiag: Comando usado para hacer consultas a diversos servicios, incluyendo DNS. Está descontinuado desde las versiones Windows Server 2008.
  • DNSList: Herramienta usada para diagnosticar problemas en el servicio de DNS. Está descontinuado desde las versiones Windows Server 2008. Existe una versión descargable.
  • PowerShell: Como siempre venimos diciendo, con PowerShell tenemos todo lo necesario para administrar y hacer troubleshooting de todos los servicios, pero lo dejamos para otro artículo dada la profundidad que podría alcanzar este si lo incluimos.

Operativas para solucionar los problemas de cuando el Servidor DNS no responde:

Limpiar la Caché de DNS:

Una de las primeras cosas que podemos hacer si el Servidor DNS no responde es limpiar la caché de DNS. Para realizar la limpieza de la caché de DNS podemos usar el comando “Ipconfig” con el modificador “/flushdns”, que lo que hace es vaciar y limpiar la caché de resolución de nombres del cliente.

Este comando purga todas las entradas que se han añadido de manera dinámica a nuestra caché de DNS, o sea, todo lo que veíamos cuando lanzábamos el comando “ipconfig /displaydns”, la parte buena es que posiblemente, eliminaremos entradas corruptas o que nos están dando problemas, la parte mala es que se purgan todas las entradas por lo que las correctas también se pierden, pero no es algo que tengamos que lamentar, ya que se irán reconstruyendo sobre la marcha.

La forma de usarlo es muy sencilla, y bastará con lanzar el comando de la siguiente manera:

# ipconfig /flushdns

Vaciamos la caché de DNS del cliente Windows

Vaciamos la caché de DNS del cliente Windows

Una vez purgada la caché de DNS de nuestro cliente, debemos lanzar de nuevo el registro. Esto es útil para resolver ciertos problemas y para que se cargue de nuevo la información del servicio de DNS en el cliente en caso de ser necesario, como, por ejemplo, cuando hemos hecho un cambio de configuración y queremos asegurarnos de que se carga la configuración correcta o que no se van a producir problemas.

Para hacer esta operativa y registrar de nuevo el DNS, volveremos a usar el comando “ipconfig”, pero esta vez con el modificador “/registerdns”, que realizará esta operativa sin necesidad de reiniciar el equipo.

Este comando se lanzaría de la siguiente manera:

# ipconfig /registerdns

Registramos de nuevo el DNS del cliente Windows

Registramos de nuevo el DNS del cliente Windows

NOTA: Sí, en esta ocasión, podríamos probar el clásico “¿has probado a reiniciar el ordenador y probar de nuevo? Pero vamos a suponer que hacemos la operativa lo más “elegante” posible por lo que dejaremos el reinicio como último recurso.

Este comando se ejecuta de manera indiscriminada sobre todos los interfaces de red, por lo que en caso de ejecutar “ipconfig /registerdns” se lanzará sobre todas las tarjetas, si se quisiera afectar solo a una de las tarjetas, se podría añadir el modificador “NOMBRE_DE_TARJETA” al comando, ejecutándolo de la siguiente manera:

# ipconfig /registerdns NOMBRE_DE_TARJETA

Pedir nueva concesión de IP para interfaces con DHCP:

Otro comando que podemos usar, o, mejor dicho, otra variación de “ipconfig” es el comando “ipconfig /release” que libera de manera manual la asignación de IP del protocolo IPv4 de la tarjeta sobre la que se hace esta operativa o de todas en caso de no especificar nada. Esto lo logra lanzando un mensaje DHCPRELEASE al servidor que proporciona DHCP en la red y del que había cogido la reserva previamente.

Esto hace que se purguen todas las configuraciones de red, lo que permitirá volver a asignar todas las configuraciones de nuevo, sin arrastrar fallos previos, si estos existieran.

La ejecución de este comando con este parámetro en concreto hace que el protocolo TCP/IP quede deshabilitado y no se haga una solicitud de asignación de IP, por esta razón, suele ejecutarse en tándem con el comando “ipconfig /renew”.

La ejecución en este caso, tal como se ha comentado previamente sería de la siguiente manera:

# ipconfig /release

Liberamos la asignación de IP del cliente Windows

Liberamos la asignación de IP del cliente Windows

También existe una versión para IPv6 que hace la misma función, pero sobre este protocolo cuya sintaxis es “ipconfig /release6”.

Por último, dentro de los comandos de “ipconfig”, tenemos el comando “ipconfig /renew”, que permite hacer una solicitud de renovación de la concesión de IP para el protocolo IPv4. Al igual que en el caso del comando anterior, este comando afectará a todos los interfaces en caso de no haber puesto una interfaz en concreto y algo que tenemos que tener en cuenta, es que al igual que en el caso de “/release”, solo afectará a los interfaces con asignación de dirección IP dinámica, por lo que si lo lanzamos sobre una interface con IP fija este comando no hará ningún tipo de operación.

La forma de ejecutar este comando será:

# ipconfig /renew

Renovamos la asignación de IP del cliente Windows

Renovamos la asignación de IP del cliente Windows

Para ejecutar este comando sobre una interfaz con IPv6 deberemos lanzar el comando con el modificador “/renew6”.

# ipconfig /renew6

NOTA: Debemos recordar que el comando “ipconfig» tiene bastantes opciones, y es más que probable que no conozcamos todas, por lo que debemos recordar que podemos usar el “/?” para obtener información sobre distintas opciones y ejemplos.

Cambio del DNS predeterminado:

En caso de que las operativas que vamos realizando no consigan revertir el problema, se puede optar por cambiar el DNS predeterminado del que tira el cliente que está dando fallos de conexión. Esto puede darse en algunas situaciones, podemos poner tres ejemplos de este tipo de comportamientos:

  • Un servidor de DNS está dando algún tipo de problema, por lo que debemos cambiar el servidor al que apunten los clientes.
  • Otro caso puede ser que el servicio de DHCP que proporciona los datos esté facilitando datos erróneos a los clientes.
  • Determinados errores de DC que hagan que los comportamientos de las máquinas sean erróneos.

Para todos ellos, podemos adoptar la siguiente operativa y modificar el DNS de manera manual para ver si de esta manera el problema remite, aunque sería necesario estudiar cada uno de los casos expuestos para eliminar la causa raíz (problema) que nos está generando estas incidencias.

Lo primero que debemos hacer, es acceder a la configuración de la red. Podemos hacerlo de distintas maneras, por ejemplo, mediante el acceso al “Panel de Control”, pero en este caso, lo haremos pulsando en botón derecho sobre el icono de la conexión de red y seleccionando la opción de “Abrir la configuración de red e Internet”.

Abrimos la configuración de red e Internet

Abrimos la configuración de red e Internet

Esto abrirá una ventana de configuración donde se debe comprobar que se está en la pestaña de “Ethernet” y hacer clic en “Cambiar opciones del adaptador”.

Accedemos a las propiedades del interface de red que queremos modificar

Accedemos a las propiedades del interface de red que queremos modificar

En este punto, seleccionamos la opción “Protocolo de Internet versión 4 (TCP/IP)” haciendo clic a continuación en “Propiedades”.

Seleccionamos la opción de IPv4 del interface de red que queremos modificar y hacemos clic en Propiedades

Seleccionamos la opción de IPv4 del interface de red que queremos modificar y hacemos clic en Propiedades

Con la ventana de configuración de “propiedades del protocolo de internet versión 4 (TCP/IPv4)” se deberá editar el servidor DNS preferido y sustituirlo por el nuevo servidor de DNS, haciendo lo mismo con el Servidor DNS alternativo en caso de ser necesario.

Modificamos el servidor o servidores DNS a los que apunta el cliente

Modificamos el servidor o servidores DNS a los que apunta el cliente

Con esto tendríamos terminada esta operativa y debería tomar los cambios de manera automática, pudiendo comprobar si es así mediante el comando “nslookup”.

Deshabilitar Protocolo IPv6:

En ocasiones, podemos encontrarnos con algunos problemas derivados de problemas de enrutamiento o similares, y puede ser necesario deshabilitar el uso del protocolo IPv6, si este no está siendo usado, claro está.

Para poder deshabilitar IPv6 en una interfaz de red seguiremos el siguiente proceso.

Para acceder a la configuración, haremos el mismo recorrido que hemos hecho en el caso anterior para cambiar el DNS, al menos hasta tener el interfaz seleccionado y haber entrado en sus propiedades.

A continuación, buscamos la opción “Protocolo de Internet versión 6 (TCP/IPv6)” y desmarcamos el checkbox para deshabilitarlo.

Deshabilitamos la opción de IPv6 del interface de red que queremos modificar

Deshabilitamos la opción de IPv6 del interface de red que queremos modificar

Tras esto, en principio debería deshabilitarse la opción de IPv6 y remitir los problemas que esta opción pudiera dar.

En caso de que la configuración no tome efecto, o que no notemos mejora, podemos probar a hacer clic en botón derecho sobre la interface y seleccionar la opción “Desactivar” para volver a repetir la opción y hacer clic en “Activar”, forzando de esta manera a que los cambios tomen efecto.

Desactivamos y volvemos a activar la interface de red que queremos modificar

Desactivamos y volvemos a activar la interface de red que queremos modificar

Con esto tendríamos la operativa realizada.

Conclusiones, ¿qué hacer cuando el servidor DNS no responde?

A lo largo de este artículo hemos presentado una serie de comprobaciones y operativas para atacar el problema de qué hacer cuando un servidor de DNS no responde a las peticiones de las máquinas cliente de un espacio de resolución de nombres.

Como siempre, podemos decir que aquí no están todas las posibles causas ni operativas para solventar los problemas cuando el DNS no responde, sino que pretende ser un pequeño compendio de pruebas que podemos hacer para solventar este tipo de incidencias. Hemos dejado de lado por ejemplo el uso de PowerShell, que puede quedar para otro artículo posterior.

Así mismo, también recomendamos que más allá de las operativas aquí marcadas, se debe hacer un mantenimiento proactivo de la infraestructura, especialmente de la de Controladores de Dominio y de Servidores de DNS, ya que mantener de manera correcta estos servicios nos ahorrará mucho tiempo, esfuerzo y sustos en la administración de nuestra organización, o dicho de manera muy coloquial “más vale prevenir que curar.

Categorías:Cloud y sistemas

DNS Servidores

Otros posts que te pueden interesar

23 de abril de 2024
Acompáñanos en este artículo en el que trataremos de ver cómo evaluar riesgos y amenazas en la pyme. Uno
20 de febrero de 2024
Acompáñanos en este artículo en el que trataremos uno de esos “pains” a los que se enfrenta toda pyme,
15 de febrero de 2024
Acompáñanos y descubre qué es y por qué necesitamos Disaster Recovery. La creciente dependencia de todas las organizaciones de

Rellena el formulario y nuestro equipo de Sales contactará contigo lo antes posible.

growth@jotelulu.com  |  +34 911 333 712  |  jotelulu.com 

Puedes darte de baja de estas comunicaciones en cualquier momento.  Consulta nuestra Política de privacidad.