0

UDP ポートで着信 Netflow v9 パケットをリッスンし、レコードをアンパックして合計バイト数を計算するコレクターを作成しようとしています。

データのサンプル コレクションがあります (これは で記録しましたnfcapd)。このデータを で分析するとnfdump、8.2GB になります。

nfdump -r netflowv9.201911081650

を使用してこのデータを (ローカルに) 送信するnfreplayと、Python コードは と比較して約半分のデータしか検出しません。これは、ネットフローを非常にゆっくりと再生するようnfdumpに設定した場合でも同じです。nfreplay

nfreplay -r netflowv9.201911081650 -v 9 -d 10000

また、時々、悪いデータしか得られず、Python スクリプトが数ペタバイトを報告しているようです。

ヒントはありますか?

私のコード: https://pastebin.com/hubPJ6tA (上記のように実行する前に実行してくださいnfreplay。私はpypy3.6 を使用しています)

私のサンプルデータ: http://edward.filegooi.co.za/get2/f207e55ec37428e82d8ce91952fda85b/netflowv9.201911081650

4

1 に答える 1

0

python-ipfixは、その名前にもかかわらず、Netflow V9 パケットと IPFIX (V10) パケットを処理できます。

API ドキュメントipfix.readerでは、クラスを使用したファイルまたはソケットからのストリームの読み取りについて説明しています。クラスについては言及されていませんipfix.v9pduが、これはまったく同じように機能します。含まれているipfixstat スクリプトには、V9 と IPFIX の両方の良い例があります。

import ipfix.message
import ipfix.v9pdu


ipfix.reader.from_stream(open (args.file, mode="rb"))
于 2020-11-10T17:26:56.903 に答える