NetFlow还是sFlow
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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》供本报专稿)