3流プログラマのメモ書き

元開発職→社内SE→派遣で営業支援の三流プログラマのIT技術メモ書き。 このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。(jehupc.exblog.jpから移転中)

(Solaris)snoopによるパケットキャプチャ

Solaris10(SunOS 5.10) 上で UDP のパケット解析をすることとなりました。

Solarisには snoop というコマンドでパケットが採れるようです。

ただ画面に描画しただけでは後からの解析がしずらいので、一旦ファイルに落としてから解析したいと思ってます。

まずパケットを取ってファイルに落とすには下記コマンドでできます。

bash-3.00# snoop -d nge0 -s 42 -o /Desktop/snoop.out udp

Using device /dev/nge0 (promiscuous mode)

4468 ^C (Ctrl+Cで終了)

snoopについては、snoop(1m)ネットワークパケットの取得および検査 (SunOS リファレンスマニュアル 1M : システム管理コマンド) - Sun Microsystemsを見てもらうとわかるんですが、上記の引数を簡単に解説しときます。

-d:パケット採取するNIC(インターフェイス)を指定(今回はnge0)

-s:パケットの指定したサイズより後ろを切り捨てる。通常は全パケットを取るので、ヘッダだけいる場合は、各プロトコルに応じた長さを指定すればいいようです。

今回はUDPパケットのヘッダだけ取りたかったので42としています。各プロトコルのに応じたヘッダのみ取得する場合は、IPのみ:34,UDP 42,TCP 53,RPC 80,NFS 120となります。

-o:ファイルに出力。

udp:UDPパケットのみ取得。この末尾部分がフィルタ指定となります。ここで、特定のIPや特定の方向等さまざまなフィルタがかけれます。

snoopで出力したファイルですが、バイナリ形式(RFC1761準拠らしい)で落ちます。

wiresharkで見れるらしいとのことだったんでが、自分の環境の場合見れませんでした。

この出力したログをsnoopを使ってみることはできるのですが、実用的では有りません。

よって、出力したログをsnoopを使って人が見やすいようにテキストファイルに落とします。下記コマンドでできます。

bash-3.00# snoop -i snoop.out -x 50 > snoop.txt

-i:これで出力したログを表示します。

-x:パケットデータを 16 進数および ASCII 形式で表示します。-xの後の数値はオフセットでパケットの一部を表示します。

上記のコマンドの場合下記のような形式のテキストファイルとして出力されます。

1 0.00000 192.168.0.5 -> HogeSRV UDP D=40368 S=51760 LEN=36

2 0.00387 192.168.0.8 -> HogeSRV UDP D=41173 S=46509 LEN=48

3 0.00470 192.168.0.99 -> HogeSRV UDP D=41819 S=63676 LEN=36

4 0.02001 HogeSRV -> 192.168.0.117 UDP D=35782 S=41985 LEN=1344

snoop で -V を付けると詳細要約モード、-v だと詳細表示モードみたいです。

-V とした場合下記のような表示形式となりました。(パケットの中身は0に置換してます。)

1 0.00000 192.168.0.16 -> HogeSRV UDP D=40368 S=51760 LEN=36

0: 0000 0000 0000 0000 0000 0000 0000 0000 ................

16: 0000 0000 ....

2 0.00048 192.168.0.18 -> HogeSRV UDP D=40600 S=32937 LEN=48

0: 0000 0000 0000 0000 0000 0000 0000 0000 ................

16: 0000 0000 ....

3 0.00061 192.168.0.19 -> HogeSRV UDP D=40159 S=57005 LEN=36

0: 0000 0000 0000 0000 0000 0000 0000 0000 ................

16: 0000 0000 ....

4 0.00188 192.168.0.13 -> HogeSRV UDP D=41484 S=57103 LEN=36

0: 0000 0000 0000 0000 0000 0000 0000 0000 ................

16: 0000 0000 ....

5 0.00005 192.168.0.5 -> HogeSRV UDP D=40009 S=43415 LEN=36

0: 0000 0000 0000 0000 0000 0000 0000 0000 ................

16: 0000 0000 ....

6 0.00013 HogeSRV -> 192.168.0.17 UDP D=60261 S=41128 LEN=392

0: 0000 0000 0000 0000 0000 0000 0000 0000 ................

16: 0000 0000 0000 0000 0000 0000 0000 0000 ................

32: 0000 0000 0000 0000 0000 0000 0000 0000 ................

48: 0000 0000 0000 0000 0000 0000 0000 0000 ................

64: 0000 0000 0000 0000 0000 0000 0000 0000 ................

80: 0000 0000 0000 0000 0000 0000 0000 0000 ................

96: 0000 0000 0000 0000 0000 0000 0000 0000 ................

112: 0000 0000 0000 0000 0000 0000 0000 0000 ................

128: 0000 0000 0000 0000 0000 0000 0000 0000 ................

144: 0000 0000 0000 0000 0000 0000 0000 0000 ................

160: 0000 0000 0000 0000 0000 0000 0000 0000 ................

176: 0000 0000 0000 0000 0000 0000 0000 0000 ................

192: 0000 0000 0000 0000 0000 0000 0000 0000 ................

208: 0000 0000 0000 0000 0000 0000 0000 0000 ................

224: 0000 0000 0000 0000 0000 0000 0000 0000 ................

240: 0000 0000 0000 0000 0000 0000 0000 0000 ................

256: 0000 0000 0000 0000 0000 0000 0000 0000 ................

272: 0000 0000 0000 0000 0000 0000 0000 0000 ................

288: 0000 0000 0000 0000 0000 0000 0000 0000 ................

304: 0000 0000 0000 0000 0000 0000 0000 0000 ................

320: 0000 0000 0000 0000 0000 0000 0000 0000 ................

336: 0000 0000 0000 0000 0000 0000 0000 0000 ................

352: 0000 0000 0000 0000 0000 0000 0000 0000 ................

368: 0000 0000 0000 0000 ........

参考:

iT-folder IT関連情報を配信

Solarisでいきましょか? -各種トレース機能

南アラバ公国: Solarisでのパケットキャプチャー

tcpdump でキャプチャしたファイルを WireShark で解析 | bluegold

ネットワークを調査する 50 の方法 : やっぱり Sun がスキ! Solarisでの各種ネットワークコマンドや調査方法が分かりやすく載っています。