netflow版本5与版本9对比

1.前言

netflowCisco公司提出的用于描述通过路由器的连接信息的协议。路由器也象防火墙一样不仅仅是按包处理,而是跟踪到连接一层,对属于 同一个连接的数据包进行统计,某种程度上也成了状态检测,路由器将这些连接信息使用netflow协议发送到netflow搜集器,根据连接的统计信息可 得到网络运行的各种信息,还可用来判断是否受到攻击。

netflow已经出过很多版本,目前应用较多的netflow版本有578.*,版本9是最新版本。之所以会有那么多版本,是由 于想统计的连接的信息越来越多,数据结构也越来越大,越来越复杂,到了版本8达到登峰造极,版本8里出了N多个子版本,让人头大不已,如此下去只能导致 netflow协议彻底不可用。netflow v9的出现,总算基本解决了这个问题。
    

2. netflow 版本5

  Netflow 版本5包括两个部分:数据头部和数据部分。

2.1 netflow版本5头部格式

   如下图所示。


图2-1netflow 版本5数据头部格式

2.2 netflow版本5数据格式

如下表所示

表 2-1netflow 版本5数据格式

Content

Bytes

Description

srcaddr

0-3

Source IP address

dstaddr

4-7

Destination IP address

nexthop

8-11

Next hop router's IP address

input

12-13

Ingress interface SNMP ifIndex

output

14-15

Egress interface SNMP ifIndex

dPkts

16-19

Packets in the flow

dOctets

20-23

Octets (bytes) in the flow

first

24-27

SysUptime at start of the flow

last

28-31

SysUptime at the time the last packet of the flow was received

srcport

32-33

Layer 4 source port number or equivalent

dstport

34-35

Layer 4 destination port number or equivalent

pad1

36

Unused (zero) byte

tcp_flags

37

Cumulative OR of TCP flags

prot

38

Layer 4 protocol (for example, 6=TCP, 17=UDP)

tos

39

IP type-of-service byte

src_as

40-41

Autonomous system number of the source, either origin or peer

dst_as

42-43

Autonomous system number of the destination, either origin or peer

src_mask

44

Source address prefix mask bits

dst_mask

45

Destination address prefix mask bits

pad2

46-47

Pad 2 is unused (zero) bytes

3. netflow版本9

netflow v9和以前版本最大区别就是v9的数据格式可以自定义,有很强的扩展性,描述一个连接的参数的数量可以自己定义,可多可少,而以前的版本的数据格式是固定 的,如果用了某版本,即使其中很多字段不需要,在一个数据记录中同样要保留这些参数,使灵活性很差,导致想看的数据看不到,不想看的又必须看

netflow v9数据部分分为三部分:数据头(header)、模板部分(Template)、数据部分(data)。除了数据头部分外,在一个包中的模板部分和数据部分都可能有多个记录。

3.1版本9头部格式

数据头部分描述数据包的版本等基本信息:


version
 版本,取值为9

count
 模板和数据部分的记录的总数量

system_uptime
 设备自启动以来的毫秒数

unix_seconds
 数据发出时当前UNIX时间秒数,从197011日开始计数的秒数

packet_seq
 netflow包的序列号

source_id
 设备源ID,等价于v5,8中的引擎类型和引擎ID字段在目前Cisco
 的实现中,前两个字节为0作为保留值,3字节描述引擎ID,4字节
 描述设备线路板卡标志,该字段和设备源IP地址共同定位netflow
 数据源

3.2 netflow版本9,模板部分

模板是netflow v9的创新之处,模板的功能是用来描述netflow数据部分有哪些字段以及Z字段的长度,这样就可以灵活定义这个netflow信息包中包括了哪些数据,而且有很好的扩展性,v9中已经定义了80多种类型的数据,以后如果有需要可以很方便地扩展。


模板部分描述流量集(flowset)中有哪些类型的数据及其长度信息,netflow解析器利用它来对数据部分进行解析,总长度不定。


模板流量集数据格式各字段是16位的:

     0                   1            
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |       FlowSet ID = 0          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |           Length              |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |          Template ID          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |          Field Count          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |          Field 1 Type         |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |          Field 1 Length       |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |          Field 2 Type         |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |          Field 2 Length       |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |           ......              |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |          Field N Type         |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |          Field N Length       |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |          Template ID          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |          Field Count          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |          Field 1 Type         |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |          Field 1 Length       |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |          Field 2 Type         |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |          Field 2 Length       |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |           ......              |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |          Field N Type         |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |          Field N Length       |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


FlowSet ID
   该字段用来区分模板记录和数据记录,对于模板记录该字段在0255之间。目前描述netflow流字段的模板记录中该字段为0,而描述选项字段的模板记录中该字段为1。对于数据记录来说,该字段值都是大于255的。

Length
长度字段表示该流量集的总长度。因为可能会容纳多个ID的模板,整体长度值是必须的。

Template ID
模板ID用于标志一个新的模板记录,用来匹配一个新的数据段中的数据记录,这个ID值是大于255的。

Field Count
域数量用于描述这个模板记录中的域的数量,一个模板记录中可以有多个域。

Field Type
该参数表明域的类型,在netflow v9中定义了87种数据类型,以后还可以扩展,具体类型的详细说明见附录A表格1

Field Length
表明Field Type所定义的数据域的长度,以字节为单位。

3.3 netflow版本9,数据部分

数据部分就是根据模板部分的定义填写的具体的netflow数据,可有多个,总长度不定。


模板流量集数据格式各字段是16位的:

     0                   1            
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |    FlowSet ID = Template ID   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |           Length              |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |    Record 1 - Field 1 value   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |    Record 1 - Field 2 value   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |    Record 1 - Field 3 value   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |    Record 1 - Field 4 value   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |           ......              |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |    Record 1 - Field N value   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |    Record 2 - Field 1 value   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |    Record 2 - Field 2 value   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |    Record 2 - Field 3 value   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |    Record 2 - Field 4 value   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |           ......              |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |    Record 2 - Field N value   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |           ......              |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |           padding             |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


Flowset ID
 取值等于模板字段中定义的Template ID值,表示数据是按哪个模板定义的。

Length
 整个数据流量集的长度

Record N - Field N
 每个netflow信息中的各个字段的数据,这些数据是什么是有模板定义的。

Padding
 填充数据,使整个数据流量集长度4字节对齐。

3.4 netflow版本9,应用举例


你可能感兴趣的:(网络,路由器,cisco,扩展,layer,引擎,unix)