El comando nslookup para principiantes
Table of Contents
- I. Introducción
- II. ¿Qué es el comando nslookup?
- III. ¿Cómo se utiliza nslookup?
- A. Resolver un nombre de dominio
- B. Resolución de una dirección IP
- C. ¿Qué servidor DNS es autoritativo en un dominio?
- D. Ver el registro MX de un dominio
- E. Listar los registros TXT de un dominio
- F. Listar registros de zona DNS con nslookup
- G. Listar los controladores de dominio de Active Directory con nslookup
- IV. Resolve-DnsName, el equivalente PowerShell de nslookup
- V. Conclusión
I. Introducción
En este tutorial, vamos a aprender a utilizar el comando nslookup, ya que es uno de los comandos esenciales que necesitas conocer como administrador de sistemas y redes. Así como necesitas conocer los comandos ping, tracert, ipconfig y otros... necesitas conocer nslookup. También veremos que el comando PowerShell"Resolve-DnsName" es realmente interesante.
II. ¿Qué es el comando nslookup?
El comando nslookup está integrado en todos los sistemas operativos Windows, ya sea Windows desktop o Windows Server. Fácil de usar, es muy útil para resolver problemas de DNS o para comprobar rápidamente el estado de un registro DNS.
Tanto si se trata de un problema con un servidor DNS local (la zona de Active Directory, por ejemplo) como con una zona DNS pública, puedes utilizar nslookup para obtener información sobre los registros DNS y probar la resolución de nombres en tu máquina local.
Por ejemplo, puedes comprobar la dirección IP asociada al nombre de dominio "it-connect.fr", comprobar el servidor de correo de un dominio (leyendo el registro MX) o comprobar que el nuevo servidor que acabas de crear está registrado en la zona DNS de tu dominio Active Directory. Hay muchos ejemplos, pero nslookup es la herramienta que puede ayudarte si el problema está relacionado con DNS. También podemos utilizar nslookup para verificar un cambio realizado en una zona DNS.
La herramienta nslookup también está disponible para Linux, aunque también existe la herramienta dig.
III. ¿Cómo se utiliza nslookup?
A partir de ahora, vamos a aprender a utilizar el comando nslookup con varios ejemplos prácticos. Antes de empezar, ten en cuenta que el comando nslookup se basa en la siguiente sintaxis:
nslookup <opciones> <nombre de dominio o dirección IP>
A. Resolver un nombre de dominio
Empecemos por un caso de uso muy sencillo, pero frecuente: resolver un nombre de dominio para obtener la dirección IP correspondiente. Tomemos el ejemplo del nombre de dominio "google.fr":
nslookup google.fr
Nslookup devuelve dos direcciones IP asociadas al nombre de dominio "google.fr": una dirección IPv6 y una dirección IPv4. En un dominio como el de Google, es probable que el resultado varíe de una máquina a otra, ya que Google no utiliza una única dirección IP. En cambio, si realizas la prueba en tu dominio personal, deberás obtener tu dirección IP pública (por ejemplo, la dirección IP pública de tu servidor VPS, servidor dedicado, box, etc.).

Podemos ver que el resultado del comando nslookup comienza con dos datos: Servidor y Dirección, que hace referencia a "1.1.1.1". De hecho, este es el servidor DNS solicitado por nslookup para resolver el nombre "google.fr". La herramienta utilizó este servidor DNS porque está definido como el servidor DNS preferido en mi interfaz de red utilizada para acceder a Internet:

Veremos más adelante que puede solicitar el servidor DNS de su elección.
B. Resolución de una dirección IP
Nslookup también puede utilizar una zona de búsqueda inversa para obtener el nombre de host asociado a una dirección IP. Tomemos el ejemplo de la dirección IP "9.9.9.9":
nslookup 9.9.9.9
Podemos ver que está asociado con el nombre de host"dns9.quad9.net".

C. ¿Qué servidor DNS es autoritativo en un dominio?
Los registros SOA (Start of Authority) y NS proporcionan información importante sobre un dominio, incluyendo el servidor DNS con autoridad sobre la zona, pero también el contacto, TTL por defecto, etc...
nslookup -type=soa it-connect.tech
Podemos ver el valor "primary name server" asociado a "dns104.ovh.net": lo más probable es que OVHcloud sea el registrador de este dominio.

Se puede obtener información similar leyendo el registro NS:
nslookup -type=ns it-connect.tech
Devuelve :
it-connect.tech nameserver = dns104.ovh.net
it-connect.tech nameserver = ns104.ovh.net
D. Ver el registro MX de un dominio
Si desea investigar la parte de mensajería de un dominio, debe consultar el registro de tipo MX del dominio. Basta con especificar el tipo MX.
nslookup -type=mx it-connect.tech
Proporciona información sobre los servidores de correo de este dominio:
it-connect.tech MX preference = 0, mail exchanger = itconnect-tech0e.mail.protection.outlook.com

Una respuesta como la anterior está asociada a un dominio vinculado a un tenant de Microsoft 365.
E. Listar los registros TXT de un dominio
Para listar los registros de recursos de un dominio, es necesario consultar los registros de tipo "TXT". Del mismo modo que para NS, SOA o CNAME, basta con especificar el tipo del siguiente modo:
nslookup -type=txt google.com
F. Listar registros de zona DNS con nslookup
Nslookup no es la mejor herramienta para enumerar el contenido de una zona DNS. Hay herramientas más adecuadas, como DNSEnum o Dig, pero aún así puede devolver una gran cantidad de información. Hemos visto que se puede especificar el tipo de registro. El tipo "any" le permite devolver registros de distintos tipos:
nslookup -type=any google.com
Algunos servidores DNS, como "1.1.1.1", no admiten estas peticiones.
*** one.one.one.one ne parvient pas à trouver google.com : Not implemented
En este caso, podemos solicitar otro servidor DNS. Pero, ¿cómo hacerlo sin modificar la configuración DNS de la interfaz de red de la máquina? Basta con especificar el servidor DNS a utilizar al final de la solicitud. Por ejemplo, para solicitar "8.8.8.8" en lugar del servidor DNS de la interfaz de red, utilizaremos esta sintaxis :
nslookup -type=any google.com 8.8.8.8
nslookup -type=any it-connect.tech 8.8.8.8
Podemos ver que la salida es más completa:

G. Listar los controladores de dominio de Active Directory con nslookup
Por último, veamos cómo listar todos los controladores de dominio de un dominio de Active Directory con nslookup... Si falta un controlador de dominio en la lista devuelta, ¡hay un problema!
Podemos empezar con una simple consulta:
nslookup it-connect.local
Este comando devolverá las direcciones IP de todos sus controladores de dominio para este dominio.
Para ir más allá y obtener información más precisa, en particular con los nombres, es necesario consultar un registro SRV más específico almacenado en la zona DNS de su dominio de Active Directory:
nslookup -type=SRV _ldap._tcp.it-connect.local
El resultado de estos dos pedidos puede verse en la imagen siguiente:

IV. Resolve-DnsName, el equivalente PowerShell de nslookup
El comando PowerShell "Resolve-DnsName" también está disponible en Windows. Al igual que nslookup, permite realizar la resolución de nombres como acabamos de hacer. Como es un comando PowerShell, abre otras posibilidades, incluida la posible integración dentro de scripts. Casi se podría decir que es un nslookup moderno.
He aquí algunos ejemplos...
- Resolver el nombre de host it-connect.fr solicitando al servidor DNS 8.8.8.8
Resolve-DnsName it-connect.fr -Server 8.8.8.8

- Obtener información MX (mensajería) del dominio it-connect.tech
Resolve-DnsName it-connect.tech -Type MX
- Resolver el nombre de host it-connect.tech utilizando sólo los datos de la caché local de DNS
Resolve-DnsName it-connect.tech -CacheOnly
- Resolver varios nombres de host con un solo comando, centrándose en los registros IPv4 (tipo A)
"google.com", "google.fr" | Resolve-DnsName -Type A

Por cierto, ¡se puede utilizar PowerShell para solicitar nslookup! Si queremos hacer el equivalente del comando anterior, tenemos que ejecutar :
"google.com", "google.fr" | Foreach{ nslookup -type=A $_ }
El comando Resolve-DnsName también es muy práctico y representa una alternativa seria a nslookup, especialmente si te gusta el scripting de PowerShell. Tiene muchas opciones.
V. Conclusión
Con este tutorial, ¡podrás diagnosticar fácilmente tus problemas de resolución de nombres o cambios en tus zonas DNS! Tanto si utiliza nslookup como Resolve-DnsName en PowerShell, tendrá suficientes ejemplos para ser autónomo en el uso de estos dos comandos.