Netflow 记录无法获取八位字节 (jnca)

2022-08-31 07:08:21

我正在使用jnca库来收集路由器发送的NetFlow记录。路由器发送的 NetFlow 记录的版本是版本 9。

当从 Wireshark 观察到 NetFlow 数据包时,模板 ID 为 263 的流集包含有关发起方八位字节和响应程序八位字节的数据,这些数据可用于确定与流关联的字节数。wireshark record

但问题是这些值不能由jcna获得。对于八位字节,它始终显示为零。

currOffset = t.getTypeOffset(FieldDefinition.InBYTES_32);
currLen = t.getTypeLen(FieldDefinition.InBYTES_32);
if (currOffset >= 0 && currLen > 0) {
    dOctets = Util.to_number(buf, off + currOffset, currLen) * t.getSamplingRate();
}

这是用于获取 dOctets 的代码段。即使对于模板 ID 263,这也将返回零。

但是,当它相对于NetFlow模板id 263进行计算时,它会给出正确的数据。(给出发起方八位字节,并且要获得响应程序八位字节46,应替换为50,因为特定记录的长度为4字节)

dOctets = Util.to_number(buf, off + 46, 4)

46 是发起方八位字节记录位于该特定 NetFlow 数据包中的位置。(使用Wireshark唱片。

这是jnca的问题吗?希望熟悉jcna的人能在这方面给我一些帮助。


答案 1

从 NetFlow 版本 9 记录中检索网络使用信息

Netflow 是思科路由器上引入的一项功能,能够在 IP 网络流量进入或退出接口时收集 IP 网络流量。通过分析Netflow提供的数据,网络管理员可以确定流量的来源和目的地,服务等级以及拥塞的原因等。Netflow 由三个组件组成:流缓存、流收集器和数据分析器。在 Netflow 中,路由器将网络使用情况的详细信息作为 UDP 数据包转发到目标的指定端口。

Java NetFlow Collect-Analyzer

更多信息


答案 2

推荐