Diferentes comandos para administrar DNS en Windows

Cuando escribimos un nombre de dominio -por ejemplo el nombre de la web en la que estás ahora mismo- tu ordenador realiza una «traducción» de dicho nombre a una dirección IP asociada. Es decir, que bajo la apariencia de que nada ocurre, en realidad suceden cosas. Y por supuesto pueden darse situaciones que impidan que dicha resolución tenga lugar, motivo por el cual te interesará conocer esta lista de comandos para gestionar DNS en Windows.

Hay muchos motivos por los que podría interesarnos comprobar el estado del Sistema de Nombres de Dominio en el ámbito de la administración de sistemas. Por ejemplo, para verificar que se actualizan correctamente o diagnosticar problemas de carga de sitios web.

¿Qué son los DNS?

Me permito citar en parte uno de mis artículos (que encontraréis más adelante) para definirlo. Un servidor DNS es, según la Wikipedia (definición completa aquí):

[…]un sistema de nomenclatura jerárquico descentralizado para dispositivos conectados a redes IP como Internet o una red privada. Este sistema asocia información variada con nombre de dominio asignado a cada uno de los participantes.

Según el que escribe estas líneas, existe además otra definición de DNS más de andar por casa y comprensible para todos: un servidor de este tipo posibilita la conversión de direcciones IP en formato numérico a un formato textual más fácil de asimilar para las personas.

Administrar DNS con nslookup

Una de las primeras herramientas que hemos de considerar es nslookup, una utilidad incluida en cualquier sistema Windows actual que nos permite hacer comprobaciones desde la consola (CMD o bien powershell).

Uso básico de Nslookup

Empezaremos describiendo la forma en que podemos ver el servidor DNS que realiza la traducción de nombres en nuestra red. Es el primer paso en la cadena cuando lanzamos una solicitud a una web/servicio ubicado en internet, o quizá en nuestra red u otra red departamental.

nslookup

En mi caso aparece listado el nombre de un appliance que tengo en mi red local, situado tras el encaminador (router) y que hará un reenvío de las solicitudes al mismo.

nslookup-host-privado

Ahora, si queremos ver la resolución de nombre para una IP, escribiremos lo siguiente:

nslookup <dirección_ip>

Obtendremos algo como lo siguiente.

nslookup-pc3bablico

En el campo nombre, aparece listado el nombre (valor A de registro DNS) para el host remoto, en este caso el servidor DNS primario de Google, tan conocido por todos. En el ejemplo anterior podemos hacer lo contrario, es decir, colocar en lugar de la IP un nombre de dominio, con lo que recibiremos la transcripción de la IP.

¡Inciso para Spam! digo.. ¡Para un consejo! He creado un ranking super completo dónde no sólo muestro los mejores antivirus gratuitos Windows 10 y 11, sino que también he analizado sus versiones premium para una protección total. ¡Échales un vistazo!.

Comprobar resolución de nombres de un servidor

Veamos ahora otro ejemplo. Lo que haremos es efectuar una solicitud como la anterior (preguntaremos por la página web mejor-antivirus.com, aunque en las imágenes conste como protegermipc.net) a un servidor de nombres concreto. Esto puede servirnos para determinar si dicho servidor de nombres funciona correctamente.

nslookup <host_remoto> <servidor_remoto>

nslookup-host-servidor-2

Podemos utilizar tanto el formato numérico (IP) como alfanumérico (nombre de dominio).

Pongamos el mismo ejemplo pero con otro servidor. Ahora preguntaremos por este sitio web a 1.1.1.1, el servidor de nombres primario de Cloudflare.

nslookup mejor-antivirus.com 1.1.1.1

nslookup-host-servidor

Las primeras dos líneas se refieren al servidor al que hemos efectuado la consulta. La siguiente sección nos da el nombre del registro (A, por defecto) y su IP correspondiente. Nótese que la respuesta es «no autoritativa».

Igual que para el ejemplo previo, podríamos sustituir sin problemas el dominio mejor-antivirus.com por su correspondiente IP, o bien sustituir la IP del servidor de Cloudflare por su dirección numérica correspondiente.

Obtener respuesta autoritativa de un servidor DNS

Vamos ahora con algo un poco más curioso. En último ejemplo hablaba de que la respuesta recibida era no autoritativa. ¿A qué se refiere esto? Lo que nos dice es que hemos recibido una respuesta (que de hecho es perfectamente válida) pero que dicha respuesta no proviene del registro primario, de la raíz de los registros de nombres.

SOA es lo que se conoce como Start of Authority -comienzo de autoridad- y es que cada dominio tiene siempre un servidor DNS primario asociado.  En la siguiente imagen se explica como solicitud recursiva o solicitud no recursiva.

dns-recursive-non-query

Si, cuando nuestro navegador pregunta al servidor DNS más cercano a nosotros, este no conoce la respuesta, lo que hará es lanzar una consulta recursiva (elevará nuestra consulta) a los servidores DNS con los que tiene contacto por distribución geográfica. Si ningún servidor tuviera registros de la web deseada, es escalaría dicha solicitud al servidor de nombres autoritativo o primario, que es el SOA.

Por supuesto, nosotros podemos recurrir directamente al SOA si queremos, sin tomar en cuenta la cadena habitual de resolutores (eso sí, seguiremos necesitando a nuestro servidor DNS loca por motivos evidentes).

Obtener el SOA de un host

nslookup -type=soa <dominio_o_IP>
nslookup-soa

Preguntar al SOA por un host

Con el comando anterior hemos obtenido el valor SOA (ns1.wordpress.com) para el dominio, a través de nuestro resolutor local, que a su vez ha hecho sus preguntas o ya tenía en caché el resultado. De ahí que aún veamos una respuesta no autoritativa.

Ahora lo que haremos es preguntar por el dominio deseado al SOA específicamente.

nslookup -type=soa <dominio_o_IP> 
<servidor_DNS_SOA>

nslookup-soa-2

Voilá! Ahí lo tenemos, ns1.wordpress.com se corresponde con la ip198.181.116.9. También veremos otros datos más técnicos, en relación a los TTL -TimeToLive o Tiempo de Vida- para los registros DNS. razonable.

Comprobar registros DNS MX

Como ejemplo adicional de uso de comandos para averiguar servidores de nombres, podemos ver cómo hacerlo con servidores de email. Esto nos puede interesar, por ejemplo, para obtener el FQDN o dirección IP de un servidor de correo.

Para obtener información sobre registros Domain Name System de una pasarela de correo (de tipo MX) haremos lo siguiente.

  1. nslookup
  2. set type=mx
  3. dominio.tld

Donde dominio.tld es nuestro servidor remoto. Así, para ver los posibles registros MX asociados a Gmail.com, escribiremos:

  1. nslookup
  2. set type=mx
  3. gmail.com
obtener-registros-mx-servidores-de-correo

Ejemplo de lo anterior.

Comprobar caducidad de un registro DNS en caché con Nslookup debug

Los TTL o tiempos de vida se refieren a resultados que quedan en caché en los servidores primario, intermedios e incluso en nuestro mismo host local. El uso de la cache es muy importante para aliviar de carga a los servidores de nombres autoritativos, de lo contrario saturaríamos la red con «tanta pregunta» a los servidores.

El uso de la cache tiene un efecto negativo, sin embargo, y es que podríamos acabar recibiendo respuestas DNS desfasadas. Si vemos que la respuesta autoritativa (la que envía ns1.wordpress.com, en mi caso) y la no autoritativa (la que envía box.local, en mi caso) difieren, significaría que estamos utilizando un registro DNS cacheado en el resolutor de nombres de dominio al que hemos preguntado.

Para ver durante cuanto tiempo se cachea un registro usaremos la opción debug, como verás a continuación.

C:\WINDOWS\system32>nslookup -debug mejor-antivirus.com
------------
Got answer:
HEADER:
opcode = QUERY, id = 1, rcode = NOERROR
header flags: response, auth. answer, want recursion, recursion avail.
questions = 1, answers = 1, authority records = 0, additional = 0

QUESTIONS:
136.1.168.192.in-addr.arpa, type = PTR, class = IN
ANSWERS:
-> 136.1.168.192.in-addr.arpa
name = box.local
ttl = 0 (0 secs)

------------
Servidor: box.local
Address: 192.168.1.136

------------
Got answer:
HEADER:
opcode = QUERY, id = 2, rcode = NXDOMAIN
header flags: response, want recursion, recursion avail.
questions = 1, answers = 0, authority records = 0, additional = 0

QUESTIONS:
mejor-antivirus.com.lan, type = A, class = IN

------------
------------
Got answer:
HEADER:
opcode = QUERY, id = 3, rcode = NXDOMAIN
header flags: response, want recursion, recursion avail.
questions = 1, answers = 0, authority records = 0, additional = 0

QUESTIONS:
mejor-antivirus.com.lan, type = AAAA, class = IN

------------
------------
Got answer:
HEADER:
opcode = QUERY, id = 4, rcode = NOERROR
header flags: response, want recursion, recursion avail.
questions = 1, answers = 2, authority records = 0, additional = 0

QUESTIONS:
mejor-antivirus.com, type = A, class = IN
ANSWERS:
-> mejor-antivirus.com
internet address = 192.0.78.25
ttl = 150 (2 mins 30 secs)
-> mejor-antivirus.com
internet address = 192.0.78.24
ttl = 150 (2 mins 30 secs)

------------
Respuesta no autoritativa:
DNS request timed out.
timeout was 2 seconds.
timeout (2 secs)
Nombre: mejor-antivirus.com
Addresses: 192.0.78.25
192.0.78.24

La parte seleccionada en cursiva y color ojo representaría el bloque donde se muestra el TTL (tiempo de refresco) para el nombre de dominio de esta web. Pero cuidado, en el ejemplo hemos usado la siguiente sintaxis:

nslookup -debug <host>

Por tanto, hemos obtenido resultados del servidor de nombres más cercano (box.local). Si quisiéramos saber cómo trata la caché el SOA (servidor DNS primario para el recurso) lo añadiríamos al final, obteniendo algo así:

[...]
Got answer:
HEADER:
opcode = QUERY, id = 4, rcode = NOERROR
header flags: response, auth. answer, want recursion
questions = 1, answers = 2, authority records = 0, additional = 0

QUESTIONS:
mejor-antivirus.com, type = A, class = IN
ANSWERS:
-> mejor-antivirus.com
internet address = 192.0.78.25
ttl = 300 (5 mins)
-> mejor-antivirus.com
internet address = 192.0.78.24
ttl = 300 (5 mins)
[...]

Gestionar DNS en Windows con ipconfig

La herramienta ipconfig es otra utilidad de linea de comandos de Windows que encontraremos en cualquier edición. Es el primer lugar al que acudir cuando necesitamos conocer la dirección IP que tiene asignado un aparato (ifconfig o ip addr en Linux).

Sin embargo también nos da otros datos valiosos y uno de ellos el servidor DNS primario/secundario suponiendo que hayamos asignado dos. Ojo, no me refiero al servidor SOA a pesar de haber usado el término primario, pero es el servidor DNS primario para nosotros. Esto es así porque de los posibles, será el primero en traducir la respuesta.

ipconfig-all

Si hubiera más de uno, aparecería más de un registro, pero no es mi caso.

Ver y vaciar la caché DNS en Windows

Windows (y cualquier sistema operativo, por defecto) emplea una memoria cache local para resolución de nombres. Las entradas almacenadas en caché podemos verlas así:

ipconfig /displaydns
ipconfig-displaydns

Si, por ejemplo, decidimos cambiar de servidores DNS, podríamos ver que los efectos no se notan de manera inmediata. Lanzaremos este comando para solucionarlo:

ipconfig /flushdns
ipconfig-flushdns

La caché habrá quedado vacía y cualquier solicitud futura tendrá que pasar por el servidor DNS  que hayamos escogido.

Registrar DNS

Por último hablaremos de la opción para registrar dns en Windows. ¿Qué es lo que hace? Bien, si nuestro equipo reside en una red sin dominio (como un grupo de trabajo) realmente no hará nada útil. Tampoco ayuda en base a la comunicación con los servidores DNS públicos.

Por contra, si estamos en una red de dominio lo que hace el comando es bien crear o bien actualizar el registro A/AAAA de nuestro host (equipo) en el sistema de resolución de nombres integrado de Active Directory.

ipconfig-registerdns

Hasta aquí por hoy. Nos ha dado tiempo a repasar algunas cosas interesantes acerca de los nombres de dominio, su funcionamiento y cómo administrar DNS en Windows. Cualquier errata, sugerencia o mejora será bienvenida en los comentarios, y por supuesto recuerda el dicho: compartir es vivir 😉

Últimas Noticias

Imagen de la noticia Descargar Roblox de forma segura

Descargar Roblox de forma segura

Leer más
Imagen de la noticia Antivirus Iphone ¿Son necesarios?

Antivirus Iphone ¿Son necesarios?

Leer más
Imagen de la noticia Sophos: Análisis en profundidad en 2025

Sophos: Análisis en profundidad en 2025

Leer más
Imagen de la noticia Activar Windows 11 CMD

Activar Windows 11 CMD

Leer más
Imagen de la noticia Antivirus para Mac, los mejores de 2025

Antivirus para Mac, los mejores de 2025

Leer más
Imagen de la noticia MTGOX: El hackeo que (casi) destruyó Bitcoin

MTGOX: El hackeo que (casi) destruyó Bitcoin

Leer más
Imagen de la noticia Malware, así lo analiza un experto

Malware, así lo analiza un experto

Leer más
Imagen de la noticia Sora OpenAI ¿Es una decepción?

Sora OpenAI ¿Es una decepción?

Leer más
Imagen de la noticia Nvidia Bolsa ¿Cuál es la realidad de su desplome?

Nvidia Bolsa ¿Cuál es la realidad de su desplome?

Leer más
Imagen de la noticia AVG: Análisis en profundidad en 2025

AVG: Análisis en profundidad en 2025

Leer más
Imagen de la noticia El robo perfecto de Bitcoins (que salió mal)

El robo perfecto de Bitcoins (que salió mal)

Leer más
Imagen de la noticia Captura de pantalla en Mac: Trucos y atajos

Captura de pantalla en Mac: Trucos y atajos

Leer más
Ver Todas