導入
tcpdumpはみんな知っている。では、netsniff-ngはどうか。
RX_RING, TX_RINGを用いたゼロコピーメカニズムにより、今までに無いパフォーマンスでパケットキャプチャ、ジェネレート、統計取得などなどをしていくぜ、って話である。(良く分からないまま喋ってる典型的な台詞)
netsniff-ng自体はtcpdumpの類似アプリですが、周辺ツール郡としてパケットジェネレータや統計取得、暗号化トンネルのテストツールも含まれている。
まずは基本的なところから見ていこうと思います。
インストール
一応インストールから。
Ubuntu server 12.04.2 amd64にインストールする。
|
|
libpcapもソースからインストールする場合は、以下のコミュニティページを見るのがいいと思う。
https://help.ubuntu.com/community/Netsniff-NG
使い方
インストールを終えたら、簡単に試せるところから見ていこう。
まず、簡単にパケットキャプチャでこんな感じ。3パケットだけ。
|
|
普通にファイルキャプチャした場合。
今回はnanosec pcap形式。
|
|
ほーら、こんな感じだよー。
対応しているパケットキャプチャファイル形式はこんなもんか。:
|
|
後は、パケット生成とその統計情報習得。
eth2とeth3を直結しておく。
|
|
ifppsは、普通に使うとtopに似た感じで出力が出る。
-c
オプションを使うとCSV出力が出来るので、上で取得したeth2.logとeth3.logを使うとグラフも書ける(gnuplotで書けよ、って話はさておいて)
デバイスがIPを持っている必要もないので、パケットレートを測定するには非常に都合がいい。
trafgen -e > trafgen.cfg
で出力したファイルは、中を見ると分かるけど16進数を頑張って書けばいい、ということが分かる。
また、部分的にランダム、インクリメント、チェックサム計算をさせたい場合に必要なコマンド群も有効なので、シーケンス番号を付与してパケット通過の前後関係を見るのにも適している。
GUI欲しいかなぁ、とか思ったんだけど、Q&A見てたら
Will you ship a GUI like Wireshark? Nope, GUIs suck.
あ、ハィ…すいません…じゃあWindows版とか…
Currently, netsniff-ng is only available for Linux platforms. If you have a port for *BSD, let us know for merging your port into the main source tree. However, please do not port netsniff-ng to Windows or other proprietary junk software! Here is a nice explanation why; we share Felix von Leitner’s point of view.
http://netsniff-ng.org のContribute
あ、ハィ…すいません…
性能評価の参考
チューニングというか、狙えば割と良いレートが出せそうなので、参考までに載せておく。
転送レートの調整は、パケット間のギャップ(microsecond)で指定するっぽいので、計算がちょっと面倒なんですよねぇ。
環境は
- DQ77KB
- E3-1265L v2
- DDR3 1600Mhz 8G x2
- Ubuntu 12.04.2
- netsniff-ng 0.5.8-next
- libpcap 1.1.1-10
こんな感じで投げて、
これっくらいのレートは見えたりしつつ、
これくらいの統計が見えたりする。
そんなわけで、まぁ使えるんじゃないかと思っているので、ちゃんと測定に使ってみたいですね。