許延偉++許凱
摘要: 該文提出了一種基于軟件定義網(wǎng)絡(luò)的流量管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),可以利用統(tǒng)一的控制器對(duì)全網(wǎng)絡(luò)進(jìn)行管理,實(shí)現(xiàn)對(duì)整個(gè)網(wǎng)絡(luò)中的所有數(shù)據(jù)流的靈活調(diào)配與統(tǒng)一管理,彌補(bǔ)了傳統(tǒng)網(wǎng)絡(luò)的分布式管理無(wú)法進(jìn)行最優(yōu)的配置的缺陷,解決了傳統(tǒng)網(wǎng)絡(luò)存在的“告警-響應(yīng)”的處理機(jī)制造成的反應(yīng)滯后的問(wèn)題。
關(guān)鍵詞:軟件定義網(wǎng)絡(luò);流量管理
中圖分類(lèi)號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):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)網(wǎng)的快速發(fā)展,網(wǎng)絡(luò)用戶(hù)和業(yè)務(wù)流量不斷增加,網(wǎng)絡(luò)資源相對(duì)不足造成數(shù)據(jù)交互速率下降,網(wǎng)絡(luò)擁塞問(wèn)題日益凸現(xiàn)。網(wǎng)絡(luò)流量管理是基于網(wǎng)絡(luò)的實(shí)時(shí)流量和流量管理策略,對(duì)數(shù)據(jù)流識(shí)別分類(lèi),實(shí)現(xiàn)流量控制、優(yōu)化和保障關(guān)鍵應(yīng)用的主要技術(shù),可以保障網(wǎng)絡(luò)運(yùn)行效率和QoS(Quality of Service,服務(wù)質(zhì)量)。
網(wǎng)絡(luò)流量是網(wǎng)絡(luò)業(yè)務(wù)最直我們接的載體,其直接可以反映網(wǎng)絡(luò)性能的好壞。理想的網(wǎng)絡(luò)應(yīng)當(dāng)應(yīng)該可以承載任何突發(fā)流量情況。如果流量超過(guò)網(wǎng)絡(luò)的負(fù)載能力,網(wǎng)絡(luò)性能將會(huì)嚴(yán)重下降。
網(wǎng)絡(luò)流量的調(diào)度問(wèn)題,會(huì)直接影響到網(wǎng)絡(luò)的性能,局部突發(fā)流量很容易導(dǎo)致整個(gè)網(wǎng)絡(luò)性能的下降。在網(wǎng)絡(luò)中,不同的業(yè)務(wù)對(duì)資源的占用不同,也會(huì)導(dǎo)致少數(shù)網(wǎng)絡(luò)流占用大部分帶框的情況,嚴(yán)重影響了網(wǎng)絡(luò)資源的利用率。因此,合理的流量控制策略尤為重要。
2 研究現(xiàn)狀
2.1 傳統(tǒng)網(wǎng)絡(luò)中流量控制
傳統(tǒng)網(wǎng)絡(luò)中對(duì)流量的控制多是基于IP網(wǎng)絡(luò)流量監(jiān)測(cè)技術(shù)來(lái)實(shí)現(xiàn),主要分為流量監(jiān)控以及流量控制兩個(gè)部分。
2.1.1 流量監(jiān)控
業(yè)內(nèi)應(yīng)用廣泛的流量監(jiān)測(cè)技術(shù)主要包括以下技術(shù),直接采集法、基于NetFlow的信息采集方法、基于SNMP協(xié)議的流量采集方法。
1)直接采集法
通過(guò)直接連接在路由交換機(jī)接口上通過(guò)接受數(shù)據(jù)包,統(tǒng)計(jì)得到的流量信息。監(jiān)測(cè)設(shè)備直接從直連的網(wǎng)絡(luò)接口上對(duì)流量進(jìn)行收集,這些都是通過(guò)對(duì)路由器/交換機(jī)等網(wǎng)絡(luò)設(shè)備的嗅探獲取流量信息。
2)基于NetFlow 的信息采集
NetFlow是思科公司開(kāi)發(fā)的一種網(wǎng)絡(luò)交換協(xié)議[1],是一種實(shí)現(xiàn)網(wǎng)絡(luò)層高性能交換的技術(shù)。協(xié)議工作方式是通過(guò)網(wǎng)絡(luò)中的交換設(shè)備,采集所有當(dāng)前經(jīng)過(guò)的流數(shù)據(jù)并將其存放到自身的緩存中,然后按一定的格式發(fā)送給指定的服務(wù)器。采用此方案部署網(wǎng)絡(luò)流量監(jiān)控,成本低、效率高而且對(duì)現(xiàn)有網(wǎng)絡(luò)幾乎沒(méi)有影響,是目前大型網(wǎng)絡(luò)流量監(jiān)控的理想方案。
3)基于SNMP 的流量信息采集
SNMP(Simple Network Management Protocol) 是應(yīng)用最為廣泛的網(wǎng)絡(luò)管理協(xié)議,基于SNMP協(xié)議的流量采集是指通過(guò)硬件設(shè)備提供的API接口采集有關(guān)流量的數(shù)據(jù)[2]。這種方法不需要增加任何硬件設(shè)備,也無(wú)需對(duì)網(wǎng)絡(luò)進(jìn)行調(diào)整。但是它收集到的數(shù)據(jù)信息量太少,只有最基本的流量信息比如字節(jié)量、數(shù)據(jù)包量等,這種方法不適用于一些對(duì)數(shù)據(jù)細(xì)節(jié)要求高的監(jiān)控場(chǎng)合。
2.1.2 網(wǎng)絡(luò)流量控制
流量控制是指按照預(yù)先定義的規(guī)則,保證網(wǎng)絡(luò)的高效穩(wěn)定的運(yùn)行?,F(xiàn)有的流量控制主要是依靠硬件設(shè)備上的不同轉(zhuǎn)發(fā)算法來(lái)實(shí)現(xiàn),現(xiàn)行算法主要分為以下。
1)隊(duì)列管理算法[3]
利用緩沖區(qū)作為隊(duì)列,用以音軌突發(fā)數(shù)據(jù)包。隊(duì)列管理算法按照設(shè)定的規(guī)則對(duì)數(shù)據(jù)包進(jìn)行識(shí)別,傳遞或者直接丟棄,這樣可以通過(guò)控制緩沖區(qū)來(lái)避免網(wǎng)絡(luò)擁塞現(xiàn)象的發(fā)生。但是這種實(shí)在網(wǎng)絡(luò)擁塞以后才有相應(yīng),因此常被稱(chēng)為是被動(dòng)隊(duì)列管理。
2)分組調(diào)度算法[4]
為了實(shí)現(xiàn)基于區(qū)分不同權(quán)重的Qos功能,在實(shí)際網(wǎng)絡(luò)中通常路由器按照設(shè)定的規(guī)則進(jìn)行隊(duì)列劃分,同時(shí)利用分組調(diào)度算法完成隊(duì)列的調(diào)度。這樣就可以保證不同權(quán)重的業(yè)務(wù)流數(shù)據(jù)獲取到不同的Qos服務(wù),解決多隊(duì)列競(jìng)爭(zhēng)共享資源的問(wèn)題。
2.2 軟件定義網(wǎng)絡(luò)(SDN)
傳統(tǒng)互聯(lián)網(wǎng)由于存在著復(fù)雜的交換機(jī)、終端、路由器以及其他設(shè)備,在這些網(wǎng)絡(luò)設(shè)備中使用著大量封閉、專(zhuān)有的內(nèi)部接口以及協(xié)議;所以在傳統(tǒng)網(wǎng)絡(luò)中的流量控制普遍效率低下而且多采用“告警-響應(yīng)”的方式,網(wǎng)絡(luò)服務(wù)在現(xiàn)有的網(wǎng)絡(luò)管理方式下做出響應(yīng)前,很有可能已經(jīng)受到了影響。傳統(tǒng)網(wǎng)絡(luò)中因?yàn)榇嬖诖罅坎煌O(shè)備,使用不同協(xié)議,所以無(wú)法對(duì)所有的網(wǎng)絡(luò)設(shè)備進(jìn)行有效的統(tǒng)一控制,而且網(wǎng)絡(luò)維護(hù)成本居高不下,網(wǎng)絡(luò)管理需要大量人工配置。為了打破這種局面,在2008年Nick McKeown 教授等人提出了軟件定義網(wǎng)絡(luò)[5-6] (Software Defined Network, SDN )的概念。
軟件定義網(wǎng)絡(luò)是把傳統(tǒng)網(wǎng)絡(luò)設(shè)備緊密耦合的網(wǎng)絡(luò)架構(gòu)分拆為應(yīng)用、控制、數(shù)據(jù)轉(zhuǎn)發(fā)3層分離的體系架構(gòu) .如圖 1,其核心技術(shù)OpenFlow通過(guò)實(shí)現(xiàn)網(wǎng)絡(luò)設(shè)備的控制權(quán)和轉(zhuǎn)發(fā)權(quán)的相互獨(dú)立,從而靈活、方便的控制數(shù)據(jù)包的轉(zhuǎn)發(fā),提供了一種可編程的網(wǎng)絡(luò)管理模式。在軟件定義網(wǎng)絡(luò)中,控制器通過(guò)南向接口(OpenFlow協(xié)議)獲取底層網(wǎng)絡(luò)設(shè)備信息,進(jìn)行統(tǒng)一部署、集中管理以及靈活控制,從而解決了分散網(wǎng)絡(luò)設(shè)備的管理控制問(wèn)題。同時(shí),控制器提供了可編程擴(kuò)展的北向接口,按不同需求設(shè)計(jì)的功能應(yīng)用軟件可以直接運(yùn)行在控制器上,利用控制器對(duì)全局網(wǎng)絡(luò)設(shè)備進(jìn)行統(tǒng)一更新和功能升級(jí)。
3 基于SDN的流量管理系統(tǒng)
3.1 系統(tǒng)概述
SDN是一個(gè)新興的網(wǎng)絡(luò)架構(gòu)體系,其網(wǎng)絡(luò)設(shè)備可以由控制器統(tǒng)一管理,而原有的網(wǎng)絡(luò)流量管理多為分布式管理,并且都需要增加額外的硬件設(shè)備或軟件Agent系統(tǒng),使得原有的方法難以應(yīng)用到SDN網(wǎng)絡(luò)架構(gòu)中,形成完整有效的流量管理系統(tǒng),保障網(wǎng)絡(luò)運(yùn)行效率。本文提出了一種軟件定義網(wǎng)絡(luò)中的流量管理系統(tǒng)和實(shí)現(xiàn)方法,能夠系統(tǒng)解決傳統(tǒng)流量管理技術(shù)無(wú)法適用SDN網(wǎng)絡(luò)的問(wèn)題,有效地提高網(wǎng)絡(luò)運(yùn)行效率。該系統(tǒng),如圖 2包括流量管理模塊、控制器模塊、OpenFlow[7]交換機(jī)模塊,系統(tǒng)通過(guò)流量管理模塊對(duì)整個(gè)網(wǎng)絡(luò)進(jìn)行統(tǒng)一管理。
3.2 系統(tǒng)的模塊介紹
基于SDN的流量管理系統(tǒng)中,流量管理模塊通過(guò)API北向接口與控制器模塊相連,控制器模塊通過(guò)OpenFlow協(xié)議與OpenFlow交換機(jī)模塊相互通信,如圖 3。
1)流量管理模塊:根據(jù)全局網(wǎng)絡(luò)流量狀態(tài)以及網(wǎng)絡(luò)拓?fù)湫畔?,制定流量管理策略,自主分配資源,執(zhí)行管理策略;包括網(wǎng)絡(luò)構(gòu)建模塊、路由計(jì)算模塊、流表管理模塊。
① 網(wǎng)絡(luò)構(gòu)建模塊:用于確定相應(yīng)的流量管理策略,并將相應(yīng)的管理策略發(fā)送給 OpenFlow流表管理模塊,用戶(hù)可以通過(guò)該模塊選擇流量管理的規(guī)則以及路由策略,實(shí)現(xiàn)對(duì)整個(gè)網(wǎng)絡(luò)對(duì)流量管理控制。
② 路由計(jì)算模塊:路由計(jì)算模塊根據(jù)路由選擇策略確定的路由算法與交換機(jī)的拓?fù)浣Y(jié)構(gòu)計(jì)算得到任意兩個(gè)所述交換機(jī)之間的路由路徑信息;路由路徑信息是以任意兩個(gè)交換機(jī)中一個(gè)作為源交換機(jī)到達(dá)另一個(gè)目的交換機(jī)所經(jīng)過(guò)的交路徑;路由計(jì)算模塊根據(jù)所述流量管理規(guī)則以及根據(jù)在路由路徑信息中選擇合理路由信息并將合理路由信息發(fā)送給所述流表管理模塊。
2)控制器模塊:傳達(dá)網(wǎng)絡(luò)控制指令,收集網(wǎng)絡(luò)信息;包含流量分析模塊以及OpenFlow流表管理模塊。
① 流量分析模塊:主要完成計(jì)算流量速率、丟包率等反應(yīng)流量狀態(tài)的數(shù)據(jù)包括交換機(jī)端口流、Mac流、IP流、TCP/UDP流的流量狀態(tài)。通過(guò)API接口為流量管理模塊提供實(shí)時(shí)網(wǎng)絡(luò)流量信息。
② 所述流表管理模塊,用于生成以及更新OpenFlow流表,并將所述流表項(xiàng)發(fā)送給交換機(jī)。
3)OpenFlow交換機(jī)模塊:執(zhí)行網(wǎng)絡(luò)控制;包含 OpenFlow流表、流量測(cè)量模塊、數(shù)據(jù)包轉(zhuǎn)發(fā)模塊。
① OpenFlow流表:用于根據(jù)所屬控制器下發(fā)的流表項(xiàng)匹配接收到的數(shù)據(jù)包包頭,匹配成功,調(diào)用轉(zhuǎn)發(fā)模塊傳輸數(shù)據(jù)包;如果匹配失敗,則傳送到控制器中進(jìn)行處理。流表項(xiàng)包括匹配域和動(dòng)作指令。匹配域包含目的交換機(jī)的ID、計(jì)數(shù)器、指令內(nèi)容包括匹配成功后轉(zhuǎn)發(fā)給下一個(gè)出口的標(biāo)志。
② 流量測(cè)量模塊:記錄經(jīng)過(guò)所屬交換機(jī)以及所述交換機(jī)每一個(gè)端口的數(shù)據(jù)交換狀態(tài),包括接受以及傳輸數(shù)據(jù)包的數(shù)目、丟包數(shù)、接受以及傳輸?shù)淖止?jié)數(shù)量,供流量分析模塊讀取。該模塊讀寫(xiě)流表項(xiàng)的計(jì)數(shù)器字段,可以針對(duì)交換機(jī)的每一個(gè)設(shè)備端口,每個(gè)轉(zhuǎn)發(fā)隊(duì)列進(jìn)行統(tǒng)計(jì)。
③ 數(shù)據(jù)包轉(zhuǎn)發(fā)模塊:交換機(jī)底層用于轉(zhuǎn)發(fā)數(shù)據(jù)包的模塊,接受一個(gè)數(shù)據(jù)包,按照OpenFlow流表指令規(guī)則轉(zhuǎn)發(fā)到特定的端口。
3.3 系統(tǒng)的具體實(shí)現(xiàn)
本文提出的SDN的流量管理系統(tǒng)是控制器定時(shí)讀取交換機(jī)的流量狀態(tài),經(jīng)過(guò)分析后交由流量管理模塊,流量管理模塊根據(jù)全局網(wǎng)絡(luò)流量狀態(tài)以及管理人員制定的流量管理策略,生成流量管理規(guī)則,通過(guò)OpenFlow協(xié)議配置、管理和修改交換機(jī)中的OpenFlow流標(biāo),達(dá)到自主調(diào)配網(wǎng)絡(luò)資源的目的。該系統(tǒng)的具體實(shí)現(xiàn)方法包括如下步驟:
1)系統(tǒng)初始化,流量管理模塊為每一個(gè)交換機(jī)生成一個(gè)唯一ID標(biāo)示,該ID用于并且根據(jù)網(wǎng)絡(luò)拓?fù)湫畔⒁约傲髁抗芾聿呗猿跏蓟薪粨Q機(jī)的流表。
2)系統(tǒng)啟動(dòng)后,數(shù)據(jù)包經(jīng)過(guò)OpenFlow交換機(jī)時(shí)匹配OpenFlow流表項(xiàng),若匹配成功,則執(zhí)行轉(zhuǎn)發(fā)動(dòng)作并且更新流量測(cè)量模塊,統(tǒng)計(jì)接收和傳輸?shù)恼_及錯(cuò)誤的數(shù)據(jù)包數(shù)目和字節(jié)數(shù);若匹配不成功,將數(shù)據(jù)包轉(zhuǎn)發(fā)給控制器處理。
3)控制器定期向流量測(cè)定模塊發(fā)送請(qǐng)求,讀取流量統(tǒng)計(jì)結(jié)果并將統(tǒng)計(jì)數(shù)據(jù)存儲(chǔ)到流量分析模塊。
4)流量分析模塊根據(jù)流流量分析模塊根據(jù)流表項(xiàng)中的匹配域和計(jì)數(shù)器,計(jì)算交換機(jī)的每一個(gè)端口、MAC地址、IP地址、協(xié)議端口號(hào)的各個(gè)流的流量接收率、傳輸速率以及丟包速率,得到整個(gè)網(wǎng)絡(luò)的流量狀態(tài)。同時(shí),將分析結(jié)果傳送給流量管理模塊。
5)流量管理模塊根據(jù)管理人員制定的流量管理策略和接收到的流量分析結(jié)果,判斷是否需要對(duì)于當(dāng)前網(wǎng)絡(luò)采取管理動(dòng)作(管理動(dòng)作包括丟包、限制速率等),如果需要,則形成相應(yīng)的流量管理規(guī)則并返回給交換機(jī)控制器,如果不需要,則不需要進(jìn)行其他動(dòng)作。
6)控制器根據(jù)流量管理模塊的發(fā)出的命令生成OpenFlow協(xié)議支持的相應(yīng)流表項(xiàng),并通過(guò)OpenFlow協(xié)議下發(fā)給相應(yīng)的交換機(jī)。
7)交換機(jī)接收流量管理模塊分發(fā)的流表項(xiàng)后,更新流表,使接收到的數(shù)據(jù)包匹配新的流表項(xiàng),執(zhí)行動(dòng)作。
根據(jù)上述的軟件定義網(wǎng)絡(luò)中的流量管理系統(tǒng)的實(shí)現(xiàn)方法,其中:步驟5中,流量管理模塊對(duì)當(dāng)前網(wǎng)絡(luò)可采取丟包、限制速率、分配空閑資源三種動(dòng)作。
4 總結(jié)
本文提出了一種基于軟件定義網(wǎng)絡(luò)流量管理系統(tǒng)的實(shí)現(xiàn)方法,相比現(xiàn)行的硬件控制網(wǎng)絡(luò)管理系統(tǒng),我們的軟件定義網(wǎng)絡(luò)的具有以下優(yōu)點(diǎn):
1)軟件模式的流量管理系統(tǒng)可控制性高、可變性好、拓展性強(qiáng)。
2)流量管理系統(tǒng)中對(duì)交換機(jī)的流量測(cè)試由流量管理模塊統(tǒng)一管理,無(wú)需對(duì)網(wǎng)絡(luò)設(shè)備進(jìn)行逐一操作。
3)實(shí)現(xiàn)了全網(wǎng)集中式流量管理機(jī)制,統(tǒng)一配置調(diào)度網(wǎng)絡(luò)資源,提高了資源的配置網(wǎng)絡(luò)的運(yùn)行效率。
4)可以在出現(xiàn)峰值網(wǎng)絡(luò)流時(shí)保證數(shù)據(jù)包的有效轉(zhuǎn)發(fā),不會(huì)造成大量數(shù)據(jù)包丟棄。
基于軟件定義網(wǎng)絡(luò)的流量管理系統(tǒng)實(shí)現(xiàn)了對(duì)整個(gè)網(wǎng)絡(luò)中所有數(shù)據(jù)流的靈活調(diào)配和統(tǒng)一管理;同時(shí)管控都集中于流量管理模塊,整個(gè)網(wǎng)絡(luò)流量管理措施的更新與修改只需要配置流連管理模塊,簡(jiǎn)化了流量管理措施的執(zhí)行。
5 致謝
本文受?chē)?guó)家高技術(shù)研究發(fā)展計(jì)劃(863計(jì)劃) 項(xiàng)目“未來(lái)網(wǎng)絡(luò)體系結(jié)構(gòu)創(chuàng)新環(huán)境” (項(xiàng)目編號(hào):2013AA013505)資助。
參考文獻(xiàn):
[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] 孫雁飛.一種時(shí)滯網(wǎng)絡(luò)自適應(yīng)主動(dòng)隊(duì)列管理算法研究[J].電子與信息學(xué)報(bào), 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] 王文東,胡延楠. 軟件定義網(wǎng)絡(luò), 正在進(jìn)行的網(wǎng)絡(luò)變革[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.