問題タブ [netflow]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
go - 大きな nfcapd バイナリ ファイルから IP アドレスを取得する
nfcapd バイナリ ファイルからソース IP と宛先 IP に関する情報を取得する必要があります。問題はファイルのサイズにあります。非常に大きな (1 GB を超える) ファイルを io または os パッケージで開いて読み取るのは望ましくないことはわかっています。
これが私のハッキングとドラフトの開始です:
ファイルを 24 フローのチャンクに分割し、netflow パッケージで読み取った後に同時に処理したい。しかし、分割中にデータを失うことなくそれを行う方法は想像できません。
コードまたは説明で何かを見逃した場合は、修正してください。私は自分のソリューションを Web で検索し、別の可能な実装について考えることに多くの時間を費やしています。
ヘルプやアドバイスをいただければ幸いです。
ファイルには次のプロパティがあります(file -I <file_name>
ターミナルのコマンド):
file_name: application/octet-stream; charset=binary
コマンド後のファイルの出力には、次のnfdump -r <file_name>
構造があります。
すべてのプロパティは独自の列にあります。
更新 1: 残念ながら、nfcapd を使用してディスクに保存した後、バイナリ ファイル構造の違いにより、netflow パッケージでファイルを解析することはできません。この回答は、nfdumpの寄稿者の1 人によって提供されました。
現在唯一の方法は、 pynfdump のような go プログラムで端末から nfdump を実行することです。
netflow - NetFlow、カウント フローごとの最小、中央値、および最大バイト数
.silk
ファイルをキャプチャしました。
SiLK ユーティリティを使用して、フローごとの最小、中央値、および最大バイト数をカウントすることは可能ですか?
はいの場合、正しい方向に向けてください。
linux - csv 出力を使用して NFDUMP 出力をバイト単位で取得する方法
csv 形式で netflow レコードを取得する必要がありますが、ネットワークには多くのトラフィックがあるため、nfdump は MB 単位で情報を返します。トラフィック情報をバイト単位で取得するには、NFDUMP で 1 つのオプションを使用するしかありません。
私の現在のコマンドは次のとおりです。
timestamp - NetFlow タイムスタンプ
NetFlow データ パケット内のフローの絶対時間を決定する最良の方法は何ですか? フローには相対時間情報のみが含まれているようです (フローの開始時と終了時の SysUpTime)。
Netflow v5 および v9 の場合、パケット ヘッダーの Unix Seconds フィールドと SysUptime フィールド (UnixSeconds - SysUptime + FlowStartSysUptime) を使用して計算できます。しかし、UnixSeconds フィールドの精度は 1 秒しかありません。
IPFIX (v10) では、ヘッダーには、パケットが作成されたときのシステム時間のみが含まれますが、システムの稼働時間は含まれません。