Solución de problemas de consultas DNS en Tshark

WiresharkBeginner
Practicar Ahora

Introducción

En este laboratorio, aprenderá a solucionar problemas de consultas DNS utilizando la utilidad Tshark de Wireshark a través de ejercicios prácticos. Capturará el tráfico DNS con filtros de "udp port 53", analizará las consultas utilizando filtros de visualización como "dns.qry.name" y examinará las estadísticas de tiempo con la opción "dns,tree".

El laboratorio lo guía a través de técnicas prácticas para aislar paquetes DNS, visualizar el tiempo de las consultas y extraer información detallada de los paquetes con la bandera "-V". Al completar estos ejercicios, desarrollará las habilidades esenciales para diagnosticar problemas de DNS utilizando métodos profesionales de análisis de paquetes.

Capturar tráfico DNS con -f "udp port 53"

En este paso, aprenderá cómo capturar el tráfico DNS utilizando el filtro de captura de Wireshark. El DNS (Sistema de Nombres de Dominio) es como la guía telefónica de Internet, que traduce nombres de dominio legibles por humanos (como example.com) a direcciones IP legibles por máquinas. La mayoría de las consultas DNS utilizan el puerto UDP 53 porque son pequeñas y rápidas, mientras que las respuestas más grandes pueden utilizar TCP.

  1. Primero, abra una terminal en su máquina virtual LabEx si aún no lo ha hecho. Todos los comandos se ejecutarán en el directorio de trabajo predeterminado ~/project. Aquí es donde guardaremos nuestros archivos de captura.

  2. Inicie Wireshark desde la terminal con el siguiente comando:

wireshark &

El símbolo & ejecuta Wireshark en segundo plano, lo que le permite continuar utilizando la terminal mientras Wireshark permanece abierto. Esto es útil cuando necesita ejecutar otros comandos durante su análisis de red.

  1. En la interfaz principal de Wireshark:

    • Seleccione su interfaz de red activa (generalmente eth1). Esto le dice a Wireshark qué conexión de red debe monitorear.
    • En el campo de filtro de captura, ingrese: udp port 53. Este filtro asegura que Wireshark solo capture el tráfico DNS, reduciendo el ruido de otras actividades de red.
    • Haga clic en el icono de aleta de tiburón para comenzar a capturar paquetes. Verá que la interfaz comienza a mostrar la actividad de red.
  2. Para generar algo de tráfico DNS para pruebas, abra otra terminal y ejecute:

nslookup example.com

Este comando le pide a su sistema que busque la dirección IP de "example.com", creando el tráfico DNS que queremos capturar. Piense en ello como hacer una llamada de prueba para ver si nuestro monitoreo está funcionando.

  1. En Wireshark, ahora debería ver los paquetes DNS capturados. Estos aparecerán como líneas en la ventana principal, generalmente mostrando la consulta y la respuesta. Detenga la captura haciendo clic en el botón del cuadrado rojo cuando haya visto suficiente tráfico.

  2. Guarde el archivo de captura para su posterior análisis:

    • Vaya a Archivo → Guardar como
    • Guárdelo como dns_capture.pcapng en su directorio ~/project. Este formato de archivo conserva todos los datos originales de los paquetes para un examen detallado.

Puntos clave a entender:

  • -f "udp port 53" es un filtro de captura que solo registra el tráfico DNS, similar a configurar un micrófono especializado que solo escucha las conversaciones DNS.
  • El DNS utiliza principalmente el puerto UDP 53 porque es eficiente para consultas pequeñas, mientras que TCP (Protocolo de Control de Transmisión) se utiliza para respuestas más grandes que necesitan una entrega confiable.
  • El archivo de captura contiene paquetes de red sin procesar en su forma original, que analizaremos en pasos posteriores para entender exactamente lo que está sucediendo durante la resolución DNS.

Filtrar consultas con -Y "dns.qry.name"

En este paso, aprenderá cómo filtrar las consultas DNS en Wireshark utilizando filtros de visualización. El DNS (Sistema de Nombres de Dominio) es como la guía telefónica de Internet, que traduce nombres de dominio legibles por humanos a direcciones IP legibles por máquinas. Al solucionar problemas de red, examinar el tráfico DNS puede revelar pistas importantes.

Nos centraremos en el campo dns.qry.name, que muestra específicamente los nombres de dominio solicitados en las consultas DNS. Esto es especialmente útil cuando necesita examinar el tráfico relacionado con sitios web o servicios específicos a partir de la captura que creamos en el paso anterior.

  1. Primero, abramos el archivo de captura que guardamos anteriormente en Wireshark. El & al final ejecuta el comando en segundo plano para que pueda continuar usando la terminal:
wireshark ~/project/dns_capture.pcapng &
  1. En la barra de filtro de visualización de Wireshark (el campo vacío justo debajo de la barra de herramientas), ingrese este filtro exacto para ver solo las consultas DNS de "example.com":
dns.qry.name == "example.com"

Este filtro de igualdad estricta (==) mostrará solo los paquetes en los que el dominio consultado coincida exactamente con "example.com".

  1. Para ver todas las consultas DNS independientemente del dominio solicitado, simplemente use el nombre del campo por sí solo:
dns.qry.name

Esto muestra todos los paquetes que contienen nombres de consulta DNS, lo que le ayuda a entender qué dominios se están buscando en su red.

  1. Para obtener una vista más completa que muestre tanto las consultas DNS (solicitudes) como las respuestas, use este filtro que verifica la bandera de respuesta DNS:
dns.flags.response == 0 || dns.flags.response == 1

Aquí, dns.flags.response == 0 muestra las consultas (solicitudes), mientras que dns.flags.response == 1 muestra las respuestas.

  1. A veces, es posible que desee encontrar todas las consultas relacionadas con una determinada organización o servicio. Intente filtrar para coincidencias parciales de dominios utilizando el operador "contains":
dns.qry.name contains "example"

Esto coincidirá con cualquier dominio que contenga "example", como "example.com", "test.example.org" o "example.net".

Puntos clave a entender:

  • -Y es la opción de filtro de visualización de Wireshark (equivalente a escribir en la barra de filtro)
  • dns.qry.name es un campo específico en los paquetes DNS que contiene el nombre de dominio que se está consultando
  • Los filtros de visualización le ayudan a centrarse en patrones de tráfico específicos ocultando paquetes no relacionados
  • Los filtros pueden usar diferentes operadores de comparación:
    • == para coincidencias exactas
    • != para exclusión
    • contains para coincidencias parciales
  • El protocolo DNS incluye banderas para distinguir entre consultas (response == 0) y respuestas (response == 1)

Analizar el tiempo con -z dns,tree

El DNS (Sistema de Nombres de Dominio) es como la guía telefónica de Internet, que traduce nombres de dominio legibles por humanos a direcciones IP legibles por máquinas. Al solucionar problemas de red, analizar los tiempos de respuesta DNS puede revelar cuellos de botella de rendimiento. En este paso, usaremos la función de estadísticas integrada de Wireshark con la opción -z dns,tree para medir la rapidez con la que los servidores DNS responden a las consultas.

  1. Antes de comenzar, asegúrese de que Wireshark no esté en ejecución. Analizaremos un archivo de tráfico DNS previamente capturado desde la terminal. El & al final permite que su terminal siga siendo usable mientras Wireshark se ejecuta:
wireshark -z dns,tree ~/project/dns_capture.pcapng &
  1. Se abrirá una nueva ventana titulada "DNS Statistics" (Estadísticas DNS), que mostrará tres piezas principales de información en una estructura de árbol:

    • Todas las consultas DNS y sus correspondientes respuestas
    • El tiempo que tardó cada consulta en obtener una respuesta
    • Con qué frecuencia se solicitó cada dominio
  2. Examinemos detenidamente las columnas de las estadísticas:

    • "Count" (Conteo) indica el número de veces que su sistema consultó cada dominio
    • "Average" (Promedio) muestra el tiempo de respuesta típico para cada dominio
    • "Min" (Mínimo) y "Max" (Máximo) revelan los mejores y peores casos de tiempo de respuesta
  3. Para ver datos más interesantes en nuestro análisis, generemos nuevas consultas DNS. Abra una nueva ventana de terminal y ejecute estos comandos de búsqueda comunes:

nslookup google.com
nslookup labex.io
  1. Después de ejecutar estos comandos, regrese a la ventana de Estadísticas DNS y haga clic en "Reload" (Recargar) para actualizar las estadísticas con las nuevas consultas que acaba de generar.

Conceptos clave a recordar:

  • El comando -z dns,tree activa el modo de análisis DNS especializado de Wireshark
  • Las mediciones de tiempo de respuesta ayudan a identificar servidores DNS lentos o retrasos en la red
  • La vista de árbol agrupa las consultas relacionadas para facilitar el análisis
  • Siempre recargue el archivo de captura para ver las últimas estadísticas después de una nueva actividad DNS

Mostrar resultados con -V

En este paso, exploraremos cómo examinar en detalle los paquetes DNS utilizando el modo detallado de Wireshark con la opción -V. Al solucionar problemas de DNS, ver todos los detalles del protocolo es fundamental para entender exactamente lo que está sucediendo en el tráfico de su red.

  1. Antes de comenzar, asegúrese de cerrar todas las ventanas abiertas de Wireshark para evitar confusiones. Luego, ejecute este comando para abrir su archivo de captura con todos los detalles del protocolo:
wireshark -V -r ~/project/dns_capture.pcapng &

La bandera -V le indica a Wireshark que muestre una salida detallada, mostrando toda la información del protocolo disponible en lugar de solo el resumen básico del paquete.

  1. En la interfaz de Wireshark, enfoque el panel central llamado "Packet Details" (Detalles del paquete). Así es como se examina la información DNS:

    • Haga clic en la flecha junto a "Domain Name System" (Sistema de Nombres de Dominio) para expandirlo.
    • Verá la estructura completa del mensaje DNS, que incluye:
      • Si es una consulta o una respuesta.
      • Identificadores de transacción únicos que emparejan solicitudes con respuestas.
      • Banderas de estado que indican éxito o errores.
      • Todos los registros de recursos que se están intercambiando.
  2. Cuando mire un paquete de consulta DNS (generalmente enviado desde el cliente al servidor), preste especial atención a:

    • Tipo de consulta: Esto muestra qué tipo de registro se está solicitando (A para IPv4, AAAA para IPv6, MX para servidores de correo).
    • Clase de consulta: Casi siempre es "IN" para la clase de Internet.
    • Identificador de transacción: Un número aleatorio que ayuda a emparejar esta consulta con su respuesta.
  3. Para los paquetes de respuesta DNS (desde el servidor al cliente), verifique estos campos importantes:

    • Código de respuesta: "0" significa que no se produjeron errores.
    • Conteo de respuestas: Cuántos registros se devolvieron.
    • Valores TTL: Cuánto tiempo se pueden almacenar en caché estas respuestas DNS.
    • Datos reales: Como las direcciones IP cuando se consulta registros A.
  4. Para guardar este análisis detallado para su revisión posterior o para compartirlo con sus colegas, ejecute este comando:

tshark -V -r ~/project/dns_capture.pcapng > ~/project/dns_analysis.txt

Esto crea un archivo de texto que contiene toda la salida detallada de su captura.

Conceptos clave a recordar:

  • La opción -V revela la desglose completo del protocolo de cada paquete.
  • Puede ver cada capa de la pila de protocolos DNS.
  • Este nivel de detalle es necesario cuando se diagnostican problemas complejos de DNS.
  • Combine con filtros (como dns) para centrarse en paquetes específicos mientras se mantienen todos los detalles.

Resumen

En este laboratorio, has aprendido cómo solucionar problemas de consultas DNS utilizando la utilidad Tshark de Wireshark. El ejercicio demostró cómo capturar tráfico DNS con filtros de puerto UDP 53 y analizar consultas a través de filtros de visualización específicos como dns.qry.name.

Practicaste la generación de tráfico de prueba con nslookup y el guardado de capturas para su análisis, lo que te permitió obtener información sobre el comportamiento del protocolo DNS y las poderosas capacidades de filtrado de Wireshark para aislar solicitudes de dominios específicos. Estas habilidades son esenciales para la resolución de problemas de red y las investigaciones relacionadas con DNS.