摘 要: 隨著高校數字化校園的推進,通過網絡傳輸的視頻、音頻、圖像和其他網絡應用業(yè)務不斷增多,從而使網絡流量行為日趨復雜,對服務質量和網絡安全提出更高的要求。OpenFlow是近年來支持網絡創(chuàng)新研究而提出的基于流分類的新型網絡技術,能解決當前網絡設備工作負載過重的問題。通過分析OpenFlow的體系架構,針對校園網的異常流量進行識別、分類和轉發(fā)的策略,并通過模擬實驗平臺Mininet驗證該策略的有效性,從而有效地改善了網絡性能并提高了網絡的安全性。
關鍵詞: OpenFlow;異常流量;網絡性能;流量管理
隨著信息化時代計算機網絡技術的快速發(fā)展,促使高校數字化校園[1]不斷地進行信息化建設,上網流量需求和用戶的日益增多以及多元化給網絡數據流量帶來急劇增長,網絡設備運轉負荷倍增,網絡帶寬擴容面臨巨大壓力,成為網絡管理的瓶頸。因此網絡監(jiān)控管理已成為不可或缺的部分,尤其是在網絡安全以及網絡規(guī)劃方面有非常重要的意義。
網絡流量作為網絡用戶上網記錄和活動的一個重要反應,通過監(jiān)控和分析網絡上各種應用的網絡帶寬的使用情況,剖析用戶流量行為,從而合理地分配和規(guī)劃帶寬,尤其是當發(fā)現網絡流量產生異常時,可以迅速根據流量監(jiān)控分析的結果采取相應的控制手段,從而達到對攻擊源進行有效隔離,防止各類網絡攻擊,從而保障關鍵業(yè)務應用的正常運行。
1 OpenFlow技術
1.1 OpenFlow網絡
OpenFlow[2]是斯坦福大學Clean Slate計劃資助的一個開放式協(xié)議標準,主要用于在現有網絡上設計新的協(xié)議和部署新的業(yè)務應用,其最終目標是重新設計互聯網,其核心內容是對網絡數據流的分類算法來達到對網絡進行可編程。
OpenFlow網絡由OpenFlow交換機、FlowVisor和Controller三部分組成。OpenFlow交換機進行數據層的轉發(fā);FlowVisor對網絡進行虛擬化;Controller對網絡進行集中控制,實現控制層的功能。OpenFlow網絡組成如圖1所示。
1.2 OpenFlow交換機
OpenFlow交換機由三部分構成:數據流表對應一個轉發(fā)規(guī)則操作,用以指示交換機如何處理該數據流。安全通道用于實現OpenFlow交換機與控制器之間的指令和數據包的安全傳遞;OpenFlow協(xié)議用來描述控制器和交換機之間相互所用信息的標準,以及控制器和交換機的接口標準。
OpenFlow交換機[3]是整個OpenFlow網絡的核心部件,主要管理數據層的轉發(fā)。OpenFlow交換機接收到數據包之后,首先在本地的流表上查找轉發(fā)目標端口,如果沒有匹配,則把數據包轉發(fā)給Controller,由控制層決定轉發(fā)端口。其組成結構如圖2所示。
2.2 異常流量識別模塊
該模塊通過異常流量識別算法[4]進行處理,利用改進的Adapted-Bloom-Filter防抖動的地址聚集算法來更好地檢測異常流量,對流量進行特征提取和區(qū)分過濾。采用M-CUSUM算法對網絡端口輸入輸出流量的變化進行監(jiān)控,及時地檢測出流量的異常,從而實現對異常流量攻擊采取綜合整治。
2.3 異常流量分類模塊
該模塊主要功能是進一步對異常流量進行聚集分類[5],縮小異常流量范圍。實現的方法是使用基于特征分析的統(tǒng)計方法來識別具有異常流量的聚集。首先要對IP流進行分類,依據各協(xié)議包使用比例和出現幾率,將IP包分為TCP包、UDP包和ICMP包。其中TCP和UDP流量是網絡中的主要流量,而TCP聚集還可以再細分為TCP控制包和TCP數據包。
2.4 流表管理模塊
OpenFlow交換機擁有一個或多個流表,流表中包含多個流表項,每個流表項都包含規(guī)則、操作和計數三部分。當一個分組到達OpenFlow交換機時,該分組頭部信息被提取出來并被用來與流表項進行匹配,如果交換機的流表中不存在該分組匹配的流表項,則該分組的全部或部分被轉發(fā)到控制器,并由控制器來決定如何對該分組或此類流進行處理,如果匹配成功,將會按照所匹配的流表項的操作字段的內容對分組進行轉發(fā)處理。
OpenFlow主要存在兩種類型的流表:線性表和哈希表,當向OpenFlow交換機中插入一條流表項時,如果流表項中用來匹配分組的12元組信息都含有一個確定值,那么這條流表項將先插入到哈希表中,在哈希表滿的情況下才會向線性表插入;如果12元組中某些字段是以通配符的方式進行提供,那這條流表項只能插入到線性表中。流量查詢算法如下:
Input:分組packet
Output:相應的處理流表項flow或false
Flow_key = extract(packet); //在分組packet中
提取分組頭部
Hash_key = hash(flow_key); //計算首部的哈希值
For i=1 to n do //查找n個哈希表
If hash_table[i][hash_key] != NULL
Do return flow = hash_table[i][hash_key];
//返回處理流表項
Linear_flow = linear_list -> next;
While linear_flow != NULL //查詢線性表
If match (linear_flow, flow_key) do
Return flow = linear_flow; //返回處理表項flow
Else do Linear_flow = linear_flow -> next;
Return false;//查找不到處理流表項,返回false
2.5 超時處理模塊
由于流表項存在超時問題,所以當流表項的存在時間超過最大生存時間時,流表項管理模塊需要刪除該規(guī)則。考慮到流表項具有相同的最大生存時間,刪除流表項的順序與流表項進入的順序相同,所以采用鏈表結構存放流表項。當流表項管理模塊為新進規(guī)則生存鏈表節(jié)點時,將當前時間置為該鏈表節(jié)點的時間項。管理模塊每隔一個虛擬單位時間檢查一次超時鏈表各節(jié)點的時間項,如果當前時間與規(guī)則進入時間之差大于流表項最大生存時間,則刪除超時表項,釋放存放表項的鏈表節(jié)點。
3 仿真實驗
為了驗證本文的設計,決定采用虛擬網絡環(huán)境Mininet仿真平臺,它可以在一臺機器上創(chuàng)建一張多至數百個節(jié)點的大規(guī)模虛擬網絡,節(jié)點類型和拓撲結構可以自行定義,并且支持OpenFlow協(xié)議,具體的實驗拓撲如圖4所示。
圖中C0是中心控制器,下面連著兩個OpenFlow交換機S1和S2,往下分別連著虛擬機H1、H2、H3和H4。由H1向系統(tǒng)主動發(fā)起正常網絡流量3 370 430 KB和TCP flooding攻擊,攻擊流量的數據包為固定大小40 B,Ack和Flag不固定,源端口固定,目的端口隨機,大小為844 297 KB。設置系統(tǒng)把檢測到的異常流量全部轉發(fā)給主機H4,正常流量隨機轉到H2和H3主機上。
經過反復測試3次取平均值,對主機H4進行流量統(tǒng)計,發(fā)現共統(tǒng)計到流量818 880 KB,H2和H3主機共統(tǒng)計到流量為3 370 430 KB,說明系統(tǒng)中正常流量都通過了,異常流量基本被捕獲攔截,攔截率為96.99%,基本符合預期的目標。
在復雜的網絡環(huán)境當中,網絡流量的增長不僅僅給路由器交換機等網絡設備帶來沉重的負載,而且通常會隱藏著異常流量引起的網絡安全問題。本文基于OpenFlow新型的可編程的網絡平臺,對網絡環(huán)境中的流量進行了識別和分類,通過對OpenFlow流表進行編程來設計對異常數據包的轉發(fā)處理,并通過在仿真網絡平臺上進行測試驗證,達到了預計的效果。
參考文獻
[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] 鄭曉霞.校園網異常流量分析系統(tǒng)設計與實現[D].青島:中國海洋大學,2012.
[5] 楊新存.校園網流量管理及異常監(jiān)測系統(tǒng)的研究與實現[D].蘭州:蘭州理工大學,2012.