摘 要: 流量分析技術是網(wǎng)絡管理的重要組成部分,為網(wǎng)絡管理提供數(shù)據(jù)支撐。描述了基于流的IP流導出標準IPFIX(IP Flow Information eXport)的工作原理,分析了IPFIX流形成與處理的整個過程,并對流量分析系統(tǒng)結構進行研究設計。針對分析器可能產(chǎn)生的性能瓶頸問題,提出兩點解決方案,并描述了收集器負載均衡的實現(xiàn)方法。
關鍵詞: 流量分析;分析器;收集器;負載均衡
網(wǎng)絡管理技術是聯(lián)網(wǎng)系統(tǒng)中一個重要組成部分。它為網(wǎng)絡高效穩(wěn)定地運行提供了重要保證。流量分析技術作為網(wǎng)絡管理的重要組成部分,其發(fā)展也十分迅速。
流量數(shù)據(jù)的收集和分析有多種手段,常用的有基于SNMP協(xié)議的接口統(tǒng)計方式、RMON方式、數(shù)據(jù)流量探針等[1-2],這些方式各有特色,適用于網(wǎng)絡中不同環(huán)境的流量分析工作。但由于其統(tǒng)計流量方式不靈活或成本高等原因,無法滿足對網(wǎng)絡進行更細致管理的要求,需要一種新技術來更好地支持網(wǎng)絡流量統(tǒng)計與分析。于是,專門用于網(wǎng)絡流數(shù)據(jù)收集的協(xié)議產(chǎn)生了,如NetFlow、SFlow、NetStream等基于Flow的技術,由于其實施成本低、操作靈活、擴展性好,并且不需要額外硬件支持的顯著特點,使得這些技術很快得到廣泛應用,特別是思科的NetFlow協(xié)議。
然而,在實際應用中,由于各個大廠商各自擁有自己的Flow格式和流量數(shù)據(jù)輸出系統(tǒng),使得彼此之間缺乏兼容性,無法滿足大規(guī)模異構網(wǎng)絡中應用的需要。因此,無論是在學術界還是工業(yè)界,都有必要建立一套輸出網(wǎng)絡流信息的標準。于是IETF在應用廣泛的NetFlow V9[3]的基礎上制定了IPFIX(IP Flow Information eXport)技術標準。IPFIX在NetFlow的基礎上對安全、數(shù)據(jù)存儲等方面進行了改進與擴充。提供了流量分析系統(tǒng)與網(wǎng)絡設備之間數(shù)據(jù)采集與傳輸?shù)囊?guī)范,定義了數(shù)據(jù)交互的標準格式,保證了對采集目標網(wǎng)元設備良好的兼容性。
1 IPFIX技術原理
1.1概念
觀察點[3]:指網(wǎng)絡中用來觀察和獲取IP數(shù)據(jù)包的位置,例如以太網(wǎng)LAN中的一個或一組接口設備(路由器或交換機等)。
流(Flow):在一定時間間隔內(nèi),通過一個觀察點并具有相同數(shù)據(jù)包屬性和操作動作的數(shù)據(jù)包的集合。流的屬性包括測量屬性(總的字節(jié)數(shù)、總包數(shù)等)與特征屬性(IP、端口等)。一個數(shù)據(jù)包被歸于某流,當且僅當其完全滿足該流的所有特征屬性(鍵值)。
模板(Template):定義Flow記錄中各個屬性字段的結構和語義。收集進程根據(jù)模板來解析數(shù)據(jù)流,當需要支持某種新格式數(shù)據(jù)流時,只需變換模板,不需要對程序進行修改,使得IPFIX具備良好的可擴展性。
可選模板:可選流記錄提供收集器需要的一些額外信息,如流的鍵值、采樣、聚合策略等??蛇x模板定義了可選流記錄中的各個屬性字段的結構和語義。
1.2 工作原理
IPFIX以一種靈活的、可擴展的輸出流格式為用戶提供更加細致的流量信息。下面從Flow記錄的形成、導出、收集的過程來詳細分析IPFIX的工作原理[4],如圖1所示。
首先測量進程(Meter),從觀測點觀測到數(shù)據(jù)包(Packet),解析數(shù)據(jù)包首部、添加時間戳,為了減少傳輸流的數(shù)量,或只產(chǎn)生滿足某種需要的流記錄,可以采用采樣與聚合技術,采樣與聚合的規(guī)則要明確定義,并由導出進程以可選模板與可選信息記錄的形式發(fā)送到收集器。不能將使用不同規(guī)則的聚合策略采樣得到的數(shù)據(jù)混在一起,當規(guī)則有變化時,應立即同步處理。測量進程主要責任是產(chǎn)生新的流記錄、更新或刪除舊的流記錄、定義并計算流的壽命、計算統(tǒng)計值。在此過程中發(fā)生超時、過載等任何異常都會記錄日志,以方便跟蹤分析。
導出進程(Exporter),產(chǎn)生控制信息(模板、可選模板),將控制信息與數(shù)據(jù)流信息一同裝載到IPFIX消息(Message)中,發(fā)送到收集進程。收集進程根據(jù)控制信息完成相應的數(shù)據(jù)流的解析。IPFIX協(xié)議中,導出進程只導出老化后的流,老化規(guī)則由測量進程確定,一般滿足下列條件之一的流被視為老化:
(1)該類型數(shù)據(jù)流傳送完畢;
(2)在一個時間段內(nèi)某個數(shù)據(jù)流處于不活躍的狀態(tài),這個時間段可以由輸出器進行配置;
(3)對于一個長時間活躍的數(shù)據(jù)流,收集器將按照規(guī)則輸出數(shù)據(jù)流記錄,并強制將該數(shù)據(jù)流老化,這個“時間段”應該在輸出器上進行配置;
(4)在導出進程內(nèi)部條件受限的情況下,數(shù)據(jù)流也會被強制進行老化。例如:計數(shù)器歸零或內(nèi)存不足。
為了安全考慮,可以將信息進一步編碼加密。同樣,導出進程也對錯誤進行記錄日志,并統(tǒng)計丟包個數(shù)等數(shù)據(jù)。
導出進程可以將同樣的數(shù)據(jù)發(fā)送到多個收集進程,多個收集進程將這些數(shù)據(jù)匯總,匯總時要注意處理好重復的數(shù)據(jù)。這種冗余數(shù)據(jù)的做法增強了流數(shù)據(jù)的完整性,但加大了負載,只有在對數(shù)據(jù)丟失相當敏感的應用中可以采用。
導出進程向不同的收集進程傳送數(shù)據(jù)可以采用不同的協(xié)議,同NetFlow默認使用UDP不同,IPFIX默認的是SCTP[5]。當收集器收到一個不正常的IPFIX消息時,會話會被重新發(fā)起,并丟棄本次會話的所有模板、停止解析、登記日志。相同的模板與可選模板只傳送一次。收集器必須存儲下來。如果收集進程先收到數(shù)據(jù)記錄,則要等待模板,等待時間是可配置的。IPFIX消息的序列號在首部,它隨著IPFIX消息中的數(shù)據(jù)流記錄的增加而增加。通過這個序列號,收集進程可以知曉是否有亂序的、丟失的或重復的數(shù)據(jù),以跟蹤處理。如NetFlow一樣,IPFIX的傳輸協(xié)議也可以使用UDP或TCP,使用不同的協(xié)議,導出進程與收集進程間的傳輸過程管理也不一樣,可參考RFC5101。
2 流量分析系統(tǒng)結構
根據(jù)IPFIX的工作原理可知,其包含三個重要組成部分,即測量進程、導出進程、收集進程。參照其各自的功能,將流量分析系統(tǒng)按功能分成:探測器、收集器、分析器三個主要部分進行分布式部署(如圖2)。其中,分析器接收至少一個收集器的數(shù)據(jù),收集器接收至少一個探測器的數(shù)據(jù),探測器可同時向多個收集器發(fā)送數(shù)據(jù)。
(1)探測器的工作對應于圖1中的測量進程與導出進程部分,負責IPFIX流的形成與處理過程,最終形成IPFIX消息發(fā)送給收集器。它主動采集數(shù)據(jù)包,透明地穿越網(wǎng)絡結構,不會修改任何報文。除非進行了配置,否則它不會放過任何報文。工作效率非常高,其輸出數(shù)據(jù)的總量大約是網(wǎng)絡設備之間交換量的1.5%[6];
(2)收集器對應圖1中的收集進程,具體工作細節(jié)見圖3,它接受IPFIX消息,解析并形成壓縮文件,定期將文件傳送到分析器;
(3)分析器負責計算與統(tǒng)計分析,如圖3所示,它接收IPFIX文件,并將信息存儲到數(shù)據(jù)庫中,按用戶的需求,對數(shù)據(jù)庫中的數(shù)據(jù)進行計算,形成報表呈現(xiàn)給用戶。
總之,流量分析系統(tǒng)的工作是把網(wǎng)絡中各種應用數(shù)據(jù)包進行清洗、篩選、標準化處理,形成屬性明確的流,再對這海量的流記錄進行數(shù)據(jù)挖掘的過程。挖掘出用戶關注的信息,以清晰直觀的方式展現(xiàn)給用戶,為用戶對網(wǎng)絡管理或其他應用分析提供可靠的數(shù)據(jù)支持。
3 結構分析與優(yōu)化
如圖2的系統(tǒng)結構,實踐中發(fā)現(xiàn),流記錄的海量數(shù)據(jù)全部放到分析器進行計算分析,分析器處理能力有限,產(chǎn)生了瓶頸,影響了整個系統(tǒng)的性能。
本文給出了兩點改進方案:計算下移和收集器負載均衡。
(1)計算下移
收集器只是簡單地將數(shù)據(jù)解析并存儲,把所有的計算任務都交給分析器。經(jīng)常出現(xiàn)的情況是收集器資源利用不充分,分析器過載。故考慮在收集器將數(shù)據(jù)發(fā)送給分析器之前,需對數(shù)據(jù)進行一些預處理工作。這樣就能緩解分析器的工作負載。如主機流量排行、應用流匯總數(shù)據(jù),這些常用的分析結果可以在收集器上進行排序與計算后,再將數(shù)據(jù)傳送給分析器,必要時,可以將預計算的結果存放在另一文件中與IPFIX文件一同上傳分析器。分析器從這一文件直接得到預計算后的數(shù)據(jù),而不必再對元數(shù)據(jù)進行計算,從而減少了分析器的負載,提高了分析效率。
(2)收集器負載均衡
多個收集器同時工作時,有的收集器可能很忙碌,甚至達到性能極限,而此時,其他收集器則處于空閑狀態(tài),形成了資源的浪費,降低了工作效率。因此對收集器進行負載均衡是必要的,尤其對于計算下移的系統(tǒng)。負載均衡,即根據(jù)收集器的幾個重要的性能指標來衡量收集器的資源使用情況,并根據(jù)使用情況,動態(tài)調度各收集器的工作任務。
本系統(tǒng)在分析器中設計了一個均衡器來實現(xiàn)均衡調度。均衡器維護一張收集器資源使用情況實時狀態(tài)表。具體采用基于負反饋機制的動態(tài)負載均衡算法[7],該算法考慮每個收集器的實時負載情況,不斷調整任務的分配比例,避免有些收集器超載時依然收到大量IPFIX消息,從而提高系統(tǒng)整體工作效率,使整個系統(tǒng)成為一個智能的有機體。在系統(tǒng)內(nèi),分析器承擔管理角色,其均衡器負責監(jiān)聽各個收集器的負載信息,收集器定時向均衡器報告自身的負載狀況。分析器根據(jù)均衡器的實時信息,對各個收集器的工作量進行調整。對于超載的收集器,削減其工作量,并取消其對IPFIX消息的預處理工作。
收集器主要工作是解析IPFIX消息,以觀測點為單位,將解析后的數(shù)據(jù)寫入文件,并將文件周期性地發(fā)送給分析器,發(fā)送成功的文件做本地刪除。針對其特點與實際經(jīng)驗,可取系數(shù){0.4,0.4,0.2}。若當前的系數(shù)不能很好地反映實際應用的負載情況,可以對系數(shù)及時地進行修正,直到找到貼近當前應用的一組系數(shù)。
關于計算L(Ci)的周期設置,雖然較短的周期可以更準確及時地反映各個收集器的負載情況,但是頻繁的計算會給均衡器和收集器帶來負擔,也增加了不必要的網(wǎng)絡負荷。另外,頻繁計算會導致均衡器反映出的負載信息出現(xiàn)抖動,均衡器無法準確捕捉各收集器實際的負載變化趨勢。雖然可用數(shù)據(jù)擬合等技術來處理數(shù)據(jù),使負載信息表現(xiàn)為平滑曲線,但如此額外增加了收集器的負擔,故應避開抖動,適當增長計算周期。
每個參數(shù)都設置有閾值,如果某收集器的某一性能指標超過閾值,則立即減少該收集器的工作量,即應將向該收集器發(fā)送的IPFIX消息發(fā)送到其他空閑的收集器。如果系統(tǒng)中所有的收集器長期處于過載狀態(tài),則需要向系統(tǒng)中添加收集器,或調整采樣與聚合策略來減少數(shù)據(jù)流。若所有收集器的使用率長期處于低狀態(tài),則可以削減收集器,減少不必要的維護。
IPFIX作為IP流量導出的標準,繼承并完善了NetFlow。它提供了多種字段類型,可針對具體的應用自定義流的鍵值、模版、采樣、聚合機制以及傳輸方式、編碼規(guī)則等,能夠詳細描述流量的各類特征,為快速、準確地進行流量分析提供了堅實的數(shù)據(jù)基礎?;谀0宓撵`活數(shù)據(jù)格式,使得其具備良好的可擴展性。本文根據(jù)IPFIX的工作原理,設計出流量分析系統(tǒng)的結構,并分析了可能出現(xiàn)的性能瓶頸,提出了兩種解決此瓶頸的方案。隨著網(wǎng)絡應用的廣泛與復雜,對流量分析的工作要求會進一步增高,需要更加高效合理的系統(tǒng)結構, 如分析器分布式部署,并行分析將會成為未來研究的焦點。
參考文獻
[1] 王珊, 陳松,周明天.網(wǎng)絡流量分析系統(tǒng)的設計與實現(xiàn)[J]. 計算機工程與應用, 2009,45(10):86-88.
[2] 李興國,費玲玲.基于NetFlow的流量分析技術研究[J]. 微計算機信息, 2008(5-3):198-200.
[3] QUITTEK J, ZSEBY T, CLASIE B, et al. Requirements for IP flow information export(IPFIX)[EB/OL]. RFC3917, 2004(10).
[4] CLAISE B E. Cisco systems NetFlow services export version 9[EB/OL]. RFC3954, 2004(10).
[5] CLAISE B. Specification of the IP flow information export(IPFIX) protocol for the exchange of IP traffic flow information[EB/OL]. RFC5101, 2008(1).
[6] CLAISE B, WOLTER R. 網(wǎng)絡管理:計費與性能管理策略[M].北京:人民郵電出版社, 2009.
[7] 陳勇. 一種高效的分布式反饋流量負載均衡算法[J]. 計算機工程, 2009,35(2):198-102.