2024年6月14日发(作者:)

1. Sflow Datagram头介绍:

字段说明

struct _SFLSample_datagram_hdr {

u32 datagram_version; sflow的版本号 (VERSION5 = 5只支持v5版本)

u32 agent_address; 采样交换机的设备ip(通过命令行配置一般配置为loopback

口ip)

u32 sub_agent_id; 子设备id (暂不支持分布式默认为0)

u32 sequence_number; 已经发送sflow报文序列号 (sflow报文序列编号依次加1)

u32 uptime; 自设备启动时刻当现在经过的毫秒数(不是当前时间)

u32 num_records; 包含的记录数目

}

2. 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的

报文格式如图2-1。

注:我们做的sflow是sFlow version5版本,只支持

Expanded Flow sample和Expanded Counter sample两种报

文字段格式。

图2-1 sFlow报文格式

sFlow的两种采样

sFlow Agent提供了两种采样方式供用户从不同的角度分析

网络流量状况,分别为Flow采样以及Counter采样。

2.1 Flow采样

Flow采样是sFlow Agent设备在指定端口上按照特定的采样

方向和采样比对报文进行采样分析,并将分析的结果通过

sFlow报文发送到Collector设备的过程。

Flow采样 的字段格式是按照Expanded Flow sample格式进

行封装的:

Expanded Flow sample头字段介绍

struct _SFLFlow_sample_expanded {

u32 tag; 此处为3代表 expanded flow sample 字段

u32 length; 该字段总的字节数(不包含:tag和length字段)

u32 sequence_number; flow sample字段序列号 依次递增(分接口记录序列号)

u32 ds_class; 数据源类型 (只支持 接口类型 数据源类型默认为0)

u32 ds_index; 数据源索引 (接口索引值)

u32 sampling_rate; 采样率 命令行进行配置

u32 sample_pool; 采样池的报文个数

u32 drops; (sflow缓存队列已满,无法入队被丢弃未处理的报文个数,

如果被丢弃报文个数过多,建议增大采样率)

u32 inputFormat; 入接口类型 (默认为0)

u32 input; 入接口索引值

u32 outputFormat; 出接口类型 (默认为0)

u32 output; 出接口索引值

u32 num_elements; 以下包含的记录数

}

表2-2 Expanded Flow sample采样报文中字段信息说明

字段内容 说明