个人总结系列-61IPFIX FLOW总结

更新时间:2024-03-10 04:56:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

1.1 3.1 IPFIX基本概念

IPFIX(IP Flow Information Export,IP数据流信息输出)是由IETF公布的用于网络中的流信息测量的标准协议,作为国际化流量监控标准技术,让网络设备在转发数据流量的同时,生成特定的流量信息,然后将流量信息发送到特定的分析模块,进而实现对流量的分析。该协议具有以下特点:

(1)统一IP数据流的统计、输出标准,这使得网络管理员很容易地提取和查看存储在这些网络设备中的重要流量统计信息;

(2)输出格式具有较强的可扩展性,如果流量监控的要求发生改变,网络管理员也可通过修改相应配置来实现,不必升级网络设备软件或管理工具;

(3)IPFIX定义的格式以Cisco Netflow Version 9数据输出格式作为基础,可使IP流量信息从一个输出器(Exporter)传送到收集器(Collector)。

与使用TCP/IP五元组表示一条会话的方式类似,IPFIX缺省使用网络设备的七个关键域来表示每股网络流量,如果不同的IP报文中所有的七个关键域都匹配,那么这些 IP 报文都将被视为属于同一股流量。上述七个关键域分别为:

? ? ? ? ? ? ? ? ?

源IP地址 目的IP地址 TCP/UDP源端口 TCP/UDP目的端口 三层协议类型

服务类型(Type-of-service)字节 输入逻辑接口

IPFIX:IP Flow Information Export,即IP流信息导出

IPFIX报文:IPFIX模块向IPFIX工作站发送的报文,报文中携带了IPFIX在网络设备上监控到的IP流统计信息。IPFIX报文是UDP报文,并按照NetFlow v9方式组装 ?

IP流:由网络设备处理的IP报文,根据报文的入接口、协议号、源地址、目的地址、TOS字段、TCP/UDP源端口、TCP/UDP目的端口信息进行分类,每一类就是一条IP流 ? ?

IPFIX流记录模板:一种IPFIX报文,定义了后续IPFIX流记录报文的格式

IPFIX选项记录模板:一种IPFIX报文,定义了后续IPFIX选项记录报

此外,为了更好的理解IPFIX原理,以下列出了IPFIX相关概念解释:

文的格式 ? ?

1.2 3.2 IPFIX工作原理

如下图所示,IPFIX主要包括三个设备,分别是Export、Collector、Analyzer,三个设备之间的关系是:Export对网络流进行分析处理,提取符合条件的流统计信息,并将统计信息输出Collector ;Collector负责解析Export的数据报文,把统计数据收集到数据库中,可供Analyser进行解析;Analyser 从Collector 中提取统计数据,进行后续处理,为各种业务提供依据,以图形界面的形式显示出来。

IPFIX流记录:一种IPFIX报文,记录了IP流的统计信息

IPFIX选项记录:一种IPFIX报文,记录了IPFIX与单独IP流无关的统计选项的内容

图 3-1 IPFIX组成

IPFIX需要对IP流进行统计,因此IPFIX需要工作在流转发模式下,对于非流转发模式,IPFIX无法进行统计。当系统处于流转发模式时,IP报文根据报文的入接口、协议号、源地址、目的地址、TOS字段、TCP/UDP源端口、TCP/UDP目的端口等信息分类成不同的IP流,每一条IP流都独立进行统计。这些流的统计数据定期被IPFIX组装为IPFIX报文,发送给指定的IPFIX服务器。IPFIX服务器提供强大的图形显示、计算能力,对IPFIX报文中的流统计进行分析,为网络管理者进行流量监控、流量管理提供素材。

选定的观测点即工作在流转发模式下,经设备转发的IP流量,被划分为不同的IP流进行处理以及统计。历史的IP流统计定期送给IPFIX模块。收到统计信息后,IPFIX模块将IP流统计组装成IPFIX报文,根据配置填写报文的目的地址以及目的UDP端口号,然后发送报文。IP流的统计递交给IPFIX的时间周期,由IP流模块的inactive、active定时器确定。inactive定时器规定了一条流失

效的时间,当一条已经存在的流在inactive时间内都没有报文命中,该流记录就失效。active定时器规定了一条流最长存活时间,当一条流在active时间内一直都有报文命中,该流也需要被删除。流记录的inactive定时器或者active定时器超时后,都会将该流的统计信息递交给IPFIX。

1.3 3.3 IPFIX报文格式

Exporter收集的网络流的统计信息封装在UDP报文中,发送给Collector,IPFIX报文遵照NetFlow v9格式,其报文的构成如下图所示,由报文头(Packet Header)和流组(FlowSet)构成。一个UDP报文可以携带多条流的统计信息。

图 3-2 IPFIX报文构成

(一)报文头(Packet Header)

报文头(Packet Header)的结构如下图所示,主要包括以下几个部分: ? ? ? ? ? ?

01531Version:ver 9格式,0x0009。 Count:报文中携带的记录的数量。

System Uptime:设备运行的时间,以ms为单位。 UNIX Seconds:从UTC时间1700 0时至现在的秒数。 Sequence:报文序列号,依次累加。 Source ID:取值为0。

VersionCountSystem UptimeUNIX SecondsPackage SequenceSource ID

图 错误!文档中没有指定样式的文字。-3 IPFIX Packet Header格式

(二)流组(FlowSet)

IPFIX报文第二部分为流组(FlowSet),一个IPFIX报文可以有多个FlowSet。FlowSet主要包括两种,分别是模板流组合(Template FlowSet)以及数据流组合(Data FlowSet)。Template FlowSet由多个模板记录(Template Record)组成,每个模板记录都定义了一个模板,模板用来规定对应的数据记录如何解释,IPFIX服务器只能根据收到的模板来解释后续收到的数据。模板分为流记录模

板以及选项记录模板两种。流记录模板定义如何解释流记录,选项记录模板定义如何解释选项记录。

流记录模板组成的FlowSet格式如下:

0FlowSet ID = 0LengthTemplate IDField CountField 1 Field 1 TypeField 2 LengthField 2 TypeLength......Template ID......15Template record

图 错误!文档中没有指定样式的文字。-4 流模板的Template FlowSet格式

? ? ? ? ? ?

FlowSet ID:流记录模板组成的FlowSet使用ID 0。 Length:FlowSet的总长度。

Template ID:用于数据与模板的对应。从256开始。 Filed Count:Template record的字段数。 Filed Type:字段类型,用数字表示。

Filed Length:Filed Type定义的字段的字节数。

表3-1 IPFIX模板使用的字段类型

IPFIX模板使用的字段类型,如表3-1所示:

类型值 42 41 1 2 21 22 8 12 10 14 英文名 TOTAL_FLOWS_EXP TOTAL_PKTS_EXP IN_BYTES IN_PKTS LAST_SWITCHED FIRST_SWITCHED IPV4_SRC_ADDR IPV4_DST_ADDR INPUT_SNMP OUTPUT_SNMP 中文含义 历史导出的流记录总数 历史导出的IPFIX报文总数 输入字节数 输入报文数 流最近被报文命中的时间 流被创建的时间 IP源地址 IP目的地址 入接口的MIB索引 出接口的MIB索引 15 7 11 4 5 9 13 6 32 16 17 18 23 24

IPV4_NEXT_HOP L4_SRC_PORT L4_DST_PORT PROTOCOL SRC_TOS SRC_MASK DST_MASK TCP_FLAGS ICMP_TYPE SRC_AS DST_AS BGP_IPV4_NEXT_HOP OUT_BYTES OUT_PKTS 下一跳地址 源端口号 目的端口号 协议 源TOS 源路由掩码长度 目的路由掩码长度 TCP标志 ICMP类型 源路由的BGP自治系统 目的路由的BGP自治系统 BGP路由网关 输出字节数 输出报文数 选项记录模板组成的FlowSet格式如下:

015FlowSet ID = 1LengthTemplate IDOption Scope LengthOption LengthScope Field 1 TypeScope Field 1 Length......Scope Field N LengthOption Field 1 TypeOption Field 1 Length......Option Field N LengthPaddingTemplate RecordScopeOption

图 错误!文档中没有指定样式的文字。-5 选项模板的FlowSet格式

? ? ? ?

FlowSet ID:选项模板组成的FlowSet使用ID 1。 Length:FlowSet的长度,包括Padding长度。 Template ID:用于数据与模板的对应,大于255。 Option Scope Length:Scope字段的字节数。

? ? ? ? ? ?

Options Length:Option字段的字节数。

Scope Field Type:IPFIX进程相关数据引用的Scope字段类型。0x1:系统;0x2:接口;0x3:线卡;0x4:IPFIX cache;0x5:Template。 Scope Field Length:Scope字段的长度。

Option Filed Type:Option数据类型,使用的数值同流模板中介绍的Filed Type数值。

Option Filed Length:Option数据的长度(字节数)。 Padding:用于使FlowSet按32位对齐。

Data FlowSet

Data FlowSet记录了流统计信息。一个Data FlowSet中可以放置多条流信息,一个IPFIX数据报文中也可以放置多个Data FlowSet。Data FlowSet的结构如下图所示。

015FlowSet ID = Template IDLengthRecord 1- Field 1 valueRecord 1- Field 2 value......Record 1- Field N valueRecord 2- Field 1 valueRecord 2- Field 2 value......PaddingRecord 1Record 2

图 错误!文档中没有指定样式的文字。-6 Data FlowSet的报文结构

FlowSet ID:数据流集合的FlowSet ID是对应模板的模板ID,IPFIX根据这种对应关系才能正确解释数据信息。

Length:FlowSet的长度。

Padding:用于使FlowSet的长度按照32位圆整。Length的长度包含Padding。

IPFIX(IP Flow Information Export)该技术的优势是十分明显的,理想情况下,如果让网络中的每台网络设备均发出流量信息,那么就可以轻松解决流量的分布问题,同时解决流量的构成问题。

? ? ? ? ? ?

Options Length:Option字段的字节数。

Scope Field Type:IPFIX进程相关数据引用的Scope字段类型。0x1:系统;0x2:接口;0x3:线卡;0x4:IPFIX cache;0x5:Template。 Scope Field Length:Scope字段的长度。

Option Filed Type:Option数据类型,使用的数值同流模板中介绍的Filed Type数值。

Option Filed Length:Option数据的长度(字节数)。 Padding:用于使FlowSet按32位对齐。

Data FlowSet

Data FlowSet记录了流统计信息。一个Data FlowSet中可以放置多条流信息,一个IPFIX数据报文中也可以放置多个Data FlowSet。Data FlowSet的结构如下图所示。

015FlowSet ID = Template IDLengthRecord 1- Field 1 valueRecord 1- Field 2 value......Record 1- Field N valueRecord 2- Field 1 valueRecord 2- Field 2 value......PaddingRecord 1Record 2

图 错误!文档中没有指定样式的文字。-6 Data FlowSet的报文结构

FlowSet ID:数据流集合的FlowSet ID是对应模板的模板ID,IPFIX根据这种对应关系才能正确解释数据信息。

Length:FlowSet的长度。

Padding:用于使FlowSet的长度按照32位圆整。Length的长度包含Padding。

IPFIX(IP Flow Information Export)该技术的优势是十分明显的,理想情况下,如果让网络中的每台网络设备均发出流量信息,那么就可以轻松解决流量的分布问题,同时解决流量的构成问题。

本文来源:https://www.bwwdw.com/article/2oy8.html

Top