周鵬,王宏(國防科技大學,長沙 410000)
基于OpenFlow的網絡管理系統設計與實現
周鵬,王宏
(國防科技大學,長沙410000)
隨著大數據、云計算等技術的迅速發展和各種新興業務的應用,網絡規模越來越大,異構性和復雜性的與日俱增,相應的網絡管理需求和難度也日益增加,并且網絡中存在的多種互不相關的協議,主要被用來在不同拓撲結構和連接速度的主機間建立連接,由于各個協議主要是針對具體問題設計而缺少共性抽象,會進一步導致網絡脆弱性增加,因此根據需要設計高效合理的網絡管理系統保證網絡穩定和健壯的運行顯得尤為重要。
正是在這一背景下,以OpenFlow為代表的SDN(軟件定義網絡)提出的解耦數據平面和控制平面、通過靈活的軟件編程能力簡化網絡管理的概念給我們指明了一條新的思路[1]。OpenFlow網絡的數據流由控制器作出轉發決定,也使得網絡管理技術在OpenFlow網絡中更易于實現。
1.1總體結構
網絡管理的終極目標是保障網絡順暢又穩定運行。所以及時了解網絡設備參數和網絡運行狀況顯得至關重要。但是隨著網絡結構的復雜和規模的增加,網絡底層的具體參數信息和各項指標很難得到準確和直觀的反映。因此,我們希望有一種能夠可視化和量化網絡的方式對網絡進行整體管控,結合具體業務進行網絡綜合規劃和部署[2]。
針對傳統基于SNMP的管理機制導致分散在網絡各節點的設備配置復雜且不容易快速部署,以及隨著規模增大產生的集中控制能力欠缺,很難對網絡資源作出及時的應對,更加的靈活管理手段就顯得勢在必行。本文設計的OpenFlow網絡模式下的集中式網絡管理系統,自上而下分為管理層和控制層。其中,管理層和控制層部署在控制器端,而控制層的下面則是以OpenFlow軟交換機(OpenFlow vSwitch)組成的數據平面,整個管理系統框架如圖1所示。
1.2管理層應用組件
以組件化的形式開發系統的好處在于增加模塊的二次重用,而不用設計一個功能完善的聚核,根據需求設計自定義功能模塊,在減小開發難度的同時實現了應用的靈活調用[3]。本文在管理層主要設計并實現了網絡策略自動部署的應用組件。
網絡策略自動部署結構包含了諸如拓撲管理、策略決策、策略分解、策略派發、控制代理、策略驗證等功能模塊,模塊間盡量遵循了高內聚低耦合的思想[4],在增加模塊重用的同時開發新的功能,減少模塊間通信對其他模塊造成的依賴[5]。其整體結構如圖2所示。

圖1 系統整體設計框架

圖2 策略自動部署結構
拓撲管理模塊通過主動與底層交換設備通信,從返回的反饋報文獲得設備間的鏈接關系,進一步形成網絡拓撲,通過不斷更新和整合后返回給上層數據庫供策略決策模塊調用;策略決策模塊通過訪問數據庫實現對數據平面網絡資源的獲取,根據業務需求和當前網絡運行狀況,對網絡進行統一規劃,站在全局的高度制定配置策略,包括轉發策略、設備問控制策略等;策略分解模塊接收策略決策模塊傳輸的具體配置要求,將針對全網的配置管理要求分解為一條條配置命令序列,并通告策略派發模塊;策略派發模塊有點類似一個緩沖棧,它將自策略分解模塊下發的配置命令序列進行整理排隊,并發往相應的控制代理模塊,控制代理模塊將接收到的配置命令序列遠程下發給數據平面相應OpenFlow軟交換機;策略驗證模塊通過對網絡狀態的監視,將各個區域的策略執行結果進行匯總,驗證當前實際策略是否與預先規劃的策略保持一致,最后將驗證結果返回給數據庫供策略決策模塊調用。
管理系統具有一定的自適應性,控制器能夠對數據平面返回的報文作出相應處理。不過這是建立在系統初始化配置的基礎上,當業務流到達時,應用管理層通過調用底層網絡資源結合具體業務需求制定全局策略,并將策略下發給控制代理并完成相應配置,整個策略部署機制的時序圖如圖3所示。

圖3 網絡策略部署時序圖
1.3控制層控制代理組件
應用組件實現對網絡資源的提取并結合具體需求分析形成全局綜合方案下發后,控制代理組件對網絡進行統一配置,它是業務需求得以實現的執行實體。控制代理組件主要模塊結構如圖4所示。

圖4 控制代理組件模塊結構
其中,實體線形框架為控制代理組件模塊。管理實體模塊負責接收應用層下發的策略執行請求。它主要描述了被管網絡資源以及網絡管理信息的實體。
OpenFlow網絡配置協議OF-CONFIG主要利用NETCONF作為傳輸協議;RPC執行模塊對應者NETCONF操作協議中的RPC層功能,負責具體管理應用RPC操作的請求和響應功能;協議操作模塊主要包括會話操作和抽象的NETCONF操作。NETCONF操作對應協議的操作層功能。該模塊收到應用操作請求時,首先訪問RPC執行模塊生成請求消息,然后通過封裝在面向連接的TCP協議的會話操作應用層協議發送給被管對象,并等待響應;會話操作模塊采用能夠滿足NETCONF協議需求的任何應用層協議來建立管理被管對象和管理實體之間的會話,并且為了在管理實體和被管對象間建立可靠連接。
NETCONF可以利用任何實現協議功能的應用協議創建管理實體和被管對象的會話。本系統選擇SSL作為應用層協議建立連接關系。NcSession類是所有實現會話的基類。其中,NcSessionMgr是NetConf類根據特定的應用協議創建的一個對象。該對象主要用來對管理實體和被管對象之間建立的會話進行管理,并根據協議具體操作請求來創建NcSession對象,管理實體對底層被管對象的具體操作過程如圖5所示。

圖5 管理操作時序圖
控制代理模塊通過把各個等待執行的配置操壓入隊列,并分配每個配置操作一個對應的標識ID,相應地,也有一個和已經完成每項配置消息相匹配的標識ID組成的已執行操作表。被管對象收到配置應用請求時:先給配置消息分配一個標識放入可執行操作隊列,等待操作;配置操作通過可執行操作隊列分配的標識ID調用RPC類的RPCElement()方法來生成由<rpc>元素封裝的請求消息,協議rpc請求通過時,進行相應配置操作;事務進入completing狀態;將對應的配置操作標識寫入已執行操作表;將可執行操作表中已完的配置操作標識刪除,事務進入completed狀態,整個配置過程完成。
基于目前用OpenFlow交換機進行實驗環境搭建較為困難,本文設計的基于OpenFlow的網絡管理系統,主要實驗環境搭建在主機和主機上安裝的Linux虛擬機系統上,硬件主體是一臺能夠滿足實驗需求的裝有XP系統,內存6G的主機,軟件主體部分是安裝在虛擬機Oracle VM Virtualbox上的Ubuntu 2.6.38-8-generic虛擬機系統,系統集成了mininet工具來模擬網絡的連接和拓撲關系。實驗安裝了一個在XP系統上運行X window System的Xming軟件,它與Putty一起完成Linux X11在主機上的顯示。Putty作為TCP串行接口主要和Xming結合一起實現虛擬機到主機端的通信和顯示。
首先通過搭建一個基于OpenFlow的網絡環境,來驗證本文設計的管理系統功能。拓撲環境如圖6所示主要包括主機端的管理系統和虛擬機系統部署的OpenFlow軟交換機,其中,實線表示虛擬機系統里的OpenFlow軟交換機間數據流交互,虛線表示主機端通過Putty/Xming和虛擬機系統的控制流交互。
實驗首先通過“openflow”賬戶和口令進入Oracle VM VirtualBox Ubuntu系統,運行Xming服務器,通過圖7所示命令獲來取虛擬機的兩個網口地址。
虛擬機的兩個網口分別采用NAT interface連接網絡以及host-only interface連接主機。虛擬機用來連接網絡的eth2網口地址為10.0.2.15,用來連接主機并進行控制流交互的eth3網口地址為192.168.56.101,如圖8所示。

圖6 實驗拓撲環境圖

圖7 虛擬機網口地址獲取命令

圖8 虛擬機網口地址
在系統功能的實現上,處理實現拓撲獲取的pktin消息需要在startUp方法中進行記錄,同時通過get-Name()為pkt-in報文監聽者提供一個標識,返回的pkt-in報文被提取鏈接關系后采用采用層次化的方式展示網絡拓撲結構,最后管理系統通過對OpenFlow軟交換機進行配置,控制平面通過OF-Config協議對數據平面進行配置,配置操作通過可執行操作隊列分配的標識ID調用RPC類的RPCE lement()方法,來生成由<rpc>元素封裝的請求消息,進行相應配置操作,直到最后整個配置過程完成,返回拓撲連接狀態如圖9所示:

圖9 配置后拓撲圖顯示
通過上面的測試可以看出,通過整體實驗平臺的搭建,主機端的管理系統和虛擬極端mininet模擬的OVS數據平面能夠進行OpenFlow信息的交互,探測報文和下發的配置策略能夠得到正確執行,基本完成了控制和數據信息的傳輸,也即基于OpenFlow的網絡管理系統能夠有效地實現其指定功能。
本文針對SNMP協議對網絡設置的有限支持,以及使用SNMP協議的網絡管理系統在實現網絡配置功能時存在的不足,提出了一種基于OpenFlow的集中式網絡管理系統,通過管理層和控制層各組件和模塊的設計,結合具體業務進行網絡綜合規劃和部署。實現了以可視化和量化網絡的方式對網絡的整體管控。
但是文本設計的集中式管理架構比較適合對小型網絡環境的管理,隨著網絡復雜度的增加和規模的擴大,分布式的網絡架構是一種必然。并且相較于控制器提供的Java接口對模塊進行二次開發和創新,通過北向接口實現靈活、開放的應用開發對于今后云計算和大數據等新興業務的發展更是大勢所趨。
[1]左青云.基于OpenFlow的SDN技術[N].軟件學報,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-),男,四川達州人,碩士研究生,研究方向為計算機網絡、網絡軟件開發
2015-06-04
2015-07-28
由于SNMP協議對網絡設置的支持有限,使用SNMP協議的網絡管理系統在實現網絡配置功能時存在不足。基于OpenFlow的集中式網絡管理系統,利用數據轉發與控制分離的網絡架構,結合管理應用層的業務需求,進行自頂向下的管理層的應用組件和控制層的服務組件與控制代理組建設計,實現控制器對底層網絡資源的調用以及通過可視化的方式對網絡進行整體管控;對原型系統進行功能測試和場景驗證,證實管理系統實現預定功能的正確性。
OpenFlow;OF-CONFIG;OpenFlow軟交換機;管理系統
王宏(1964-),男,湖南益陽人,博士,研究員,研究方向為計算機網絡、網絡安全和網絡組網
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.