-
1.
Sflow
Datagram
头介绍:
字段说明
struct
_SFLSample_datagram_hdr {
u32 datagram_version;
sflow
的版本号
(
VERSION5 = 5
只支持<
/p>
v5
版本)
u32
agent_address;
采样交换机的设备
ip
(通过命令行配置一般配置为
loopback
口<
/p>
ip
)
u32 sub_agent_id;
子设备
id
(暂不支持分布式默认为
0
)
u32
sequence_number;
已经发
送
sflow
报文序列号
(
sflow
报文序列编号依次加
1
)
u32 uptime;
自设备启动时刻当现在经过的毫秒数(不是当前时间)
u32
num_records;
包含的记录数目
}
2.
sFlow
的采样报文格式
sFlo
w
报文采用
UDP
封装,缺省目的端口
号为知名端口
6343
。
sFlow<
/p>
报文共有
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;
p>
该字段总的字节数(不包含:
tag
和
p>
length
字段)
u32
sequence_number;
flow
sample
字段序列号
依次递增<
/p>
(
分接口记录序列号
)
u32 ds_class;
数据源类型
(只支持
接口类型
数据源类型默认为
0
)
u32 ds_index;
数据源索引
(接口索引值)
u32 sampling_rate;
采样率
命令行进行配置
u32 sample_pool;
采样池的报文个数
u32
drops;
p>
(
sflow
缓存队列已满,无法入队被丢
弃未处理的报文个数,
如果被丢弃报文个数过多,建议增大采样率)
u32
inputFormat;
入接口类型
(默认为
0
)
u32 input;
入接口索引值
u32
outputFormat;
出接口类型
(默认为
0
)
u32 output;
出接口索引值
u32 num_elements;
以下包含的记录数
}
表
2-2
Expanded Flow
sample
采样报文中字段信息说明
字段内容
说明
字段内容
说明
Raw packet
截取原始报文全部或者一部分报文头
Header
(报文大于
128
字节截取
128
字节,否
则截取全部报文)
.
struct sflow_rawpkthdr
{
u32 tag;
为
p>
1
代表是
raw packet
header
字段
u32
length;
总的字节数(不
包含
tag
和
length
字段)
u32
header_protocol;
原始数据
mac
< br>协议类型(
1
代表
以太网类型报
文)
u32 frame_length;
原始报文总字节数
u32 stripped;
截取报文时被忽略掉的字节数
u32
header_length;
被截取报文的字节数
u8
*header_bytes;
截取的原始报文字段
}
Ethernet
针对
Ethernet
报文,解析报文的
Frame Data
Ethernet
头信息。
struct sflow_ethernet_data
{
u32 tag;
为
2
p>
代表是
Ethernet Frame
Data
字段
u32
length;
总的字节数(不包含
tag
和
length
字段)
u32
len_mac;
原始报文总字节数(包括
< br>2
层头及后续报
文长度)
u8
src_mac[8];
源
mac
地址
8
字节
u8 dst_mac[8];
目
的
mac
地址
8
字节
}
IPV4 Data
针对
IPV4
报文,解析报文的
IPV4
头信
息。
struct sflow_ipv4_data
{
u32 tag;
为
3
代表是
IPv4
Data
字段
u32 len;
总的字节数(不包含
tag
和
length
字段
)
字段内容
说明
u32 len_ippkt;
原始报文三层头及后续报文总字节数
u32 proto;
IP
Protocol type ( TCP = 6, UDP = 17)
u32 src_ip;
原始报文源
ip
u32 dst_ip;
原始报文目的
ip
u32 src_port;
原始报文源端口号
u32 dst_port;
原始报文目的端口号
u32 tcp_flags;
TCP flags
(
tcp
报文才有)
u32 tos;
IP
type of service
}
Extended
针对路由转发的报文,记录报文的路由
Router Data
转发信息。
struct
sflow_extendedrouter_data
{
u32
tag;
为
1002
代表是
extended
router
Data
字段
u32 length;
总的字节数(不包含
tag
和
length
字段)
u32 ip_type;
ip
地址类型
(
1
代表
IPv4,2
代表
ipv6
,
暂只支
p>
持
IPv4
报文)
u32 nexthop;
下一跳
i
p
地址
u32 src_mask_len;
源
ip
匹配
转发表中的掩码长度
u32 dst_mask_len;
目的
ip
匹
配转发表中的掩码长度
}
Extended
针对二层转发的
E
thernet
报文,
记录报
Swit
ch Data
文的
vlan
转换以
及
vlan
优先级的转换。
struct sflow_extendedswitch_data
{
u32 tag;
为
100
1
代表是
extended switch
data
字段
u32
length;
总的字节数(不
包含
tag
和
length
字段)
u32 src_vlan;
入相
vlan
id
号
u32
src_priority;
入相
vlan
优先级
u32 dst_vlan;
出相
vlan
id
号
u32 dst_priority;
出相
vlan
优先级
}
-
-
-
-
-
-
-
-
-
上一篇:化工设计常用管道仪表流程图物料代号和缩写词[1]
下一篇:ZEMAX评价函数1