基於流的技術被越來越廣泛地用於刻畫網絡傳輸流,它在設置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 報文都將被視為屬於同一股流量。通過記錄網絡中這些流量的特征,如流量持續時間、流量中報文平均長度等, 我們可以了解到當前網絡的應用情況,並根據這些信息對網絡進行優化,安全檢測,流量計費。
l Export 對網絡流進行分析處理,提取符合條件的流統計信息,並將統計信息輸出Collector ;
l Collector 負責解析Export的數據報文,把統計數據收集到數據庫中,可供Analyser 進行解析;
l Analyser 從Collector 中提取統計數據,進行后續處理,為各種業務提供依據,以圖形界面的形式顯示出來。

-
圖 3‑1IPFIX報文構成
IPFIX數據由報文頭(Packet Header)以及流組(FlowSet)組成。
1.3.1 Packet Header3‑2 IPFIX Packet Header格式
Version:0x0009。
Count:報文中攜帶的記錄的數量。
System Uptime:設備運行的時間,以ms為單位。
UNIX Seconds:從UTC時間1700 0時至現在的秒數。
Sequence:報文序列號,依次累加。
Source ID:取值為0。
1.3.2 FlowSetFlowSet有兩種:模板流組合(Template FlowSet)以及數據流組合(Data FlowSet)。一個IPFIX報文可以有多個FlowSet。1.3.2.1 Template FlowSetTemplate FlowSet由多個模板記錄(Template Record)組成。每個模板記錄都定義了一個模板。模板用來規定對應的數據記錄如何解釋,Collector只能根據收到的模板來解釋后續收到的數據。流記錄模板組成的FlowSet格式如下。
圖 3‑3 流模板的格式
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
輸出報文數
表 3‑1 模板字段類型
1.3.2.2 Data FlowSetData FlowSet記錄了流統計信息。一個Data FlowSet中可以放置多條流信息,一個IPFIX數據報文中也可以放置多個Data FlowSet。
圖 3‑4 Data FlowSet的報文結構FlowSet ID:數據流集合的FlowSet ID是對應模板的模板ID,IPFIX根據這種對應關系才能正確解釋數據信息。
Length:FlowSet的長度。
Padding:用於使FlowSet的長度按照32位圓整。Length的長度包含Padding。
l Usage-based Accounting(基於使用流量的計費)