LoginSignup
2
2

More than 5 years have passed since last update.

netsniff-ng toolkit / trafgen

Last updated at Posted at 2014-01-05

netsniff-ng toolkit に含まれるトラフィック(パケット)ジェネレータ
socket mmap とか駆使して高速に動作するのと独自の簡易構文で任意のパケットパターンを組み立てられてるのが特徴

Kernelに同梱されてる pktgen も高速に動作するが、L3レベル(IPv4,IPv6)でペイロード内容はランダムにしか生成できないから性能評価には使えても、プロトコルスタックのテストには使えない。その点 trafgen なら任意のパケットパターンを組み立てられる

インストール方法

よくある手順でインストールできる
Ubuntu 12.04 LTS で実験。
apt にも登録されているけど、コマンドが少なかったりしたのでソースからコンパイルする方がよさそう

git clone git://github.com/borkmann/netsniff-ng.git

# 依存パッケージのインストール (INSTALLに書いてあるコマンドそのまま)
sudo apt-get install ccache flex bison libnl-3-dev \
libnl-genl-3-dev libgeoip-dev libnetfilter-conntrack-dev \
libncurses5-dev liburcu-dev libnacl-dev libpcap-dev \
zlib1g-dev libcli-dev libnet1-dev

configure
make
make install

使ってみる

ヘルプ通りに実行してみる
-eオプションでパケットパターンのサンプルが出力されるのでそれをパイプしてloインターフェイスに出力している

% trafgen -e | sudo trafgen -i - -o lo --cpp -n 1
     1 packets to schedule
    73 bytes in total
Running! Hang up with ^C!


           1 packets outgoing
          73 bytes outgoing
           0 sec, 9435 usec on CPU0 (1 packets)

trafgenに限らず netsniff-ng toolkit でNICを使うコマンドはPF_PACKETを使うのでrootで実行する必要があることに注意

おまけ nacl のビルド

% ./configure
[*] Checking pkg-config ... [YES]
[*] Checking ccache ... [YES]
[*] Checking flex ... [YES]
[*] Checking bison ... [YES]
[*] Checking nacl ... [NO]
[*] Checking libnl ... [YES]
[*] Checking tpacket_v2 ... [YES]
[*] Checking tpacket_v3 ... [YES]
[*] Checking libnetfilter-conntrack ... [YES]
[*] Checking ncurses ... [YES]
[*] Checking libGeoIP ... [YES]
[*] Checking libz ... [YES]
[*] Checking liburcu ... [YES]
[*] Checking libpcap ... [YES]
[*] Checking hw timestamping ... [YES]
[*] Checking libcli ... [YES]
[*] Checking libnet ... [YES]
[*] Generating config.h ...
[!] The NaCl crypto library is currently not present on your system or
    could not be found. Either install it from your distro or build it
    manually using 'make nacl' and make sure that the NACL_INC_DIR and
    NACL_LIB_DIR environment variables are set appropriately.
[!] The following tools will *not* be built: curvetun
[*] The following tools will be built: netsniff-ng trafgen astraceroute flowtop ifpps bpfc mausezahn
[!] There were errors in the configure script. Please check the file
    config.log for details.

実験環境ではこんな感じでnaclがないと怒られた。
このままでもcurvetunがビルドできないだけでtrafgenを使うには支障がないが使うならメッセージに書いてある対処方法通りに実行する。(親切!)

% make nacl
--2014-01-05 18:21:17--  http://hyperelliptic.org/nacl/nacl-20110221.tar.bz2
Resolving hyperelliptic.org (hyperelliptic.org)... 131.155.71.33
Connecting to hyperelliptic.org (hyperelliptic.org)|131.155.71.33|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 163415 (160K) [application/x-bzip2]
Saving to: `/tmp/nacl-20110221.tar.bz2'

100%[============================================================================================================================================>] 163,415     24.4K/s   in 6.8s

2014-01-05 18:21:25 (23.4 KB/s) - `/tmp/nacl-20110221.tar.bz2' saved [163415/163415]

Building NaCl for arch x86 on host ubuntu1204 (grab a coffee, this takes a while) ...
NaCl lib path /home/devel/nacl/nacl-20110221/build/ubuntu1204/lib/x86
NaCl include path /home/devel/nacl/nacl-20110221/build/ubuntu1204/include/x86
Done!
/bin/sh: 1: source: not found
make: *** [nacl] Error 127

そうすると自動でソースをダウンロードしてきてビルドしてくれる。
ビルドが成功すると~/.bashrcNACL_INC_DIRNACL_LIB_DIRを勝手に追加されるので再度configureから実行すると認識される

上のログではmake naclの最後では自動で~/.bashrcsourceしてくれるんだけど構文エラーで失敗している。その場合は手動で設定するか読み込み直すばOK。

参考URL

2
2
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
2
2