tcpdump - Captura de paquetes

Resumen

tcpdump es la herramienta de captura de Linux que trae el BIG-IP. Sirve para ver qué pasa realmente con el tráfico: si llega el cliente, a qué miembro va, con qué IP SNAT sale, si el servidor responde, dónde aparece un reset. La captura se puede ver en pantalla o guardar en un .pcap para abrirla en Wireshark. Es best effort: con el equipo muy cargado puede perder paquetes y además le suma carga, así que hay que filtrar bien y capturar poco tiempo.

Opciones principales

OpciónQué hace
-i 0.0Todas las interfaces/VLANs
-i external / -i internal / -i 1.1Una VLAN o interfaz concreta
-i 0.0:nnnAgrega información de TMM (VS, flujo) a cada paquete
-i 0.0:nnnpAdemás incluye el flujo del otro lado (cliente ↔ servidor)
-w archivo.pcapGuarda en binario para Wireshark
-r archivo.pcapLee una captura
-nnNo resuelve nombres ni puertos
-s0Captura el paquete completo
-c 1000Se detiene tras N paquetes
-v / -X / -AMás detalle / contenido en hex / en texto
Filtroshost 10.10.101.103, port 443, tcp, and, or, not

Ejemplos

Ver en pantalla el tráfico de un cliente:

tcpdump -ni 0.0:nnn host 172.16.101.5

Lado servidor hacia un miembro concreto:

tcpdump -ni internal host 10.10.101.103 and port 80

Guardar ambos lados de una conversación para Wireshark:

tcpdump -ni 0.0:nnnp -s0 -w /var/tmp/caso1.pcap host 172.16.101.5

Ver solo resets y SYN:

tcpdump -ni 0.0 'tcp[tcpflags] & (tcp-rst|tcp-syn) != 0' and host 172.16.101.20

Ver ARP en la VLAN interna:

tcpdump -ni internal arp

Leer la captura:

tcpdump -nn -r /var/tmp/caso1.pcap

Copiar a tu PC:

scp root@192.168.121.11:/var/tmp/caso1.pcap .

Filtros útiles en Wireshark

FiltroPara
httpPeticiones y respuestas HTTP
http.response.code >= 400Errores HTTP
tcp.flags.reset == 1Resets
tcp.analysis.retransmissionRetransmisiones (pérdida)
tcp.analysis.zero_windowReceptor saturado
tls.handshake.type == 1ClientHello

Limitaciones

Antes de capturar en producción

  • Es best effort: con mucha carga pierde paquetes.
  • Suma carga de CPU y disco: filtra, usa -c y guarda en /var/tmp.
  • El tráfico acelerado por hardware (FastL4 + PVA) no pasa entero por TMM: la captura sale incompleta.
  • El tráfico cifrado no se lee sin descifrar (en versiones recientes existe --f5 ssl con la variable tcpdump.sslprovider).

Errores comunes

La captura sale vacía

  • Causa: interfaz equivocada, filtro demasiado estricto o tráfico acelerado por PVA.
  • Solución: prueba con -i 0.0 y un filtro más amplio.

Solo veo un lado de la conversación

  • Causa: capturaste en una VLAN.
  • Solución: usa -i 0.0:nnnp.

El disco se llenó

  • Causa: captura sin filtro ni límite.
  • Solución: usa -c, filtros y borra los .pcap al terminar.