1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

WireSharkでフラグメント化されたUDPパケットをキャプチャする

Posted at

元のフィルタ(フラグメント化されたパケットがキャプチャされない)

udp port 12345

フラグメント化されたパケットもキャプチャできるようにしたフィルタ

udp port 12345 or (ip[6:2] & 0x1fff != 0)

背景

UDPパケットをポート番号指定でキャプチャすると、フラグメント化されたパケットがキャプチャされない。
以下の例ではUDPのペイロードを900から100ずつ増やしたパケットを送っている。

  • ポート番号のみ指定したケース
    udp port 12345

ペイロード長1500を超えるあたりからフラグメント化された最初のパケットしかキャプチャできていない。
image.png

  • フラグメントを含むようにしたケース
    udp port 12345 or (ip[6:2] & 0x1fff != 0)

ペイロード長1500以降のパケットもフラグメント化された続きの部分がキャプチャされ、全体が再構成されている。
image.png

備考

フラグメント化された残りの部分にはUDPヘッダが含まれていないので、ポート番号での絞り込みができない。
IPアドレスでの絞り込みは可能で、宛先が192.168.0.1の場合は以下のようにする。
udp port 12345 or (ip[6:2] & 0x1fff != 0 and ip dst host 192.168.0.1)

検証環境

WireShark Version 3.4.8 (v3.4.8-0-g3e1ffae201b8)

参考記事

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?