fengyv

http://www.cnblogs.com/fengyv

导航

IPFIX学习笔记

Posted on 2012-09-03 10:58  fengyv  阅读(8014)  评论(1编辑  收藏  举报
1.1 IPFIX技术概况

     基于流的技术被越来越广泛地用于刻画网络传输流,它在设置QoS 策略、部署应用和进行容量规划上都有着巨大的价值。但是,网络管理员却缺少一种输出传输流的标准格式。
IPFIX 全称为IP Flow Information Export,即IP数据流信息输出,它是由IETF
公布的用于网络中的流信息测量的标准协议。该协议主要在于:
l 统一 IP数据流的统计、输出标准,这使得网络管理员很容易地提取和查看存储在这些网络设备中的重要流量统计信息。
l 输出格式具有较强的可扩展性,因此如果流量监控的要求发生改变,网络管理员也可通过修改相应配置来实现,不必升级网络设备软件或管理工具。
IPFIX 定义的格式
以Cisco Netflow Version 9数据输出格式作为基础
,可使IP流量信息从一个输出器(Exporter)传送到收集器(Collector)。因为IPFIX 是一种针对数据流特征分析、基于模板的格式输出的协议,因此具有很强的可扩展性,对于不同的需求都可以定义不同的数据格式。
为了较完整的输出数据,IPFIX 缺省使用网络设备的
七个关键域表示每股网络流量

l 
源 IP 地址
l 
目的IP 地址
l 
TCP/UDP 源端口
l 
TCP/UDP 目的端口
l 
三层协议类型
l 
服务类型(Type-of-service)字节
l 
输入逻辑接口
如果不同的IP 报文中所有的七个关键域都匹配,那么这些IP 报文都将被视为属于同一股流量。通过记录网络中这些流量的特征,如流量持续时间、流量中报文平均长度等, 我们可以了解到当前网络的应用情况,并根据这些信息对网络进行优化,安全检测,流量计费。

1.2 IPFIX技术组网
IPFIX 是基于“流”的概念,一个流是指,来自相同的子接口,有相同的源和目的IP 地址,协议类型,相同的源和目的协议端口号,以及相同ToS 的报文,通常为5 元组。IPFIX 会记录这个流的统计信息,包括:时间戳,报文数,总的字节数。IPFIX 主要包括三个设备Export、Collector、Analyzer,三个设备之间的关系如下。
  l
 Export
对网络流进行分析处理,提取符合条件的流统计信息,并将统计信息输出Collector ;
l
 Collector 
负责解析Export的数据报文,把统计数据收集到数据库中,可供Analyser 进行解析;
  l
 Analyser 从Collector 中提取统计数据,进行后续处理,为各种业务提供依据,以图形界面的形式显示出来。
          
1.3 IPFIX的报文格式
 
     IPFIX的报文格式与NetFlow v9的基本相似。
     Exporter收集的网络流的统计信息封装在UDP报文中,发送给Collector。一个UDP报文可以携带多条流的统计信息。IPFIX数据按照NetFlow v9(RFC3954)格式进行组装。
  •  

                      图 31IPFIX报文构成

    IPFIX数据由报文头(Packet Header)以及流组(FlowSet)组成。
    1.3.1 Packet Header

                 32 IPFIX Packet Header格式

    Version:0x0009。

    Count:报文中携带的记录的数量。

    System Uptime:设备运行的时间,以ms为单位。

    UNIX Seconds:从UTC时间1700 0时至现在的秒数。

    Sequence:报文序列号,依次累加。

    Source ID:取值为0。

    1.3.2 FlowSet
    FlowSet有两种:模板流组合(Template FlowSet)以及数据流组合(Data FlowSet)。一个IPFIX报文可以有多个FlowSet。
     
    1.3.2.1 Template FlowSet
    Template FlowSet由多个模板记录(Template Record)组成。每个模板记录都定义了一个模板。模板用来规定对应的数据记录如何解释,Collector只能根据收到的模板来解释后续收到的数据。

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

               图 33 流模板的格式

    FlowSet ID:流模板ID固定为0。

    Length:FlowSet的总长度。

    Template ID:用于数据与模板的对应。从256开始。

    Filed Count:Template record的字段数。

    Filed Type:字段类型,用数字表示。

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

    IPFIX模板使用的字段类型定义如下。

    类型值

    英文名

    中文含义

    42

    TOTAL_FLOWS_EXP

    历史导出的流记录总数

    41

    TOTAL_PKTS_EXP

    历史导出的IPFIX报文总数

    1

    IN_BYTES

    输入字节数

    2

    IN_PKTS

    输入报文数

    21

    LAST_SWITCHED

    流最近被报文命中的时间

    22

    FIRST_SWITCHED

    流被创建的时间

    8

    IPV4_SRC_ADDR

    IP源地址

    12

    IPV4_DST_ADDR

    IP目的地址

    10

    INPUT_SNMP

    入端口的MIB索引

    14

    OUTPUT_SNMP

    出端口的MIB索引

    7

    L4_SRC_PORT

    源端口号

    11

    L4_DST_PORT

    目的端口号

    4

    PROTOCOL

    协议

    5

    SRC_TOS

    TOS

    6

    TCP_FLAGS

    TCP标志

    32

    ICMP_TYPE

    ICMP类型

    23

    OUT_BYTES

    输出字节数

    24

    OUT_PKTS

    输出报文数

     31 模板字段类型

    1.3.2.2 Data FlowSet

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

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

    Length:FlowSet的长度。

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

1.4 IPFIX技术应用

     l Usage-based Accounting(基于使用流量的计费)
     l Traffic Profiling、Traffic Engineering:流量概图、流量工程 
     l Attack/Intrusion Detection:攻击/入侵检测 
     l QoS Monitoring:网络服务质量的监控