Consultar Registros DNS en Linux con dig y nslookup

CompTIABeginner
Practicar Ahora

Introducción

En este laboratorio, aprenderá los fundamentos de la consulta de registros del Sistema de Nombres de Dominio (DNS) desde la línea de comandos en un entorno Linux. Utilizará dos utilidades potentes y comunes, dig y nslookup, para realizar varios tipos de búsquedas de DNS. Esta experiencia práctica es esencial para administradores de red e ingenieros de sistemas para solucionar problemas de resolución de nombres y comprender las configuraciones de red.

Comenzará identificando el servidor DNS predeterminado de su sistema examinando el archivo /etc/resolv.conf. Luego, procederá a realizar varias consultas DNS comunes, que incluyen encontrar la dirección IP de un dominio (registro A), descubrir un nombre de host a partir de una dirección IP con una búsqueda inversa (registro PTR) y buscar registros de intercambio de correo (MX) para un dominio. Finalmente, aprenderá a dirigir sus consultas a un servidor DNS público específico en lugar de utilizar el predeterminado de su sistema.

Este es un Guided Lab, que proporciona instrucciones paso a paso para ayudarte a aprender y practicar. Sigue las instrucciones cuidadosamente para completar cada paso y obtener experiencia práctica. Los datos históricos muestran que este es un laboratorio de nivel principiante con una tasa de finalización del 92%. Ha recibido una tasa de reseñas positivas del 100% por parte de los estudiantes.

Identificar el Servidor DNS Predeterminado de su Sistema con cat

En este paso, aprenderá cómo identificar los servidores DNS predeterminados que su sistema está configurado para usar. Los servidores DNS (Domain Name System) son responsables de traducir nombres de dominio legibles por humanos (como www.google.com) en direcciones IP legibles por máquina (como 142.250.186.132). Comprender qué servidores DNS consulta su sistema por defecto es el primer y más crucial paso para diagnosticar cualquier problema de resolución de nombres.

En la mayoría de los sistemas Linux, esta configuración se almacena en un archivo ubicado en /etc/resolv.conf. Utilizaremos el comando cat, una utilidad estándar para concatenar y mostrar el contenido de archivos, para ver este archivo.

Abra su terminal y ejecute el siguiente comando para mostrar el contenido del archivo resolv.conf:

cat /etc/resolv.conf

Verá una salida similar a la siguiente. Las direcciones IP listadas después de la directiva nameserver son los servidores DNS con los que su sistema se pondrá en contacto para resolver nombres de dominio.

## Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
##     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
## 127.0.0.53 is the systemd-resolved stub resolver.
## run "systemd-resolve --status" to see details about the actual nameservers.

nameserver 127.0.0.53
options timeout:2 attempts:3 rotate single-request-reopen

De la salida, puede ver que 127.0.0.53 es el servidor DNS principal para este sistema. Cualquier consulta DNS que realice sin especificar un servidor particular se enviará aquí por defecto. Ahora que sabe cómo encontrar su servidor DNS predeterminado, está listo para realizar su primera consulta DNS en el siguiente paso.

Encontrar la Dirección IP de un Dominio (Registro A) con dig y nslookup

En este paso, realizará una consulta DNS directa estándar, que es el proceso de resolver un nombre de dominio a una dirección IP. Esta es una de las funciones más comunes del DNS. El tipo específico de registro que mapea un nombre de dominio a una dirección IPv4 se llama registro A. Utilizaremos dos herramientas populares de línea de comandos para esta tarea: nslookup y dig.

Primero, debe asegurarse de que estas herramientas estén instaladas. Forman parte del paquete dnsutils en sistemas basados en Debian como Ubuntu. Actualicemos la lista de paquetes e instalémoslo.

sudo apt-get update
sudo apt-get install -y dnsutils

Ahora que las herramientas están listas, usemos nslookup (que significa "name server lookup" o búsqueda de servidor de nombres) para encontrar la dirección IP de www.google.com.

nslookup www.google.com

La salida le muestra el servidor que respondió a la consulta (su servidor predeterminado del Paso 1) y la "Non-authoritative answer" (respuesta no autoritativa), que contiene la(s) dirección(es) IP asociadas con www.google.com.

Server:         127.0.0.53
Address:        127.0.0.53#53

Non-authoritative answer:
Name:   www.google.com
Address: 142.250.189.196
Name:   www.google.com
Address: 2607:f8b0:4005:80d::2004

A continuación, realicemos la misma consulta utilizando dig (Domain Information Groper). dig es a menudo preferido por los administradores de sistemas porque proporciona una salida más detallada y estructurada.

dig www.google.com

Examine la salida de dig. Está dividida en secciones. La QUESTION SECTION (sección de pregunta) muestra lo que solicitó (un registro A para www.google.com). La ANSWER SECTION (sección de respuesta) proporciona el resultado, incluida la dirección IP y el valor TTL (Time To Live), que indica cuánto tiempo un resolvedor puede almacenar en caché esta información.

; <<>> DiG 9.18.1-1ubuntu1.3-Ubuntu <<>> www.google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5247
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;www.google.com.                        IN      A

;; ANSWER SECTION:
www.google.com.         7       IN      A       142.251.46.196

;; Query time: 0 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)
;; WHEN: Mon Jul 14 14:55:18 CST 2025
;; MSG SIZE  rcvd: 59

Al comparar las dos salidas, puede ver que, si bien ambas herramientas logran el mismo objetivo, dig ofrece una visión mucho más completa de la respuesta DNS.

Encontrar un Nombre de Host a partir de una Dirección IP (Registro PTR) con dig -x

En este paso, realizará una consulta DNS inversa. Mientras que una consulta directa resuelve un nombre de dominio a una dirección IP, una consulta inversa hace lo contrario: encuentra el nombre de host asociado con una dirección IP dada. Este proceso se basa en un tipo especial de registro DNS llamado registro PTR (Pointer). Las consultas inversas son comúnmente utilizadas por los servidores de correo para verificar la identidad del remitente y en la resolución de problemas de red para identificar la fuente del tráfico.

Utilizaremos una de las direcciones IP de www.google.com que descubrió en el paso anterior. Usemos 142.251.46.196 como nuestro ejemplo.

Primero, intentemos una consulta inversa con nslookup, que ya le resulta familiar. Simplemente proporcione la dirección IP como argumento:

nslookup 142.251.46.196

La salida mostrará el name (nombre) asociado con la dirección IP, que se almacena en un dominio especial in-addr.arpa utilizado para DNS inverso.

196.46.251.142.in-addr.arpa     name = nuq04s45-in-f4.1e100.net.

Authoritative answers can be found from:

Ahora, realicemos la misma consulta inversa utilizando dig. El comando dig utiliza la opción -x para especificar una consulta inversa. Este es un atajo conveniente que formatea la consulta correctamente para usted.

dig -x 142.251.46.196

Observe la salida. En la ANSWER SECTION (sección de respuesta), encontrará el registro PTR que mapea la dirección IP de vuelta a su nombre de host. Observe cómo la QUESTION SECTION (sección de pregunta) muestra la dirección IP invertida y con el sufijo .in-addr.arpa, que es el formato estándar para consultas DNS inversas de IPv4.

; <<>> DiG 9.18.1-1ubuntu1.3-Ubuntu <<>> -x 142.251.46.196
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46896
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;196.46.251.142.in-addr.arpa.   IN      PTR

;; ANSWER SECTION:
196.46.251.142.in-addr.arpa. 10 IN      PTR     nuq04s45-in-f4.1e100.net.

;; Query time: 0 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)
;; WHEN: Mon Jul 14 14:56:11 CST 2025
;; MSG SIZE  rcvd: 94

Ahora ha utilizado con éxito tanto nslookup como dig para realizar una consulta DNS inversa, traduciendo una dirección IP de vuelta a un nombre de host.

Consultar Registros de Intercambio de Correo (MX) de un Dominio con dig

En este paso, aprenderá a consultar otro tipo importante de registro DNS: el registro de Intercambio de Correo (MX). Los registros MX son esenciales para la entrega de correo electrónico. Especifican qué servidores de correo son responsables de aceptar mensajes de correo electrónico en nombre de un dominio. Cuando envía un correo electrónico a usuario@ejemplo.com, su servidor de correo primero realiza una consulta DNS de los registros MX de ejemplo.com para averiguar a dónde enviar el mensaje.

Continuaremos usando el comando dig para buscar los registros MX del dominio google.com. Para hacer esto, especifique el nombre del dominio seguido del tipo de registro (MX).

En su terminal, ejecute el siguiente comando:

dig google.com MX

La salida será similar a lo que ha visto antes, pero la ANSWER SECTION (sección de respuesta) ahora contendrá registros MX en lugar de registros A.

; <<>> DiG 9.18.1-1ubuntu1.3-Ubuntu <<>> google.com MX
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45070
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;google.com.                    IN      MX

;; ANSWER SECTION:
google.com.             10      IN      MX      10 smtp.google.com.

;; Query time: 12 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)
;; WHEN: Mon Jul 14 14:56:29 CST 2025
;; MSG SIZE  rcvd: 60

Observe el número (10) antes del nombre de host del servidor de correo en la ANSWER SECTION. Este es el valor de preferencia o prioridad. Los servidores de correo intentarán entregar el correo electrónico al servidor con el número de prioridad más bajo primero. Si ese servidor no está disponible, intentarán con el siguiente más bajo, y así sucesivamente. Esto proporciona un sistema de servidores de correo primarios y de respaldo.

Consultar un Servidor DNS Público Específico con dig @<servidor>

En este último paso, aprenderá a omitir el servidor DNS predeterminado de su sistema y a enviar una consulta directamente a un servidor DNS público específico. Esta es una técnica extremadamente útil para la resolución de problemas. Por ejemplo, si no puede resolver un dominio utilizando su servidor predeterminado, puede consultar un servidor público confiable como el de Google (8.8.8.8) o el de Cloudflare (1.1.1.1) para determinar si el problema está en su configuración local o es un problema más generalizado.

El comando dig facilita esto. Puede especificar el servidor DNS que desea utilizar anteponiendo su dirección IP con un símbolo @.

Consultemos el servidor DNS público de Google en 8.8.8.8 para encontrar la dirección IP de www.cloudflare.com.

dig @8.8.8.8 www.cloudflare.com

Ahora, examine detenidamente la salida. Preste mucha atención a la línea SERVER cerca de la parte inferior. Debería mostrar 8.8.8.8#53, confirmando que su consulta fue enviada y respondida por el servidor DNS de Google, no por el servidor predeterminado de su sistema (127.0.0.53 del Paso 1).

; <<>> DiG 9.18.1-1ubuntu1.3-Ubuntu <<>> @8.8.8.8 www.cloudflare.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62439
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;www.cloudflare.com.            IN      A

;; ANSWER SECTION:
www.cloudflare.com.     300     IN      A       104.16.123.96
www.cloudflare.com.     300     IN      A       104.16.124.96

;; Query time: 16 msec
;; SERVER: 8.8.8.8#53(8.8.8.8) (UDP)
;; WHEN: Mon Jul 14 14:56:45 CST 2025
;; MSG SIZE  rcvd: 79

Ha dirigido con éxito una consulta DNS a un servidor específico, una habilidad poderosa para diagnosticar problemas de red y de resolución de nombres. Esto concluye el laboratorio sobre el uso de nslookup y dig para consultas DNS del lado del cliente.

Resumen

En este laboratorio, aprendió a realizar consultas DNS esenciales en un sistema Linux. Comenzó identificando el servidor DNS predeterminado de su sistema examinando el archivo /etc/resolv.conf con el comando cat. Después de esto, utilizó las utilidades dig y nslookup para realizar una búsqueda directa estándar, resolviendo un nombre de dominio a su dirección IP correspondiente (registro A).

Luego exploró consultas más avanzadas, incluyendo búsquedas inversas para encontrar un nombre de host a partir de una dirección IP (registro PTR) usando dig -x, y cómo recuperar los registros de intercambio de correo (MX) de un dominio. Finalmente, aprendió a omitir la configuración predeterminada del sistema dirigiendo su consulta DNS a un servidor público específico utilizando la sintaxis dig @<servidor>, una habilidad crítica para solucionar problemas y probar la resolución de nombres.