閆曉潔,于廣輝
(大連理工大學(xué) 網(wǎng)絡(luò)與信息化中心,遼寧 大連 116024)
隨著信息化時代計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的快速發(fā)展,促使高校數(shù)字化校園[1]不斷地進(jìn)行信息化建設(shè),上網(wǎng)流量需求和用戶的日益增多以及多元化給網(wǎng)絡(luò)數(shù)據(jù)流量帶來急劇增長,網(wǎng)絡(luò)設(shè)備運(yùn)轉(zhuǎn)負(fù)荷倍增,網(wǎng)絡(luò)帶寬擴(kuò)容面臨巨大壓力,成為網(wǎng)絡(luò)管理的瓶頸。因此網(wǎng)絡(luò)監(jiān)控管理已成為不可或缺的部分,尤其是在網(wǎng)絡(luò)安全以及網(wǎng)絡(luò)規(guī)劃方面有非常重要的意義。
網(wǎng)絡(luò)流量作為網(wǎng)絡(luò)用戶上網(wǎng)記錄和活動的一個重要反應(yīng),通過監(jiān)控和分析網(wǎng)絡(luò)上各種應(yīng)用的網(wǎng)絡(luò)帶寬的使用情況,剖析用戶流量行為,從而合理地分配和規(guī)劃帶寬,尤其是當(dāng)發(fā)現(xiàn)網(wǎng)絡(luò)流量產(chǎn)生異常時,可以迅速根據(jù)流量監(jiān)控分析的結(jié)果采取相應(yīng)的控制手段,從而達(dá)到對攻擊源進(jìn)行有效隔離,防止各類網(wǎng)絡(luò)攻擊,從而保障關(guān)鍵業(yè)務(wù)應(yīng)用的正常運(yùn)行。
OpenFlow[2]是斯坦福大學(xué)Clean Slate計(jì)劃資助的一個開放式協(xié)議標(biāo)準(zhǔn),主要用于在現(xiàn)有網(wǎng)絡(luò)上設(shè)計(jì)新的協(xié)議和部署新的業(yè)務(wù)應(yīng)用,其最終目標(biāo)是重新設(shè)計(jì)互聯(lián)網(wǎng),其核心內(nèi)容是對網(wǎng)絡(luò)數(shù)據(jù)流的分類算法來達(dá)到對網(wǎng)絡(luò)進(jìn)行可編程。
OpenFlow網(wǎng)絡(luò)由 OpenFlow交換機(jī)、FlowVisor和Controller三部分組成。OpenFlow交換機(jī)進(jìn)行數(shù)據(jù)層的轉(zhuǎn)發(fā);FlowVisor對網(wǎng)絡(luò)進(jìn)行虛擬化;Controller對網(wǎng)絡(luò)進(jìn)行集中控制,實(shí)現(xiàn)控制層的功能。OpenFlow網(wǎng)絡(luò)組成如圖1所示。
圖1 OpenFlow網(wǎng)絡(luò)結(jié)構(gòu)
OpenFlow交換機(jī)由三部分構(gòu)成:數(shù)據(jù)流表對應(yīng)一個轉(zhuǎn)發(fā)規(guī)則操作,用以指示交換機(jī)如何處理該數(shù)據(jù)流。安全通道用于實(shí)現(xiàn)OpenFlow交換機(jī)與控制器之間的指令和數(shù)據(jù)包的安全傳遞;OpenFlow協(xié)議用來描述控制器和交換機(jī)之間相互所用信息的標(biāo)準(zhǔn),以及控制器和交換機(jī)的接口標(biāo)準(zhǔn)。
OpenFlow交換機(jī)[3]是整個OpenFlow網(wǎng)絡(luò)的核心部件,主要管理數(shù)據(jù)層的轉(zhuǎn)發(fā)。OpenFlow交換機(jī)接收到數(shù)據(jù)包之后,首先在本地的流表上查找轉(zhuǎn)發(fā)目標(biāo)端口,如果沒有匹配,則把數(shù)據(jù)包轉(zhuǎn)發(fā)給 Controller,由控制層決定轉(zhuǎn)發(fā)端口。其組成結(jié)構(gòu)如圖2所示。
圖2 OpenFlow交換機(jī)結(jié)構(gòu)
本系統(tǒng)研究的目的就是減少校園網(wǎng)中的異常流量,利用OpenFlow中對流表的管理來控制網(wǎng)絡(luò)數(shù)據(jù)包的轉(zhuǎn)向,從而實(shí)現(xiàn)網(wǎng)絡(luò)中控制層面與數(shù)據(jù)平面相分離,有效地阻止對網(wǎng)絡(luò)的攻擊。本系統(tǒng)設(shè)計(jì)主要包括異常流量識別模塊、異常流量分類模塊、流表管理模塊和超時處理模塊,具體設(shè)計(jì)管理圖如圖3所示。
圖3 異常流量管理圖
該模塊通過異常流量識別算法[4]進(jìn)行處理,利用改進(jìn)的Adapted-Bloom-Filter防抖動的地址聚集算法來更好地檢測異常流量,對流量進(jìn)行特征提取和區(qū)分過濾。采用M-CUSUM算法對網(wǎng)絡(luò)端口輸入輸出流量的變化進(jìn)行監(jiān)控,及時地檢測出流量的異常,從而實(shí)現(xiàn)對異常流量攻擊采取綜合整治。
該模塊主要功能是進(jìn)一步對異常流量進(jìn)行聚集分類[5],縮小異常流量范圍。實(shí)現(xiàn)的方法是使用基于特征分析的統(tǒng)計(jì)方法來識別具有異常流量的聚集。首先要對IP流進(jìn)行分類,依據(jù)各協(xié)議包使用比例和出現(xiàn)幾率,將IP包分為TCP包、UDP包和ICMP包。其中TCP和UDP流量是網(wǎng)絡(luò)中的主要流量,而TCP聚集還可以再細(xì)分為TCP控制包和TCP數(shù)據(jù)包。
OpenFlow交換機(jī)擁有一個或多個流表,流表中包含多個流表項(xiàng),每個流表項(xiàng)都包含規(guī)則、操作和計(jì)數(shù)三部分。當(dāng)一個分組到達(dá)OpenFlow交換機(jī)時,該分組頭部信息被提取出來并被用來與流表項(xiàng)進(jìn)行匹配,如果交換機(jī)的流表中不存在該分組匹配的流表項(xiàng),則該分組的全部或部分被轉(zhuǎn)發(fā)到控制器,并由控制器來決定如何對該分組或此類流進(jìn)行處理,如果匹配成功,將會按照所匹配的流表項(xiàng)的操作字段的內(nèi)容對分組進(jìn)行轉(zhuǎn)發(fā)處理。
OpenFlow主要存在兩種類型的流表:線性表和哈希表,當(dāng)向OpenFlow交換機(jī)中插入一條流表項(xiàng)時,如果流表項(xiàng)中用來匹配分組的12元組信息都含有一個確定值,那么這條流表項(xiàng)將先插入到哈希表中,在哈希表滿的情況下才會向線性表插入;如果12元組中某些字段是以通配符的方式進(jìn)行提供,那這條流表項(xiàng)只能插入到線性表中。流量查詢算法如下:
由于流表項(xiàng)存在超時問題,所以當(dāng)流表項(xiàng)的存在時間超過最大生存時間時,流表項(xiàng)管理模塊需要刪除該規(guī)則。考慮到流表項(xiàng)具有相同的最大生存時間,刪除流表項(xiàng)的順序與流表項(xiàng)進(jìn)入的順序相同,所以采用鏈表結(jié)構(gòu)存放流表項(xiàng)。當(dāng)流表項(xiàng)管理模塊為新進(jìn)規(guī)則生存鏈表節(jié)點(diǎn)時,將當(dāng)前時間置為該鏈表節(jié)點(diǎn)的時間項(xiàng)。管理模塊每隔一個虛擬單位時間檢查一次超時鏈表各節(jié)點(diǎn)的時間項(xiàng),如果當(dāng)前時間與規(guī)則進(jìn)入時間之差大于流表項(xiàng)最大生存時間,則刪除超時表項(xiàng),釋放存放表項(xiàng)的鏈表節(jié)點(diǎn)。
為了驗(yàn)證本文的設(shè)計(jì),決定采用虛擬網(wǎng)絡(luò)環(huán)境Mininet仿真平臺,它可以在一臺機(jī)器上創(chuàng)建一張多至數(shù)百個節(jié)點(diǎn)的大規(guī)模虛擬網(wǎng)絡(luò),節(jié)點(diǎn)類型和拓?fù)浣Y(jié)構(gòu)可以自行定義,并且支持OpenFlow協(xié)議,具體的實(shí)驗(yàn)拓?fù)淙鐖D4所示。
圖4 仿真試驗(yàn)拓?fù)鋱D
圖中C0是中心控制器,下面連著兩個OpenFlow交換機(jī) S1和 S2,往下分別連著虛擬機(jī) H1、H2、H3和 H4。由H1向系統(tǒng)主動發(fā)起正常網(wǎng)絡(luò)流量3 370 430 KB和TCP flooding攻擊,攻擊流量的數(shù)據(jù)包為固定大小40 B,Ack和Flag不固定,源端口固定,目的端口隨機(jī),大小為844 297 KB。設(shè)置系統(tǒng)把檢測到的異常流量全部轉(zhuǎn)發(fā)給主機(jī)H4,正常流量隨機(jī)轉(zhuǎn)到H2和H3主機(jī)上。
經(jīng)過反復(fù)測試3次取平均值,對主機(jī)H4進(jìn)行流量統(tǒng)計(jì),發(fā)現(xiàn)共統(tǒng)計(jì)到流量818 880 KB,H2和H3主機(jī)共統(tǒng)計(jì)到流量為3 370 430 KB,說明系統(tǒng)中正常流量都通過了,異常流量基本被捕獲攔截,攔截率為96.99%,基本符合預(yù)期的目標(biāo)。
在復(fù)雜的網(wǎng)絡(luò)環(huán)境當(dāng)中,網(wǎng)絡(luò)流量的增長不僅僅給路由器交換機(jī)等網(wǎng)絡(luò)設(shè)備帶來沉重的負(fù)載,而且通常會隱藏著異常流量引起的網(wǎng)絡(luò)安全問題。本文基于OpenFlow新型的可編程的網(wǎng)絡(luò)平臺,對網(wǎng)絡(luò)環(huán)境中的流量進(jìn)行了識別和分類,通過對OpenFlow流表進(jìn)行編程來設(shè)計(jì)對異常數(shù)據(jù)包的轉(zhuǎn)發(fā)處理,并通過在仿真網(wǎng)絡(luò)平臺上進(jìn)行測試驗(yàn)證,達(dá)到了預(yù)計(jì)的效果。
[1]YMCKEOWN N,ANDERSON T,BALAKRISHNAN H,et al.OpenFlow:enabling innovation in campus networks[J].ACM SIGCOMM Computer Communication Review,2008,38(2):69-74.
[2]OpenFlow[EB/OL].[2013-07-20].http://www.OpenFlow.org.
[3]SHERWOOD R,CHAN M,COVINGTON A,et al.Carving research slices out of your production networks with Open-Flow[J].ACM SIGCOMM Computer Communication Review,2010,40(1):129-130.
[4]鄭曉霞.校園網(wǎng)異常流量分析系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].青島:中國海洋大學(xué),2012.
[5]楊新存.校園網(wǎng)流量管理及異常監(jiān)測系統(tǒng)的研究與實(shí)現(xiàn)[D].蘭州:蘭州理工大學(xué),2012.