traffic_learner — トラフィック生成を支援する Samba ツール
traffic_learner
{-o OUTPUT_FILE ...} [-h] [--dns-mode {inline|count}] [SUMMARY_FILE] [SUMMARY_FILE ...]
このプログラムは samba(7) システムの一部である。
このツールは Samba トラフィックを生成するために利用する。
このツールでは、traffic_summary.pl
によって生成される
トラフィックサマリファイルを入力として、
トラフィックモデルファイルを生成する。
このファイルを traffic_replay
が処理することで、トラフィックが生成される。
モデルファイルには、ネットワーク上に発生するトラフィックの種類 (ホストと Samba DC 間の 'やりとり')がまとめられている。 当該ファイルに記述されたトラフィックはスケール可能な形式であるため、 ネットワーク上で観察される状態に対して、送信されるパケット数を増減したり、 パケットの送信レートを増減したりできる
コマンドラインオプションの要約を表示する。
ネットワークのトラフィック要約を含むファイル。トラフィック要約ファイル
は、実際のネットワークのパケットキャプチャから、
traffic_summary.pl
によって生成されなければならない。
複数のファイルが指定でき、その場合は、トラフィックは、
1つのトラフィックモデルにまとめられる。
SUMMARY_FILE を指定しない場合、このツールはトラフィック要約を、
標準入力から読む。すなわち、traffic_summary.pl からの出力を
パイプでつないで直接このツールに繋げられる。
生成されたトラフィックモデルを書き込むファイルを指定する。
OUTPUT_FILE は、Samba のネットワークトラフィックを生成
(および操作)するために、traffic_replay
に渡すことができる。
モデルによって扱われる DNS トラフィックの指定。
traffic-summary ファイルを使い、traffic-model ファイルを 生成するには、以下のように行なう:
traffic_learner traffic-summary.txt
-o traffic-model.txt
パケットキャプチャから traffic-model を生成するには、 以下のように、traffic summary を標準入力に繋ぐ:
tshark -r capture.pcapng -T pdml |
traffic_summary.pl | traffic_learner -o traffic-model.txt
出力モデルファイルは、最後の2つのパケットが与えられた時に 発生するパケットの確率を推定するマルコフモデルを記述する。
連続したパケットの組の後に来る、各(パケットの)連続が格納され、 それらのカウントの比率が、次のパケットの確率を計算するのに使われる。
モデルは JSON 形式で格納され、さらに、 パケットレートと DNS トラフィックレートについての情報も格納されている。
以下のリストは、単一の ngram エントリの不自然な例である。
"ngrams": {
"ldap:0\tdcerpc:11": {
"lsarpc:77": 1,
"ldap:2": 370,
"ldap:3": 62,
"wait:3": 2,
"-": 1
}, [...]
}
これは、LDAPパケット opcode 0 (バインド)に続いて
dcerpc パケットが opcode 11(これもバインド)が来た後、
観察された継続をカウントする。次に来るパケットで最も一般的な
ものは、"ldap:2
" という unbind を意味するものであり、
これは、リプライで、最もよく選ばれるパケットタイプである。
極端な別の例としては、lsarpc opcode 77 (lookup names) であり、
これは1回だけ現れ、めったに発生しないが、リプライで選択される
可能性はある。
2つの特別なパケットタイプがある。
"wait:3
" は、 通信中の一時的な中断を参照し、
"3
" 疑似オペコードは、待ち時間の長さを指数形式で指示する。
そのため、"wait:4
" は、 "wait:3
", よりも
約 2.7 倍長くなり、同様に "wait:2
" よりも長くなる。
その他の特別なパケットは "-" で、これは 通信の限界を示す。
先の例では、この特定の ngram の後で、1つの観測された
通信が終わることを指定する。この特別なオペコードは、
ngram "-\t-
" と示すことで、通信の開始にも使う。