NetFlow & sFlow

虽然很多交换机都采用RFC标准的RMON,但是在进行基于MIB的监控时,如果流量超过100Mbit/s,就会占用大量CPU或内存等资源,不仅无法实现内容全部监控,而且获取大量数据会耗时过长导致数据无法实时解析。要想实时获取所需的统计信息,就需要使用NetFlow或sFlow技术。通过这类技术可以获取LAN的流量内容信息,并高效管理网络性能。

NetFlow

NetFlow是由思科公司开发的通信流量管理技术,在Linux和Unix系列操作系统、Juniper网络公司和ALAXALA网络公司的网络硬件上也可以实现。该技术对通过LAN设备的分组进行识别,将与“发送源IP地址”“发送目的地IP地址”“发送源端口”“发送目的地端口”“IP协议号”“输入接口”“IP的ToS值”这7个参数相一致的单向传送的分组集合定义为“数据流”,并对该数据进行统计。随后,将统计结果发送到名为NetFlow收集器的监控装置中,就能够以地址或协议为单位进行信息的二次统计(下图)

NetFlow技术有很多版本,最新的版本NetFlow9是以RFC3954的形式发布的,另外,除了NetFlow之外,其他厂商还实现了将通信流量以数据流为单位进行统计的技术(如Juniper公司的Jflow和cflowd、3com公司/华为公司的NetStream、阿尔法特朗讯公司的Cflowd、爱立信公司的Rflow、Citrix公司的AppFlow等),不过这些技术均是在NetFlow9的基础上作为IPFIX(IP Flow Information export)在RFC5105中完成了标准化。

sFlow

sFlow是由InMon开发的一种在分组(packet)抽样基础上管理通信流量的技术。该技术版本4的细节在RFC3716中发布,并在Foundry公司、日立公司、HP公司以及Force10 Networks公司(以下简称Force10公司)的LAN交换机产品上得到了具体的实现。

sFlow技术可以监控交换机上通信的分组,并在一定周期内对其进行抽样,获取分组首部与监控到的分组的统计信息(如分组总数、字节总数等),然后通过交换机内置的sFlow代理向sFlow收集器上报(下图)。sFlow收集器将得到的信息按接收方地址类型、协议类型等进行分类处理,能够统计不同类型的通信信息。在交换机中,sFlow的监控功能与RMON相比更为简单一点,因此能够嵌入到ASIC硬件中,也能够进行高速通信。