网络流量采集对于网络运行状态查看、用户行为分析、网络管理及协议优化都具有重要作用,能否实时、灵活、准确地采集网络流量,决定了网络分析的精确度与可用性。本设计在充分考虑现有流量采集方法的基础上,提出一种基于NetFPGA实现的流量采集器,融合了现有方案的优势,发挥了NetFPGA开发板的功能,以纯硬件化的方式,高效灵活地实现了千兆网络环境下对流量的自定义快速采集与转发。整体架构图如下所示。
NetFPGA是由斯坦福大学开发的专门用于高速网络处理领域的开发板,具有四个千兆以太网接口,通过PCI接口与主机进行交互。本方案对四个以太网接口的作用进行了有机分配,分别赋予不同功能:0号口、1号口起到网桥的作用,用于连接被采集网络并对数据进行透明转发;2号口用于采集流量的转发;3号口用于对该采集器进行安全配置。采集器监听0号口与1号口之间的网络流量,当发现有符合特征的数据包时,按工作模式的不同,对该数据进行全包转发或者特定信息的转发。
通过对FPGA的采集规则的配置,可以灵活地对具有多项特征组合的数据类型进行采集。采集规则定义了用户所感兴趣的流量特征,既可以是头部信息,也可以是某个偏移量的信息,或者是两者的组合,通过配置命令,可以随时改变抓取的信息,对特定流进行多样性的监控,带来了极大的灵活性。