Filtrado TCPDUMP según la longitud del paquete

Filtrado TCPDUMP según la longitud del paquete

Estoy buscando reducir tcpdumpla longitud de mi paquete. Sé que puedo `| grep pero me preguntaba si puedo pasar esta longitud de paquete en particular como una opción en 'tcpdump'. Estoy intentando escribir un script para mostrarme toda la multidifusión MPEG-TS presente en la red usando el siguiente comando:

sudo tcpdump -c 1000 -ti <network_interface> multicast | grep 1316 | sort | uniq

Entonces este comando funciona y me da exactamente el resultado que quiero, pero estaba pensando que podría simplificarlo pasando la longitud en el tcpdumpcomando, algo como:

sudo tcpdump -c 1000 -ti <network_interface> multicast and length 1316 | sort | uniq

Respuesta1

Tamaño total del paquete Ethernet

De acuerdo afiltro pcap (7), puede utilizar las siguientes condiciones:

  • less length, equivalente alen <= length

  • greater length, equivalente alen >= length

  • Según los ejemplos, también debería poder utilizar , pero eso no está documentado.len == length

Tenga en cuenta que esto incluye los encabezados de la capa de enlace y de la capa de red (es decir, todo lo que se capturó), por lo que un TCP ACK vacío tendrá un campo de "longitud total" de IP de 60, pero se considerará como 74 bytes en total.

Vea también este hilo de StackOverflow:https://stackoverflow.com/questions/9874093/how-to-filter-tcpdump-output-based-on-packet-length

Tamaño total del paquete IP

De acuerdo atcpdump(1), puede acceder al campo "Longitud total" del encabezado IPv4:

  • ip[2:2] > 576
  • ip[2:2] <= 1000
  • y similares.

Paquete UDP total o tamaño de carga útil

UDP no tiene un campo de longitud, pero el tamaño de su encabezado siempre es 8 y puedegeneralmentesupongamos que el tamaño del encabezado IPv4 siempre será 20 (las opciones de IPv4 sonmuyraro, aunque se utilizan en IGMP).

Entonces, si estás intentando filtrar datagramas UDP de 1316 bytes,

  • IP.Longitud total = IP.Encabezado[20] + UDP.Encabezado[8] + UDP.Carga útil[1316]

obtienes el filtro ip[2:2] == 1344.

información relacionada