华为 CE系列 配置 sFlow 实现流量采集教程

网络
华为 CE系列 配置 sFlow 实现流量采集教程 题图

摘要: 本文记录华为 CE6855 交换机配置 sFlow v5 的完整过程,包括 Agent、Source、Collector、接口双向采样以及配置验证,可用于实时流量分析、Top IP、PPS 等监控场景。

大家好,我是云核筑梦家。

在网络流量监控场景中,如果只是想知道某个接口当前有哪些 IP 在跑大流量、实时 Top IP、PPS、协议分布等数据,其实没有必要把所有业务流量通过端口镜像完整复制到服务器。

这时候可以使用交换机自带的 sFlow 功能。

sFlow 会按照指定比例对经过接口的数据包进行采样,并将采样结果通过 UDP 发送到 Collector。相比全量端口镜像,sFlow 对采集服务器网卡和网络带宽的要求会低很多,非常适合核心交换机、高流量出口等场景。

本文以华为 CE6855-48S6Q-HI 为例进行配置。


一、先确认交换机是否支持 sFlow

进入系统视图,再进入需要采集的接口:

system-view
interface 10GE1/0/1

输入:

sflow ?

如果看到:

counter   Counter statistics of sampled flow
sampling  Sampling statistics of sampled flow

说明当前接口支持 sFlow。

继续查看:

sflow sampling ?

正常可以看到:

collector  The collector of sampled flow
inbound    Get inbound direction sampling packet
length     Specify the packet length of sampled flow
outbound   Get outbound direction sampling packet
rate       Specify the rate of sampled flow

这几个参数就是后面主要需要使用的配置。


二、确认交换机支持的最低采样率

这里不要直接照抄网上的 10242048 等参数,因为不同型号、不同 VRP 版本支持的范围可能不一样。

直接在交换机上查询:

sflow sampling rate ?

例如 CE6855 某些版本会显示:

INTEGER<4096-4294967295>  The specifed rate of sampled flow, the default is
                          8192.

这代表:

最低采样率:1:4096
默认采样率:1:8192

也就是说:

rate 4096 = 平均 4096 个包采样 1 个
rate 8192 = 平均 8192 个包采样 1 个

如果设备最低只支持 4096,那么配置:

sflow sampling rate 2048

会直接报错。

因此,采样率一定要以自己设备执行 sflow sampling rate ? 返回的范围为准。

本文示例使用:

1:4096

三、配置 sFlow Agent IP

首先配置 Agent IP:

sflow agent ip 10.10.10.10

这里的 Agent IP 可以理解为:

这台 sFlow 交换机对外的身份标识。

后续 Collector 收到数据后,可以通过 Agent IP 判断这些采样数据来自哪一台交换机。

建议使用一个长期稳定的地址,例如:

  • LoopBack IP

  • 管理 IP

  • 专门用于设备标识的本机 IP

尽量不要使用后期可能经常修改的业务接口地址。


四、配置 sFlow Source IP

这里要注意:

Agent IP 和 Source IP 并不是同一个概念。

Agent IP:

用于告诉 Collector:“我是谁”

Source IP:

实际发送 sFlow UDP 报文时使用哪个源 IP

查看设备是否支持:

sflow source ?

如果出现:

ip
ipv6

则可以指定 IPv4 Source IP:

sflow source ip 10.10.10.10

如果网络规划允许,可以让 Agent 和 Source 使用同一个地址:

sflow agent ip 10.10.10.10
sflow source ip 10.10.10.10

这样 Collector 收到的数据会比较清晰。

需要注意:

这个 IP 必须是交换机自身拥有的地址,并且能够正常访问 Collector。


五、配置 sFlow Collector

假设采集服务器地址为:

10.20.20.20

配置:

sflow collector 1 ip 10.20.20.20

这里:

1

是 Collector ID。

后面接口配置时会通过这个 ID 指定采样数据发到哪个 Collector。

默认情况下 sFlow 使用:

UDP 6343

所以整体关系就是:

交换机
   │
   ├── Agent:10.10.10.10
   ├── Source:10.10.10.10
   │
   └── Collector:10.20.20.20:6343

六、给接口开启 sFlow

例如需要采集接口:

10GE1/0/1

进入接口:

interface 10GE1/0/1

配置:

sflow sampling collector 1
sflow sampling rate 4096
sflow sampling length 256
sflow sampling inbound
sflow sampling outbound

完成后退出:

quit

最后提交:

commit

完整配置如下:

system-view

sflow agent ip 10.10.10.10
sflow source ip 10.10.10.10
sflow collector 1 ip 10.20.20.20

interface 10GE1/0/1
sflow sampling collector 1
sflow sampling rate 4096
sflow sampling length 256
sflow sampling inbound
sflow sampling outbound
quit

commit

七、多个接口怎么配置

如果需要同时采集多个接口,只需要让这些接口使用同一个 Collector 即可。

例如:

interface 10GE1/0/1
sflow sampling collector 1
sflow sampling rate 4096
sflow sampling length 256
sflow sampling inbound
sflow sampling outbound
quit

interface 10GE1/0/2
sflow sampling collector 1
sflow sampling rate 4096
sflow sampling length 256
sflow sampling inbound
sflow sampling outbound
quit

interface Eth-Trunk10
sflow sampling collector 1
sflow sampling rate 4096
sflow sampling length 256
sflow sampling inbound
sflow sampling outbound
quit

commit

物理接口和 Eth-Trunk 都可以根据设备实际支持情况进行配置。

不需要:

一个接口配置一个 Collector

多个接口完全可以统一发送到同一个采集服务器。


八、sampling length 256 是什么意思

配置中有这样一条:

sflow sampling length 256

很多人第一次看到这里容易误解。

这个 256 不是限制接口流量,也不是限制数据包最大只能有 256 Byte。

它表示:

当一个业务报文被 sFlow 抽中以后,最多复制这个报文前 256 Byte 的内容发送给 Collector。

例如原始数据包:

1500 Byte

被 sFlow 抽中之后:

原始数据包 1500 Byte
        ↓
截取前 256 Byte
        ↓
封装到 sFlow Datagram
        ↓
发送给 Collector

但是 sFlow Sample 里面仍然会保存:

Original Frame Length

所以 Collector 知道这个原始数据包实际上是 1500 Byte,并不会因为只截取了前 256 Byte 就把流量计算成 256 Byte。

对于常见流量分析来说,256 Byte 已经能够包含大量有价值的信息,例如:

Ethernet
VLAN
QinQ
IPv4
IPv6
TCP
UDP
源 IP
目标 IP
源端口
目标端口
TCP Flags

所以如果主要用来做:

  • Top IP

  • PPS

  • 协议分析

  • 流量排行

  • 大流量 IP 检测

256 一般已经足够。


九、真正影响采样精度的是 rate

如果想提高 sFlow 的统计精度,主要应该关注:

sflow sampling rate

而不是:

sflow sampling length

例如:

1:8192

和:

1:4096

相比,1:4096 的采样密度大约高一倍。

也就是说,在相同流量情况下,Collector 能够获得更多样本。

因此如果设备支持,并且主要用于实时发现大流量 IP,可以选择设备允许范围内较高的采样密度。

但并不是数字越小越好。

采样越密:

交换机生成的 Sample 越多
↓
sFlow 导出数据越多
↓
设备和 Collector 的处理压力越高

所以生产环境需要结合实际设备性能进行选择。


十、查看当前 sFlow 配置

部分 VRP 版本直接执行:

display sflow

可能会提示:

Error: Incomplete command found

可以先执行:

display sflow ?

如果看到:

configuration
message
packet

查看全部 sFlow 配置可以使用:

display sflow configuration all

正常会看到类似:

sFlow Version 5
-------------------------------------------------------------------------------
Agent IP Address   : 10.10.10.10
-------------------------------------------------------------------------------
Source IP Address  : 10.10.10.10
-------------------------------------------------------------------------------
Collector ID: 1
  IP Address    : 10.20.20.20
  UDP Port      : 6343
  Length        : 1400
-------------------------------------------------------------------------------

                             Sampling
----------------------------------------------------------------
Interface               CID     LEN    DIR          RAT
----------------------------------------------------------------
10GE1/0/1                 1      256    IN&OUT       4096
10GE1/0/2                 1      256    IN&OUT       4096
Eth-Trunk10               1      256    IN&OUT       4096
----------------------------------------------------------------

其中:

CID     = Collector ID
LEN     = Sampling Length
DIR     = 采样方向
RAT     = Sampling Rate
IN&OUT  = 入方向和出方向都启用

如果看到:

CID = 1
LEN = 256
DIR = IN&OUT
RAT = 4096

说明接口 sFlow 已经配置成功。


十一、端口镜像和 sFlow 能不能同时使用

在部分 CE6855 + VRP 版本实际测试中,原接口即使已经配置:

port-mirroring observe-port 1 inbound
port-mirroring observe-port 1 outbound

仍然可以继续增加:

sflow sampling collector 1
sflow sampling rate 4096
sflow sampling length 256
sflow sampling inbound
sflow sampling outbound

配置完成后可以分别检查:

display port-mirroring

以及:

display sflow configuration all

确认端口镜像与 sFlow 是否同时存在。

不过不同 CloudEngine 型号、VRP 版本可能存在差异,因此生产设备建议先选择一个接口进行测试,确认没有冲突后再批量配置。


十二、最终推荐配置模板

如果设备查询结果显示最低采样率为 4096,可以参考:

system-view

sflow agent ip <交换机Agent-IP>
sflow source ip <交换机Source-IP>
sflow collector 1 ip <采集服务器-IP>

interface <需要采集的接口>
sflow sampling collector 1
sflow sampling rate 4096
sflow sampling length 256
sflow sampling inbound
sflow sampling outbound
quit

commit

配置完成检查:

display sflow configuration all

如果能够正常看到:

Agent IP
Source IP
Collector
UDP Port 6343
接口
IN&OUT
LEN 256
RAT 4096

那么交换机侧的 sFlow 配置就已经完成。


总结

华为 CE 系列配置 sFlow,实际上核心就是三部分:

Agent / Source
      ↓
Collector
      ↓
接口 Sampling

如果只是需要查看:

哪个 IP 当前流量最大
接口 Top IP
PPS
协议分布
大流量异常

sFlow 会比单纯依赖 SNMP 更适合,也不需要将几十 Gbps 的原始业务流量全部复制到采集服务器。

需要注意的是,不同 CE 型号和 VRP 版本的 sFlow 参数范围可能不同,尤其是 sampling rate,不要直接照搬其他设备配置,先执行:

sflow sampling rate ?

确认当前设备实际支持范围,再进行配置。

本文为原创实践记录,首发于 小航博客,转载请注明出处与链接。

评论

发表评论

评论经审核后显示。请勿提交广告或与主题无关的内容。