劉果+陳凡+李劍鋒+吳京京
摘要:軟件定義網(wǎng)絡(SDN)是一種新型的網(wǎng)絡架構,其控制邏輯集中、轉發(fā)與控制分離、網(wǎng)絡可編程化三個特點,給網(wǎng)絡資源管理帶來新的思路,SDN的研究也對仿真實驗平臺提出要求。文章介紹了SDN及其主要協(xié)議OpenFlow,分析了支持OpenFlow協(xié)議的主要網(wǎng)絡仿真軟件的功能特點和可操作性。最后描述了基于Mininet的SDN仿真實驗平臺搭建過程,同時實現(xiàn)一個簡單的邏輯隔離策略來驗證該平臺的有效性。
關鍵詞:軟件定義網(wǎng)絡;仿真軟件;Mininet;邏輯隔離
中圖分類號:TP393
文獻標識碼:A
DOI:10.3969/j.issn.1003-6970.2015.06.019
本文著錄格式:劉果,陳凡,李劍鋒,等.構建SDN仿真實驗平臺的探討與實踐[J].軟件,2015,36(6):103-108
DiscussionandPracticeonSDNSimulationPlatformConstruction
LIUGuo,CHENFan,LIJian-feng,WUJing-jing
[Abstract]:Software-DefinedNetworking(SDN)isnovelnetworkarchitecturewiththreemajorfeatures-controlcentralization,separationofcontrollingandforwardingandnetworkprogrammability,andthishasbroughtnewideasfornetworkresourcemanagement.ResearchonSDNmakesdemandsonthesimulationplatform.ThispaperintroducesSDNanditsmostimportantprotocolOpenFlow,anddiscussesthefeaturesandoperabilityofsomemainnetworksim-ulatorsthatsupporttheOpenFlowprotocol.Finally,wetakeMininetasanexampletodescribetheconstructionprocessofSDNsimulationplatform,andimplementasimplestrategyoflogicisolationtoverifyitsvalidity.
[Keywords]:Software-DefinedNetworking;Simulator;Mininet;LogicIsolation
0引言
伴隨著信息技術的高速發(fā)展,眾多新的互聯(lián)網(wǎng)在線業(yè)務的用戶量也在急劇增長,網(wǎng)絡數(shù)據(jù)量的增多和規(guī)模的擴大對網(wǎng)絡承載和管理都提出了巨大的挑戰(zhàn)。2009年提出的SDN(Software-DefinedNetworking,軟件定義網(wǎng)絡)是近幾年興起的一種新型網(wǎng)絡架構,對這些挑戰(zhàn)提出了新的思路[1],其核心協(xié)議是OpenFlow[2]。OpenFlow允許遠程控制器通過控制網(wǎng)絡中的交換機來決定數(shù)據(jù)包的路徑。這種控制與轉發(fā)分離的方式可以用來進行更為靈活、精細的流量管理[3]。
模擬構建真實網(wǎng)絡是網(wǎng)絡技術研究的主要手段之一。實現(xiàn)方式有試驗床、純粹數(shù)學模型和網(wǎng)絡仿真,其中最常用的方法是網(wǎng)絡仿真[4]。許多學者利用仿真軟件或者自定義仿真模型來進行網(wǎng)絡相關的研究[5-8]。網(wǎng)絡仿真軟件有很多,其中對OpenFlow提供較好支持的有Mininet[9]、NS-3[10],OpenvSwitch[11]、Estinet9.0[12]。建立SDN仿真實驗平臺對SDN相關研究與開發(fā)工作順利開展非常必要。
1SDN與OpenFlow
SDN是一種新型的網(wǎng)絡架構設計理念,它將網(wǎng)絡的控制平面與數(shù)據(jù)轉發(fā)平面進行分離,并實現(xiàn)可編程化控制。ONF提出的典型SDN架構定義如圖1所示[13]。其中最上層為應用層,包括各種不同的業(yè)務和應用??刂茖又饕撠熖幚頂?shù)據(jù)平面資源的編排、維護網(wǎng)絡拓撲狀態(tài)信息等?;A設施層負責基于流表的數(shù)據(jù)處理轉發(fā)和狀態(tài)收集。
OpenFlow是控制器與交換機間通信遵循的協(xié)議。OpenFlow最早由斯坦福大學的NickMcKeown教授提出,它將控制功能從網(wǎng)絡設備中分離出來,在網(wǎng)絡設備上維護流表結構。數(shù)據(jù)分組按照流表進行轉發(fā),而流表的生成、維護、配置由中央控制器來管理。傳統(tǒng)的轉發(fā)設備(交換機或者路由器)的數(shù)據(jù)轉發(fā)依賴于設備中保存的地址信息(MAC地址轉發(fā)表或者IP地址路由表),而OpenFlow交換機使用的流表規(guī)則包括網(wǎng)絡各層的基本配置信息,所以在數(shù)據(jù)轉發(fā)時規(guī)則更靈活豐富??刂破魈峁┝丝晒┚幊痰谋毕蚪涌?,網(wǎng)絡管理者可以基于這些接口開發(fā)出特定的網(wǎng)絡應用[14]。
2支持OpenFlow的網(wǎng)絡仿真軟件
隨著SDN的快速發(fā)展,SDN的研究和仿真己成為從事SDN的研究人員所必須從事的一項工作。網(wǎng)絡仿真軟件是支持網(wǎng)絡研究工作的工具和平臺。本節(jié)將會介紹當前主流的幾款支持OpenFlow協(xié)議并能用于SDN網(wǎng)絡研究的仿真軟件。
2.1Mininet
Mininet[9]是2010年斯坦福大學基于LinuxContainer架構開發(fā)的一款輕量級的SDN網(wǎng)絡仿真平臺。使用者可以通過Mininet輕易地在一臺機器上(本地PC機、云平臺或VM虛擬機)搭建一個SDN環(huán)境,同時可通過Mininet的命令行界面與搭建的網(wǎng)絡環(huán)境進行交互,并且可將其部署在一個真實的硬件中。
Mininet具有如下特征:(1)可自定義拓撲和節(jié)點結構,(2)允許多個并行開發(fā)人員在同一個拓撲結構上獨立工作,(3)支持系統(tǒng)級的回歸測試,(4)提供了簡單的和可擴展的PythonAPI,(5)可運行標準的Unix/Linux網(wǎng)絡應用,(6)良好的硬件移植性和可擴展性。但是,Mininet的使用也有一些限制,如基于Mininet的網(wǎng)絡不能超出一個服務器上的可用CPU和帶寬資源,并且不能運行不與Linux兼容的OpenFlow交換機或應用。2.2NS-3
NS-3[lo]是Berkley大學發(fā)開的一個離散事件的網(wǎng)絡仿真器,它是在GNUGPLv2license下授予許可的一個免費的網(wǎng)絡仿真軟件,采用了C++/Python語言對其進行開發(fā),可廣泛地用于研究和開發(fā)。N3-3并不是NS-2的擴展,二者的腳本語言不同,NS-3也不支持NS-2的API。
NS-3仿真支持OpenFlow交換機。NS-3模擬的OpenFlow交換機可通過OpenFlowAPI對交換機進行配置,以及使用MPLS(MultipleprotocolLabelSwitching,多協(xié)議標簽交換技術)的擴展來支持服務質(zhì)量和服務水平協(xié)定。NS-3目前使用OpenFlow交換庫(OpenFlowswitchlibrary,OFSID),OFSID是OpenFlow軟件實現(xiàn)的分配,它被愛立信的研究人員創(chuàng)建,并加入了MPLS功能。為了在NS-3中使用OpenFlow模塊,必須下載和構建OFSID,將OFSID構建到libopenflow.a庫,以及鏈接OpenFlowswitchmodule到NS-3bulid中。
2.30penSwitch
OpenSwitch[ll]是一個多層的虛擬交換軟件,通過編程擴展可使得大規(guī)模網(wǎng)絡自動化,并支持標準的管理接口和協(xié)議,在開源Apache2.0license下授予許可。OpenSwitch可移植到多個虛擬平臺和交換芯片上,如Xen、KVM和Virtualbox等,并且它已經(jīng)被集成到多個虛擬管理系統(tǒng)中,如OpenStack、OpenQRM和OpenNebula等,其程序包可安裝于Ubuntu、Debian和Fedora等多個Linux操作系統(tǒng)上。
OpenSwitch提供了對OpenFlow的支持,可用于模擬單個OpenFlow交換機。在實際的OpenFlow環(huán)境搭建中,一個Ubuntu系統(tǒng)的PC機上安裝OpenSwitch的程序包,通過簡單的配置網(wǎng)橋、端口,就可將該PC機配置為一臺OpenFlow交換機。OpenSwitch也支持查詢交換機狀態(tài)和操作流表。
2.4EstiNet
EstiNet[15]是臺灣思銳科技推出的網(wǎng)絡仿真器,可用于網(wǎng)絡規(guī)劃、測試、協(xié)議開發(fā)和應用性能預測。它運行在Linux操作系統(tǒng)中,直接采用LinuxTCP/IP協(xié)議棧來產(chǎn)生高可信度的仿真結果,支持基于UNIX的應用程序和網(wǎng)絡監(jiān)控軟件。
EstiNet的最新版本9.0提供了對OpenFlow網(wǎng)絡仿真的支持,便于開展軟件定義網(wǎng)絡的相關研究。它可以模擬幾千個1.0.0或1.3.4版本的OpenFlow交換機。EstiNet允許OpenDaylight、NOX、POX、Floodlight等常用SDN控制器直接運行在EstiNet中的控制器節(jié)點之上,并且支持研究人員自己開發(fā)的控制器應用。它能準確、快速地模擬控制器應用和OpenFlow交換機之間的交互,以及交換機之間鏈路的特性,例如帶寬、鏈路延遲、鏈路故障時間。
3基于Mininet的仿真實例
在介紹了幾種主要的仿真軟件后,這里將基于專業(yè)的SDN仿真軟件Mininet,介紹搭建SDN仿真環(huán)境的過程,并實現(xiàn)一個簡單的網(wǎng)絡邏輯隔離策略。實驗場景設置為:云平臺服務器上搭建有不同的虛擬服務器,分屬于不同的用戶。用戶遠程登錄自己的虛擬服務器之后,安全上不允許直接訪問同一局域網(wǎng)的其他虛擬服務器。
3.1實驗方案
方案采用圖2所示拓撲,包含一個控制器Controller,一臺主機Hostl,兩臺服務器Serverl、Server2,兩臺交換機Switchl、Switch2。通過控制器對交換機的控制,實現(xiàn)主機Hostl可以分別訪問服務器Serverl、Server2,但是Serverl和Server2不能互相訪問,以此實現(xiàn)邏輯隔離。
3.2環(huán)境搭建
仿真實驗使用開源的Floodlight項目作為控制器,網(wǎng)絡拓撲在Mininet里實現(xiàn)。具體步驟如下:
(1)啟動控制器Floodlight
.java-jarfloodlight.jar
(2)用Python編寫自定義拓撲3h2s.py;
(3)通過Xshell工具登錄到Mininet,調(diào)用拓撲文件并連接至控制器,指令如下:
sudomn--custom~Mininet/custom/3h2s.py--topomytopo--controller=remote,ip=192.168.1.106,port=6633
(4)xterm指令打開服務器節(jié)點終端,搭建web服務器。
Python-mSimpleHTTPServer80
各設備的主要參數(shù)見表1。
設備信息
3.3測試步驟
網(wǎng)絡中測試連通性的最常用方法就是ping測試。本實驗在節(jié)點Serverl和Server2節(jié)點上搭建了web服務器,除了ping測試外,也可通過訪問服務器操作和服務器端的訪問日志來驗證連通性。邏輯隔離策略以流條目的形式,通過控制器下發(fā)至對應交換機。在下發(fā)前后,對設備間的連通性進行測試,以驗證邏輯隔離策略是否有效。
3.3.1初始連通性測試
Floodlight控制器中有一個自動轉發(fā)模塊Forwarding,能夠自動為數(shù)據(jù)包尋找可用的最短路徑,該模塊默認是開啟狀態(tài)。在此狀態(tài)下,若各交換機中無流條目限制,各終端節(jié)點能互相訪問。
首先進行pingall測試。然后測試各終端對服務器的訪問情況。圖2為Serverl訪問Server2的示例。
3.3.2下發(fā)流條目
向靠近兩個服務器的交換機Switch2下發(fā)兩條流條目(圖4),限制兩個服務器間的互相訪問。下發(fā)流條目后,再次進行pingall測試和訪問服務器測試。
3.4結果分析
流條目下發(fā)前后,pingall測試結果見圖5,服務器的訪問情況統(tǒng)計見表2。
在默認流表的情況下,pingall測試無丟包,主機Hostl可以訪問兩個服務器,且服務器間也可以正?;ハ嘣L問。
修改流表,對Serverl訪問Server2的流量,Action里output與input端口設置為一致,這樣便阻斷了Serverl與Server2的連接。進行該操作后,主機Hostl仍能正常訪問兩個服務器。但兩個服務器不能互訪,實現(xiàn)了邏輯上的隔離,實驗達到預期效果。
4總結
基于OpenFlow的SDN技術已經(jīng)越來越得到學術界和工業(yè)界的認可,各機構對其研究力度也在不斷增加。文章介紹了常用的幾種SDN仿真軟件,并以Mininet為例描述了SDN仿真環(huán)境的搭建過程,通過簡單的邏輯隔離策略驗證了所搭建平臺的有效性。下一階段,我們將進一步拓展該平臺,開展流量監(jiān)控、訪存控制等實驗。
參考文獻
[1]MckeownN.Keynotetalk:Software-definednetworking[J].IEEEInfocom,2009,51(2):1一
[2]McKeownN,AndersonT,BalakrishnanH,etal.OpenFlow:enablinginnovationincampusnetworks[J].ACMSIGCOMMComputerCommunicationReview,2008,38(2):69-74.
[3]LaraA,KolasaniA,RamamurthyB.SimplifyingnetworkmanagementusingSoftwareDefinedNetworkingandOpenFlow[C]./Pro-ceedingsofthe2012AdvancedNetworksandTelecommunicationsSystems(ANTS'12),Bangalore,India,2012:24-29.
[4]袁曉,蔡志平,劉書昊,等.大規(guī)模網(wǎng)絡仿真軟件及其仿真技術[J].計算機技術與發(fā)展,2014,24(7):9-12.
[5]郝寧霆,忻向軍.變速率OFDM光傳輸系統(tǒng)的仿真實現(xiàn)[J].新型工業(yè)化,2012,2(8):1-6.
[6]曹永盛,吳亞楠,趙安臻,等.16QAM/ASK正交調(diào)制光標記交換系統(tǒng)的設計與性能仿真[J].新型工業(yè)化,2014,4(2):45-50.
[7]羅星星,蒲保興,趙穎,等.隨機網(wǎng)絡編碼數(shù)據(jù)傳輸?shù)姆抡鎸崿F(xiàn)[J].軟件,2014,35(8):32-37.
[8]劉維康,雷磊,周進華,等.WLAN-Mesh網(wǎng)絡中MAC協(xié)議公平性問題的半實物仿真與分析[J]新型工業(yè)化,2012,2(4):16-22.
[9]Mininet.[01].[2015-06-10].http://mininet.org/.
[10]NS-3.[01].[2015-06-10].http://www.nsnam.org/.
[11]OpenvSwitch.[01].[2015-06-10].http://openvswitch.org/.
[12]Esttnet.[01].[2015-06-10].http://www.estinet.com/.
[13]Opennetworkingfoundation[01].[2015-06-10].https://www.opennetworking.org/sdn-resources/sdn-definition/.
[14]龐濤,魏含寧,武娟,等.SDN北向接口發(fā)展現(xiàn)狀與趨勢研究[J].互聯(lián)網(wǎng)天地,2014,9(9):50-56.
[15]WangSY.ComparisonofSDNOpenFlownetworksimulatorandemulators:EstiNetvs.Mininet[C]//Proceedingsofthe2014IEEESymposiumonComputersandCommunications(ISCC'14),Madeira,Portugal,2014:1-6.