高效的网络监控和流量管理是确保网络性能最佳的重要方法,目前,sFlow、NetFlow、SNMP可提供不同的方式来监控管理网络流量,那么有人就会问了,sFlow、NetFlow、SNMP之间有什么区别?采用哪种方式最好?本文将通过对比sFlow与NetFlow、sFlow与SNMP以及NetFlow与SNMP之间的区别,来解答上述问题。
sFlow与NetFlow有什么不同?
sFlow是一种用于监控数据网络上交换机或路由器流量转发状况的技术,采用内置在硬件中的专用芯片,旨在消除路由器或交换机的CPU和内存负担。一个sFlow系统主要由若干内嵌于交换机或路由器等转发设备(即sFlow Agent,sFlow代理)和一个核心sFlow Collector(即sFlow采集器)组成。如下图,分布在网络不通位置的sFlow代理把sFlow数据报源源不断地传送给中央sFlow采集器,然后采集器会对sFlow数据报进行分析并生成丰富、实时、全网范围的传输流视图或表报,帮助网络管理员更加有效地管理整个站点的网络流量。由于sFlow是一种纯数据包采样技术(基于样本),如果没有复杂的算法来尝试推测准确的会话字节量,那么几乎不可能获得每台主机流量100%的准确值。
图1:sFlow是什么?
而NetFlow是一种基于软件的技术,是思科网络设备互联网操作系统(IOS)中专有的技术,主要用来将网络流量记录到设备的高速缓存中,从而提供精准的流量测试。一个NetFlow系统主要包含了三个部分:探测器(即NetFlow Monitor)、采集器(即NetFlow collector)和报告系统(即Flow Records)。如下图,NetFlow利用标准的交换模式处理数据流的第一个IP包数据,然后生成NetFlow缓存,随后同样的数据基于缓存信息在同一个数据流中进行传输,不再匹配相关的访问控制等策略,NetFlow缓存同时包含了随后数据流的统计信息。由于NetFlow是用来跟踪每个开启NetFlow功能接口上的所有进入会话的技术,因此它可以接近100%的准确性来描述谁经过设备进行了通信。
图2:NetFlow是什么?
虽然sFlow和NetFlow都是通过对交换机的端口或路由器的接口之间的流量进行采样来提供有关网络活动的数据的技术,但两者之间有着明显的区别,如,NetFlow技术只针对IP流量;而sFlow技术可采样所有内容并访问来自OSI第二层到第七层的流量。两者之间的对比见下方表格:
特点 | NetFlow | sFlow |
流量监控方式 | 收集并缓存经过设备的IP流量供管理员进行进一步检查分析。 | 随机采样数据包,以计算出更广泛的网络流量趋势。 |
优势 | 1. NetFlow可以对特定网络位置的每个数据包进行采样,这使网络管理员可以深度监视和分析收集的数据。2. NetFlow可以捕获每个数据流,并完整地包含体积信息,并在信息收集到收集器之前对其进行汇总,使得数据监控的精确度更高。 | sFlow的监视功能范围更广,其采样分析方式有助于故障排除和识别异常/问题流量模式。用户无需通过尝试记录所有内容,可减少对交换机造成的CPU压力,但仍可以根据采样的数据迅速诊断异常行为。 |
不足 | 1. NetFlow不能提供实时流量监控,网络流量收集与查看之间存在时延,可能导致网络中的问题监控不及时。2. NetFlow在传统的传统网络上具有出色的可见性,但在具有云服务和软件定义的网络的更复杂的网络上,数据可见性一般。3. NetFlow需要对监控的网络流量数据先进行缓存再做分析处理,大量的数据缓存容易导致交换机/路由器的性能问题。 | 1. sFlowd的采样分析不能像Netflow那样提供详细的数据包分析,而且在数据采集数量有限时,随机采样的方式仅适用于一般数据分析,不利于深层分析。 2. 如果sFlow使用高采样率,则精度不是问题,但若采样率很低,则用户将获得不可靠且不准确的采样数据。 3. 如果要清晰的监控网络流量状况,网络中的每个交换机和路由器都必须兼容sFlow。如果支持sFlow的组件数量有限,采集数据的不准确性将会进一步增加。 4. sFlow的随机采样只能针对网络中的部分数据进行分析,容易忽略其他大量未被分析的网络流量中的恶意数据包,致使网络受到外部攻击。 |
sFlow与SNMP有什么区别?
SNMP(即简单网络管理协议)是一种标准的Internet协议,用于收集和组织有关IP网络上被管理设备的信息,同时支持修改该信息以更改设备行为,此外,SNMP可监控路由器和交换机端口的带宽利用,以及CPU负荷和内存利用等设备读数。与用于特定流量收集、分析和监控的sFlow相比,SNMP通常用于收集基本流量详细信息,例如字节/数据包。但SNMP可通过“利用网络管理网络”的方式,实现对网络设备的批量管理,从而提高设备管理效率。因此在多数情况下,SNMP使用的更为广泛。欲知更多有关SNMP的信息可访问《【疑问解答】什么是SNMP?SNMP是如何工作的?》。
NetFlow与SNMP有什么区别?
相对于SNMP而言,NetFlow是一种更紧凑的协议,它可以更好地扩展性能采集和网络流量管理。NetFlow与SNMP两者之间的区别有:
- SNMP可对网络实行实时(每秒)监控,而NetFlow虽然可为每个流提供开始时间和结束时间,但它不如SNMP实时。
- NetFlow会告诉您谁在消耗带宽以及消耗带宽的原因,相比SNMP更加细致,因此NetFlow会消耗更多的磁盘空间来存储历史信息。
- NetFlow会告诉您谁在消耗带宽以及消耗带宽的原因,相比SNMP更加细致,因此NetFlow会消耗更多的磁盘空间来存储历史信息。
- SNMP能用于收集CPU和内存使用信息,但NetFlow不能。
sFlow VS NetFlow VS SNMP:谁更合适?
由上可知,sFlow、NetFlow、SNMP之间最大的区别在于:SNMP用于标准的网络监控,而sFlow和NetFlow用于网络流量收集、监控和分析。sFlow与NetFlow相比,sFlow更合适在多协议网络中使用,而NetFlow更合适需要提高准确性和可扩展性且基于IP流量的情况下使用。目前市面上供应商正在推出同时支持sFlow、NetFlow和SNMP的以太网交换机,为用户提供一种更为经济明智的选择。