《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > IPFIX網(wǎng)絡(luò)流量分析技術(shù)研究與系統(tǒng)設(shè)計(jì)
IPFIX網(wǎng)絡(luò)流量分析技術(shù)研究與系統(tǒng)設(shè)計(jì)
來源:微型機(jī)與應(yīng)用2011年第4期
劉克難, 趙慧娟, 魏俊超
(西南交通大學(xué) 信息科學(xué)與技術(shù)學(xué)院,四川 成都610031)
摘要: 流量分析技術(shù)是網(wǎng)絡(luò)管理的重要組成部分,為網(wǎng)絡(luò)管理提供數(shù)據(jù)支撐。描述了基于流的IP流導(dǎo)出標(biāo)準(zhǔn)IPFIX(IP Flow Information eXport)的工作原理,分析了IPFIX流形成與處理的整個(gè)過程,并對(duì)流量分析系統(tǒng)結(jié)構(gòu)進(jìn)行研究設(shè)計(jì)。針對(duì)分析器可能產(chǎn)生的性能瓶頸問題,提出兩點(diǎn)解決方案,并描述了收集器負(fù)載均衡的實(shí)現(xiàn)方法。
Abstract:
Key words :

摘  要: 流量分析技術(shù)是網(wǎng)絡(luò)管理的重要組成部分,為網(wǎng)絡(luò)管理提供數(shù)據(jù)支撐。描述了基于流的IP流導(dǎo)出標(biāo)準(zhǔn)IPFIX(IP Flow Information eXport)的工作原理,分析了IPFIX流形成與處理的整個(gè)過程,并對(duì)流量分析系統(tǒng)結(jié)構(gòu)進(jìn)行研究設(shè)計(jì)。針對(duì)分析器可能產(chǎn)生的性能瓶頸問題,提出兩點(diǎn)解決方案,并描述了收集器負(fù)載均衡的實(shí)現(xiàn)方法。
關(guān)鍵詞: 流量分析;分析器;收集器;負(fù)載均衡

    網(wǎng)絡(luò)管理技術(shù)是聯(lián)網(wǎng)系統(tǒng)中一個(gè)重要組成部分。它為網(wǎng)絡(luò)高效穩(wěn)定地運(yùn)行提供了重要保證。流量分析技術(shù)作為網(wǎng)絡(luò)管理的重要組成部分,其發(fā)展也十分迅速。
    流量數(shù)據(jù)的收集和分析有多種手段,常用的有基于SNMP協(xié)議的接口統(tǒng)計(jì)方式、RMON方式、數(shù)據(jù)流量探針等[1-2],這些方式各有特色,適用于網(wǎng)絡(luò)中不同環(huán)境的流量分析工作。但由于其統(tǒng)計(jì)流量方式不靈活或成本高等原因,無法滿足對(duì)網(wǎng)絡(luò)進(jìn)行更細(xì)致管理的要求,需要一種新技術(shù)來更好地支持網(wǎng)絡(luò)流量統(tǒng)計(jì)與分析。于是,專門用于網(wǎng)絡(luò)流數(shù)據(jù)收集的協(xié)議產(chǎn)生了,如NetFlow、SFlow、NetStream等基于Flow的技術(shù),由于其實(shí)施成本低、操作靈活、擴(kuò)展性好,并且不需要額外硬件支持的顯著特點(diǎn),使得這些技術(shù)很快得到廣泛應(yīng)用,特別是思科的NetFlow協(xié)議。
    然而,在實(shí)際應(yīng)用中,由于各個(gè)大廠商各自擁有自己的Flow格式和流量數(shù)據(jù)輸出系統(tǒng),使得彼此之間缺乏兼容性,無法滿足大規(guī)模異構(gòu)網(wǎng)絡(luò)中應(yīng)用的需要。因此,無論是在學(xué)術(shù)界還是工業(yè)界,都有必要建立一套輸出網(wǎng)絡(luò)流信息的標(biāo)準(zhǔn)。于是IETF在應(yīng)用廣泛的NetFlow V9[3]的基礎(chǔ)上制定了IPFIX(IP Flow Information eXport)技術(shù)標(biāo)準(zhǔn)。IPFIX在NetFlow的基礎(chǔ)上對(duì)安全、數(shù)據(jù)存儲(chǔ)等方面進(jìn)行了改進(jìn)與擴(kuò)充。提供了流量分析系統(tǒng)與網(wǎng)絡(luò)設(shè)備之間數(shù)據(jù)采集與傳輸?shù)囊?guī)范,定義了數(shù)據(jù)交互的標(biāo)準(zhǔn)格式,保證了對(duì)采集目標(biāo)網(wǎng)元設(shè)備良好的兼容性。
1 IPFIX技術(shù)原理
1.1概念

    觀察點(diǎn)[3]:指網(wǎng)絡(luò)中用來觀察和獲取IP數(shù)據(jù)包的位置,例如以太網(wǎng)LAN中的一個(gè)或一組接口設(shè)備(路由器或交換機(jī)等)。
 流(Flow):在一定時(shí)間間隔內(nèi),通過一個(gè)觀察點(diǎn)并具有相同數(shù)據(jù)包屬性和操作動(dòng)作的數(shù)據(jù)包的集合。流的屬性包括測量屬性(總的字節(jié)數(shù)、總包數(shù)等)與特征屬性(IP、端口等)。一個(gè)數(shù)據(jù)包被歸于某流,當(dāng)且僅當(dāng)其完全滿足該流的所有特征屬性(鍵值)。
 模板(Template):定義Flow記錄中各個(gè)屬性字段的結(jié)構(gòu)和語義。收集進(jìn)程根據(jù)模板來解析數(shù)據(jù)流,當(dāng)需要支持某種新格式數(shù)據(jù)流時(shí),只需變換模板,不需要對(duì)程序進(jìn)行修改,使得IPFIX具備良好的可擴(kuò)展性。
 可選模板:可選流記錄提供收集器需要的一些額外信息,如流的鍵值、采樣、聚合策略等??蛇x模板定義了可選流記錄中的各個(gè)屬性字段的結(jié)構(gòu)和語義。
1.2 工作原理
 IPFIX以一種靈活的、可擴(kuò)展的輸出流格式為用戶提供更加細(xì)致的流量信息。下面從Flow記錄的形成、導(dǎo)出、收集的過程來詳細(xì)分析IPFIX的工作原理[4],如圖1所示。

    首先測量進(jìn)程(Meter),從觀測點(diǎn)觀測到數(shù)據(jù)包(Packet),解析數(shù)據(jù)包首部、添加時(shí)間戳,為了減少傳輸流的數(shù)量,或只產(chǎn)生滿足某種需要的流記錄,可以采用采樣與聚合技術(shù),采樣與聚合的規(guī)則要明確定義,并由導(dǎo)出進(jìn)程以可選模板與可選信息記錄的形式發(fā)送到收集器。不能將使用不同規(guī)則的聚合策略采樣得到的數(shù)據(jù)混在一起,當(dāng)規(guī)則有變化時(shí),應(yīng)立即同步處理。測量進(jìn)程主要責(zé)任是產(chǎn)生新的流記錄、更新或刪除舊的流記錄、定義并計(jì)算流的壽命、計(jì)算統(tǒng)計(jì)值。在此過程中發(fā)生超時(shí)、過載等任何異常都會(huì)記錄日志,以方便跟蹤分析。
 導(dǎo)出進(jìn)程(Exporter),產(chǎn)生控制信息(模板、可選模板),將控制信息與數(shù)據(jù)流信息一同裝載到IPFIX消息(Message)中,發(fā)送到收集進(jìn)程。收集進(jìn)程根據(jù)控制信息完成相應(yīng)的數(shù)據(jù)流的解析。IPFIX協(xié)議中,導(dǎo)出進(jìn)程只導(dǎo)出老化后的流,老化規(guī)則由測量進(jìn)程確定,一般滿足下列條件之一的流被視為老化:
    (1)該類型數(shù)據(jù)流傳送完畢;
    (2)在一個(gè)時(shí)間段內(nèi)某個(gè)數(shù)據(jù)流處于不活躍的狀態(tài),這個(gè)時(shí)間段可以由輸出器進(jìn)行配置;
    (3)對(duì)于一個(gè)長時(shí)間活躍的數(shù)據(jù)流,收集器將按照規(guī)則輸出數(shù)據(jù)流記錄,并強(qiáng)制將該數(shù)據(jù)流老化,這個(gè)“時(shí)間段”應(yīng)該在輸出器上進(jìn)行配置;
    (4)在導(dǎo)出進(jìn)程內(nèi)部條件受限的情況下,數(shù)據(jù)流也會(huì)被強(qiáng)制進(jìn)行老化。例如:計(jì)數(shù)器歸零或內(nèi)存不足。
 為了安全考慮,可以將信息進(jìn)一步編碼加密。同樣,導(dǎo)出進(jìn)程也對(duì)錯(cuò)誤進(jìn)行記錄日志,并統(tǒng)計(jì)丟包個(gè)數(shù)等數(shù)據(jù)。
 導(dǎo)出進(jìn)程可以將同樣的數(shù)據(jù)發(fā)送到多個(gè)收集進(jìn)程,多個(gè)收集進(jìn)程將這些數(shù)據(jù)匯總,匯總時(shí)要注意處理好重復(fù)的數(shù)據(jù)。這種冗余數(shù)據(jù)的做法增強(qiáng)了流數(shù)據(jù)的完整性,但加大了負(fù)載,只有在對(duì)數(shù)據(jù)丟失相當(dāng)敏感的應(yīng)用中可以采用。
 導(dǎo)出進(jìn)程向不同的收集進(jìn)程傳送數(shù)據(jù)可以采用不同的協(xié)議,同NetFlow默認(rèn)使用UDP不同,IPFIX默認(rèn)的是SCTP[5]。當(dāng)收集器收到一個(gè)不正常的IPFIX消息時(shí),會(huì)話會(huì)被重新發(fā)起,并丟棄本次會(huì)話的所有模板、停止解析、登記日志。相同的模板與可選模板只傳送一次。收集器必須存儲(chǔ)下來。如果收集進(jìn)程先收到數(shù)據(jù)記錄,則要等待模板,等待時(shí)間是可配置的。IPFIX消息的序列號(hào)在首部,它隨著IPFIX消息中的數(shù)據(jù)流記錄的增加而增加。通過這個(gè)序列號(hào),收集進(jìn)程可以知曉是否有亂序的、丟失的或重復(fù)的數(shù)據(jù),以跟蹤處理。如NetFlow一樣,IPFIX的傳輸協(xié)議也可以使用UDP或TCP,使用不同的協(xié)議,導(dǎo)出進(jìn)程與收集進(jìn)程間的傳輸過程管理也不一樣,可參考RFC5101。
2 流量分析系統(tǒng)結(jié)構(gòu)
 根據(jù)IPFIX的工作原理可知,其包含三個(gè)重要組成部分,即測量進(jìn)程、導(dǎo)出進(jìn)程、收集進(jìn)程。參照其各自的功能,將流量分析系統(tǒng)按功能分成:探測器、收集器、分析器三個(gè)主要部分進(jìn)行分布式部署(如圖2)。其中,分析器接收至少一個(gè)收集器的數(shù)據(jù),收集器接收至少一個(gè)探測器的數(shù)據(jù),探測器可同時(shí)向多個(gè)收集器發(fā)送數(shù)據(jù)。

    (1)探測器的工作對(duì)應(yīng)于圖1中的測量進(jìn)程與導(dǎo)出進(jìn)程部分,負(fù)責(zé)IPFIX流的形成與處理過程,最終形成IPFIX消息發(fā)送給收集器。它主動(dòng)采集數(shù)據(jù)包,透明地穿越網(wǎng)絡(luò)結(jié)構(gòu),不會(huì)修改任何報(bào)文。除非進(jìn)行了配置,否則它不會(huì)放過任何報(bào)文。工作效率非常高,其輸出數(shù)據(jù)的總量大約是網(wǎng)絡(luò)設(shè)備之間交換量的1.5%[6];
    (2)收集器對(duì)應(yīng)圖1中的收集進(jìn)程,具體工作細(xì)節(jié)見圖3,它接受IPFIX消息,解析并形成壓縮文件,定期將文件傳送到分析器;
    (3)分析器負(fù)責(zé)計(jì)算與統(tǒng)計(jì)分析,如圖3所示,它接收IPFIX文件,并將信息存儲(chǔ)到數(shù)據(jù)庫中,按用戶的需求,對(duì)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行計(jì)算,形成報(bào)表呈現(xiàn)給用戶。

    總之,流量分析系統(tǒng)的工作是把網(wǎng)絡(luò)中各種應(yīng)用數(shù)據(jù)包進(jìn)行清洗、篩選、標(biāo)準(zhǔn)化處理,形成屬性明確的流,再對(duì)這海量的流記錄進(jìn)行數(shù)據(jù)挖掘的過程。挖掘出用戶關(guān)注的信息,以清晰直觀的方式展現(xiàn)給用戶,為用戶對(duì)網(wǎng)絡(luò)管理或其他應(yīng)用分析提供可靠的數(shù)據(jù)支持。
3 結(jié)構(gòu)分析與優(yōu)化
 如圖2的系統(tǒng)結(jié)構(gòu),實(shí)踐中發(fā)現(xiàn),流記錄的海量數(shù)據(jù)全部放到分析器進(jìn)行計(jì)算分析,分析器處理能力有限,產(chǎn)生了瓶頸,影響了整個(gè)系統(tǒng)的性能。
 本文給出了兩點(diǎn)改進(jìn)方案:計(jì)算下移和收集器負(fù)載均衡。
 (1)計(jì)算下移
 收集器只是簡單地將數(shù)據(jù)解析并存儲(chǔ),把所有的計(jì)算任務(wù)都交給分析器。經(jīng)常出現(xiàn)的情況是收集器資源利用不充分,分析器過載。故考慮在收集器將數(shù)據(jù)發(fā)送給分析器之前,需對(duì)數(shù)據(jù)進(jìn)行一些預(yù)處理工作。這樣就能緩解分析器的工作負(fù)載。如主機(jī)流量排行、應(yīng)用流匯總數(shù)據(jù),這些常用的分析結(jié)果可以在收集器上進(jìn)行排序與計(jì)算后,再將數(shù)據(jù)傳送給分析器,必要時(shí),可以將預(yù)計(jì)算的結(jié)果存放在另一文件中與IPFIX文件一同上傳分析器。分析器從這一文件直接得到預(yù)計(jì)算后的數(shù)據(jù),而不必再對(duì)元數(shù)據(jù)進(jìn)行計(jì)算,從而減少了分析器的負(fù)載,提高了分析效率。
    (2)收集器負(fù)載均衡
    多個(gè)收集器同時(shí)工作時(shí),有的收集器可能很忙碌,甚至達(dá)到性能極限,而此時(shí),其他收集器則處于空閑狀態(tài),形成了資源的浪費(fèi),降低了工作效率。因此對(duì)收集器進(jìn)行負(fù)載均衡是必要的,尤其對(duì)于計(jì)算下移的系統(tǒng)。負(fù)載均衡,即根據(jù)收集器的幾個(gè)重要的性能指標(biāo)來衡量收集器的資源使用情況,并根據(jù)使用情況,動(dòng)態(tài)調(diào)度各收集器的工作任務(wù)。
 本系統(tǒng)在分析器中設(shè)計(jì)了一個(gè)均衡器來實(shí)現(xiàn)均衡調(diào)度。均衡器維護(hù)一張收集器資源使用情況實(shí)時(shí)狀態(tài)表。具體采用基于負(fù)反饋機(jī)制的動(dòng)態(tài)負(fù)載均衡算法[7],該算法考慮每個(gè)收集器的實(shí)時(shí)負(fù)載情況,不斷調(diào)整任務(wù)的分配比例,避免有些收集器超載時(shí)依然收到大量IPFIX消息,從而提高系統(tǒng)整體工作效率,使整個(gè)系統(tǒng)成為一個(gè)智能的有機(jī)體。在系統(tǒng)內(nèi),分析器承擔(dān)管理角色,其均衡器負(fù)責(zé)監(jiān)聽各個(gè)收集器的負(fù)載信息,收集器定時(shí)向均衡器報(bào)告自身的負(fù)載狀況。分析器根據(jù)均衡器的實(shí)時(shí)信息,對(duì)各個(gè)收集器的工作量進(jìn)行調(diào)整。對(duì)于超載的收集器,削減其工作量,并取消其對(duì)IPFIX消息的預(yù)處理工作。

    收集器主要工作是解析IPFIX消息,以觀測點(diǎn)為單位,將解析后的數(shù)據(jù)寫入文件,并將文件周期性地發(fā)送給分析器,發(fā)送成功的文件做本地刪除。針對(duì)其特點(diǎn)與實(shí)際經(jīng)驗(yàn),可取系數(shù){0.4,0.4,0.2}。若當(dāng)前的系數(shù)不能很好地反映實(shí)際應(yīng)用的負(fù)載情況,可以對(duì)系數(shù)及時(shí)地進(jìn)行修正,直到找到貼近當(dāng)前應(yīng)用的一組系數(shù)。
    關(guān)于計(jì)算L(Ci)的周期設(shè)置,雖然較短的周期可以更準(zhǔn)確及時(shí)地反映各個(gè)收集器的負(fù)載情況,但是頻繁的計(jì)算會(huì)給均衡器和收集器帶來負(fù)擔(dān),也增加了不必要的網(wǎng)絡(luò)負(fù)荷。另外,頻繁計(jì)算會(huì)導(dǎo)致均衡器反映出的負(fù)載信息出現(xiàn)抖動(dòng),均衡器無法準(zhǔn)確捕捉各收集器實(shí)際的負(fù)載變化趨勢。雖然可用數(shù)據(jù)擬合等技術(shù)來處理數(shù)據(jù),使負(fù)載信息表現(xiàn)為平滑曲線,但如此額外增加了收集器的負(fù)擔(dān),故應(yīng)避開抖動(dòng),適當(dāng)增長計(jì)算周期。
    每個(gè)參數(shù)都設(shè)置有閾值,如果某收集器的某一性能指標(biāo)超過閾值,則立即減少該收集器的工作量,即應(yīng)將向該收集器發(fā)送的IPFIX消息發(fā)送到其他空閑的收集器。如果系統(tǒng)中所有的收集器長期處于過載狀態(tài),則需要向系統(tǒng)中添加收集器,或調(diào)整采樣與聚合策略來減少數(shù)據(jù)流。若所有收集器的使用率長期處于低狀態(tài),則可以削減收集器,減少不必要的維護(hù)。
    IPFIX作為IP流量導(dǎo)出的標(biāo)準(zhǔn),繼承并完善了NetFlow。它提供了多種字段類型,可針對(duì)具體的應(yīng)用自定義流的鍵值、模版、采樣、聚合機(jī)制以及傳輸方式、編碼規(guī)則等,能夠詳細(xì)描述流量的各類特征,為快速、準(zhǔn)確地進(jìn)行流量分析提供了堅(jiān)實(shí)的數(shù)據(jù)基礎(chǔ)?;谀0宓撵`活數(shù)據(jù)格式,使得其具備良好的可擴(kuò)展性。本文根據(jù)IPFIX的工作原理,設(shè)計(jì)出流量分析系統(tǒng)的結(jié)構(gòu),并分析了可能出現(xiàn)的性能瓶頸,提出了兩種解決此瓶頸的方案。隨著網(wǎng)絡(luò)應(yīng)用的廣泛與復(fù)雜,對(duì)流量分析的工作要求會(huì)進(jìn)一步增高,需要更加高效合理的系統(tǒng)結(jié)構(gòu), 如分析器分布式部署,并行分析將會(huì)成為未來研究的焦點(diǎn)。
參考文獻(xiàn)
[1] 王珊, 陳松,周明天.網(wǎng)絡(luò)流量分析系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 計(jì)算機(jī)工程與應(yīng)用, 2009,45(10):86-88.
[2] 李興國,費(fèi)玲玲.基于NetFlow的流量分析技術(shù)研究[J]. 微計(jì)算機(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)絡(luò)管理:計(jì)費(fèi)與性能管理策略[M].北京:人民郵電出版社, 2009.
[7] 陳勇. 一種高效的分布式反饋流量負(fù)載均衡算法[J]. 計(jì)算機(jī)工程, 2009,35(2):198-102.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。