梁永珍 彭習(xí)羽 覃麗霏 何渝川 覃胤嘉
摘要:虛擬化與云化是未來(lái)網(wǎng)絡(luò)的演進(jìn)方向。SDN/NFV是未來(lái)網(wǎng)絡(luò)的核心技術(shù),仿真研究是SDN/NFV的常用手段,Mininet是常用的SDN仿真工具,但不支持NFV。為解決上述問題,本設(shè)計(jì)擬采用Docker輕量級(jí)、容器化的優(yōu)勢(shì),搭建具備SDN/NFV能力的仿真平臺(tái)-DockerNet。利用Docker容器技術(shù)封裝虛擬網(wǎng)絡(luò)功能(Virtual NetworkFunction,VNF),通過ovs-docker工具實(shí)現(xiàn)容器化的VNF與OVS交換機(jī)連接,形成基本的SDN/NFV仿真環(huán)境。同時(shí),為實(shí)現(xiàn)SDN/NFV仿真的便利性,DockerNet提供了典型網(wǎng)絡(luò)拓?fù)湟唤〔渴稹愋屯負(fù)渫献?chuàng)建、QOS信息自動(dòng)采集并可視化等功能。為SDN/NFV的理論研究、實(shí)驗(yàn)仿真、原型系統(tǒng)設(shè)計(jì)提供了基礎(chǔ)實(shí)驗(yàn)平臺(tái)。
關(guān)鍵詞:SDN;容器技術(shù);虛擬化
背景及現(xiàn)狀分析
軟件定義網(wǎng)絡(luò)[1](Software Defined Network,SDN)是一種革新的網(wǎng)絡(luò)體系架構(gòu)設(shè)計(jì)技術(shù)。由于其支持控制與轉(zhuǎn)發(fā)分離、開放的編程接口,以及軟件可定義的轉(zhuǎn)發(fā)控制,極大地提高了實(shí)現(xiàn)網(wǎng)絡(luò)與業(yè)務(wù)的管理控制的靈活性。
網(wǎng)絡(luò)功能虛擬化[2,3](Network Function Virtualiza-tion,NFV)是軟件定義基礎(chǔ)設(shè)施的一種新型網(wǎng)絡(luò)模式,使得網(wǎng)絡(luò)功能不需要利用中間件(MiddleWare)等硬件形式實(shí)現(xiàn)而利用軟件實(shí)現(xiàn)。
SDN/NFV作為未來(lái)網(wǎng)絡(luò)的核心技術(shù)。研究SDN/NFV常用手段是仿真。在學(xué)術(shù)界Mininet是常用的仿真工具,但不適于NFV的研究,同時(shí)只是利用名字空間劃分不同的主機(jī),在使用上不方便。在工業(yè)界,OpenS-tack是公認(rèn)的云計(jì)算平臺(tái),業(yè)界有使用其作為SDN/NFV的研究平臺(tái),但對(duì)于計(jì)算資源要求較高,同時(shí)組件繁多、學(xué)習(xí)曲線相當(dāng)陡峭。對(duì)SDN拓展研究較為不利,并且其為生產(chǎn)力部署平臺(tái)而不是一個(gè)仿真平臺(tái)。因此,迫切需要一個(gè)便捷的SDN/N]V仿真平臺(tái)。
Docker是一門可封裝應(yīng)用程序、可快速遷移的容器技術(shù),且相較于虛擬機(jī)更為輕量級(jí),在學(xué)術(shù)界及工業(yè)界均有廣泛研究,也被用于生產(chǎn)網(wǎng)絡(luò)(Production Net-work)。
綜上所述,本設(shè)計(jì)利用Docker容器的輕量級(jí)優(yōu)勢(shì)去實(shí)現(xiàn)SDN/NFV仿真平臺(tái)的搭建,同時(shí)對(duì)生產(chǎn)網(wǎng)絡(luò)也有兼顧作用。進(jìn)一步地,再將搭建出DockerNet擴(kuò)展為圖形化界面下的仿真平臺(tái)。為SDN/NFV的理論研究、原型系統(tǒng)設(shè)計(jì)提供基礎(chǔ)實(shí)驗(yàn)平臺(tái)。
擬解決問題
在搭建這樣一個(gè)便捷的仿真平臺(tái)將遇到以下幾個(gè)需解決的問題:第一點(diǎn),如何利用輕量級(jí)的Docker封裝虛擬網(wǎng)絡(luò)功能VNF并和OVS結(jié)合,實(shí)現(xiàn)容器間的相互通信、OVS受控于Floodlight控制器,搭建出SDN/NFV仿真平臺(tái)的基礎(chǔ);第二點(diǎn),如何提供此仿真平臺(tái)的API,使得調(diào)用API實(shí)現(xiàn)帶參數(shù)化、一鍵快速部署網(wǎng)絡(luò)拓?fù)涞墓δ?第三點(diǎn),如何通過調(diào)用Docker后臺(tái)API與Java-Script等前端技術(shù)相結(jié)合,設(shè)計(jì)出一個(gè)清晰、易于網(wǎng)絡(luò)管理員使用的圖形化用戶界面,實(shí)現(xiàn)拖拽式自定義網(wǎng)絡(luò)拓?fù)涞墓δ?第四點(diǎn),如何采集OVS交換機(jī)的服務(wù)質(zhì)量信息,提供將QOS信息呈現(xiàn)在前端頁(yè)面的功能,以支持上層應(yīng)用的開發(fā)。
解決方案及實(shí)現(xiàn)
為解決上述問題,利用Docker能快速搭建好開發(fā)和運(yùn)行環(huán)境、移植性強(qiáng)、快速部署的能力,同SDN進(jìn)行結(jié)合。
具體地,首先,在Docker內(nèi)運(yùn)行鏡像開啟容器封裝VNF,再使用OVS創(chuàng)建交換機(jī)并使用ovs-docker工具將容器和交換機(jī)連接起來(lái),并使OVS交換機(jī)受控于Floodlight控制器。其次,調(diào)用Docker的API結(jié)合編程實(shí)現(xiàn)拓?fù)洳渴鸬哪_本化以提供快速部署拓?fù)涞腁PI,此API可實(shí)現(xiàn)帶參數(shù)化的一鍵快速部署網(wǎng)絡(luò)拓?fù)洹T俅危Y(jié)合Web前端技術(shù)提供拖拽式生成網(wǎng)絡(luò)拓?fù)洌岸送献蒍SON格式表示的網(wǎng)絡(luò)拓?fù)溆珊蠖舜a自動(dòng)解析并部署網(wǎng)絡(luò)拓?fù)洹W詈螅褂没贚LDP協(xié)議的捎帶式服務(wù)質(zhì)量采集機(jī)制采集OVS的QOS信息,并把信息呈現(xiàn)在前端頁(yè)面。
系統(tǒng)設(shè)計(jì)及實(shí)施
1 .搭建SDN/NFV仿真平臺(tái)
利用ovs-docker工具使Docker容器之間通過OVS交換機(jī)進(jìn)行通信,進(jìn)一步將OVS交換機(jī)和Docker容器以及OVS交換機(jī)之間的連接命令封裝。并利用python庫(kù)實(shí)現(xiàn)對(duì)于Docker腳本化操縱,方便平臺(tái)直接調(diào)用。
1.2 典型數(shù)據(jù)中心拓?fù)浣Y(jié)構(gòu)的便捷部署
完成對(duì)于SDN/NFV仿真環(huán)境搭建出的基礎(chǔ)上,無(wú)需再使用復(fù)雜的命令創(chuàng)建拓?fù)洌瑴p少?gòu)?fù)雜程度,提高整體的效率。編寫參數(shù)化的典型拓?fù)淠_本,實(shí)現(xiàn)便捷部署。如將編寫帶參數(shù)的典型拓?fù)浣Y(jié)構(gòu)Fat-Tree,快速部署到SDN/NFV環(huán)境中。
1.3 自定義拓?fù)涞耐献讲渴?/p>
將在圖形化web界面手動(dòng)拖拽生成的拓?fù)湫畔ⅲ枣I值對(duì)的方式,進(jìn)一步將信息歸類保存為JSON格式進(jìn)行傳輸并生成文件,便于后端進(jìn)行解析,并創(chuàng)建拓?fù)洹N募写娣庞兄鳈C(jī)的鏡像、IP地址及交換機(jī)鏈路等信息。實(shí)現(xiàn)用戶自動(dòng)以復(fù)雜的、異型拓?fù)涞耐献讲渴稹?/p>
1.4 QoS信息的采集
將OVS交換機(jī)的相關(guān)功能進(jìn)行改進(jìn),實(shí)現(xiàn)通過Ll])P捎帶OVS的QOS信息,完成對(duì)于OVS上QOS信息的收集,使平臺(tái)能夠周期式的采集服務(wù)質(zhì)量信息,呈現(xiàn)在前臺(tái)頁(yè)面供用戶決策,也可通過API供上層應(yīng)用實(shí)現(xiàn)QOS路由,QOS保障的方面通過Floodlight API獲取源目地址之間的基于跳數(shù)的路徑。通過Allroute API獲取全部路徑信息。通過Floodlight API獲取交換機(jī)端口之間的連接關(guān)系。通過QoS API獲取交換機(jī)端口的QOS信息。
參考文獻(xiàn):
[1]黃韜,劉江,魏亮,張嬌,楊帆,劉韻潔.軟件定義網(wǎng)絡(luò)核心原理與應(yīng)用實(shí)踐.[M].人民郵電出版社.2016.
[2]雷葆華,王峰,王茜,王和宇.SDN核心技術(shù)剖析和實(shí)戰(zhàn)指南[M].北京:電子工業(yè)出版社,2013.
[3]蔣銘,于益俊.NIFV與VNF架構(gòu)演進(jìn)與網(wǎng)絡(luò)架構(gòu)未來(lái)[M].上海:華為上海研究所2012.