工作方式
把数据采集代理嵌入到被监控网络设备(交换机/路由器)的 ASIC 芯片中, 从而达到采集数据时的线速性能
sFlow结构
sFlow 的网络流量监测实现一般由两部分构成:sFlow 代理( Agent) 和 sFlow 流量采集器( Collector) 。 sFlow 代理嵌入到网络设备( 交换机/路由器) 的 ASIC 芯片中, 而采集器则是连接在网络上的一个 ( 或多个) 可对 sFlow 数据进行分析的计算机。代理每采集到一个数据包, 就立即转发到一个指定的采集器。多个 sFlow 代理可将数据发送到一个统一的采集器中分析。
采集过程
sFlow 具有两种采样:基于流的数据包统计采样和基于时间的网络接口统计采样。两种采样产生两种样本包 :Flow Sample( 数据流包) 和Counter Sample( 计数包) , 这两种包通过标识位进行区分:
- 基于流的数据包统计采样 :当一个包到达一个接口, 交换机先作出是否丢掉这个包的决定, 如果该包没有被丢掉, 交换机的交换路由函数分配给该包一个目的接口。同时, 决定是否抽样该包 。 平均每 N 个( N 是一个配置在该交换机接口的采 样值) 数据包中采样一个包并进行转发 。由于网络流中可能会存在一些具有周期性模式的数据包, 所以在采样机制中引入了随机元素, 用以确保每个数据包被采样的概率是均等的 。
- 基于时间的接口计数采样 :按一定的时间间隔进行采样, 接口计数采样的目标是提供一种有效的、可升级的能向 sFlow 采集器报告计数的方法 。
当数据报文到达交换机接口时, 首先根据 ACL 访问控制列表决定是否过滤此数据报 文, 如果没有被过滤掉则决定是否采样此数据报文, 利用一个计数器来决定是否采样, 如果计数器 值减为 0 时即采样此数据报文 。而不论是否采样, 都由 Total Packets 统计数据报文的总量。
Flow采样是针对接口上报文的采样方式,报文的采样主要由两种方式:固定采样方式和随机采样方式。固定采样方式是在设备上启用一个计数器,采样比为1/N时,初时计数器值为N ,接口每处理一个报文计数,记数器计数减一,当计数器减到0时,采样当前的报文,重置计数器的计数为N,重复前面的处理;随机采样方式是指针对每一个接口处理的报文给一个随机值(假定随机数的取值范围为0~N),设置一个阈值n(n ∈ [0,N]),当报文的随机值小于这个阈值时,报文采样,这样实际的采样比为n/(N+1)。从统计角度来说,随机采样方式采集的样本更加能够体现整个样本空间的情况,因此目前主要采用的采样方式为随机采样方式。
设数据报文的 总数为 N, 采样所得到的样值包为 n, 其中属于特定类别的数据报文数量为 c, sFlow 的采样精度只与采样到的特定分类数据报文的样值数量 c 有关,样值越大, 精度越高。当 c≥1537 的时候, 误差率就可控制在 5%内了。
sFlow报文信息
sFlow 代理把被采样的数据流样品包的输入输出接口、包头 、原包 长度、被交换的包总数 、样品包的转发信息整合成 sFlow 数据报, 再通过网络把这个数据报发到 sFlow 采集器。数据流统计采样和接口计数采样被设计成系统的一部分, 两种采样数据包类型被整合成 sFlow 数据报 。
在 sFlow 采样值中, 包括一个被采样包的所有包头信息、源目的 MAC 地址、VLAN ( 802 .1q 和 802 .1p) 、源和目的地 IP 地址、优先级、服务类型、源 AS 、源对等 AS 目的地 AS 路径、端口统计、团体/本 地优先权、TTL 、下一跳 IP 地址、协议以及被监测设备的信息等, 另外还包括一个端口的统计数据。上述采样包中的采样值为详细分析网络流量提供了充分的依据, 并可实现二层至七层的分析。 sFlow 使用 统计采样技术, 在数百个包中取一个, 这样, 既极大地降低了采样包转发至采集器过程中所占用的网络 资源, 又极大地降低了采集器对数据进行分析时的负载。另外, sFlow 代理对采集的数据包几乎不进行任何处理, 也不在交换机中进行存储, 对交换机性能 的影响几乎可忽略不计。
数据封包采用 XDR 标准( RFC1155 ) , 使得 sFlow 代理能方便地编码, sFlow 采集器端也能 方便地解码。在传输过程中, 使用 UDP 协议( 默认 使用 6343 端口) 进行传输。根据 RFC 3176 的规定, 可以为每一个数据包转发 最少256 字节的信息。所有 IP 、TCP 和 UDP 包头 的相关信息, 都与部分数据包有效载荷一起转发到 采集器, 以进行监视分析。同时, 它采集的数据包头信息包括 IPv4-IP 包 头信息( 无选项集, 包括版本 、TOS 、字节长度 、ID 域 、碎片偏移量 、TTL 、协议、包头校验和、源 IP 地 址 、目标 IP 地址) ;IPv4-TCP 包头信息( 无选项集, 包括源端口、目标端口、序列号、确认号 、数据偏移 量 、保留域、控制位 、窗口、校验和、紧急指针) 和IPv4-UDP 包头信息( 包括源端口、目标端口、长度、 校验和)
sFlow报文共有4种报文头格式,分别为Flow sample、Expanded Flow sample、Counter sample、Expanded Counter sample。其中Expanded Flow sample和Expanded Counter sample是sFlow version5新增内容,是Flow sample和Counter sample的扩展,但不前向兼容。所有的Extended的采样内容必须使用Expanded采样报文头封装。sFlow的报文格式如图
注意:在Wireshark中查看sFlow统计信息时,请务必牢记sFlow是一种采样技术,并且应按采样率放大数字。在这种情况下,配置的采样率为千分之一,因此在百分比正确的情况下,数据包,字节和兆比特/秒数需要乘以1000。在顶部突出显示的行中,例如:表中显示的24个数据包,24KB和0.002 Mbit /s,总值应为24,000数据包,24兆字节和2Mbit/s
Flow采样信息说明
Flow采样是sFlow Agent设备在指定接口上按照特定的采样方向和采样比对报文进行采样分析,用于获取报文数据内容的相关信息。该采样方式主要是关注流量的细节,这样就可以监控和分析网络上的流行为。
字段内容 | 说明 |
---|---|
Raw packet | 截取原始报文全部或者一部分报文头(具体截取多长的长度由配置决定),将这部分原始报文封装到sFlow报文中发送给Collector。 |
Ethernet Frame Data | 针对Ethernet报文,解析报文的Ethernet头信息,将解析数据封装到sFlow报文中发送给Collector。 |
IPv4 Data | 针对IPv4报文,解析报文的IPv4头信息,将解析数据封装到sFlow报文中发送给Collector。 |
IPv6 Data | 针对IPv6报文,解析报文的IPv6头信息,将解析数据封装到sFlow报文中发送给Collector。 |
Extended Switch Data | 针对转发的Ethernet报文,记录报文的VLAN转换以及VLAN优先级的转换,将转发信息封装到sFlow报文中发送给Collector。VLAN ID为0时表示无效VLAN。 |
Extended Router Data | 针对路由转发的报文,记录报文的路由转发信息,将转发信息封装到sFlow报文中发送给Collector。 |
Counter采样说明
Counter采样是sFlow Agent设备周期性的获取接口上的流量统计信息,Counter采样支持获取的采样信息如下表所示。与Flow采样相比,Counter采样只关注接口上流量的数量,而不关注流量的详细信息。
字段内容 | 说明 |
---|---|
Generic Interface Counters | 通用接口统计信息,包括接口的基本信息,通用的接口流量统计。 |
Ethernet Interface Counters | 针对于Ethernet接口,用于统计Ethernet相关的流量统计信息。 |
Processor Information | 用于统计设备CPU占用率,内存使用情况。 |
sFlow优点
其优点可以主要概括如下:
- sFlow 技术被内嵌到网络路由器或交换机的ASIC 芯片中, 因此它成为了一个线速性能的 “永远在线”的技术;
- 通过sFlow对网络进行监控将不需要镜像监控端口, 这样就大大节约了网络资源的消耗, 降低了网络监控成本
- 只要内嵌sFlow代理的网络设备覆盖全网, 那么网络管理员就可以对整个网络进行监控, 以连续实时的方式监视每一个端口
- sFlow数据包可以包括完整的从二层到七层的详细信息, 从而能够更清晰的、全面的了解网络, 管理网络;
- sFlow代理仅仅被用于选择、封装和转发数 据包, 而且所有的分析流量被发送到采集服务器, 数据流样本也是随机或定时地采集, 这对网络设备CPU和带宽需求都不高
- 支持多种网络协议( IP 、MAC 、Appletalk 、IPX 、BGP等)
- 用户可自行配置采样速率, 对设备性能基本没有影响, 对网络带宽的影响很小, 有完整的数据包头信息;
- 可看到设备或端口配置的全网络视图
参考
- 朱华鑫,陈宏聪.sFlow网络流量监测技术探析[J].计算机与数字工程,2010,38(02):110-113.
- https://blog.csdn.net/a3192048/article/details/86475878
- https://blog.sflow.com/2011/11/wireshark.html
网友评论