許延偉++許凱
摘要: 該文提出了一種基于軟件定義網絡的流量管理系統(tǒng)的設計與實現(xiàn),可以利用統(tǒng)一的控制器對全網絡進行管理,實現(xiàn)對整個網絡中的所有數(shù)據(jù)流的靈活調配與統(tǒng)一管理,彌補了傳統(tǒng)網絡的分布式管理無法進行最優(yōu)的配置的缺陷,解決了傳統(tǒng)網絡存在的“告警-響應”的處理機制造成的反應滯后的問題。
關鍵詞:軟件定義網絡;流量管理
中圖分類號:TP393 文獻標識碼:A 文章編號:1009-3044(2015)33-0033-04
A Network Traffic Management System Based on Software Defined Network
XU Yan-wei, XU Kai
(National Engineering Research Center for Broadband Networks & Applications, Shanghai 200336, China)
Abstract : In this paper, we proposes a network traffic management system which based on software defined network. We could use unified controller to manage the whole network and all the data flow. Compared with the traditional network, this system could configure the optimum configuration to the whole network and handle network traffic alerts more quickly and efficiently.
Key words: SDN; network traffic management
1 概述
隨著互聯(lián)網的快速發(fā)展,網絡用戶和業(yè)務流量不斷增加,網絡資源相對不足造成數(shù)據(jù)交互速率下降,網絡擁塞問題日益凸現(xiàn)。網絡流量管理是基于網絡的實時流量和流量管理策略,對數(shù)據(jù)流識別分類,實現(xiàn)流量控制、優(yōu)化和保障關鍵應用的主要技術,可以保障網絡運行效率和QoS(Quality of Service,服務質量)。
網絡流量是網絡業(yè)務最直我們接的載體,其直接可以反映網絡性能的好壞。理想的網絡應當應該可以承載任何突發(fā)流量情況。如果流量超過網絡的負載能力,網絡性能將會嚴重下降。
網絡流量的調度問題,會直接影響到網絡的性能,局部突發(fā)流量很容易導致整個網絡性能的下降。在網絡中,不同的業(yè)務對資源的占用不同,也會導致少數(shù)網絡流占用大部分帶框的情況,嚴重影響了網絡資源的利用率。因此,合理的流量控制策略尤為重要。
2 研究現(xiàn)狀
2.1 傳統(tǒng)網絡中流量控制
傳統(tǒng)網絡中對流量的控制多是基于IP網絡流量監(jiān)測技術來實現(xiàn),主要分為流量監(jiān)控以及流量控制兩個部分。
2.1.1 流量監(jiān)控
業(yè)內應用廣泛的流量監(jiān)測技術主要包括以下技術,直接采集法、基于NetFlow的信息采集方法、基于SNMP協(xié)議的流量采集方法。
1)直接采集法
通過直接連接在路由交換機接口上通過接受數(shù)據(jù)包,統(tǒng)計得到的流量信息。監(jiān)測設備直接從直連的網絡接口上對流量進行收集,這些都是通過對路由器/交換機等網絡設備的嗅探獲取流量信息。
2)基于NetFlow 的信息采集
NetFlow是思科公司開發(fā)的一種網絡交換協(xié)議[1],是一種實現(xiàn)網絡層高性能交換的技術。協(xié)議工作方式是通過網絡中的交換設備,采集所有當前經過的流數(shù)據(jù)并將其存放到自身的緩存中,然后按一定的格式發(fā)送給指定的服務器。采用此方案部署網絡流量監(jiān)控,成本低、效率高而且對現(xiàn)有網絡幾乎沒有影響,是目前大型網絡流量監(jiān)控的理想方案。
3)基于SNMP 的流量信息采集
SNMP(Simple Network Management Protocol) 是應用最為廣泛的網絡管理協(xié)議,基于SNMP協(xié)議的流量采集是指通過硬件設備提供的API接口采集有關流量的數(shù)據(jù)[2]。這種方法不需要增加任何硬件設備,也無需對網絡進行調整。但是它收集到的數(shù)據(jù)信息量太少,只有最基本的流量信息比如字節(jié)量、數(shù)據(jù)包量等,這種方法不適用于一些對數(shù)據(jù)細節(jié)要求高的監(jiān)控場合。
2.1.2 網絡流量控制
流量控制是指按照預先定義的規(guī)則,保證網絡的高效穩(wěn)定的運行?,F(xiàn)有的流量控制主要是依靠硬件設備上的不同轉發(fā)算法來實現(xiàn),現(xiàn)行算法主要分為以下。
1)隊列管理算法[3]
利用緩沖區(qū)作為隊列,用以音軌突發(fā)數(shù)據(jù)包。隊列管理算法按照設定的規(guī)則對數(shù)據(jù)包進行識別,傳遞或者直接丟棄,這樣可以通過控制緩沖區(qū)來避免網絡擁塞現(xiàn)象的發(fā)生。但是這種實在網絡擁塞以后才有相應,因此常被稱為是被動隊列管理。
2)分組調度算法[4]
為了實現(xiàn)基于區(qū)分不同權重的Qos功能,在實際網絡中通常路由器按照設定的規(guī)則進行隊列劃分,同時利用分組調度算法完成隊列的調度。這樣就可以保證不同權重的業(yè)務流數(shù)據(jù)獲取到不同的Qos服務,解決多隊列競爭共享資源的問題。
2.2 軟件定義網絡(SDN)
傳統(tǒng)互聯(lián)網由于存在著復雜的交換機、終端、路由器以及其他設備,在這些網絡設備中使用著大量封閉、專有的內部接口以及協(xié)議;所以在傳統(tǒng)網絡中的流量控制普遍效率低下而且多采用“告警-響應”的方式,網絡服務在現(xiàn)有的網絡管理方式下做出響應前,很有可能已經受到了影響。傳統(tǒng)網絡中因為存在大量不同設備,使用不同協(xié)議,所以無法對所有的網絡設備進行有效的統(tǒng)一控制,而且網絡維護成本居高不下,網絡管理需要大量人工配置。為了打破這種局面,在2008年Nick McKeown 教授等人提出了軟件定義網絡[5-6] (Software Defined Network, SDN )的概念。
軟件定義網絡是把傳統(tǒng)網絡設備緊密耦合的網絡架構分拆為應用、控制、數(shù)據(jù)轉發(fā)3層分離的體系架構 .如圖 1,其核心技術OpenFlow通過實現(xiàn)網絡設備的控制權和轉發(fā)權的相互獨立,從而靈活、方便的控制數(shù)據(jù)包的轉發(fā),提供了一種可編程的網絡管理模式。在軟件定義網絡中,控制器通過南向接口(OpenFlow協(xié)議)獲取底層網絡設備信息,進行統(tǒng)一部署、集中管理以及靈活控制,從而解決了分散網絡設備的管理控制問題。同時,控制器提供了可編程擴展的北向接口,按不同需求設計的功能應用軟件可以直接運行在控制器上,利用控制器對全局網絡設備進行統(tǒng)一更新和功能升級。
3 基于SDN的流量管理系統(tǒng)
3.1 系統(tǒng)概述
SDN是一個新興的網絡架構體系,其網絡設備可以由控制器統(tǒng)一管理,而原有的網絡流量管理多為分布式管理,并且都需要增加額外的硬件設備或軟件Agent系統(tǒng),使得原有的方法難以應用到SDN網絡架構中,形成完整有效的流量管理系統(tǒng),保障網絡運行效率。本文提出了一種軟件定義網絡中的流量管理系統(tǒng)和實現(xiàn)方法,能夠系統(tǒng)解決傳統(tǒng)流量管理技術無法適用SDN網絡的問題,有效地提高網絡運行效率。該系統(tǒng),如圖 2包括流量管理模塊、控制器模塊、OpenFlow[7]交換機模塊,系統(tǒng)通過流量管理模塊對整個網絡進行統(tǒng)一管理。
3.2 系統(tǒng)的模塊介紹
基于SDN的流量管理系統(tǒng)中,流量管理模塊通過API北向接口與控制器模塊相連,控制器模塊通過OpenFlow協(xié)議與OpenFlow交換機模塊相互通信,如圖 3。
1)流量管理模塊:根據(jù)全局網絡流量狀態(tài)以及網絡拓撲信息,制定流量管理策略,自主分配資源,執(zhí)行管理策略;包括網絡構建模塊、路由計算模塊、流表管理模塊。
① 網絡構建模塊:用于確定相應的流量管理策略,并將相應的管理策略發(fā)送給 OpenFlow流表管理模塊,用戶可以通過該模塊選擇流量管理的規(guī)則以及路由策略,實現(xiàn)對整個網絡對流量管理控制。
② 路由計算模塊:路由計算模塊根據(jù)路由選擇策略確定的路由算法與交換機的拓撲結構計算得到任意兩個所述交換機之間的路由路徑信息;路由路徑信息是以任意兩個交換機中一個作為源交換機到達另一個目的交換機所經過的交路徑;路由計算模塊根據(jù)所述流量管理規(guī)則以及根據(jù)在路由路徑信息中選擇合理路由信息并將合理路由信息發(fā)送給所述流表管理模塊。
2)控制器模塊:傳達網絡控制指令,收集網絡信息;包含流量分析模塊以及OpenFlow流表管理模塊。
① 流量分析模塊:主要完成計算流量速率、丟包率等反應流量狀態(tài)的數(shù)據(jù)包括交換機端口流、Mac流、IP流、TCP/UDP流的流量狀態(tài)。通過API接口為流量管理模塊提供實時網絡流量信息。
② 所述流表管理模塊,用于生成以及更新OpenFlow流表,并將所述流表項發(fā)送給交換機。
3)OpenFlow交換機模塊:執(zhí)行網絡控制;包含 OpenFlow流表、流量測量模塊、數(shù)據(jù)包轉發(fā)模塊。
① OpenFlow流表:用于根據(jù)所屬控制器下發(fā)的流表項匹配接收到的數(shù)據(jù)包包頭,匹配成功,調用轉發(fā)模塊傳輸數(shù)據(jù)包;如果匹配失敗,則傳送到控制器中進行處理。流表項包括匹配域和動作指令。匹配域包含目的交換機的ID、計數(shù)器、指令內容包括匹配成功后轉發(fā)給下一個出口的標志。
② 流量測量模塊:記錄經過所屬交換機以及所述交換機每一個端口的數(shù)據(jù)交換狀態(tài),包括接受以及傳輸數(shù)據(jù)包的數(shù)目、丟包數(shù)、接受以及傳輸?shù)淖止?jié)數(shù)量,供流量分析模塊讀取。該模塊讀寫流表項的計數(shù)器字段,可以針對交換機的每一個設備端口,每個轉發(fā)隊列進行統(tǒng)計。
③ 數(shù)據(jù)包轉發(fā)模塊:交換機底層用于轉發(fā)數(shù)據(jù)包的模塊,接受一個數(shù)據(jù)包,按照OpenFlow流表指令規(guī)則轉發(fā)到特定的端口。
3.3 系統(tǒng)的具體實現(xiàn)
本文提出的SDN的流量管理系統(tǒng)是控制器定時讀取交換機的流量狀態(tài),經過分析后交由流量管理模塊,流量管理模塊根據(jù)全局網絡流量狀態(tài)以及管理人員制定的流量管理策略,生成流量管理規(guī)則,通過OpenFlow協(xié)議配置、管理和修改交換機中的OpenFlow流標,達到自主調配網絡資源的目的。該系統(tǒng)的具體實現(xiàn)方法包括如下步驟:
1)系統(tǒng)初始化,流量管理模塊為每一個交換機生成一個唯一ID標示,該ID用于并且根據(jù)網絡拓撲信息以及流量管理策略初始化所有交換機的流表。
2)系統(tǒng)啟動后,數(shù)據(jù)包經過OpenFlow交換機時匹配OpenFlow流表項,若匹配成功,則執(zhí)行轉發(fā)動作并且更新流量測量模塊,統(tǒng)計接收和傳輸?shù)恼_及錯誤的數(shù)據(jù)包數(shù)目和字節(jié)數(shù);若匹配不成功,將數(shù)據(jù)包轉發(fā)給控制器處理。
3)控制器定期向流量測定模塊發(fā)送請求,讀取流量統(tǒng)計結果并將統(tǒng)計數(shù)據(jù)存儲到流量分析模塊。
4)流量分析模塊根據(jù)流流量分析模塊根據(jù)流表項中的匹配域和計數(shù)器,計算交換機的每一個端口、MAC地址、IP地址、協(xié)議端口號的各個流的流量接收率、傳輸速率以及丟包速率,得到整個網絡的流量狀態(tài)。同時,將分析結果傳送給流量管理模塊。
5)流量管理模塊根據(jù)管理人員制定的流量管理策略和接收到的流量分析結果,判斷是否需要對于當前網絡采取管理動作(管理動作包括丟包、限制速率等),如果需要,則形成相應的流量管理規(guī)則并返回給交換機控制器,如果不需要,則不需要進行其他動作。
6)控制器根據(jù)流量管理模塊的發(fā)出的命令生成OpenFlow協(xié)議支持的相應流表項,并通過OpenFlow協(xié)議下發(fā)給相應的交換機。
7)交換機接收流量管理模塊分發(fā)的流表項后,更新流表,使接收到的數(shù)據(jù)包匹配新的流表項,執(zhí)行動作。
根據(jù)上述的軟件定義網絡中的流量管理系統(tǒng)的實現(xiàn)方法,其中:步驟5中,流量管理模塊對當前網絡可采取丟包、限制速率、分配空閑資源三種動作。
4 總結
本文提出了一種基于軟件定義網絡流量管理系統(tǒng)的實現(xiàn)方法,相比現(xiàn)行的硬件控制網絡管理系統(tǒng),我們的軟件定義網絡的具有以下優(yōu)點:
1)軟件模式的流量管理系統(tǒng)可控制性高、可變性好、拓展性強。
2)流量管理系統(tǒng)中對交換機的流量測試由流量管理模塊統(tǒng)一管理,無需對網絡設備進行逐一操作。
3)實現(xiàn)了全網集中式流量管理機制,統(tǒng)一配置調度網絡資源,提高了資源的配置網絡的運行效率。
4)可以在出現(xiàn)峰值網絡流時保證數(shù)據(jù)包的有效轉發(fā),不會造成大量數(shù)據(jù)包丟棄。
基于軟件定義網絡的流量管理系統(tǒng)實現(xiàn)了對整個網絡中所有數(shù)據(jù)流的靈活調配和統(tǒng)一管理;同時管控都集中于流量管理模塊,整個網絡流量管理措施的更新與修改只需要配置流連管理模塊,簡化了流量管理措施的執(zhí)行。
5 致謝
本文受國家高技術研究發(fā)展計劃(863計劃) 項目“未來網絡體系結構創(chuàng)新環(huán)境” (項目編號:2013AA013505)資助。
參考文獻:
[1] Deri L. Increasing data center network visibility with cisco NetFlow-Lite[C].Network and Service Management (CNSM), 2011 7th International Conference on. 2011. IEEE.
[2] Abellard A, Abellard P. A factorization/defactorization methodology based on data flow petri nets for an efficient hardware/software codesign[C]. Systems, Man and Cybernetics, 2007. ISIC. IEEE International Conference on. 2007. IEEE.
[3] 孫雁飛.一種時滯網絡自適應主動隊列管理算法研究[J].電子與信息學報, 2006,28(10): 1940-1945.
[4] Sairam K V, Rao T J,Rao P.A packet scheduling algorithm for ad-hoc optical networks. Potentials, IEEE, 2006,25(1): 30-35.
[5] Fundation, O.N., Software-defined networking: The new norm for networks. ONF White Paper, 2012.
[6] 王文東,胡延楠. 軟件定義網絡, 正在進行的網絡變革[J]. ZTE TECHNOLOGY JOURNAL, 2013.
[7] McKeown N. OpenFlow: enabling innovation in campus networks[J].ACM SIGCOMM Computer Communication Review, 2008,38(2): 69-74.