论文部分内容阅读
随着网络架构的日益复杂和网络业务的爆炸式增长,网络计费和网络监控成为研究热点。网关特别是接入网关是网络管理的重要实施点,通常内置流量采集和监控代理来支持网络计费和网络监控。传统的网关在流量采集方面仅提供基于RMON/SNMP的粗粒度的流量统计,不能按业务统计,在流量监控方面仅支持远程登录后手动设置防火墙或流量控制规则,不方便集中监控。本文参考国内外学术界和产业界的解决方案,在基于嵌入式Linux平台的接入安全网关中实现了一个可用性强、可靠性好、性能高、扩展性强的流量采集和监控代理。本文首先分析了流量采集中用到的链路层Socket捕包、Libpcap捕包和Netfilter内核捕包等捕包技术,以及RMON、NetFlow和sFlow等流量采集和导出技术的优缺点,并介绍了Iptables防火墙和TC流量控制等流量监控手段。接着结合软硬件资源和应用场景探讨系统的概要设计,重点介绍了为增强扩展性而采用多进程的系统架构,为提高性能采用Netfilter内核捕包,并利用共享内存和Netlink实现零拷贝的流量采集模块,为提高可靠性利用状态机实现事务安全的流量监控模块。然后通过介绍关键的数据结构、接口函数和流程,给出了系统的实现框架。最后从功能、性能和稳定性等方面进行了测试,测试结果表明系统达到了预期需求。本文设计实现的流量采集和监控代理,提供类NetFlow的细粒度的流量统计来支持业务统计,并提供远程获取网络状态、配置防火墙或流量控制规则、升级软件等功能来支持集中监控。大规模实际应用表明,其在功能、性能、稳定性和扩展性等方面表现优异。