目 录
8 sFlow
8.1 介绍
定义
sFlow是Sampled Flow的简称,由Inmon提出,是一种用于监控数据网络上交换机或者路由器流量转发状况的技术。
sFlow系统包括若干sFlow Agent(内嵌于交换机或者路由器等转发设备)以及一个核心的sFlow Collector。sFlow Agent通过特定的采样技术获取网络设备上的流量转发统计并实时地通过sFlow数据报文发送到Collector以供Collector进行分析,通过生成流量视图或者报表的形式,帮助网络管理员更加有效地管理整个站点(通常是企业级站点)的网络流量。
目的
相对于电信级网络,企业级网络通常具有规模相对较小、组网灵活、易受攻击等特点,因此企业级网络更容易出现由组网或者攻击导致的流量业务异常,因此企业用户更需要一种以设备端口为基本采样单元的流量监控技术来实时监控流量状况以及及时发现异常流量以及攻击流量的源头,从而保证企业网络的正常稳定运行。
一个典型的sFlow系统提供了一组Agent以及一个Collector,Agent内嵌于网络设备,负责采集相关的流量统计信息;Collector的角色通常由专门的服务器充当,通过在服务器上运行sFlow trend等专门的sFlow Collector软件,收集Agent发送过来的统计数据,以图形化的统计信息汇总或者以报表的形式输出。为企业用户特别是不设置专职网络管理员的企业用户的日常巡检维护提供了极大的方便。
8.4 原理描述
8.4.1 sFlow Agent的基本原理
sFlow Agent是sFlow的客户端设备,在一个典型的部署sFlow的网络中,一般是内嵌于网络转发设备中(比如交换机和路由器),负责收集设备上的流量转发情况并实时发送给sFlow Collector以供分析使用。
sFlow的采样报文格式
sFlow报文采用UDP封装,缺省目的端口号为知名端口6343。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的报文格式如图8-1。
sFlow的两种采样
sFlow Agent提供了两种采样方式供用户从不同的角度分析网络流量状况,分别为Flow采样以及Counter采样。
Flow采样Flow采样是sFlow Agent设备在指定端口上按照特定的采样方向和采样比对报文进行采样分析,并将分析的结果通过sFlow报文发送到Collector设备的过程。Flow采样报文中的主要信息如表8-2所示。
字段内容 | 说明 |
---|---|
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。 |
Extended Gateway Data | 针对经过BGP路由转发的报文,记录报文转发的BGP路由属性,将这些信息封装到sFlow报文中发送给Collector。 |
Extended User Data | 针对IP Session用户,记录报文转发的用户信息,将这些信息封装到sFlow报文中发送给Collector。 |
Extended URL Data | 针对Http报文,解析报文携带的URL信息,将这些信息封装到sFlow报文中发送给Collector。 |
Extended MPLS Data | 针对MPLS封装的报文,获取报文的MPLS封装信息,将这些信息封装到sFlow报文中发送给Collector。 |
Extended NAT Data | 针对做NAT的报文,解析报文的地址转换信息,将这些信息封装到sFlow报文中发送给Collector。 |
Extended MPLS Tunnel | 针对经MPLS隧道转发的报文,解析报文的转发隧道信息,将这些信息封装到sFlow报文中发送给Collector。 |
Extended MPLS VC | 针对经VLL/VPLS转发的报文,解析报文的L2VPN转发信息,将这些信息封装到sFlow报文中发送给Collector。 |
Extended MPLS FEC | 针对MPLS转发的报文,解析报文的MPLS转发等价类信息,将这些信息封装到sFlow报文中发送给Collector。 |
Extended MPLS LVP FEC | 针对MPLS转发的报文,解析MPLS转发等价类掩码长度,将这些信息封装到sFlow报文中发送给Collector。 |
Extended Vlan Tunnel | 针对经Vlan Tunnel转发的报文,获取报文的Vlan Tunnel转发信息,将这些信息封装到sFlow报文中发送给Collector。 |
Flow采样是针对接口上报文的采样方式,报文的采样主要由两种方式:固定采样方式和随机采样方式。固定采样方式是在设备上启用一个计数器,采样比为1/N时,初时计数器值为N ,接口每处理一个报文计数,记数器计数减一,当计数器减到0时,采样当前的报文,重置计数器的计数为N,重复前面的处理;随机采样方式是指针对每一个接口处理的报文给一个随机值(假定随机数的取值范围为0~N),设置一个阈值n(n ∈ [0,N]),当报文的随机值小于这个阈值时,报文采样,这样实际的采样比为n/(N+1)。从统计角度来说,随机采样方式采集的样本更加能够体现整个样本空间的情况,因此目前主要采用的采样方式为随机采样方式。
目前交换机支持Raw packet、Ethernet Frame Data、IPV4 Data、IPV6 Data、Extended Switch Data、Extended Router Data的6种字段。
Counter采样是sFlow Agent设备周期性的获取接口上的流量统计,并将这些统计信息通过sFlow报文发送给Collector设备的过程。Counter采样报文中的主要信息如表8-3所示。
字段内容 | 说明 |
---|---|
Generic Interface Counters | 通用接口统计信息,包括接口的基本信息,通用的接口流量统计。 |
Ethernet Interface Counters | 针对于Ethernet接口,用于统计Ethernet相关的流量统计信息。 |
Token Ring Counters | 用于令牌环网,用于统计令牌环网相关流量统计信息。 |
100 Base VG Interface Counters | 应用于IEEE 802.12接口,用于统计该类接口的流量统计信息。 |
Vlan Counters | 用于按照vlan统计Ethernet设备流量统计信息。 |
Processor Information | 用于统计设备CPU占用率,内存使用情况。 |
目前交换机支持Generic Interface Counters、Ethernet Interface Counters和Processor Information的3种字段。