これは、Ubuntu Online、Fedora Online、Windowsオンラインエミュレーター、MACOSオンラインエミュレーターなどの複数の無料オンラインワークステーションのXNUMXつを使用してOnWorks無料ホスティングプロバイダーで実行できるコマンドtcpreplay-editです。
プログラム:
NAME
tcpreplay-pcapファイルに保存されているネットワークトラフィックを再生します
SYNOPSIS
tcpreplay [-フラグ [値]] ... [--オプション名 [[= | ]値]]..。
tcpreplayは、tcpdumpまたはその他で保存されたファイルからネットワークトラフィックを再生するためのツールです。
書くツール pcap(3)ファイル。
DESCRIPTION
このマニュアルページには、 tcpreplay 指図。 の基本的な操作
tcpreplayは、入力ファイルからのすべてのパケットを、それらが送信する速度で再送信することです。
ハードウェアが可能な限りの速度で記録された、または指定されたデータレート。
オプションで、トラフィックをXNUMXつのインターフェイスに分割し、ファイルに書き込んで、フィルタリングすることができます
さまざまな方法で編集され、ファイアウォール、NIDS、その他のネットワークをテストする手段を提供します
デバイス。
詳細については、次のTcpreplayマニュアルを参照してください。
http://tcpreplay.synfin.net/trac/wiki/manual
OPTIONS
-r string, -ポートマップ=string
TCP / UDPポートを書き換えます。 このオプションは最大-1回表示される場合があります。
コロン区切りで構成されるコンマ区切りのポートマッピングのリストを指定します
ポート番号のペア。 コロンで区切られた各ポートペアは、一致するポートで構成されます
書き換えるポート番号が続きます。
例:
--portmap = 80:8000 --portmap = 8080:80#80-> 8000および8080-> 80
--portmap = 8000,8080,88888:80#3つの異なるポートが80になります
--portmap = 8000-8999:80#ポート8000〜8999は80になります
-s 数, - シード=数
指定されたシードを使用してsrc / dst IPv4 / v6アドレスをランダム化します。 このオプションは最大1つまで表示される場合があります
回数。 このオプションは、引数として整数を取ります。
送信元と宛先のIPv4 / v6アドレスを疑似ランダム化しますが、
クライアント/サーバーの関係を維持します。 ランダム化は
シードに基づいて決定論的であるため、同じシード値を再利用して、
トラフィック。
-N string, --pnat=string
疑似NATを使用してIPv4 / v6アドレスを書き換えます。 このオプションは最大2回表示される場合があります。
このオプションは、次のオプションのいずれかと組み合わせて表示しないでください。
srcipmap。
コロンで区切られた一連のCIDRネットブロックペアをコンマで区切ります。 各
ネットブロックペアは、IPアドレスに対して順番に評価されます。 IPアドレスが
パケットは最初のネットブロックと一致し、XNUMX番目のネットブロックを使用して次のように書き換えられます。
上位ビットに対するマスク。
IPv4の例:
--pnat=192.168.0.0/16:10.77.0.0/16,172.16.0.0/12:10.1.0.0/24
IPv6の例:
--pnat=[2001:db8::/32]:[dead::/16],[2001:db8::/32]:[::ffff:0:0/96]
-S string, --srcipmap=string
疑似NATを使用して送信元IPv4 / v6アドレスを書き換えます。 このオプションは最大1つまで表示される場合があります
回数。 このオプションは、次のいずれかと組み合わせて表示することはできません
オプション:pnat。
--pnatオプションと同じように機能しますが、
IPv4 / v6ヘッダー。
-D string, --dtipmap=string
疑似NATを使用して宛先IPv4 / v6アドレスを書き換えます。 このオプションが表示される場合があります
1回まで。 このオプションは、次のいずれかと組み合わせて表示することはできません
オプション:pnat。
--pnatオプションと同じように機能しますが、の宛先IPアドレスにのみ影響します。
IPv4 / v6ヘッダー。
-e string, -エンドポイント=string
IPアドレスを1つのエンドポイントの間にあるように書き換えます。 このオプションは最大XNUMXつまで表示される場合があります
回数。 このオプションは、次のオプションと組み合わせて表示する必要があります。
cachefile。
すべてを書き換えるために使用されるコロンで区切られたIPv4 / v6アドレスのペアを取ります
トラフィックはXNUMXつのIPの間にあるように見えます。
IPv4の例:
--endpoints = 172.16.0.1:172.16.0.2
IPv6の例:
--endpoints=[2001:db8::dead:beef]:[::ffff:0:0:ac:f:0:2]
-b, -スキップブロードキャスト
ブロードキャスト/マルチキャストIPv4 / v6アドレスの書き換えをスキップします。
デフォルトでは、-seed、-pnat、および--endpointsはブロードキャストとマルチキャストを書き換えます
IPv4 / v6およびMACアドレス。 このフラグを設定すると、ブロードキャスト/マルチキャストIPv4 / v6が維持されます
およびMACアドレスが書き換えられないようにします。
-C, --fixcsum
IPv4 / TCP / UDPヘッダーチェックサムの再計算を強制します。
各IPv4 / v6パケットに、チェックサムを再計算して修正させます。
で変更されたパケットに対して自動的に有効になります - シード, --pnat, -エンドポイント or
--fixlen.
-m 数, --mtu=数
デフォルトのMTU長(1500バイト)をオーバーライドします。 このオプションは最大1回表示される場合があります。
このオプションは、引数として整数を取ります。 の値 数 is
存在することに制約されます:
1からMAXPACKETの範囲
最大パディング長を決定するために、デフォルトの1500バイトのMTUサイズをオーバーライドします
(--fixlen = pad)または切り捨てる場合(--mtu-trunc)。
--mtu-trunc
指定されたMTUよりも大きいパケットを切り捨てます。 このオプションは最大1回表示される場合があります。
--fixlenと同様に、このオプションはレイヤー3および
上記はMTUより大きくないこと。
-E, --efcs
フレームの終わりからイーサネットチェックサム(FCS)を削除します。
このオプションはかなり危険であることに注意してください! FCSかどうかを実際に確認することはありません
実際にはフレーム内に存在するため、最後のXNUMXバイトを盲目的に削除します。 したがって、
これは、OSがFCSを提供することがわかっている場合にのみ使用してください。
生のパケットを読み取る。
--ttl=string
IPv4 / v6 TTL /ホップ制限を変更します。
すべてのIPv4 / v6パケットのTTL /ホップ制限を変更できます。 指定します
値をハードコーディングするための数値または値だけ増減するための+/-値
提供されます(1〜255に制限されます)。
例:
--ttl = 10
--ttl = + 7
--ttl = -64
--tos=数
IPv4 TOS / DiffServ / ECNバイトを設定します。 このオプションは最大1回表示される場合があります。 この
オプションは、引数として整数を取ります。 の値 数 制約されています
あることへ:
0から255の範囲
IPv4のTOS(DiffServ / ECNとも呼ばれます)値を上書きできます。
--tclass=数
IPv6トラフィッククラスバイトを設定します。 このオプションは最大1回表示される場合があります。 この
オプションは、引数として整数を取ります。 の値 数 制約されています
あることへ:
0から255の範囲
IPv6トラフィッククラスフィールドを上書きできます。
--フローラベル=数
IPv6フローラベルを設定します。 このオプションは最大1回表示される場合があります。 このオプションはかかります
引数としての整数。 の値 数 次のように制約されます:
0から1048575の範囲
20ビットIPv6フローラベルフィールドを上書きできます。 IPv4には影響しません
パケット。
-F string, --fixlen=string
ヘッダーの長さに一致するようにパケットデータをパディングまたはトランケートします。 このオプションは最大1つまで表示される場合があります
回。
snaplenがパケットよりも小さい場合、キャプチャ中にパケットが切り捨てられることがあります。
このオプションを使用すると、パケットを変更して、パケットをサイズに戻すことができます。
IPv4 / v6ヘッダーに保存するか、IPヘッダーの全長を書き換えて
保存されたパケット長。
パッド 切り捨てられたパケットは、パケット長がIPv4と一致するようにパディングされます。
全長
切り捨てる 切り捨てられたパケットのIPv4全長フィールドは、一致するように書き換えられます
実際のパケット長
インクルード パケットを削除します
--skipl2ブロードキャスト
ブロードキャスト/マルチキャストレイヤ2アドレスの書き換えをスキップします。
デフォルトでは、レイヤ2アドレスを編集すると、ブロードキャストおよびマルチキャストMACが書き換えられます
アドレス。 このフラグを設定すると、ブロードキャスト/マルチキャストMACアドレスが
書き直されています。
--dlt=string
出力DLTカプセル化をオーバーライドします。 このオプションは最大1回表示される場合があります。
デフォルトでは、DLT(データリンクタイプ)変換は行われません。 DLTを変更するには
出力pcapのタイプで、次のいずれかの値を選択します。
エネット イーサネット別名DLT_EN10MB
hdlc Cisco HDLC、別名DLT_C_HDLC
user ユーザー指定のレイヤー2ヘッダーとDLTタイプ
--enet-dmac=string
宛先イーサネットMACアドレスを上書きします。 このオプションは最大1回表示される場合があります。
カンマで区切られたイーサネットMACアドレスのペアを取得します。
アウトバウンドパケットの宛先MACアドレス。 最初のMACアドレスが使用されます
サーバーからクライアントへのトラフィックとオプションのXNUMX番目のMACアドレスが使用されます
クライアントからサーバーへのトラフィック。
例:
--enet-dmac=00:12:13:14:15:16,00:22:33:44:55:66
--enet-smac=string
送信元イーサネットMACアドレスを上書きします。 このオプションは最大1回表示される場合があります。
カンマで区切られたイーサネットMACアドレスのペアを取得します。
アウトバウンドパケットの送信元MACアドレス。 最初のMACアドレスは
サーバーからクライアントへのトラフィックとオプションのXNUMX番目のMACアドレスが
クライアントからサーバーへのトラフィック。
例:
--enet-smac=00:12:13:14:15:16,00:22:33:44:55:66
--enet-vlan=string
イーサネット802.1qVLANタグモードを指定します。 このオプションは最大1回表示される場合があります。
イーサネットフレームを書き換えて、802.1qヘッダーを標準802.3に追加できます
イーサネットヘッダーまたは802.1qVLANタグ情報を削除します。
加えます 既存の802.3イーサネットヘッダーを802.1qVLANヘッダーとして書き換えます
インクルード 既存の802.1qVLANヘッダーを802.3イーサネットヘッダーとして書き換えます
--enet-vlan-tag=数
新しいイーサネット802.1qVLANタグ値を指定します。 このオプションは最大1つまで表示される場合があります
回数。 このオプションは、次のオプションと組み合わせて表示する必要があります。enet-
VLAN。 このオプションは、引数として整数を取ります。 の値 数 is
存在することに制約されます:
0から4095の範囲
--enet-vlan-cfi=数
イーサネット802.1qVLANCFI値を指定します。 このオプションは最大1回表示される場合があります。
このオプションは、次のオプションと組み合わせて表示する必要があります:enet-vlan。 この
オプションは、引数として整数を取ります。 の値 数 制約されています
あることへ:
0から1の範囲
--enet-vlan-pri=数
イーサネット802.1qVLAN優先度を指定します。 このオプションは最大1回表示される場合があります。
このオプションは、次のオプションと組み合わせて表示する必要があります:enet-vlan。 この
オプションは、引数として整数を取ります。 の値 数 制約されています
あることへ:
0から7の範囲
--hdlc-control=数
HDLC制御値を指定します。 このオプションは最大1回表示される場合があります。 このオプション
引数として整数を取ります。
CiscoHDLCヘッダーには1バイトの「制御」フィールドがあります。 どうやらこれは常にすべきです
0ですが、任意の1バイト値を使用できる場合。
--hdlc-アドレス=数
HDLCアドレスを指定します。 このオプションは最大1回表示される場合があります。 このオプションは
引数としての整数。
Cisco HDLCヘッダーには、1つの有効な値を持つXNUMXバイトの「アドレス」フィールドがあります。
0x0F ユニキャスト
0xBF 放送
ただし、任意のXNUMXバイト値を指定できます。
--user-dlt=数
出力ファイルのDLTタイプを設定します。 このオプションは最大1回表示される場合があります。 このオプションはかかります
引数としての整数。
出力pcapファイルのDLT値を設定します。
--user-dlink=string
データリンク層をユーザー指定のデータで書き換えます。 このオプションは最大2つまで表示される場合があります
回。
書き換えまたは
パケットのレイヤ2ヘッダーを作成します。 この引数の最初のインスタンスは
サーバートラフィックとクライアントトラフィックの両方を書き換えますが、この引数がXNUMX番目に指定されている場合
時間、それはクライアントトラフィックに使用されます。
例:
--user-dlink=01,02,03,04,05,06,00,1A,2B,3C,4D,5E,6F,08,00
-d 数, --dbug=数
デバッグ出力を有効にします。 このオプションは最大1回表示される場合があります。 このオプションはかかります
引数としての整数。 の値 数 次のように制約されます:
0から5の範囲
デフォルト 数 このオプションの場合:
0
--enable-debugを使用して構成されている場合は、次の詳細レベルを指定できます。
デバッグ出力。 数値が大きいほど、冗長性が高くなります。
-q, - 静かな
静音モード。
実行終了時の統計以外は何も出力しません
-T string, - タイマー=string
パケットタイミングモードを選択します:select、ioport、rdtsc、gtod、nano、abstime。 このオプション
1回まで表示される場合があります。 デフォルト string このオプションの場合:
した
使用するパケットタイミング方式を選択できます。
ドワーフ -nanosleep()APIを使用する
select -select()APIを使用します
入出力ポート -i386IOポート0x80に書き込みます
rdtsc -x86 / x86_64 / PPCRDTSCを使用します
した [ディフォルト] -gettimeofday()ループを使用します
アブタイム -OSXのAbsoluteTimeAPIを使用します
--スリープアクセル=数
指定された用途で睡眠時間を短縮しますc。 このオプションは整数を取ります
その引数としての数。 デフォルト 数 このオプションの場合:
0
通常、XNUMXつのパケット間でスリープする時間を短縮します。
指定された使用回数c。 これは、ランニングを補うための「ファズファクター」を提供します
CPU時間を使用する非RTOSおよびその他のプロセス。 デフォルトは無効です。
--rdtsc-クリック=数
RDTSCクリック/使用を指定します。 このオプションは最大1回表示される場合があります。 このオプション
引数として整数を取ります。 デフォルト 数 このオプションの場合:
0
計算されたRDTSCクリック/使用回数を上書きします。これは多くの場合、
MhzのCPU。 指定した場合にのみ役立ちます --timer = rdtsc
-v, -詳細
デコードされたパケットをtcpdump経由でSTDOUTに出力します。 このオプションは最大1回表示される場合があります。
-A string, -デコード=string
tcpdumpデコーダーに渡される引数。 このオプションは最大1回表示される場合があります。 この
オプションは、次のオプションと組み合わせて表示する必要があります:冗長。
詳細モードを有効にする場合(-v)XNUMXつ以上の追加を指定することもできます
渡す引数 tcpdump パケットのデコード方法を変更します。 デフォルトでは、-n
および-lが使用されます。 次のような引数を引用してください:-A "-axxx"
tcpreplayによって解釈されません。 をご覧ください tcpdump(1)のマニュアルページ
オプションの完全なリスト。
-K, --ファイルキャッシュを有効にする
内部メモリへのパケットのキャッシュを有効にします。 このオプションはに表示される必要があります
次のオプションとの組み合わせ:ループ。
pcapファイルを最初にRAMにキャッシュするときにキャッシュして、後続のループができるようにします
パフォーマンスを向上させるために、ディスクI / Oの遅延が発生しないようにしてください。 あなたを確認してください
pcapファイル全体をメモリに保存するのに十分な空きRAMがあるか、システムが
スワップとパフォーマンスが低下します。
--preload-pcap
送信する前にパケットをRAMにプリロードします。
このオプションは、順番に送信を開始する前に、指定されたpcapをRAMにロードします
スタートアップパフォーマンスヒットを導入しながら、リプレイパフォーマンスを向上させるため。
プリロードは、有無にかかわらず使用できます - ループ そして意味する --ファイルキャッシュを有効にする.
-c string, --キャッシュファイル=string
tcpprepキャッシュファイルを介してトラフィックを分割します。 このオプションは最大1回表示される場合があります。
-i string, --intf1=string
サーバー/プライマリトラフィック出力インターフェイス。 このオプションは最大1回表示される場合があります。
-I string, --intf2=string
クライアント/セカンダリトラフィック出力インターフェイス。 このオプションは最大1回表示される場合があります。
このオプションは、次のオプションと組み合わせて表示する必要があります:cachefile。
--listnics
使用可能なネットワークインターフェイスを一覧表示して終了します。
-l 数, - ループ=数
キャプチャファイルをX回ループします。 このオプションは最大1回表示される場合があります。 この
オプションは、引数として整数を取ります。 の値 数 制約されています
あることへ:
0以上
デフォルト 数 このオプションの場合:
1
--pktlen
snaplenをオーバーライドし、実際のパケットlenを使用します。 このオプションは最大1つまで表示される場合があります
回。
デフォルトでは、tcpreplayは保存されている「snaplen」のサイズに基づいてパケットを送信します
通常は正しいことであるpcapファイルで。 ただし、時折、
ツールは、指示されたよりも多くのバイトを格納します。 このオプションを指定すると、tcpreplay
snaplenフィールドを無視し、代わりに元のフィールドに基づいてパケットを送信しようとします
パケット長。 このオプションを指定すると、悪いことが起こる可能性があります。
-L 数, -制限=数
送信するパケットの数を制限します。 このオプションは最大1回表示される場合があります。 この
オプションは、引数として整数を取ります。 の値 数 制約されています
あることへ:
1以上
デフォルト 数 このオプションの場合:
-1
デフォルトでは、tcpreplayはすべてのパケットを送信します。 または、
送信するパケットの最大数。
-x string, -乗数=string
再生速度を特定の倍数に変更します。 このオプションは最大1回表示される場合があります。
このオプションは、次のオプションのいずれかと組み合わせて表示することはできません:pps、
mbps、oneatatime、topspeed。
浮動小数点値を指定して、パケットの再生速度を変更します。 例:
2.0は、キャプチャされた速度のXNUMX倍の速度でトラフィックを再生します
0.7は、キャプチャされた速度の70%でトラフィックを再生します
-p 数, --pps=数
指定されたパケット/秒でパケットを再生します。 このオプションは最大1回表示される場合があります。 この
オプションは、次のオプションのいずれかと組み合わせて表示することはできません。
乗数、mbps、oneatatime、topspeed。 このオプションは整数を取ります
引数。
-M string, --mbps=string
指定されたMbpsでパケットを再生します。 このオプションは最大1回表示される場合があります。 このオプション
次のオプションのいずれかと組み合わせて表示することはできません:乗数、pps、
oneatatime、topspeed。
tcpreplayがパケットを送信する必要があるMbpsレートの浮動小数点値を指定します
AT。
-t, --トップスピード
パケットをできるだけ速く再生します。 このオプションを組み合わせて表示することはできません
次のオプションのいずれかを使用します:mbps、multiplier、pps、oneatatime。
-o, - 一つずつ
ユーザー入力ごとに一度にXNUMXつのパケットを再生します。 このオプションはに表示されてはなりません
次のオプションのいずれかとの組み合わせ:mbps、pps、multiplier、topspeed。
一度にXNUMXつ以上のパケットをステップスルーできます。
--pps マルチ=数
時間間隔ごとに送信するパケットの数。 このオプションはに表示される必要があります
次のオプションとの組み合わせ:pps。 このオプションは整数を取ります
その引数として。 の値 数 次のように制約されます:
1以上
デフォルト 数 このオプションの場合:
1
非常に高いレートでパケットを送信しようとすると、各パケット間の時間は
非常に短いため、必要な時間正確に眠ることができません。
このオプションを使用すると、一度に複数のパケットを送信できるため、より長く送信できます。
より正確に実装できるスリープ時間。
-P, --pid
起動時にtcpreplayのPIDを出力します。
-統計=数
X秒ごとに統計を出力します。 このオプションは整数を取ります
口論。 の値 数 次のように制約されます:
1以上
これは非常に「最善の努力」であり、パケットの送信間の長い遅延であることに注意してください
統計の印刷の間に同じくらい長い遅延が発生する可能性があります。
-V, - バージョン
バージョン情報を印刷します。
-h, --less-ヘルプ
より少ない使用情報を表示して終了します。
-H, - 助けて
使用情報を表示して終了します。
-!, -詳細-ヘルプ
ポケットベルを介して渡される拡張使用情報。
- [rcファイル], --save-opts[=rcファイル]
オプションの状態をに保存します rcファイル。 デフォルトは last リストされている構成ファイル
会場は オプション プリセット 以下のセクション。
- rcファイル, --load-opts=rcファイル, --no-load-opts
からオプションをロード rcファイルを選択します。 無負荷-opts フォームはの読み込みを無効にします
以前のRC / INIファイル。 --no-load-opts 順不同で早期に処理されます。
オプション プリセット
としてマークされていないオプション プリセット可能 から値をロードすることでプリセットできます
構成(「RC」または「.INI」)ファイル。 ザ ホームク ファイルは「$$ /"、それが
ディレクトリ。 その場合、ファイル「.tcpreplayrc"はそのディレクトリ内で検索されます。
信号
tcpreplayは、次のシグナルを理解します。
シグSR1 tcpreplayを一時停止します
シグコント tcpreplayを再起動します
tcpreplayを使用する-onworks.netサービスを使用してオンラインで編集する