Le pedimos a Gemini, la inteligencia artificial de Google que nos hable sobre TCPDUMP
Hablanos detalladamente sobre TCPDUMPtcpdump es la herramienta de línea de comandos por excelencia para el análisis de red. Es un analizador de paquetes (sniffer) que permite capturar y mostrar en tiempo real el tráfico que entra o sale de una interfaz de red, o guardarlo en un archivo para un análisis posterior con herramientas como Wireshark.
En el contexto de VoIP y administración de redes Cisco que veníamos tratando, tcpdump es el "rayo X" que te permite ver si los marcadores QoS que configuraste realmente están viajando en los paquetes.
1. ¿Cómo funciona tcpdump?
tcpdump utiliza la biblioteca libpcap para capturar paquetes directamente de la capa de enlace de datos. Funciona bajo el principio de "promiscuidad": puede poner la tarjeta de red en modo promiscuo para ver todo el tráfico que pasa por el segmento, no solo el dirigido a la máquina local.
2. Sintaxis Básica y Opciones Esenciales
La estructura de un comando suele ser: tcpdump [opciones] [expresión_de_filtro]
-i [interfaz]: Define qué interfaz escuchar (ej. eth0, any, wlan0).
-n: No resuelve nombres de dominio (muestra IPs), lo que acelera el proceso y evita generar tráfico DNS adicional.
-v, -vv, -vvv: Niveles de verbosidad. A mayor nivel, más detalles del encabezado (como el valor TTL, ID, y lo más importante: los valores DSCP/ToS).
-w [archivo.pcap]: Guarda la captura en un archivo compatible con Wireshark.
-r [archivo.pcap]: Lee un archivo previamente capturado.
-s 0: (Snaplen) Captura el paquete completo. Por defecto, versiones antiguas cortaban el paquete a 68 o 96 bytes.
3. El Poder de los Filtros (Expresiones BPF)
tcpdump utiliza filtros BPF (Berkeley Packet Filter). Esto es vital para no saturar la terminal con tráfico basura.
Por Host: host 192.168.1.50
Por Red: net 10.0.0.0/24
Por Puerto: port 5060 (tráfico SIP estándar).
Por Protocolo: udp, tcp, icmp, arp.
Combinaciones Lógicas: and (&&), or (||), not (!).
Ejemplo: src 192.168.1.100 and udp port 5060 (Captura solo el tráfico SIP que sale de esa IP específica).
4. Uso de tcpdump en Entornos VoIP y QoS
Si quieres verificar si tu configuración de QoS en el router Cisco está funcionando, puedes usar tcpdump para inspeccionar el campo TOS (Type of Service) o DSCP.
Comprobar paquetes SIP con prioridad:
Bash
tcpdump -v -ni eth0 udp port 5060
En la salida, busca el campo tos. Si configuraste DSCP EF (Expedited Forwarding), deberías ver algo como tos 0xb8 (que es el valor hexadecimal para EF).
Capturar tráfico RTP (Audio):
El audio suele ir por puertos UDP aleatorios. Un truco es capturar todo el tráfico UDP entre dos terminales:
Bash
tcpdump -ni eth0 udp and host 192.168.1.20
5. Interpretación de la Salida
Una línea típica de tcpdump se ve así: 11:23:01.123456 IP 192.168.1.50.5060 > 192.168.1.1.5060: UDP, length 542
Timestamp: Hora exacta del paquete.
Protocolo de Capa de Red: IP en este caso.
Origen > Destino: IP y puerto de origen seguidos de la dirección de destino.
Info del Protocolo: Indica que es UDP y el tamaño de la carga útil (payload).
6. Consejos Pro para Solución de Problemas
Ver el contenido en ASCII: Si quieres leer el mensaje SIP (para ver quién llama a quién), usa -A: tcpdump -ni eth0 -A port 5060
Capturar solo paquetes entrantes: tcpdump -i eth0 incoming
Rotación de archivos: Si vas a dejar capturando mucho tiempo, usa -C [tamaño] para que cree archivos nuevos cada X Megabytes y no llene el disco.
tcpdump es la herramienta definitiva porque está presente en casi cualquier sistema Linux/Unix (incluyendo el shell de muchos routers y firewalls modernos). Es el paso previo antes de pasar a una interfaz gráfica como Wireshark.
¿Te gustaría que te diera ejemplos de filtros específicos para detectar ataques de denegación de servicio (DoS) o para inspeccionar otros protocolos como ICMP o HTTP?