Netflow到系统日志转换器

有没有办法将netflow v9转换为syslog?

这将是最好的方式有以下想法工作?

程序:

1)路由器发送UDP的结构如下:

templateId=259: id=259, fields=11 field id=8 (ipv4 source address), offset=0, len=4 field id=225 (natInsideGlobalAddress), offset=4, len=4 field id=12 (ipv4 destination address), offset=8, len=4 field id=226 (natOutsideGlobalAddress), offset=12, len=4 field id=7 (transport source-port), offset=16, len=2 field id=227 (postNAPTSourceTransportPort), offset=18, len=2 field id=11 (transport destination-port), offset=20, len=2 field id=228 (postNAPTDestinationTransportPort), offset=22, len=2 field id=234 (ingressVRFID), offset=24, len=4 field id=4 (ip protocol), offset=28, len=1 field id=230 (natEvent), offset=29, len=1 

2)在每个UDP数据包里面都有一个文件(是的,每个UDP数据包里面有一个文件),还有一些重要的字段,比如时间戳和计数(数据包内的stream数集)

3)在每个stream程集中,有ID,长度,然后是stream程序列(使用上面显示的模板)。

总的想法是有一个二进制(性能是必须的,所以可能是一个C二进制,multithreading),它监听UDP通信,并将输出作为系统日志发送到服务器,将照顾写在磁盘上。 (如果可以从写入的日志中读取,可以通过netflow转换器本身写入磁盘)。

任何想法如何实现这个?

谢谢。

渣子

如果我理解正确,那么您正在寻找一个NetFlowstream,查看与特定模板相匹配的会话,然后发送一个预先封装的syslog事件和详细信息? 我不知道有任何工具可以做到这一点,但我知道有两种可能性:

  1. 写你自己的。 最大的瓶颈就是NetFlow的parsing,但是使用像flowd这样的开源的NetFlow库会有很大的帮助。 这将处理所有的版本信息,并提供一个方便的数据结构来组成你的系统日志信息。 这将成为你的最佳select,因为它不会做任何其他的任务。

  2. 购买具有警报function的现成NetFlow收集器。 每个产品的具体设置细节都有所不同,但总的来说,您将设置一个严格的筛选器并将阈值设置得非常低,这样您将为每个会话获得一个警报(通常是系统日志事件)。 产品其余部分的开销可能会降低速度,而商业产品将会有成本,但可能会更容易部署。 (全面披露:我在一家销售NetFlow收集器的公司工作)