流量分析是提高网络可见性的关键,对网络管理的五大功能起着极大的促进作用。当前基于SNMP的简单流量分析无法获取细致的流量信息,在满足管理需求方面有一定缺陷,而基于NetFlow的流量分析方法不仅可以适应大规模网络流量,也可以提供足够的流量信息。笔者在调研国内外相关商业流量分析系统以及开源流量工具的基础上,结合实际网络环境和具体需求,使用Spring框架整合开源流量分析工具SiLK,设计并实现了基于NetFlow的流量监控系统,并对基于NetFlow的P2P流量识别作出了应用尝试。
系统主要包括流量采集、流量统计服务以及配置管理三大模块。从体系结构上划分,又可分为客户端、服务端和数据库,三者相互分离,通过特定接口交互。流量采集和存储由SiLK相关工具完成,支持多采集器和压缩比为4:1的流信息存储;流量统计服务包括图形化统计服务、表格化统计服务、IP组监控以及流量历史信息查询。图形化统计服务包括设备状态监控、设备接口监控、P2P流量监控,以流量时序图形式呈现;表格化统计服务包括Top N统计监控、大流量监控,以按时间段查询报表形式呈现;IP组监控提供了基于过滤规则的流量子集的监控;流量历史信息查询提供了支持多种过滤条件的IP索引访问方式和顺序访问方式,相对传统基础数据库的查询有很大优势。大多数情况下,索引访问可以大大提升查询速度。基于NetFlow的P2P流量识别方法是在NetFlow流量数据的基础上,结合启发式规则提出多个流量特征,应用C5.0决策树算法以及链接关联方法实现了基于统计特征的分类。实验使用了UNIBS数据集进行测试,证明了特征选择不局限于本地数据集,并且具有较高的总体分类准确率。