Filtern von TCPDUMP nach Paketlänge

Filtern von TCPDUMP nach Paketlänge

Ich möchte meine tcpdumpPaketlänge eingrenzen. Ich weiß, dass ich `| grep kann, aber ich frage mich, ob ich diese bestimmte Paketlänge als Option in 'tcpdump' übergeben kann. Ich versuche, ein Skript zu schreiben, das mir mit dem folgenden Befehl alle im Netzwerk vorhandenen MPEG-TS-Multicasts anzeigt:

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

Dieser Befehl funktioniert also und gibt mir genau die Ausgabe, die ich will, aber ich dachte, ich könnte es vereinfachen, indem ich die Länge im tcpdumpBefehl übergebe, etwa so:

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

Antwort1

Gesamte Ethernet-Paketgröße

Entsprechendpcap-filter(7)können Sie die folgenden Bedingungen verwenden:

  • less length, gleichwertiglen <= length

  • greater length, gleichwertiglen >= length

  • Basierend auf den Beispielen sollten Sie auch verwenden können , aber das ist nicht dokumentiert.len == length

Beachten Sie, dass dies die Header der Verbindungsschicht und der Netzwerkschicht umfasst (also alles, was erfasst wurde). Eine leere TCP-ACK hat also ein IP-Feld „Gesamtlänge“ von 60, wird aber als insgesamt 74 Bytes angezeigt.

Siehe auch diesen StackOverflow-Thread:https://stackoverflow.com/questions/9874093/how-to-filter-tcpdump-output-based-on-packet-length

Gesamte IP-Paketgröße

Entsprechendtcpdump(1)können Sie auf das Feld „Gesamtlänge“ des IPv4-Headers zugreifen:

  • ip[2:2] > 576
  • ip[2:2] <= 1000
  • und ähnliches.

Gesamtgröße des UDP-Pakets oder der Nutzlast

UDP hat kein Längenfeld, aber seine Header-Größe ist immer 8, und Sie könnennormalerweisegehen Sie davon aus, dass die IPv4-Headergröße immer 20 beträgt (IPv4-Optionen sindsehrselten, obwohl sie in IGMP verwendet werden).

Wenn Sie also nach 1316-Byte-UDP-Datagrammen filtern möchten,

  • IP.Gesamtlänge = IP.Header[20] + UDP.Header[8] + UDP.Payload[1316]

du bekommst den Filter ip[2:2] == 1344.

verwandte Informationen