问题标签 [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.
php - Debian - 端口重定向
我有设备,可以发送一些 RAW 数据(NetFlow v9)。我只能设置“数据收集器”的 IP 地址和端口。例如192.168.0.10:8080。
Debian 是否有一些简单的解决方案将其重定向到公共网络服务器端口(:80)上的特定 php 脚本,例如192.168.0.10/SaveFromDevice.php?以及如何将数据发送到 $_GET["data"]?
谢谢
tshark - 从包含流记录的 pcap 确定吞吐量
我有一个数据包捕获(通过 tcpdump 获取),其中包含导出器和收集器之间的流记录。
我想使用 v9 记录中的字节(八位字节)字段来确定给定接口的吞吐量。我已经过滤到我想要的网络:
我进一步过滤到我需要的界面,如下所示:
在那之后我迷路了。是否有更好的工具来聚合流以获得吞吐量?
任何帮助将不胜感激!
python-2.7 - 使用 Python 解码 IPFIX 数据包
我想通过 udp 解析来自 openvswitch 的 ipfix 数据包,python 2.7 中是否有一个库可以帮助我做到这一点?
谢谢
netflow - Netflow V9 字段 ID 范围
我对 netflow v9 中支持的字段 ID 范围感到困惑。我从 79、127、128 的在线资源中获得了各种数据。
我从上面得到了上述信息
- (79) - NetFlow v9 定义了一组 79 个字段类型,而 IPFIX 具有相同的 79 个,以实现向后兼容性,但从那里一直到 238 个。(https://www.ittsystems.com/netflow -vs-ipfix/ )
- (87) - https://www.plixer.com/support/netflow-v9/
- (127) - 这里列出了 1 到 127 个字段https://www.ibm.com/support/knowledgecenter/en/SSCVHB_1.1.0/collector/cnpi_collector_v9_fiels_types.html。
- (128) - 值 0-127:NFv9 兼容 https://www.iana.org/assignments/ipfix/ipfix.xhtml
一位使用 cisco ASA 的客户说 netflow-v9 支持字段 233 (FW_EVENT),并想检查我们的流格式是否支持该字段。
我的问题:
- 作为开发人员,我可以在 netflow-v9 中使用哪些范围的字段(数字)?
- 我可以使用128以上的任何东西吗?思科是如何做到这一点的?
python-3.x - nfcapd(nfdump 工具之一)生成的二进制文件的结构是什么?
我想将 nfcapd(产生 netflow 的守护进程)生成的文件拆分为多个文件,因为最初由 nfcapd 生成的文件可能太大。
我的问题是我不知道生成的文件的结构是什么,我想有一个标题,然后是一个网络流列表,但我不知道哪个字节结束标题以及哪个字节开始和结束netflow,如果有页脚。
我试图通过阅读 github 上的源 C 代码来理解它,但由于我并不是 C 语言中的野兽,所以我很难理解。
起初,我认为 nfdump 可以通过在初始文件中一次读取多个 netflows 来解决我的问题,但是没有内置的方法可以做到这一点,您可以使用 nfdump 读取前 N 个 netflows 但您不能从 1 到 N,然后从 N 到 N+N,你只能从 1 读到 N。
如果有人知道将这些二进制文件拆分成多个文件供 nfdump 使用的方法,我真的很想知道。
dataset - 用 Scapy 合成数据包
今天,我收到了一个 3 亿条目的 netflow 记录 csv 文件,我的目标是通过任何必要的方式将 netflow 数据转换为合成数据包。经过一番研究,我决定 Scapy 将成为这个过程的一个令人难以置信的工具。我一直在摆弄一些命令,并试图创建准确的数据包来描述 netflow 数据,但我很挣扎,非常感谢以前涉足 Scapy 的人的帮助。
这是我的数据集中的一个示例条目:
1526284499.233,1526284795.166,157.239.11.35,41.75.41.198,443,55915,6,1,24,62,6537,1419,1441,32934,65535,
以下是每个逗号分隔值所代表的内容:
开始时间戳(Epoch 格式):1526284499.233
结束时间戳(Epoch 格式):1526284795.166
源 IP:157.239.11.35
目标 IP:41.75.41.198
IP 标头协议号:443 (HTTPS)
源端口号:55915
目标端口号:6 (TCP)
IP 标头中的 TOS 值:1 (FIN)
TCP 标志:24 (ACK & PSH)
数据包数:62
字节数:6537
路由器入口端口:1419
路由器出口端口:1441
源自治系统:32934 (Facebook)
目标自治系统: 65535
我目前对该条目的 Scapy 表示:
数据包.show():
我的困惑:
坦率地说,我不确定这是否正确。我感到困惑的是IP协议头是443,表示HTTPS,但目标端口是6,表示TCP。因此,我不确定是否应该包含 TCP,或者是否包含 proto IP 属性是无偿的。此外,我不确定 Raw() 是否是包含每个数据包大小的正确方法,更不用说我是否以适当的方式定义了大小。
请让我知道我哪里出错了,或者我是否真的奇迹般地为这个特定条目创建了一个完美的合成数据包。太感谢了!
python-3.x - 数据包生成脚本的优化
我有一个包含 250 多万条 netflow 数据的数据集。我的目标是开发一种有效的方法来为这个 netflow 数据生成数据包,我决定使用 Scapy 作为我模拟数据包的方法。对于我的数据集中的每个条目,我发现绝大多数数据包是在五分钟的某个时间范围内发送的,其中一些条目的数据包净总数高达数十万!
所以问题来了:我需要一种方法来一次跟踪数千个不同的条目,以确保每个条目的数据包在正确的增量时间发送出去,直到所有数据包都发送完毕。
例如:
假设我们的数据集中有 3 个条目。第一个是跨越 20 秒的 100 个数据包。接下来是跨越 20 秒的 200 个数据包。最后一个是跨越 60 秒的 500 个数据包。我们数据集中每个数据包之间的增量时间分别为 0.2s、0.1s 和 0.12s(20/100、20/200、60/500)。现在我只有三个条目需要以这些增量时间的速率传送这些数据包。附加到列表的每个条目的前几个数据包的示例如下:[0.0s from entry 1, 0.0s from entry 2, 0.0s from entry 3, 0.1s from entry 2, 0.12s from entry 3,从条目 1 开始 0.2s,从条目 2 开始 0.2s (0.1 x 2),从条目 3 开始 0.24s (0.12 x 2),从条目 2 开始 0.3s (0.1 x 3),从条目 3 开始 0.36s (0.12 x 3),距条目 1 0.4s (0.2 x 2)]
我能想出的最好的系统是什么,它将允许这个过程发生,所有数据包同时输出到同一个列表?
到目前为止,我已经尝试简单地逐个条目(添加具有正确增量时间的数据包)并将其添加到一个巨大的数据包列表中,然后进入下一个条目,依此类推。这种方法有效,但是不仅数据包的顺序不及时并且需要排序算法,而且它非常慢并且需要 15 分钟以上才能解决这个 2.5 亿条目数据集的前 100 个条目!我认为我绝对可以通过管道处理这个过程,以便一次将多个条目附加到列表中,但我只是不确定如何去做。
当前代码在我的 github 上,https://github.com/NolanRudolph/UONetflow/blob/master/PyScripts/netflowPackager.py,但是我不相信需要阅读我的代码来解决这个问题。我相信某人对 Python 的广泛了解肯定可以在几秒钟内提供优化的解决方案。我听说过使用具有哈希映射的集合,但我不确定如何将其集成到以有效方式导出大量条目的数据包中。
我可以看到这个问题很快就会变得非常混乱,所以请不要犹豫,提出澄清问题。任何帮助将不胜感激。太感谢了!
linux - 如何从 GO 读取转储流捕获?
捕获流将 netflow v5 转储添加到服务器,当从 GO 读取它时,要么根本无法读取,因为前两个字节不是 netflow 的版本,要么如果我将数据包传输到 11 个数组,它会给出数据包完全或者如果它尝试应该是示例输出的示例输出也会给出错误,示例输出:
0.0.0.10
157.121.64.85
138.166.72.38
107.207.29.71
108.177.99.171
243.117.126.147
但是 netflow 将地址写入 NAT 后面的转储中。使用 flow-tools 时,一切都正确显示,使用各种库解组到结构中,但输出在任何地方都是相同的,如上所示。
我正在使用两个包: https://github.com/tehmaze/netflow https://github.com/VerizonDigital/vflow
python - 在 Python 中读取 Netflow v9 数据包
我正在尝试编写一个收集器,它在 UDP 端口上侦听传入的 Netflow v9 数据包并解包记录并计算总字节数。
我有一个数据样本集(我用 记录nfcapd
):当我分析这些数据时,nfdump
它达到了 8.2GB。
当我使用 传输这些数据(本地)时nfreplay
,与 相比,我的 Python 代码只找到大约一半的数据nfdump
,即使我设置nfreplay
为非常缓慢地重播 netflow。
然后有时我得到的数据很糟糕,我的 Python 脚本似乎报告了几 PB。
有什么提示吗?
我的代码:https ://pastebin.com/hubPJ6tA (只需在nfreplay
上面运行它。我使用的是pypy
3.6)
我的样本数据:http ://edward.filegooi.co.za/get2/f207e55ec37428e82d8ce91952fda85b/netflowv9.201911081650
python - 如何计算最小值。和流的最大数据包大小
我正在尝试获取流的最小、最大数据包大小,以及来自我捕获的网络流量的数据包之间的到达时间。我已经尝试过,但我没有取得任何进展。
下面的代码: 1. 统计pcap文件中TCP流的数量。
2. 统计 pcap 文件中 UDP 流的数量。
3. 统计唯一 IP 地址的数量。
4. 计算每个流的数据包总数。
5. 计算每个流的平均数据包大小。
6. 计算每个流程的持续时间。请我非常感谢你的帮助!!
这是下面的代码