
(UDP)データグラムのコピーを複数の受信者に送信し、オプションでサンプリングとスプーフィングが可能
この小さなプログラムは、指定されたポートでUDPデータグラムを受信し、それらのデータグラムを指定された受信元セットに再送信します。さらに、各受信元ごとにサンプリング除数Nを個別に指定でき、その場合、受信したパケットのうちN個に1個だけを受信します。
このパッケージは以下で配布されています。 https://github.com/sleinen/samplicator/
INSTALL.md を参照してください。
AUTHORS ファイルを参照してください。
プログラムの使用方法は次の通りです。
$ samplicate [<option>...] [<destination>...]
各 <option> は以下のいずれかになります。
-d <level> デバッグレベルを設定します。
-s <address> 受信パケットを待ち受けるインターフェースアドレスを設定します。
(デフォルトは任意)
-p <port> 受信パケットを待ち受けるUDPポートを設定します。
(デフォルトは2000)
-b <buflen> 受信バッファのサイズ(デフォルトは65536)
-c <configfile> 読み込む設定ファイルを指定します。
-x <delay> 各パケット送信後の遅延時間をマイクロ秒単位で指定します。
-S 送信元アドレスを維持(スプーフィング)します。
-n UDPチェックサムを計算しません(-S と併用時のみ有効)。
-f プログラムをバックグラウンドで実行します。
-m <pidfile> プロセスIDをファイルに書き込みます。
-4 IPv4のみ
-6 IPv6のみ
-h 使用方法のメッセージを表示して終了します。
-u <pdulen> 待受ソケットの最大PDUサイズ(デフォルトは65536)
各 <destination> は <addr>[/<port>[/<interval>[,ttl]]] の形式で指定します。
<addr> 受信元のIPアドレス
<port> 受信元のUDPポート番号(デフォルトは2000)
<freq> この受信元に対して、コピーされるデータグラムの間隔として受信するデータグラム数。
<ttl> 送信データグラムのTTL(IPv4)またはホップ制限(IPv6)。
設定ファイルの形式:
a.b.c.d[/e.f.g.h]: receiver ...
ここで:
a.b.c.d 送信元のIPアドレス
e.f.g.h 送信元に適用するマスク(デフォルトは255.255.255.255)
receiver 上記参照。
コマンドラインで指定された受信元はすべてのパケットを受信し、設定ファイルで指定された受信元は一致する送信元のパケットのみを受信します。