NetFlow还是sFlow?

2008-02-23 05:01:29来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

无论是NetFlow还是sFlow,都可以在无须部署探测器的情况下帮助网络管理员更深入地了解网络传输流。但两种监测技术哪个更好仍然是一个问题。

大多数网络管理员将流量分析列入他们的10大职责清单当中,但他们并没有太多地使用数据包分析器。这是NetFlow和sFlow带来的好处,可以在无须部署探测器的情况下提供他们通常寻找的大多数信息。事实上,当前可利用SNMP管理的交换机和路由器大多数都支持NetFlow或sFlow当中的一种。但同时也出现了一个问题:NetFlow和sFlow两种监测技术哪个更好?毕竟,目前多数网络厂商的设备只支持其中一种技术。

NetFlow流行v5

“支持NetFlow提供更好的网络可见性依然是我们广域数据服务战略的组成部分。”——Riverbed Technology公司产品营销副总裁Alan Saldich

NetFlow(或者名为NetStream、IPFIX或Jflow的变种)最初是由思科公司开发的一种专有技术,它被应用在思科的互联网操作系统(IOS)中,目前部署最多的版本是v5。不过,v7和v9正在变得越来越普及。

最近,Internet工程任务组发布了一项叫做“IP Flow Information eXport(IPFIX)”的标准,这项标准基于NetFlow v9的数据输出格式。支持NetFlow的厂商包括思科、Enterasys Networks、Juniper Networks、Nortel、Riverstone Networks (已被Lucent收购)、Riverbed、Packeteer以及其他许多厂商。

NetFlow是路由器用来跟踪每个开启NetFlow功能接口上的所有进入会话的技术。它根据7个关键标准分析数据包,如果两个包在所有7个判断标准上都匹配的话,就把它们归类为相同的流量或会话。一旦会话结束或被汇总,就被传送给采集器。NetFlow将主机之间可能由成千上万个数据包组成的会话(即传输流)汇集为一个NetFlow v5数据包中的一个条目(最多可包括30个会话)。换句话说,一个NetFlow包可以描述30台主机之间的数万个数据包。如果NetFlow配置恰当并且硬件没有过载的话,这种技术可以以接近100%的准确性来描述谁经过设备进行通信,并且对设备CPU的影响非常小。

不过,大多数数据域在汇集的过程中丢失,只有源与目的IP地址、协议、类型、QoS、自控系统和其他一些域被保存下来。数据包的其余信息在NetFlow v5(该版本目前占据80%以上的市场份额)中被丢弃。虽然NetFlow v9可以保存数据包的前1200个字节,但是目前基本没有采集器可以直观地报告这些数据。


挑战者sFlow

“我们的许多客户正运行在混合的硬件环境上,虽然NetFlow更为普及,但我们几年前决定同时也支持sFlow。”——Plixer International公司首席技术官Marc Bilodeau

同NetFlow一样,sFlow是一种向采集器发送报告的推送技术。所不同的是,NetFlow是一种基于软件的技术,而sFlow则采用内置在硬件中的专用芯片。这种做法消除了路由器或交换机的CPU和内存的负担。最初由InMon Corporation开发的sFlow产品自2002年起就在市场上销售。

如图所示,sFlow系统的基本原理为:分布在网络不同位置的sFlow代理把sFlow数据报源源不断地传送给中央sFlow采集器,采集器对sFlow数据报进行分析并生成丰富的、实时的、全网范围的传输流视图。

Alcatel、Allied Telesis、D-Link、Extreme Networks、Foundry Networks、HP ProCurve、Hitachi、NEC和其他一些厂商推出了采用sFlow芯片的设备。sFlow的应用不如NetFlow那样广,因此可供使用的采集器比较少。该产品的最新版本是v5,但目前v2和v4的版本采用的最多。

sFlow是一种纯数据包采样技术,即每一个被采样的X包的长度被记录下来,而大部分的包则被丢弃,只留下样本被传送给采集器。由于这项技术是基于样本的,如果没有复杂的算法来尝试推测准确的会话字节量,那么几乎不可能获得每台主机流量100%的准确值。

在使用这项技术时,交换机每隔100个数据包(可配置)对每个接口采一次样,然后将它传送给采集器。sFlow的规格也支持1比1的采样率,即对每一个数据包都进行“采样”。对数据包最大采样频率的限制取决于具体的芯片厂商和sFlow实现情况。比如Foundry Networks就提供一款每隔一个数据包采样一次的交换机。

与NetFlow限制在采样数据包的前1200个字节不同,sFlow可以输出采样数据包的任何数量的字节,这个数量取决于具体实现的硬件限制。但由于sFlow采用UDP协议,其数据报可能超过2层的最大传输单元(MTU),需要在IP层处理数据包的分段和重新组装。

NetFlow和sFlow谁更好?

“NetFlow的美丽之处是因为它是标准的,你可以采集来自不同厂商产品的数据,对这些数据进行正确的取证或流量分析。”——思科公司管理技术部高级副总裁Cliff Meltzer

“将sFlow技术集成在我们的无线平台中,企业用户可以更容易地监测网络设备、执行安全措施,并分析有线和无线基础设施上的传输流。”—HP ProCurve公司首席技术官Paul Gongdon

NetFlow更多的是在路由器上得到支持,而sFlow则在交换机上更加流行。两者都是开放标准,但在非常大的流量传输环境中,sFlow采样架构可能要优于NetFlows汇集方式。

在路由器和交换机上实现NetFlow的处理能力并不是问题。问题在于NetFlow产生的数据包数量会非常巨大,采集器可能会变得不堪重负。

服务提供商使用的多数路由器每秒可传送0.5个~50个NetFlow包。虽然世界上有很多每秒传送数百个NetFlow包的路由器,但它们不是主流。即使如此,一些传输流采集器仍可以实现每秒处理1000个以上的数据包。

在路由器厂商中,NetFlow v5似乎比sFlow更受欢迎。而除思科和Enterasys之外,多数交换机厂商采用sFlow(Enterasys因其开发的一种专门芯片而在其交换机上支持NetFlow v9)。sFlow仅仅提供采样数据,那么在测量主机之间的IP传输流时,为什么多数交换机厂商选择支持sFlow,而不支持NetFlow更为准确的汇集方式呢?这是因为sFlow部署在芯片上,所以人们相信sFlow实现起来所需要的工程量要小于NetFlow方式。

如果你拥有纯思科网络,你唯一需要支持的是NetFlow。但是,如果你拥有HP ProCurve交换机和思科路由器,那么你将在交换机上使用sFlow,在路由器上使用NetFlow。(美国《Network World》供本报专稿)

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:网络路由器的实际带机数量

下一篇:网线的制作方法与综合布线全面教程