2021-4-10 | 互聯(lián)網(wǎng)
1概述
隨著互聯(lián)網(wǎng)的快速發(fā)展,人們不斷在互聯(lián)網(wǎng)的數(shù)據(jù)采集和分析方面進行深入研究和系統(tǒng)開發(fā),以期能向社會提供豐富的統(tǒng)計和決策分析信息,同時提高對互聯(lián)網(wǎng)業(yè)務的控制和監(jiān)管。國內(nèi)外互聯(lián)網(wǎng)數(shù)據(jù)采集分析方法主要分為3類,即采用SNMP協(xié)議、RMON協(xié)議或NetFlow技術采集數(shù)據(jù)。但是國內(nèi)外同類產(chǎn)品在具體應用中都有一定的局限性[1]。考慮到應用的安全性,更希望能采用具有國內(nèi)自主知識產(chǎn)權的產(chǎn)品。
本文對數(shù)據(jù)匯聚分發(fā)和采集分析進行了研究,開發(fā)了一套集數(shù)據(jù)匯聚、分發(fā)、采集和分析于一體的綜合系統(tǒng)。
2互聯(lián)網(wǎng)流量匯聚分發(fā)采集分析系統(tǒng)總體框架
本文系統(tǒng)主要用于提供復雜接入環(huán)境下多鏈路數(shù)據(jù)采集、互聯(lián)網(wǎng)原始數(shù)據(jù)分發(fā)、綜合數(shù)據(jù)發(fā)布、綜合流量識別與分析等服務,系統(tǒng)的研制目標包括以下4個方面:
(1)多路接入環(huán)境下多條大容量鏈路數(shù)據(jù)進行匯聚,匯聚的接入鏈路包括光纖、電路2類,數(shù)據(jù)類型包括以太、ATM2種格式。
(2)對多條大容量鏈路數(shù)據(jù)進行分發(fā),將多路匯聚后的數(shù)據(jù)向數(shù)據(jù)輸出端若干組端口實時并行發(fā)送。數(shù)據(jù)分發(fā)的目的包括信息安全、國家安全、公共安全等。
(3)實時采集大容量多路原始數(shù)據(jù),并生成網(wǎng)絡數(shù)據(jù)會話流。
(4)基于應用協(xié)議進行數(shù)據(jù)識別及實時統(tǒng)計分析,為其他應用系統(tǒng)提供靈活的數(shù)據(jù)格式和分析結(jié)果。
3系統(tǒng)關鍵技術實現(xiàn)
本文系統(tǒng)的實現(xiàn)主要從數(shù)據(jù)匯聚分發(fā)和數(shù)據(jù)采集分析兩方面進行關鍵技術研發(fā)。
3.1數(shù)據(jù)匯聚分發(fā)
數(shù)據(jù)匯聚分發(fā)的主要功能是在多路接入環(huán)境下將多條大容量鏈路的數(shù)據(jù)進行匯聚和分發(fā)。各鏈路數(shù)據(jù)進行匯聚分發(fā)時,系統(tǒng)數(shù)據(jù)輸入端配置N個輸入端口,數(shù)據(jù)輸出端可以分不同組別進行分發(fā)。按照不同需求,系統(tǒng)輸出可以分為4類:
(1)單/雙端口萬兆輸出;(2)N個端口千兆輸出;(3)M個端口千兆輸出(M<N);(4)N個端口百兆輸出。在研發(fā)中,基于H3CS9500系列核心交換機,聯(lián)合杭州華三公司進行了二次定制開發(fā),實現(xiàn)了數(shù)據(jù)的匯聚和分發(fā)系統(tǒng),其關鍵技術包括:(1)利用虛擬管道使不同流量進入不同復制域虛擬管道是利用標簽而衍生出來的,指匯聚分發(fā)的報文進入S9500后,S9500采用內(nèi)部標簽標識,利用標簽技術對相應的報文增加不同的標簽進行標識。對不同的輸入端報文構建了不同的虛擬管道,不同輸入端的報文可以不考慮其帶有沖突的802.1q內(nèi)容,從而為不同客戶劃定不同的復制域,這些復制域還同時具有防802.1q沖突的能力。
這里只需設置不同客戶接入端口為虛擬管道入口,而各輸出端口為各自的虛擬管道出口。在管道中,通過硬件底層下發(fā)訪問控制列表(AccessControlList,ACL)規(guī)則,使流量只能從管道的入口進、管道的出口出,因此,不會出現(xiàn)環(huán)路風暴問題。
(2)以組播技術實現(xiàn)每個復制域內(nèi)單播報文的多份復制IP組播報文在路由器、交換機的轉(zhuǎn)發(fā)是一對多的轉(zhuǎn)發(fā),IP組播報文進入S9500后,直接進入硬件的組播交換引擎,查找組播硬件轉(zhuǎn)發(fā)表,確定下一跳和出接口列表,并完成報文目的和源地址內(nèi)容的修改,在組播引擎完成組播報文的多份復制后,從各個出接口送出。
3.2數(shù)據(jù)采集分析
在數(shù)據(jù)采集分析模塊開發(fā)中,聯(lián)合上海直真視通公司,實現(xiàn)該模塊的關鍵技術包括:
(1)流量捕獲
基于端口識別網(wǎng)絡流量的傳統(tǒng)方法已不適用于識別新型的、復雜互聯(lián)網(wǎng)應用類型產(chǎn)生的流量,應用級流量采集與分析應采用數(shù)據(jù)包深度分析技術識別網(wǎng)絡流量。本文系統(tǒng)采用了高性能網(wǎng)卡加Libpcap軟件的方式捕獲數(shù)據(jù)包。Libpcap是Unix/Linux平臺下通用的數(shù)據(jù)包捕獲函數(shù)包。捕獲數(shù)據(jù)包時,Libpcap將網(wǎng)卡設置為混雜模式,在內(nèi)核空間內(nèi)復制網(wǎng)絡驅(qū)動程序讀取的數(shù)據(jù)包,再傳遞到用戶空間。Libpcap捕獲數(shù)據(jù)包需要二次內(nèi)存復制,限制了其捕獲性能,因此,采用了零拷貝和負荷平衡方法來改進Libpcap[2]。
(2)網(wǎng)絡流生成
網(wǎng)絡流生成是將鏈路上獲取的原始數(shù)據(jù)包歸并為網(wǎng)絡流形式輸出。網(wǎng)絡流是對一個測量間隔內(nèi)一些具有相同屬性的數(shù)據(jù)包集合的抽象描述,可以定義為一個測量間隔內(nèi)具有相同(源IP地址,目的IP地址,源端口,目的端口,協(xié)議類型)五元組的網(wǎng)絡包集合,它是一種單向的、細粒度的流量聚合形式。
網(wǎng)絡流生成過程如下:網(wǎng)絡流生成器在內(nèi)部維持當前活躍網(wǎng)絡流的記錄緩存結(jié)構,當捕獲到新的原始數(shù)據(jù)包時,網(wǎng)絡流生成器判斷這個數(shù)據(jù)包是否屬于當前活躍網(wǎng)絡流,如果是,修改網(wǎng)絡流相關信息;如果不是,創(chuàng)建新的網(wǎng)絡流記錄并設置網(wǎng)絡流相關信息。
(3)網(wǎng)絡流應用類型識別
本文系統(tǒng)的應用級流量采集與分析方法首先在網(wǎng)絡流生成的同時,融合多種流量識別算法識別網(wǎng)絡流的應用類型。
目前互聯(lián)網(wǎng)上常見的協(xié)議和應用主要包括傳統(tǒng)型(HTTP、研制了網(wǎng)絡協(xié)議分析和識別系統(tǒng)TAS,其核心為iSIE互聯(lián)網(wǎng)會話識別引擎。TAS由采集探針和協(xié)議分析引擎兩部分組成,如圖2所示。其中,采集探針負責采集寬帶流量數(shù)據(jù)并進行預處理,將預處理結(jié)果提供給協(xié)議分析引擎;協(xié)議分析引擎能夠接收一個或者多個探針的預處理數(shù)據(jù),并對這些預處理數(shù)據(jù)進行綜合分析,統(tǒng)計、識別協(xié)議類型,將分析結(jié)果存入數(shù)據(jù)庫。
在具體實現(xiàn)時,將流量采集與分析分為多個階段來實現(xiàn),包括原始流量捕獲、會話流生成、會話流存儲、流量分析和信息呈現(xiàn)。其中的流量分析主要使用網(wǎng)絡流應用類型識別和基于網(wǎng)絡流關聯(lián)識別應用類型的方式進行流量識別和實時統(tǒng)計。