Introducción
En este tutorial, vamos a echar un vistazo a las diferentes formas de utilizar el comando nslookup para Linux.
Comando nslookup
nslookup es una herramienta de línea de comandos utilizada para consultar los servidores de nombres de dominio (DNS) y está disponible para sistemas operativos como Linux y Windows:
2.1. Interactivo frente a no interactivo
Tenemos dos modos de utilizar nslookup: interactivo y no interactivo.
En primer lugar, podemos activar el modo interactivo escribiendo el comando sin parámetros:
~]$ nslookup>
Posteriormente, recibimos un prompt de comandos para escribir comandos individuales sin necesidad de escribir nslookup cada vez.
Por otro lado, el modo no interactivo utiliza los mismos comandos como parámetros:
~]$ nslookup -type=a redhat.com
Ahora, vamos a ejecutar algunas consultas con nslookup.
2.2. Busque un dominio
Eche un vistazo a los resultados de la búsqueda de un nombre de dominio:
~]$ nslookup redhat.comServer: 192.168.1.1Address: 192.168.1.1#53Non-authoritative answer:Name: redhat.comAddress: 209.132.183.105
El registro DNS – o registro A – comienza después del texto, «Non-authoritative answer». Estos registros muestran las direcciones IP asociadas al dominio.
Recuerde que los registros DNS asignan nombres de dominio a direcciones IP para sistemas informáticos.
2.3. Búsqueda inversa de DNS
De forma similar, podemos buscar un nombre de dominio a partir de una dirección IP:
~]$ nslookup> type=ptr> 209.132.183.105105.183.132.209.in-addr.arpa name = redirect.redhat.com.
Nota cómo el nombre de dominio devuelto difiere ligeramente del dominio original. En realidad se está devolviendo un registro diferente llamado PTR.
Algunos dominios no tienen registros PTR registrados para las direcciones IP:
~]$ nslookup> 104.18.62.78Server: 192.168.1.1Address: 192.168.1.1#53** server can't find 78.62.18.104.in-addr.arpa: NXDOMAIN
Parámetro de tipo
A continuación, los parámetros de tipo añaden más información a nuestras búsquedas. Por ejemplo, ptr da el DNS inverso como se mencionó anteriormente.
Ahora vamos a probar algunos otros tipos.
3.1. Todas las entradas
Podemos obtener todas las entradas DNS especificando -type=a:
~]$ nslookup -type=a baeldung.comServer: 192.168.1.1Address: 192.168.1.1#53Non-authoritative answer:Name: baeldung.comAddress: 104.18.63.78Name: baeldung.comAddress: 104.18.62.78
3.2. Autoritativo (SOA)
A continuación, miramos la información autoritativa (SOA) sobre el dominio. Por ejemplo, el registro A contiene información de correo y otra información que se muestra aquí:
~]$ nslookup -type=soa baeldung.comServer: 192.168.1.1Address: 192.168.1.1#53Non-authoritative answer:baeldung.com origin = lakas.ns.cloudflare.com mail addr = dns.cloudflare.com serial = 2033559691 refresh = 10000 retry = 2400 expire = 604800 minimum = 3600
Con muchos servidores de nombres de dominio repartidos por Internet, obtenemos resultados que no son de primera mano. Estas se denominan respuestas no autorizadas. Sin embargo, siguen proporcionando registros precisos.
3.3. Cualquier entrada
Por último, el parámetro type=any devuelve todo lo anterior incluyendo cualquier otro tipo de registro en el servidor. Esto es útil cuando no sabemos qué registro queremos.
Avisa que type=any probablemente no está implementado en la mayoría de los servidores de nombres públicos, pero sigue siendo útil en las redes internas.
Información del servidor de nombres
A veces, queremos ver la información del servidor de nombres para validar dónde existe un registro de dominio.
Por ejemplo, podemos probar para nuestro dominio con type=ns:
~]$ nslookup -type=ns baeldung.comServer: 192.168.1.1Address: 192.168.1.1#53Non-authoritative answer:baeldung.com nameserver = lakas.ns.cloudflare.com.baeldung.com nameserver = meera.ns.cloudflare.com.
Como resultado, podemos identificar qué DNS configurar para la comunicación de servidor a servidor a través del dominio. Recuerde que la consulta de un nuevo DNS requiere cambios en la configuración de la red local.
Activar la depuración
Además, el modo interactivo de nslookup ofrece a los usuarios la posibilidad de depurar las consultas:
~]$ nslookup -debug baeldung.comServer: 192.168.1.1Address: 192.168.1.1#53------------ QUESTIONS: baeldung.com, type = A, class = IN ANSWERS: -> baeldung.com internet address = 104.18.63.78 ttl = 300 -> baeldung.com internet address = 104.18.62.78 ttl = 300 AUTHORITY RECORDS: ADDITIONAL RECORDS:------------Non-authoritative answer:Name: baeldung.comAddress: 104.18.63.78Name: baeldung.comAddress: 104.18.62.78------------ QUESTIONS: baeldung.com, type = AAAA, class = IN ANSWERS: -> baeldung.com has AAAA address 2606:4700:3030::6812:3e4e ttl = 300 -> baeldung.com has AAAA address 2606:4700:3036::6812:3f4e ttl = 300 AUTHORITY RECORDS: ADDITIONAL RECORDS:------------Name: baeldung.comAddress: 2606:4700:3030::6812:3e4eName: baeldung.comAddress: 2606:4700:3036::6812:3f4e
Conclusión
En resumen, el comando nslookup es fundamental y bastante útil. Vimos los dos modos y una variedad de consultas de tipo, así como la capacidad de depuración si alguna vez se necesita la solución de problemas.