Tcpreplay

home

tcpreplay man page

tcpreplay

tcpreplay

名前/NAME
書式/SYNOPSIS
概要/DESCRIPTION
オプション/OPTIONS
オプションの事前設定/OPTION PRESETS
ファイル/FILES
exit コード/EXIT STATUS
AUTHORS/AUTHORS
COPYRIGHT/COPYRIGHT
バグ/BUGS
注意/NOTES


名前/NAME

tcpreplay − pcap ファイルに保存されたネットワークトラフィックを再送信

書式/SYNOPSIS

tcpreplay [flag [value]]... [−−opt−name [[=| ]value]]...<pcap_file(s)>

tcpreplay は tcpdump や他の pcap(3) ファイルに保存された ネットワークトラフィックを再送信するツールです。

概要/DESCRIPTION

tcpreplay の基本的な使い方は、指定されたファイル群を キャプチャされた時と同じ速度で再送信したり、 あるいは、ハードウェアが許す限りの速度の範囲内であれば、 指定したデータ速度で再送信します。 オプションとして、2つの NIC にトラフィックを分割したり、 ファイルに保存したり、様々な方法でフィルタしたり編集したり、 FireWall や NIDS や他のネットワークデバイスのテスト環境を提供します。 Tcpreplay Manual http://tcpreplay.appneta.com のページに、 もっと詳細な情報が記載されています。

オプション/OPTIONS

−d number, −−dbug=number

デバック出力を有効にします。 このオプションは 1回だけ指定できます。 オプションには整数を指定します。 number は下記の範囲で指定できます:

0 から 5

number のデフォルト値は:
0

−-enable-debug オプションをつけて configure された場合は、 デバッグ出力のレベルを指定できます。 数値が大きくなるとたくさんの情報を出力します。

−q, -−quiet

出力抑制モード

実行後の統計情報以外は出力しません。

−T string, −−timer=string

パケットの送信タイミングを下記から指定: select, ioport, gtod, nano. このオプションは 1回だけ指定できます。 デフォルトの string は:
gtod

パケットの送信タイミングの方法を選択できます:

nano - nanosleep() API を使います

select - select() API を使います

ioport - Write to i386 IO Port 0x80

gtod [default] - gettimeofday() ループを使います

−−maxsleep=number

パケット間隔を X [ms/milliseconds] より長くしません。 オプションには整数を指定します。 デフォルトの number は:
0

tcpreplay がパケットを送信する間にスリープする最大時間を ミリ秒(milliseconds)で指定します。 観測対象となる大多数のパケットの間に、 無意味な空白時間がある場合に使用すると効果的です。 デフォルトでは無効(disabled)です。

−v, -−verbose

パケットを tcpdump を使ってデコードし標準出力(STDOUT)に出力します。 このオプションは 1回だけ指定できます。

−A string, −−decode=string

tcpdump のデコーダに渡す引数です。 このオプションは 1回だけ指定できます。 このオプションは、下記のオプションと一緒に使用する必要があります: verbose.

デバッグ出力モード (-v) を使う場合、 パケットのデコード方法を指定するために 1つ以上の引数を tcpdump に渡す必要があります。 デフォルトでは −n と −l が指定されます。 tcpreplay が引数を解釈してしまわないように、 −A や "-axxx" のように '"' でくくってください。 その他のオプションは tcpdump(1) のマニュアルページを見てください。

−K, -−preload−pcap

送信する前に RAM(メモリ)に読み込みます。

再送信のパフォーマンスを向上させるために、 指定した pcap ファイル群を送信する前に RAM(メモリ)に読み込みます。 事前読み込み機能は、--loop を指定してもしなくても使えます。 このオプションを使う場合は、メモリ使用量を削減するために、 ループごとの統計情報は出力されません。 統計情報は与えられたオプションをベースに予想され、 また、最初のループから収集されます。

−c string, −−cachefile=string

tcpprep のキャッシュファイルを元にトラフィックを (NIC ごとに)分割します。 このオプションは 1回だけ指定できます。 このオプションを使う場合は オプション:intf2 の指定が必要です。 このオプションは下記のオプションと一緒には使用できません: dualfile

(FireWall やルータや IDS などの)デバイスを経由させて 双方向にパケットを送信する pcap ファイルを利用する場合、 tcpprep コマンドを使ってキャッシュファイルを作ることで、 トラフィックを 2つの NIC ごとに区別して送信できます。

−2, -−dualfile

ネットワークタップから、一度に 2つのファイルを送信します。 このオプションは 1回だけ指定できます。 このオプションを使う場合は オプション:intf2 の指定が必要です。 このオプションは下記のオプションと一緒には使用できません: cachefile

ネットワークタップを使ってトラフィックをキャプチャした場合、 それぞれの方向ごとに 2つの pcap ファイルが保存されます。 このオプションを使うことで、 それぞれの NIC のどちらかから 1つのパケットを、また、 それぞれの pcap ファイルのタイムスタンプをベースに 2つのファイルをから順にパケットを取り出して、 2つのファイルを同時に送信できます。

−i string, −−intf1=string

クライアントから、サーバ/RX/プライマリに対して送信する インターフェイスを指定します。 このオプションは 1回だけ指定できます。

全てのトラフィックを送信するインターフェイス、または、 tcpprep コマンドで ’primary’ とマークされたトラフィックを 送信するインターフェイスです。 プライマリトラフィックは、通常はクライアントからサーバへの、 あるいは仮想インターフェイスの inbound(RX) になります。

−I string, −−intf2=string

サーバから、クライアント/TX/セカンダリに対して送信する インターフェイスを指定します。 このオプションは 1回だけ指定できます。

tcpprep コマンドで ’secondary’ とマークされたトラフィックを 送信するインターフェイスです。 セカンダリトラフィックは、通常はサーバからクライアントへの、 あるいは仮想インターフェイスの outbound(TX) になります。

一般的には、 このオプションは −-cachefile と一緒に使用しないと意味がありません

−−listnics

使用できる NIC のリストを表示して終了します。

−l number, −−loop=number

キャプチャファイルを X回ループします。 このオプションは 1回だけ指定できます。

オプションには整数を指定します。 number の指定には下記の制限があります:

0 以上

number のデフォルト値は:
1

−−loopdelay−ms=number

ループとループの間のディレイ時間をミリ秒(milliseconds)で指定します。 このオプションは下記のオプションと一緒に指定する必要があります: loop オプションには整数を指定します。 number の指定には下記の制限があります:

0 以上

number のデフォルト値は:
0

−−pktlen

snaplen を上書きして、実際のパケット長を使用します。 このオプションは 1回だけ指定できます。

デフォルトの動作では、tcpreplay は pcap ファイルに保存されている "snaplen" をベースに パケットを送信します。この値はたいていの場合は正しく動作します。 しかし、時折、 その値より大きなサイズのパケットが保存されていることもあります。 このオプションを指定することで、 pcap ファイルに保存されている "snaplen" を無視して、 オリジナルのパケット長をベースに送信するようになります。 このオプションを使用すると、想定外の事象が発生するかもしれません。

−L number, −−limit=number

パケットの送信数を制限します。 このオプションは 1回だけ指定できます。 オプションには整数を指定します。 number の値は下記が想定されています:

1 以上

number のデフォルト値は:
-1

tcpreplay は、デフォルトでは全てのパケットを送信します。 このオプションを指定することで、送信パケット数を制限できます。

−x string, −−multiplier=string

再送信速度を n倍速で指定できます。 このオプションは 1回だけ指定できます。 オプションには整数を指定します。 このオプションは下記のオプションと一緒には使用できません。 pps, mbps, oneatatime, topspeed

パケットの再送信速度を指定します。指定例:
2.0 と指定するとキャプチャされた速度の二倍速で送信します
0.7 と指定するとキャプチャされた速度の 0.7倍速で送信します

−p number, −−pps=number

1秒あたりのパケット数(packets/sec)を指定してパケットを送信します。 このオプションは 1回だけ指定できます。 このオプションは下記のオプションと一緒には使用できません。

multiplier, mbps, oneatatime, topspeed. オプションには整数を指定します。

−M string, −−mbps=string

指定された Mbps でパケットを送信します。 このオプションは 1回だけ指定できます。 このオプションは下記のオプションと一緒には使用できません。 multiplier, pps, oneatatime, topspeed.

tcpreplay が送信する速度(Mbps) を小数点で指定します。

−t, -−topspeed

できる限り速い速度で送信します。 このオプションは下記のオプションと一緒には使用できません。 mbps, multiplier, pps, oneatatime.

−o, -−oneatatime

ユーザからの入力があるたびに 1つパケットを送信します。 このオプションは下記のオプションと一緒には使用できません。 mbps, pps, multiplier, topspeed.

ステップごとに、1パケットあるいは複数パケットを送信できます。

−−pps−multi=number

(pps で指定した)時間間隔ごとに、 パケットを何発送信するかを指定します。 このオプションは下記のオプションと一緒に使用します: pps. オプションには整数を指定します。 number の値は下記が想定されています:

1 以上

number のデフォルト値は:
1

高速にパケットを送信しようとすると、 送信するパケットの間隔は非常に短くなり、 パケットの間隔の sleep 時間の精度を保つのが困難になります。 このオプションを指定することで、 一度に(1回の sleep の間隔に)複数パケットを送信できるようになり、 パケットの間隔の sleep 時間を長くでき高い精度で速度を指定できます。

−−unique−ip

個別の flow を作成するために、 ループごとに異なる IPアドレスで送信します。 このオプションは下記のオプションと一緒に使用します: loop

IPv4 と IPv6 のパケットにおいて、--loop ごとに、 個別の IPアドレスで送信することを保障します。 パケットごとの CRC を変更しない仕組みを使うので、 パフォーマンスには影響しません。 このオプションは、ループごとの flows/sec をかなり向上させます。

−−netmap

netmap が有効化された NIC に直接パケットを書き込みます。

この機能は、Linux と BSD において、 netmap が有効になっている NIC のドライバを検出します。 検出された場合には、 パケットを送信している間は(通常の)ネットワークドライバはバイパスされ、 ネットワークバッファは直接 netmap の NIC に書き込まれます。 netmap を使うことで、市販されている一般的な NIC でも、 商用のネットワークジェネレータと同程度の速度を実現できます。 通常のネットワークドライバはバイパスされてしまうので、 その NIC を使ったほかのアプリケーションは通信できなくなります。 詳細情報は(付属の) INSTALL を確認してください。 This feature can also be enabled by specifying an interface as ’netmap:<intf>’ or ’vale:<intf>. For example ’netmap:eth0’ specifies netmap over interface eth0.

−−nm−delay=number

Netmap startup delay. This option must appear in combination with the following options: netmap. This option takes an integer number as its argument. The default number for this option is:
4

Number of seconds to delay after netmap is loaded. Required to ensure interfaces are fully up before netmap transmit. Requires netmap option. Default is 4 seconds.

−−no−flow−stats

flow の数や通信レートや満了時間などを、表示せず追跡しません。

flow の統計情報を収集したり表示するのを抑制します。 このオプションは、 --preload-pcap を使わない場合にパフォーマンスを向上できます。 flow の機能は、送信した flow の統計情報を収集し表示します。 flow はおおまかに 5つの要素で判別されます。すなわち、 送信元IPアドレス、送信先IPアドレス、 送信元port番号、送信先port番号、プロトコルの 5つです。 もし、--loop を使う場合、 --unique-ip が指定されていたり、 tcpreplay-edit でループごとにパケットが書き換えられていない限り、 ループごとに異なる flow にはなりません。

−−flow−expiry=number

flow が終了すると判断されるまでの無通信時間を指定します。 このオプションは下記のオプションと一緒には使用できません: no-flow-stats オプションには整数を指定します。 number の値は下記が想定されています:

0 以上

number のデフォルト値は:
0

このオプションは、無通信時間をベースにして、 flow の終了を追跡したりレポートします。 pcap ファイルに含まれるタイムスタンプは、 flow の終了を決定するために用いられます。 パケットが送信された実際のタイムスタンプは関係しません。 例えば 30 が指定された場合、 30秒間その flow の通信が無かった場合、 その flow の後の通信は新規の flow と認識されます。 従って、単位時間あたりの flow 数(fps) の統計情報は上昇します。 このオプションは、 flow を取り扱う製品の flow のタイムアウトの設定を最適化するために使われます。 実際に flow の応答が遅くなって flow をドロップする場合には、 このタイムアウト時間を小さく設定します。 タイムアウト時間を大きくし過ぎると、 flow を取り扱う製品のリソースの上昇につながります。 キャプチャ時よりも速い速度で再送信する時にこのオプションを使うと、 flow や fps の数をつり上げることになるので注意してください。 デフォルト値は 0(終了しない)で、一般的な値は 30~120秒程度です。

−P, -−pid

tcpreplay を実行した時のプロセス番号(PID)を表示します。

−−quick−tx

Quick_TX モジュールを利用してパケットを直接インターフェイスに書き込みます。

この機能は、Linux 氏捨てうに Quick TX モジュールが存在するかどうかを検出します。 もし検出された場合、tcpreplay はネットワークスタックをバイパスさせ、 Quick TX モジュールを利用してネットワークドライバに書き込まれます。 これにより、一般的なネットワークカードでも、 商用のネットワークトラフィックジェネレータと同様に フルレートの速度が得られます。 netmap とは異なり、Quick TX はネットワークドライバはバイパスしないので、 それほどは混乱しないかもしれません。 (netmap はネットワークドライバもバイパスします) それにも関わらず、netmap と同等の送信速度を実現しています。 Quick TX は Tcpreplay と一緒に配布されているので、 インストールするためにカーネルソースを必要としません。 詳細は INSTALL を参照してください。 この機能は ’qtx:<intf>’ で 特定のインターフェイスを指定できます。 例えば、’qtx:eth0’ と指定すると、 eth0 インターフェイスで Quick TX が有効になります。

−−stats=number

X 秒ごとに統計情報を表示します。 オプションには整数を指定します。 number の値は下記が想定されています:

1 以上

それほど厳密でなく "best effort" で表示されます。 パケット送信間隔が長い場合は、統計情報の表示も間隔が長くなります。

−V, -−version

バージョン情報を表示します。

−h, -−less−help

簡単な使用方法を表示して終了します。

−H, −−help

使用方法を表示して終了します。

−!, −−more-help

ページャーで拡張使用方法を表示します。

[rcfile], −−save-opts[=rcfile]

オプションの情報を rcfile に保存します。 デフォルトでは後述される オプションの事前設定/OPTION PRESETS の 最後の(last) 設定になります。

rcfile, −−load-opts=rcfile, −−no-load-opts

オプションの情報を rcfile から読み込みます。 no-load-opts オプションを指定すると、 以前に読み込んだ RC/INI ファイルを無効化できます。 −−no-load-opts の指定は最初に読み込まれ、指定する順番は無関係です。

オプションの事前設定/OPTION PRESETS

事前設定不可(not presettable) となっているオプション以外は、 コンフィグレーションファイル ("RC" または ".INI" ファイル) から読み出して 事前にセットできます。 homerc ファイルは、 それがディレクトリでなければ "$$/" になり、 この場合はディレクトリ内の ".tcpreplayrc" が検索されます。

ファイル/FILES

コンフィグファイルは OPTION PRESETS を参照してください。

exit コード/EXIT STATUS

下記の 1つが返ります:
0
(EXIT_SUCCESS)

実行成功

1 (EXIT_FAILURE)

実行失敗または文法エラー

66 (EX_NOINPUT)

指定された設定ファイルの読み込み失敗

70 (EX_SOFTWARE)

libopts の内部エラー. autogen-users@lists.sourceforge.net に報告してください。

AUTHORS/AUTHORS

Copyright 2013-2014 Fred Klassen - AppNeta Inc. Copyright 2000-2012 Aaron Turner For support please use the tcpreplay-users@lists.sourceforge.net mailing list. The latest version of this software is always available from: http://tcpreplay.appneta.com/

COPYRIGHT

Copyright (C) 2000-2014 Aaron Turner and Fred Klassen all rights reserved. This program is released under the terms of the GNU General Public License, version 3 or later.

BUGS

バグは tcpreplay-users@lists.sourceforge.net に報告してください。

NOTES

This manual page was AutoGen-erated from the tcpreplay option definitions.