Netflow 记录无法获取八位字节 (jnca)
我正在使用jnca库来收集路由器发送的NetFlow记录。路由器发送的 NetFlow 记录的版本是版本 9。
当从 Wireshark 观察到 NetFlow 数据包时,模板 ID 为 263 的流集包含有关发起方八位字节和响应程序八位字节的数据,这些数据可用于确定与流关联的字节数。
但问题是这些值不能由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的人能在这方面给我一些帮助。