Netflow 记录不能得到八进制字节(jnca)

我使用 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 的代码段。即使对于模板 ID263,这也返回零。

但是,当根据 NetFlow 模板 id263计算时,它提供了正确的数据。(给出发起者八位元组,为了得到响应者八位元组46,应该用50代替,因为特定记录的长度是4个字节)

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

46是 Initiator Octets 记录位于特定 NetFlow 数据包中的位置

JNCA 有什么问题吗? 希望 JNCA 的熟人可以在这方面给我一些帮助。

3928 次浏览

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

Netflow 是思科路由器上引入的一个特性,它能够在 IP 网络流量进入或退出接口时收集 IP 网络流量。通过分析由 Netflow 提供的数据,网络管理员可以确定诸如流量的来源和目的地、服务类别和拥堵原因等信息。Netflow 由三个组件组成: 流缓存、流收集器和数据分析器。在 Netflow,路由器将网络使用的详细信息以 UDP 数据包的形式转发到目的地的指定端口。

收集分析器

更多信息