周鵬,王宏(國防科技大學(xué),長沙 410000)
基于OpenFlow的網(wǎng)絡(luò)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
周鵬,王宏
(國防科技大學(xué),長沙410000)
隨著大數(shù)據(jù)、云計(jì)算等技術(shù)的迅速發(fā)展和各種新興業(yè)務(wù)的應(yīng)用,網(wǎng)絡(luò)規(guī)模越來越大,異構(gòu)性和復(fù)雜性的與日俱增,相應(yīng)的網(wǎng)絡(luò)管理需求和難度也日益增加,并且網(wǎng)絡(luò)中存在的多種互不相關(guān)的協(xié)議,主要被用來在不同拓?fù)浣Y(jié)構(gòu)和連接速度的主機(jī)間建立連接,由于各個(gè)協(xié)議主要是針對具體問題設(shè)計(jì)而缺少共性抽象,會(huì)進(jìn)一步導(dǎo)致網(wǎng)絡(luò)脆弱性增加,因此根據(jù)需要設(shè)計(jì)高效合理的網(wǎng)絡(luò)管理系統(tǒng)保證網(wǎng)絡(luò)穩(wěn)定和健壯的運(yùn)行顯得尤為重要。
正是在這一背景下,以O(shè)penFlow為代表的SDN(軟件定義網(wǎng)絡(luò))提出的解耦數(shù)據(jù)平面和控制平面、通過靈活的軟件編程能力簡化網(wǎng)絡(luò)管理的概念給我們指明了一條新的思路[1]。OpenFlow網(wǎng)絡(luò)的數(shù)據(jù)流由控制器作出轉(zhuǎn)發(fā)決定,也使得網(wǎng)絡(luò)管理技術(shù)在OpenFlow網(wǎng)絡(luò)中更易于實(shí)現(xiàn)。
1.1總體結(jié)構(gòu)
網(wǎng)絡(luò)管理的終極目標(biāo)是保障網(wǎng)絡(luò)順暢又穩(wěn)定運(yùn)行。所以及時(shí)了解網(wǎng)絡(luò)設(shè)備參數(shù)和網(wǎng)絡(luò)運(yùn)行狀況顯得至關(guān)重要。但是隨著網(wǎng)絡(luò)結(jié)構(gòu)的復(fù)雜和規(guī)模的增加,網(wǎng)絡(luò)底層的具體參數(shù)信息和各項(xiàng)指標(biāo)很難得到準(zhǔn)確和直觀的反映。因此,我們希望有一種能夠可視化和量化網(wǎng)絡(luò)的方式對網(wǎng)絡(luò)進(jìn)行整體管控,結(jié)合具體業(yè)務(wù)進(jìn)行網(wǎng)絡(luò)綜合規(guī)劃和部署[2]。
針對傳統(tǒng)基于SNMP的管理機(jī)制導(dǎo)致分散在網(wǎng)絡(luò)各節(jié)點(diǎn)的設(shè)備配置復(fù)雜且不容易快速部署,以及隨著規(guī)模增大產(chǎn)生的集中控制能力欠缺,很難對網(wǎng)絡(luò)資源作出及時(shí)的應(yīng)對,更加的靈活管理手段就顯得勢在必行。本文設(shè)計(jì)的OpenFlow網(wǎng)絡(luò)模式下的集中式網(wǎng)絡(luò)管理系統(tǒng),自上而下分為管理層和控制層。其中,管理層和控制層部署在控制器端,而控制層的下面則是以O(shè)penFlow軟交換機(jī)(OpenFlow vSwitch)組成的數(shù)據(jù)平面,整個(gè)管理系統(tǒng)框架如圖1所示。
1.2管理層應(yīng)用組件
以組件化的形式開發(fā)系統(tǒng)的好處在于增加模塊的二次重用,而不用設(shè)計(jì)一個(gè)功能完善的聚核,根據(jù)需求設(shè)計(jì)自定義功能模塊,在減小開發(fā)難度的同時(shí)實(shí)現(xiàn)了應(yīng)用的靈活調(diào)用[3]。本文在管理層主要設(shè)計(jì)并實(shí)現(xiàn)了網(wǎng)絡(luò)策略自動(dòng)部署的應(yīng)用組件。
網(wǎng)絡(luò)策略自動(dòng)部署結(jié)構(gòu)包含了諸如拓?fù)涔芾?、策略決策、策略分解、策略派發(fā)、控制代理、策略驗(yàn)證等功能模塊,模塊間盡量遵循了高內(nèi)聚低耦合的思想[4],在增加模塊重用的同時(shí)開發(fā)新的功能,減少模塊間通信對其他模塊造成的依賴[5]。其整體結(jié)構(gòu)如圖2所示。
圖1 系統(tǒng)整體設(shè)計(jì)框架
圖2 策略自動(dòng)部署結(jié)構(gòu)
拓?fù)涔芾砟K通過主動(dòng)與底層交換設(shè)備通信,從返回的反饋報(bào)文獲得設(shè)備間的鏈接關(guān)系,進(jìn)一步形成網(wǎng)絡(luò)拓?fù)?,通過不斷更新和整合后返回給上層數(shù)據(jù)庫供策略決策模塊調(diào)用;策略決策模塊通過訪問數(shù)據(jù)庫實(shí)現(xiàn)對數(shù)據(jù)平面網(wǎng)絡(luò)資源的獲取,根據(jù)業(yè)務(wù)需求和當(dāng)前網(wǎng)絡(luò)運(yùn)行狀況,對網(wǎng)絡(luò)進(jìn)行統(tǒng)一規(guī)劃,站在全局的高度制定配置策略,包括轉(zhuǎn)發(fā)策略、設(shè)備問控制策略等;策略分解模塊接收策略決策模塊傳輸?shù)木唧w配置要求,將針對全網(wǎng)的配置管理要求分解為一條條配置命令序列,并通告策略派發(fā)模塊;策略派發(fā)模塊有點(diǎn)類似一個(gè)緩沖棧,它將自策略分解模塊下發(fā)的配置命令序列進(jìn)行整理排隊(duì),并發(fā)往相應(yīng)的控制代理模塊,控制代理模塊將接收到的配置命令序列遠(yuǎn)程下發(fā)給數(shù)據(jù)平面相應(yīng)OpenFlow軟交換機(jī);策略驗(yàn)證模塊通過對網(wǎng)絡(luò)狀態(tài)的監(jiān)視,將各個(gè)區(qū)域的策略執(zhí)行結(jié)果進(jìn)行匯總,驗(yàn)證當(dāng)前實(shí)際策略是否與預(yù)先規(guī)劃的策略保持一致,最后將驗(yàn)證結(jié)果返回給數(shù)據(jù)庫供策略決策模塊調(diào)用。
管理系統(tǒng)具有一定的自適應(yīng)性,控制器能夠?qū)?shù)據(jù)平面返回的報(bào)文作出相應(yīng)處理。不過這是建立在系統(tǒng)初始化配置的基礎(chǔ)上,當(dāng)業(yè)務(wù)流到達(dá)時(shí),應(yīng)用管理層通過調(diào)用底層網(wǎng)絡(luò)資源結(jié)合具體業(yè)務(wù)需求制定全局策略,并將策略下發(fā)給控制代理并完成相應(yīng)配置,整個(gè)策略部署機(jī)制的時(shí)序圖如圖3所示。
圖3 網(wǎng)絡(luò)策略部署時(shí)序圖
1.3控制層控制代理組件
應(yīng)用組件實(shí)現(xiàn)對網(wǎng)絡(luò)資源的提取并結(jié)合具體需求分析形成全局綜合方案下發(fā)后,控制代理組件對網(wǎng)絡(luò)進(jìn)行統(tǒng)一配置,它是業(yè)務(wù)需求得以實(shí)現(xiàn)的執(zhí)行實(shí)體??刂拼斫M件主要模塊結(jié)構(gòu)如圖4所示。
圖4 控制代理組件模塊結(jié)構(gòu)
其中,實(shí)體線形框架為控制代理組件模塊。管理實(shí)體模塊負(fù)責(zé)接收應(yīng)用層下發(fā)的策略執(zhí)行請求。它主要描述了被管網(wǎng)絡(luò)資源以及網(wǎng)絡(luò)管理信息的實(shí)體。
OpenFlow網(wǎng)絡(luò)配置協(xié)議OF-CONFIG主要利用NETCONF作為傳輸協(xié)議;RPC執(zhí)行模塊對應(yīng)者NETCONF操作協(xié)議中的RPC層功能,負(fù)責(zé)具體管理應(yīng)用RPC操作的請求和響應(yīng)功能;協(xié)議操作模塊主要包括會(huì)話操作和抽象的NETCONF操作。NETCONF操作對應(yīng)協(xié)議的操作層功能。該模塊收到應(yīng)用操作請求時(shí),首先訪問RPC執(zhí)行模塊生成請求消息,然后通過封裝在面向連接的TCP協(xié)議的會(huì)話操作應(yīng)用層協(xié)議發(fā)送給被管對象,并等待響應(yīng);會(huì)話操作模塊采用能夠滿足NETCONF協(xié)議需求的任何應(yīng)用層協(xié)議來建立管理被管對象和管理實(shí)體之間的會(huì)話,并且為了在管理實(shí)體和被管對象間建立可靠連接。
NETCONF可以利用任何實(shí)現(xiàn)協(xié)議功能的應(yīng)用協(xié)議創(chuàng)建管理實(shí)體和被管對象的會(huì)話。本系統(tǒng)選擇SSL作為應(yīng)用層協(xié)議建立連接關(guān)系。NcSession類是所有實(shí)現(xiàn)會(huì)話的基類。其中,NcSessionMgr是NetConf類根據(jù)特定的應(yīng)用協(xié)議創(chuàng)建的一個(gè)對象。該對象主要用來對管理實(shí)體和被管對象之間建立的會(huì)話進(jìn)行管理,并根據(jù)協(xié)議具體操作請求來創(chuàng)建NcSession對象,管理實(shí)體對底層被管對象的具體操作過程如圖5所示。
圖5 管理操作時(shí)序圖
控制代理模塊通過把各個(gè)等待執(zhí)行的配置操壓入隊(duì)列,并分配每個(gè)配置操作一個(gè)對應(yīng)的標(biāo)識ID,相應(yīng)地,也有一個(gè)和已經(jīng)完成每項(xiàng)配置消息相匹配的標(biāo)識ID組成的已執(zhí)行操作表。被管對象收到配置應(yīng)用請求時(shí):先給配置消息分配一個(gè)標(biāo)識放入可執(zhí)行操作隊(duì)列,等待操作;配置操作通過可執(zhí)行操作隊(duì)列分配的標(biāo)識ID調(diào)用RPC類的RPCElement()方法來生成由<rpc>元素封裝的請求消息,協(xié)議rpc請求通過時(shí),進(jìn)行相應(yīng)配置操作;事務(wù)進(jìn)入completing狀態(tài);將對應(yīng)的配置操作標(biāo)識寫入已執(zhí)行操作表;將可執(zhí)行操作表中已完的配置操作標(biāo)識刪除,事務(wù)進(jìn)入completed狀態(tài),整個(gè)配置過程完成。
基于目前用OpenFlow交換機(jī)進(jìn)行實(shí)驗(yàn)環(huán)境搭建較為困難,本文設(shè)計(jì)的基于OpenFlow的網(wǎng)絡(luò)管理系統(tǒng),主要實(shí)驗(yàn)環(huán)境搭建在主機(jī)和主機(jī)上安裝的Linux虛擬機(jī)系統(tǒng)上,硬件主體是一臺能夠滿足實(shí)驗(yàn)需求的裝有XP系統(tǒng),內(nèi)存6G的主機(jī),軟件主體部分是安裝在虛擬機(jī)Oracle VM Virtualbox上的Ubuntu 2.6.38-8-generic虛擬機(jī)系統(tǒng),系統(tǒng)集成了mininet工具來模擬網(wǎng)絡(luò)的連接和拓?fù)潢P(guān)系。實(shí)驗(yàn)安裝了一個(gè)在XP系統(tǒng)上運(yùn)行X window System的Xming軟件,它與Putty一起完成Linux X11在主機(jī)上的顯示。Putty作為TCP串行接口主要和Xming結(jié)合一起實(shí)現(xiàn)虛擬機(jī)到主機(jī)端的通信和顯示。
首先通過搭建一個(gè)基于OpenFlow的網(wǎng)絡(luò)環(huán)境,來驗(yàn)證本文設(shè)計(jì)的管理系統(tǒng)功能。拓?fù)洵h(huán)境如圖6所示主要包括主機(jī)端的管理系統(tǒng)和虛擬機(jī)系統(tǒng)部署的OpenFlow軟交換機(jī),其中,實(shí)線表示虛擬機(jī)系統(tǒng)里的OpenFlow軟交換機(jī)間數(shù)據(jù)流交互,虛線表示主機(jī)端通過Putty/Xming和虛擬機(jī)系統(tǒng)的控制流交互。
實(shí)驗(yàn)首先通過“openflow”賬戶和口令進(jìn)入Oracle VM VirtualBox Ubuntu系統(tǒng),運(yùn)行Xming服務(wù)器,通過圖7所示命令獲來取虛擬機(jī)的兩個(gè)網(wǎng)口地址。
虛擬機(jī)的兩個(gè)網(wǎng)口分別采用NAT interface連接網(wǎng)絡(luò)以及host-only interface連接主機(jī)。虛擬機(jī)用來連接網(wǎng)絡(luò)的eth2網(wǎng)口地址為10.0.2.15,用來連接主機(jī)并進(jìn)行控制流交互的eth3網(wǎng)口地址為192.168.56.101,如圖8所示。
圖6 實(shí)驗(yàn)拓?fù)洵h(huán)境圖
圖7 虛擬機(jī)網(wǎng)口地址獲取命令
圖8 虛擬機(jī)網(wǎng)口地址
在系統(tǒng)功能的實(shí)現(xiàn)上,處理實(shí)現(xiàn)拓?fù)浍@取的pktin消息需要在startUp方法中進(jìn)行記錄,同時(shí)通過get-Name()為pkt-in報(bào)文監(jiān)聽者提供一個(gè)標(biāo)識,返回的pkt-in報(bào)文被提取鏈接關(guān)系后采用采用層次化的方式展示網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),最后管理系統(tǒng)通過對OpenFlow軟交換機(jī)進(jìn)行配置,控制平面通過OF-Config協(xié)議對數(shù)據(jù)平面進(jìn)行配置,配置操作通過可執(zhí)行操作隊(duì)列分配的標(biāo)識ID調(diào)用RPC類的RPCE lement()方法,來生成由<rpc>元素封裝的請求消息,進(jìn)行相應(yīng)配置操作,直到最后整個(gè)配置過程完成,返回拓?fù)溥B接狀態(tài)如圖9所示:
圖9 配置后拓?fù)鋱D顯示
通過上面的測試可以看出,通過整體實(shí)驗(yàn)平臺的搭建,主機(jī)端的管理系統(tǒng)和虛擬極端mininet模擬的OVS數(shù)據(jù)平面能夠進(jìn)行OpenFlow信息的交互,探測報(bào)文和下發(fā)的配置策略能夠得到正確執(zhí)行,基本完成了控制和數(shù)據(jù)信息的傳輸,也即基于OpenFlow的網(wǎng)絡(luò)管理系統(tǒng)能夠有效地實(shí)現(xiàn)其指定功能。
本文針對SNMP協(xié)議對網(wǎng)絡(luò)設(shè)置的有限支持,以及使用SNMP協(xié)議的網(wǎng)絡(luò)管理系統(tǒng)在實(shí)現(xiàn)網(wǎng)絡(luò)配置功能時(shí)存在的不足,提出了一種基于OpenFlow的集中式網(wǎng)絡(luò)管理系統(tǒng),通過管理層和控制層各組件和模塊的設(shè)計(jì),結(jié)合具體業(yè)務(wù)進(jìn)行網(wǎng)絡(luò)綜合規(guī)劃和部署。實(shí)現(xiàn)了以可視化和量化網(wǎng)絡(luò)的方式對網(wǎng)絡(luò)的整體管控。
但是文本設(shè)計(jì)的集中式管理架構(gòu)比較適合對小型網(wǎng)絡(luò)環(huán)境的管理,隨著網(wǎng)絡(luò)復(fù)雜度的增加和規(guī)模的擴(kuò)大,分布式的網(wǎng)絡(luò)架構(gòu)是一種必然。并且相較于控制器提供的Java接口對模塊進(jìn)行二次開發(fā)和創(chuàng)新,通過北向接口實(shí)現(xiàn)靈活、開放的應(yīng)用開發(fā)對于今后云計(jì)算和大數(shù)據(jù)等新興業(yè)務(wù)的發(fā)展更是大勢所趨。
[1]左青云.基于OpenFlow的SDN技術(shù)[N].軟件學(xué)報(bào),2013-03-29(3).
[2]Sharafat AR,Das S,Parulkar G,McKeown N.MPLS-TE and MPLS VPNs with OpenFlow.[J]SIGCOMM,2011(3):25-34.
[3]Heller B,Sherwood R,McKeown N.The controller placement problem.[J]SIGCOMM,2012(6):7-12.
[4]Martin Casado,TeemuKoponen.Onix:A distributed control platform for large-scale production network[J].OSDI,2010,(3):07~13.
[5]Gibb G,Underhill D,Covington A,Yabe T,McKeown N.OpenPipes:Prototyping high-speed networking systems.[J].SIGCOMM 2009,(3):07~13.
OpenFlow;OF-CONFIG;OpenFlow vSwitch;Management System
Design and Implementation of Network Management System Based on OpenFlow
ZHOU Peng,WANG Hong
(National University of Defence Technology,Changsha Hunan 410000)
1007-1423(2015)24-0043-05
10.3969/j.issn.1007-1423.2015.24.011
周鵬(1990-),男,四川達(dá)州人,碩士研究生,研究方向?yàn)橛?jì)算機(jī)網(wǎng)絡(luò)、網(wǎng)絡(luò)軟件開發(fā)
2015-06-04
2015-07-28
由于SNMP協(xié)議對網(wǎng)絡(luò)設(shè)置的支持有限,使用SNMP協(xié)議的網(wǎng)絡(luò)管理系統(tǒng)在實(shí)現(xiàn)網(wǎng)絡(luò)配置功能時(shí)存在不足?;贠penFlow的集中式網(wǎng)絡(luò)管理系統(tǒng),利用數(shù)據(jù)轉(zhuǎn)發(fā)與控制分離的網(wǎng)絡(luò)架構(gòu),結(jié)合管理應(yīng)用層的業(yè)務(wù)需求,進(jìn)行自頂向下的管理層的應(yīng)用組件和控制層的服務(wù)組件與控制代理組建設(shè)計(jì),實(shí)現(xiàn)控制器對底層網(wǎng)絡(luò)資源的調(diào)用以及通過可視化的方式對網(wǎng)絡(luò)進(jìn)行整體管控;對原型系統(tǒng)進(jìn)行功能測試和場景驗(yàn)證,證實(shí)管理系統(tǒng)實(shí)現(xiàn)預(yù)定功能的正確性。
OpenFlow;OF-CONFIG;OpenFlow軟交換機(jī);管理系統(tǒng)
王宏(1964-),男,湖南益陽人,博士,研究員,研究方向?yàn)橛?jì)算機(jī)網(wǎng)絡(luò)、網(wǎng)絡(luò)安全和網(wǎng)絡(luò)組網(wǎng)
Due to the limited support of SNMP protocol for network settings,network management system using SNMP implementing the function of network configuration meets problems,based on the network architecture of separation of data forwarding and control,the centralized network management system based on OpenFlow combined with the management application layer service requirements,designs service component of application layer and sevice,control agent component of control layer with top-down module design,realizes controller calling to the underlying and cyber source through the visual way of network;finally,the prototype system is tested and confirmed to be correct of the pre management system function.