0

我正在尝试编写一个收集器,它在 UDP 端口上侦听传入的 Netflow v9 数据包并解包记录并计算总字节数。

我有一个数据样本集(我用 记录nfcapd):当我分析这些数据时,nfdump它达到了 8.2GB。

nfdump -r netflowv9.201911081650

当我使用 传输这些数据(本地)时nfreplay,与 相比,我的 Python 代码只找到大约一半的数据nfdump,即使我设置nfreplay为非常缓慢地重播 netflow。

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

然后有时我得到的数据很糟糕,我的 Python 脚本似乎报告了几 PB。

有什么提示吗?

我的代码: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 回答