我写了一个 Netflow v10 (IPFIX) 流量生成器。它欺骗源 IP 地址以假装来自多个站点,并发送有关假冒用户的报告。这个想法与 Solarwinds Flow Generator 非常相似,如果有人遇到过那个工具的话。
它似乎工作得很好,但是当我使用 Wireshark 进行数据包捕获时,Wireshark 告诉我我的序列号不正确。
据我阅读 IPFIX RFC 所见,序列号从 0 开始(在第一个数据包中),并且在后续数据包中按前一个数据包中的流数递增(不计算模板或选项流)。它们是收集器知道它是否错过任何数据包的一种方式。
因此,对于给定站点(出口商 IP),如果我每个数据包发送 10 个数据流,第一个数据包的序列为 0,下一个数据包的序列为 10,然后是 20,依此类推。这正是我正在做的事情,但 Wireshark 不高兴。
Wireshark 提到了它期望的序列号是什么,但它期望的数字没有任何意义。例如,我来自 80.40.20.41 的第一个数据包有一个数据模板和 17 个数据流。我有一个序列号 0,wireshark 说它期望它是 71。它似乎在计算来自其他源 IP(其他出口商)的流量,并期望序列号由于某种原因在不同站点之间同步.
有谁知道我的问题可能是什么?
这是我的数据包捕获,如果有人有时间看看:https : //drive.google.com/file/d/1_Sz-ndnbA8w0FZwBriXykXb-O3hZFoqC/view?usp=sharing
编辑:
看来,如果我让每个出口商的观察域都是唯一的,Wireshark 对我的序列号很满意。为什么不同的出口商需要不同的观察域 ID?这怎么可能同步?如果 2 个不同的路由器充当 netflow 导出器并发送单个 netflow 收集器数据,那么这两个路由器如何知道用于观察域 ID 的内容,以便它们不会相互干扰?观察域是否需要管理员在每个导出器上手动配置以确保它们是唯一的?