湯中運(yùn) 金 蓉 李傳煌
1(浙江工商大學(xué)信息與電子工程學(xué)院 浙江 杭州 310018)2(浙江工商大學(xué)網(wǎng)絡(luò)信息中心 浙江 杭州 310018)
傳統(tǒng)的網(wǎng)絡(luò)架構(gòu)已漸漸無(wú)法支持大量增長(zhǎng)的新型計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用,因此需要一個(gè)開放可編程的新型網(wǎng)絡(luò)體系架構(gòu)來(lái)滿足各種類型的網(wǎng)絡(luò)業(yè)務(wù)請(qǐng)求。軟件定義網(wǎng)絡(luò)SDN是利用可編程軟件形式將網(wǎng)絡(luò)中的控制面與數(shù)據(jù)轉(zhuǎn)發(fā)面分離,實(shí)現(xiàn)集中控制靈活管理,從而使各類新型的計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用可以在這樣的平臺(tái)上進(jìn)行各種發(fā)展和創(chuàng)新。
而在大部分高校中的計(jì)算機(jī)網(wǎng)絡(luò)實(shí)驗(yàn)室僅僅支持傳統(tǒng)網(wǎng)絡(luò)實(shí)驗(yàn),不支持SDN相關(guān)實(shí)驗(yàn)。計(jì)算機(jī)等網(wǎng)絡(luò)相關(guān)專業(yè)的教學(xué)均停留在傳統(tǒng)網(wǎng)絡(luò)教學(xué),無(wú)法提升學(xué)生對(duì)SDN網(wǎng)絡(luò)的實(shí)際操作能力,導(dǎo)致無(wú)法適應(yīng)基于SDN的計(jì)算機(jī)應(yīng)用開發(fā)和研究。本文闡述了SDN新型網(wǎng)絡(luò)架構(gòu)的趨勢(shì),提出建設(shè)支持SDN網(wǎng)絡(luò)實(shí)驗(yàn)室的重要性,設(shè)計(jì)了網(wǎng)絡(luò)實(shí)驗(yàn)室進(jìn)行支持SDN實(shí)驗(yàn)的改進(jìn)方案,進(jìn)行了傳統(tǒng)網(wǎng)絡(luò)實(shí)驗(yàn)和SDN網(wǎng)絡(luò)實(shí)驗(yàn)的對(duì)比,體現(xiàn)SDN的優(yōu)勢(shì)。
網(wǎng)絡(luò)中的各類業(yè)務(wù)應(yīng)用與日俱增,各行各業(yè)都朝著新型信息化、智能化方向發(fā)展,傳統(tǒng)的網(wǎng)絡(luò)架構(gòu)及其基礎(chǔ)設(shè)施已經(jīng)漸漸開始無(wú)法承擔(dān)當(dāng)前用戶、企業(yè)以及運(yùn)營(yíng)商的需求。網(wǎng)絡(luò)業(yè)務(wù)中的大數(shù)據(jù)大規(guī)模頻繁轉(zhuǎn)移,已經(jīng)完全超出了現(xiàn)有網(wǎng)絡(luò)架構(gòu)的承載能力[1]。若僅僅提高網(wǎng)絡(luò)中數(shù)據(jù)處理的速度已經(jīng)無(wú)法滿足上述需求,無(wú)法從本質(zhì)上解決問題。只有打破現(xiàn)有的封閉式的網(wǎng)絡(luò)結(jié)構(gòu)[2],尋找一種高可用的、靈活的新型開放網(wǎng)絡(luò)架構(gòu)[3],使網(wǎng)絡(luò)設(shè)備中的處理數(shù)據(jù)單元可編程化,才能滿足各種大量新型的網(wǎng)絡(luò)應(yīng)用需求。美國(guó)自然科學(xué)基金GENI支撐的以O(shè)penFlow技術(shù)為核心[4]的“GENI Enterprise”[5]項(xiàng)目成為最具影響力的計(jì)劃。OpenFlow技術(shù)定義了網(wǎng)絡(luò)的轉(zhuǎn)發(fā)流表,并將對(duì)其的控制開放給用戶,從而提供了自定義編程的功能,進(jìn)而初步構(gòu)建了一個(gè)開放可編程的通信網(wǎng)絡(luò)。
開放可編程網(wǎng)絡(luò)思想是構(gòu)建新型網(wǎng)絡(luò)架構(gòu)的核心所在。同時(shí),OpenFlow技術(shù)在校園網(wǎng)絡(luò)取得了實(shí)驗(yàn)創(chuàng)新,在這樣的影響下,軟件定義網(wǎng)絡(luò)(SDN)[6]概念被提出。成立于2011年的ONF[7]在最先提出基于OpenFlow技術(shù)的SDN之后,開始開展相關(guān)標(biāo)準(zhǔn)的制定及推廣工作,例如OpenFlow標(biāo)準(zhǔn)、SDN的白皮書,極大地推進(jìn)了SDN和OpenFlow標(biāo)準(zhǔn)化的工作,從而使其成為全球新型網(wǎng)絡(luò)架構(gòu)研究的熱點(diǎn)[8]。同時(shí),ONF還在白皮書[9]中首次明確了SDN的典型框架[10]。如圖1所示,SDN的典型框架分為三層:基礎(chǔ)設(shè)施層(或稱為數(shù)據(jù)層)、控制層(或稱為服務(wù)層)和應(yīng)用層(或稱為業(yè)務(wù)層)。在這樣三層分離的網(wǎng)絡(luò)架構(gòu)中,上層通過接口對(duì)下層下發(fā)控制命令或者數(shù)據(jù),下層通過接口反饋結(jié)果給上層。這樣的架構(gòu)分離了控制平面與數(shù)據(jù)轉(zhuǎn)發(fā)平面,實(shí)現(xiàn)了集中管理和控制,ONF對(duì)分離之后兩層之間通信的南向接口進(jìn)行了定義,規(guī)定利用OpenFlow等技術(shù)通信[11]。
圖1 SDN典型框架
在ONF發(fā)布白皮書之后,基于OpenFlow的SDN完成了從試驗(yàn)平臺(tái)到業(yè)務(wù)網(wǎng)絡(luò)部署的跨越。這個(gè)架構(gòu)已在谷歌、微軟等數(shù)據(jù)中心內(nèi)部骨干網(wǎng)上發(fā)揮了前所未有的作用[12],國(guó)內(nèi)外主流網(wǎng)絡(luò)廠商推出了多種OpenFlow交換機(jī)[13]。由于SDN的必然趨勢(shì)與強(qiáng)大優(yōu)勢(shì),運(yùn)營(yíng)商已經(jīng)開始在某些區(qū)域部署SDN網(wǎng)絡(luò),很多學(xué)校、醫(yī)院、企業(yè)的內(nèi)部網(wǎng)絡(luò)也開始嘗試改造成SDN架構(gòu),傳統(tǒng)網(wǎng)絡(luò)架構(gòu)已經(jīng)開始漸漸向SDN架構(gòu)轉(zhuǎn)變。2012年著名的Google公司發(fā)布了大型的商用SDN案例B4[14],B4充分利用了SDN的優(yōu)點(diǎn),取得了很大的成功。2014年北京電信與華為技術(shù)有限公司合作完成全球首個(gè)運(yùn)營(yíng)商SDN商用部署,中國(guó)移動(dòng)攜手華為推出全球首個(gè)SPTN SDN商用部署,四川聯(lián)通與華為一起完成全球首個(gè)SDN IPRAN商用部署。金融方面,中國(guó)工商銀行于2017年聯(lián)合華為實(shí)現(xiàn)了工行SDN云網(wǎng)架構(gòu),并成功運(yùn)行了七大互聯(lián)網(wǎng)金融業(yè)務(wù)。通信設(shè)備商方面,華為、華三、銳捷、盛科等公司都發(fā)布了一系列的關(guān)于SDN的軟硬件產(chǎn)品。高校和科研機(jī)構(gòu)方面,清華大學(xué)、北京郵電大學(xué)等一批高校的有關(guān)團(tuán)隊(duì)在近些年也在專注于SDN研究。早在2011年,清華大學(xué)與盛科就合作一起部署了一個(gè)校內(nèi)SDN網(wǎng)絡(luò),北京郵電大學(xué)泛網(wǎng)無(wú)線通信實(shí)驗(yàn)室也在部署一個(gè)校園SDN網(wǎng)絡(luò)用于研究和測(cè)試。
未來(lái)的各類計(jì)算機(jī)應(yīng)用都將運(yùn)行在SDN網(wǎng)絡(luò)架構(gòu)上,計(jì)算機(jī)及網(wǎng)絡(luò)相關(guān)專業(yè)的學(xué)生在畢業(yè)后從事相關(guān)工作勢(shì)必會(huì)接觸SDN相關(guān)內(nèi)容。因此,SDN相關(guān)的技術(shù)的教學(xué)是培養(yǎng)網(wǎng)絡(luò)專業(yè)人才的必修課,也給網(wǎng)絡(luò)技術(shù)相關(guān)的課程理論與實(shí)驗(yàn)教學(xué)的改革指出了新的研究方向。目前大部分高校基本沒有支持SDN的計(jì)算機(jī)網(wǎng)絡(luò)實(shí)驗(yàn)室,無(wú)法進(jìn)行相關(guān)教學(xué)與實(shí)驗(yàn),學(xué)生畢業(yè)之后對(duì)SDN相關(guān)內(nèi)容一無(wú)所知,僅僅只能從事傳統(tǒng)網(wǎng)絡(luò)的相關(guān)工作,從而失去了網(wǎng)絡(luò)行業(yè)的競(jìng)爭(zhēng)力。因此,在傳統(tǒng)網(wǎng)絡(luò)的基礎(chǔ)上,建設(shè)支持SDN的計(jì)算機(jī)網(wǎng)絡(luò)實(shí)驗(yàn)室是高校計(jì)算機(jī)及網(wǎng)絡(luò)相關(guān)專業(yè)教學(xué)上的必然趨勢(shì)。同時(shí),在SDN網(wǎng)絡(luò)教學(xué)中要注重理論和實(shí)踐相結(jié)合,培養(yǎng)具有扎實(shí)SDN理論基礎(chǔ),較強(qiáng)SDN技術(shù)動(dòng)手實(shí)踐能力的專業(yè)網(wǎng)絡(luò)人才,為今后從事SDN架構(gòu)開發(fā)與研究打下堅(jiān)實(shí)基礎(chǔ)。
Open vSwitch是一款遵循Apache 2.0許可證的開源多層軟件交換機(jī),它的目標(biāo)是實(shí)現(xiàn)一個(gè)能同時(shí)支持多種標(biāo)準(zhǔn)的管理接口和協(xié)議的高質(zhì)量軟件交換機(jī)平臺(tái),并且可通過開放編程進(jìn)行功能的擴(kuò)展和控制。Open vSwitch作為一款軟件交換機(jī),它的主要功能特別適用于虛擬化平臺(tái)環(huán)境。除了向虛擬網(wǎng)絡(luò)層公開標(biāo)準(zhǔn)控制和可見性接口外,它還被設(shè)計(jì)用于支持跨多個(gè)物理服務(wù)器的分布。Open vSwitch支持多種基于Linux的虛擬化技術(shù),包括Xen/Xenserver、KVM和VirtualBox。在某一物理機(jī)器的虛擬化環(huán)境中,vSwitch主要有兩個(gè)作用:傳遞虛擬機(jī)之間的流量、實(shí)現(xiàn)虛擬機(jī)和外部網(wǎng)絡(luò)的通信[15]。Open vSwitch的大部分代碼都是通過C語(yǔ)言的獨(dú)立平臺(tái)編寫的,并且很容易移植到其他環(huán)境中。它的當(dāng)前版本支持以下特性:
(1) 標(biāo)準(zhǔn)的802.1Q的Vlan模型,包括access口和trunk口。
(2) 在上聯(lián)交換機(jī)網(wǎng)卡上可選擇是否啟用LACP協(xié)議。
(3) 用NetFlow、sFlow和鏡像來(lái)提升可見度。
(4) QoS配置與流量管控。
(5) Geneve,GRE,VXLAN,STT和LISP隧道。
(6) 802.1ag連接容錯(cuò)管理。
(7) OpenFlow 1.0及其更多的擴(kuò)展。
(8) 基于C與Python的交互型可配置數(shù)據(jù)庫(kù)。
(9) 使用Linux內(nèi)核模塊的高性能轉(zhuǎn)發(fā)。
在沒有內(nèi)核模塊的幫助下,Open vSwitch也可以在用戶空間中運(yùn)行。這個(gè)用戶空間實(shí)現(xiàn)比基于內(nèi)核的交換機(jī)更容易移植。Open vSwitch的組成結(jié)構(gòu)如圖2所示。除了Open vSwitch以外其他的虛擬交換機(jī),包括VMware vNetwork distributed switch以及思科的Cisco Nexus 1000V等,它們提供的是一個(gè)集中式的控制方式。而Open vSwitch則是一個(gè)獨(dú)立的vSwitch,它運(yùn)行在每個(gè)實(shí)現(xiàn)虛擬化的物理機(jī)器上,并提供遠(yuǎn)程管理,提供了在虛擬化環(huán)境中遠(yuǎn)程管理的協(xié)議[16]。Open vSwitch還可以利用OpenFlow的流表遠(yuǎn)程管理交換機(jī)的行為。
圖2 Open vSwitch的組成結(jié)構(gòu)
OpenFlow是目前實(shí)現(xiàn)SDN的最成熟的技術(shù)手段,而普通的OpenFlow交換機(jī)目前僅有較少?gòu)S家生產(chǎn),且價(jià)格高昂,使用硬件進(jìn)行學(xué)生實(shí)驗(yàn)也有著數(shù)量不足、靈活性差等缺點(diǎn)。而Open vSwitch作為一款完全支持OpenFlow的虛擬軟件交換機(jī),可以和SDN中OpenFlow控制器對(duì)接,不僅可以完全滿足SDN的相關(guān)實(shí)驗(yàn),還可以使學(xué)生在虛擬化技術(shù)的相關(guān)方面得到鍛煉。
OpenFlow是用于管理交換機(jī)流表的協(xié)議,ovs-ofctl則是Open vSwitch提供的命令行工具。在沒有配置OpenFlow控制器的模式下,用戶可以使用ovs-ofctl命令通過OpenFlow協(xié)議去連接Open vSwitch,創(chuàng)建、修改或刪除Open vSwitch中的流表項(xiàng),并對(duì)Open vSwitch的運(yùn)行狀況進(jìn)行動(dòng)態(tài)監(jiān)控。當(dāng)數(shù)據(jù)包進(jìn)入Open vSwitch后,會(huì)將數(shù)據(jù)包和流表中的流表項(xiàng)進(jìn)行匹配,如果發(fā)現(xiàn)了匹配的流表項(xiàng),則執(zhí)行該流表項(xiàng)中的指令集。相反,如果數(shù)據(jù)包在流表中沒有發(fā)現(xiàn)任何匹配,Open vSwitch會(huì)通過控制通道把數(shù)據(jù)包發(fā)到OpenFlow控制器中。因此,在Open vSwitch支持OpenFlow的前提下,它完全可以作為OpenFlow交換機(jī),并且可以與大部分OpenFlow控制器對(duì)接,從而實(shí)現(xiàn)SDN[17]。
支持SDN實(shí)驗(yàn)的計(jì)算機(jī)網(wǎng)絡(luò)實(shí)驗(yàn)室是開展SDN教學(xué)的前提。因此,需對(duì)傳統(tǒng)的網(wǎng)絡(luò)實(shí)驗(yàn)室進(jìn)行改進(jìn),增加支持SDN的網(wǎng)絡(luò)設(shè)備,從而為學(xué)生提供SDN網(wǎng)絡(luò)實(shí)驗(yàn)。Open vSwitch是較為適合學(xué)生進(jìn)行SDN實(shí)驗(yàn)的軟件工具。
傳統(tǒng)網(wǎng)絡(luò)實(shí)驗(yàn)室的網(wǎng)絡(luò)結(jié)構(gòu)分為兩部分:學(xué)生實(shí)驗(yàn)用PC機(jī)與網(wǎng)絡(luò)設(shè)備,網(wǎng)絡(luò)設(shè)備主要為路由器和交換機(jī)。將學(xué)生PC機(jī)分組,每組配置對(duì)應(yīng)若干不同型號(hào)的交換機(jī)與路由器。學(xué)生進(jìn)行實(shí)驗(yàn)時(shí),根據(jù)實(shí)驗(yàn)的網(wǎng)絡(luò)拓?fù)?,在機(jī)柜的配線架上進(jìn)行PC機(jī)、交換機(jī)與路由器之間物理配線連接。連接結(jié)束后,根據(jù)實(shí)驗(yàn)要求,對(duì)交換機(jī)和路由器進(jìn)行命令配置。
支持SDN的網(wǎng)絡(luò)實(shí)驗(yàn)室是將網(wǎng)絡(luò)設(shè)備軟件化、可編程化。因此在實(shí)驗(yàn)室中需配備若干服務(wù)器,在服務(wù)器上安裝實(shí)現(xiàn)網(wǎng)絡(luò)交換路由功能的軟件,使服務(wù)器成為一臺(tái)軟件化的網(wǎng)絡(luò)設(shè)備。本文采用的是Open vSwitch軟件,將該軟件安裝至實(shí)驗(yàn)室的服務(wù)器中,使服務(wù)器成為一臺(tái)支持OpenFlow的虛擬交換機(jī)。同時(shí)在服務(wù)器上安裝POX軟件作為SDN控制器,并與OpenFlow交換機(jī)對(duì)接。學(xué)生實(shí)驗(yàn)時(shí),將按照實(shí)驗(yàn)要求,在軟件中對(duì)網(wǎng)絡(luò)進(jìn)行配置,從而使學(xué)生在實(shí)驗(yàn)室中真實(shí)感受到虛擬軟件交換機(jī)與原硬件交換機(jī)、SDN網(wǎng)絡(luò)設(shè)備與普通網(wǎng)絡(luò)設(shè)備的區(qū)別,從而掌握SDN技術(shù)。
本文實(shí)驗(yàn)室原有實(shí)驗(yàn)設(shè)備機(jī)柜中是傳統(tǒng)交換機(jī)和路由器,為了支持SDN,在每組機(jī)柜上增加服務(wù)器,用于安裝Open vSwitch作為OpenFlow交換機(jī),同時(shí)在實(shí)驗(yàn)室核心交換機(jī)上接入服務(wù)器安裝POX作為SDN控制器。本文實(shí)驗(yàn)室拓?fù)淙鐖D3所示,圖中虛線部分為SDN相關(guān)設(shè)備。
圖3 基于SDN的實(shí)驗(yàn)室改進(jìn)拓?fù)鋱D
本文安裝Open vSwitch采用的操作系統(tǒng)為L(zhǎng)inux,在實(shí)驗(yàn)室的所有服務(wù)器中安裝Ubuntu 12.04,在該系統(tǒng)上直接在線安裝Open vSwitch即可,本文的實(shí)驗(yàn)室安裝的是Open vSwitch 2.3.0版本。啟動(dòng)Open vSwitch后創(chuàng)建的網(wǎng)橋就相當(dāng)于一臺(tái)交換機(jī),然后根據(jù)實(shí)驗(yàn)要求對(duì)網(wǎng)橋進(jìn)行配置,如在網(wǎng)橋上增加端口,一個(gè)端口就是一個(gè)物理網(wǎng)卡,將端口加入到網(wǎng)橋之后,就相當(dāng)于給這臺(tái)交換機(jī)增加端口,這個(gè)端口與普通交換機(jī)上端口的工作類型相似。同時(shí),學(xué)生實(shí)驗(yàn)中也可以輸入幫助命令來(lái)查看Open vSwitch支持的所有相關(guān)操作。其中包括了Open vSwitch對(duì)網(wǎng)橋和網(wǎng)絡(luò)接口的相關(guān)操作命令,同時(shí)還有與SDN控制器相關(guān)的命令,如連接控制器等。
本文采用的SDN控制器POX是一款使用Python開發(fā)的基于OpenFlow協(xié)議的SDN控制器,其優(yōu)點(diǎn)是簡(jiǎn)潔、擴(kuò)展性好,從而得到了廣泛的應(yīng)用。它和Open vSwitch之間可以通過OpenFlow協(xié)議進(jìn)行交互,Open vSwitch作為OpenFlow交換機(jī)與POX控制器對(duì)接。
在一臺(tái)服務(wù)器上直接下載安裝POX并啟動(dòng)。在Open vSwitch上創(chuàng)建好一個(gè)網(wǎng)橋之后,輸入連接控制器命令,再輸入顯示網(wǎng)橋狀態(tài)的命令,若與控制器連接成功,則會(huì)顯示is_connected=true,如圖4所示。同時(shí)控制器端也會(huì)顯示已連接的OpenFlow交換的MAC地址。接下去就可以進(jìn)行控制器對(duì)OpenFlow交換機(jī)下發(fā)流表等相關(guān)SDN的實(shí)驗(yàn)。
圖4 Open vSwitch與POX對(duì)接成功圖
SDN的特性主要體現(xiàn)在兩方面:(1) 將網(wǎng)絡(luò)軟件化;(2) 實(shí)現(xiàn)網(wǎng)絡(luò)中控制面與轉(zhuǎn)發(fā)面分離。本文先以計(jì)算機(jī)網(wǎng)絡(luò)實(shí)驗(yàn)課程中較為重要的VLAN配置實(shí)驗(yàn)為例,主張教學(xué)時(shí)讓學(xué)生先進(jìn)行普通交換機(jī)VLAN配置功能的實(shí)驗(yàn),再使用Open vSwitch進(jìn)行實(shí)現(xiàn)同樣功能的實(shí)驗(yàn)。讓學(xué)生進(jìn)行了實(shí)驗(yàn)過程的對(duì)比,從而使學(xué)生掌握虛擬網(wǎng)絡(luò)技術(shù)的基本原理和實(shí)現(xiàn)方法,同時(shí)感受傳統(tǒng)網(wǎng)絡(luò)實(shí)驗(yàn)和SDN網(wǎng)絡(luò)實(shí)驗(yàn)在實(shí)現(xiàn)相同功能下的區(qū)別,更深入了解網(wǎng)絡(luò)虛擬化的本質(zhì)與特點(diǎn)。再以控制器下發(fā)流表至Open vSwitch的實(shí)驗(yàn)為例,使學(xué)生掌握SDN網(wǎng)絡(luò)中轉(zhuǎn)發(fā)與控制分離的特點(diǎn),感受SDN對(duì)網(wǎng)絡(luò)控制層面的區(qū)別,同時(shí)理解SDN實(shí)現(xiàn)方式中的OpenFlow協(xié)議。本節(jié)將介紹在本實(shí)驗(yàn)室進(jìn)行上述兩個(gè)實(shí)驗(yàn)的過程,從而證明本文所提出實(shí)驗(yàn)室改進(jìn)方案可以實(shí)現(xiàn)支持SDN特性的實(shí)驗(yàn)。
學(xué)生進(jìn)行網(wǎng)絡(luò)實(shí)驗(yàn)時(shí),需先明確實(shí)驗(yàn)拓?fù)洌胀ń粨Q機(jī)VLAN配置實(shí)驗(yàn)拓?fù)淙鐖D5所示,圖中網(wǎng)絡(luò)設(shè)備為普通二層交換機(jī)。Open vSwitch 的VLAN配置實(shí)驗(yàn)拓?fù)淙鐖D6所示,圖中的網(wǎng)絡(luò)設(shè)備為安裝了Open vSwitch的服務(wù)器。兩個(gè)實(shí)驗(yàn)本質(zhì)上僅僅只是將普通二層交換機(jī)換成一臺(tái)安裝Open vSwitch的服務(wù)器,設(shè)置了唯一變量,從而突出區(qū)別,增強(qiáng)對(duì)比性。
圖5 普通交換機(jī)VLAN配置實(shí)驗(yàn)拓?fù)鋱D
圖6 Open vSwitch的VLAN配置實(shí)驗(yàn)拓?fù)鋱D
(1) 普通交換機(jī)配置物理機(jī)VLAN實(shí)驗(yàn) 學(xué)生在進(jìn)行傳統(tǒng)網(wǎng)絡(luò)實(shí)驗(yàn)的VLAN配置實(shí)驗(yàn)時(shí),是在普通交換機(jī)的端口上進(jìn)行劃分VLAN的配置命令。按照?qǐng)D5中的實(shí)驗(yàn)要求,先對(duì)實(shí)驗(yàn)PC機(jī)配置IP地址,再將交換機(jī)上與PC1連接的端口配置為VLAN 2,與PC2連接的端口配置為VLAN 2,與PC3連接的端口配置為VLAN 3。配置完成后,同一個(gè)VLAN內(nèi)的PC之間可以互相通信,即PC1與PC2之間可以互相通信。不同VLAN之間無(wú)法通信,即PC1和PC2均無(wú)法與PC3通信,從而實(shí)現(xiàn)了網(wǎng)絡(luò)中VLAN的功能。
(2) Open vSwitch配置物理機(jī)VLAN實(shí)驗(yàn) 學(xué)生在完成普通交換機(jī)配置VLAN實(shí)驗(yàn)后,繼續(xù)使用Open vSwitch來(lái)對(duì)物理機(jī)配置VLAN實(shí)驗(yàn)。實(shí)驗(yàn)時(shí)PC的IP不變,再將服務(wù)器當(dāng)作一臺(tái)交換機(jī),將PC1與服務(wù)器的第二塊網(wǎng)卡(eth1)連接,將PC2與服務(wù)器的第三塊網(wǎng)卡(eth2)連接,將PC3與服務(wù)器的第三塊網(wǎng)卡(eth3)連接。
進(jìn)入服務(wù)器啟動(dòng)Open vSwitch之后,先建立一個(gè)名為br0的網(wǎng)橋,再將三張實(shí)驗(yàn)所用的網(wǎng)卡都加入這個(gè)網(wǎng)橋中,查看網(wǎng)橋的具體信息,發(fā)現(xiàn)br0中已存在了上述3個(gè)端口。此時(shí),三臺(tái)PC機(jī)已經(jīng)相當(dāng)于通過Open vSwitch中的br0這個(gè)虛擬交換機(jī)連接,三臺(tái)PC機(jī)之間可以互相ping通。
與傳統(tǒng)實(shí)驗(yàn)中配置VLAN相同,給每一個(gè)端口配置實(shí)驗(yàn)要求的對(duì)應(yīng)的VLAN,其實(shí)就是給每個(gè)端口打上標(biāo)簽,按照Open vSwitch的命令為eth1配置VLAN2,為eth2配置VLAN2,為eth3配置VLAN3,如圖7所示。此時(shí),實(shí)驗(yàn)結(jié)果驗(yàn)證與傳統(tǒng)實(shí)驗(yàn)一致,因此使用Open vSwitch也實(shí)現(xiàn)了VLAN隔離的功能。
圖7 Open vSwitch中端口劃分VLAN
由于Open vSwitch實(shí)際是一個(gè)安裝在Ubuntu系統(tǒng)服務(wù)器下的一個(gè)軟件,是用軟件實(shí)現(xiàn)的虛擬交換機(jī)。因此在該服務(wù)器上還可以利用虛擬機(jī)軟件虛擬多個(gè)主機(jī),用虛擬主機(jī)進(jìn)行上述實(shí)驗(yàn)。這些虛擬機(jī)也可以接入Open vSwitch,將虛擬機(jī)的虛擬網(wǎng)卡接入Open vSwitch的網(wǎng)橋就可以并通過Open vSwitch實(shí)現(xiàn)所需的網(wǎng)絡(luò)功能,包括上述實(shí)驗(yàn)的對(duì)虛擬機(jī)的VLAN實(shí)現(xiàn)配置。
根據(jù)上述實(shí)驗(yàn)結(jié)果,Open vSwitch作為一款軟件化的虛擬交換機(jī),既可以實(shí)現(xiàn)在網(wǎng)絡(luò)拓?fù)渲袑?duì)物理主機(jī)的網(wǎng)絡(luò)配置,也可以實(shí)現(xiàn)對(duì)虛擬主機(jī)的網(wǎng)絡(luò)配置。同時(shí),對(duì)虛擬主機(jī)和物理主機(jī)相連的混合網(wǎng)絡(luò)也可以進(jìn)行同時(shí)配置,而一般傳統(tǒng)網(wǎng)絡(luò)交換機(jī)只能與物理主機(jī)連接,無(wú)法實(shí)現(xiàn)對(duì)虛擬機(jī)網(wǎng)絡(luò)配置的功能。雖然也有一些其他虛擬化軟件本身支持對(duì)虛擬機(jī)的VLAN劃分等其他虛擬機(jī)網(wǎng)絡(luò)配置功能,但是它們只是集成在軟件中,僅支持本軟件的虛擬機(jī),既不是一個(gè)開源軟件,也不支持SDN。
SDN轉(zhuǎn)發(fā)與控制分離的網(wǎng)絡(luò)實(shí)驗(yàn)可根據(jù)實(shí)驗(yàn)?zāi)康脑O(shè)計(jì)實(shí)驗(yàn)拓?fù)洹1疚闹刑岢龅腟DN實(shí)驗(yàn)室設(shè)計(jì)方案是以POX作為SDN控制器,Open vSwitch作為OpenFlow交換機(jī)的實(shí)驗(yàn)環(huán)境,本節(jié)實(shí)例的實(shí)驗(yàn)拓?fù)淙鐖D8所示。
圖8 SDN控制器下發(fā)流表實(shí)驗(yàn)拓?fù)鋱D
上述實(shí)驗(yàn)拓?fù)湓赟DN實(shí)驗(yàn)中應(yīng)用較廣,可支持大部分SDN中控制器與OpenFlow交換機(jī)之間的實(shí)驗(yàn),也可在本實(shí)驗(yàn)室中進(jìn)行其他自定義的實(shí)驗(yàn)拓?fù)洹0凑胀負(fù)鋱D在本文的實(shí)驗(yàn)室中連接好實(shí)驗(yàn)設(shè)備后,在Open vSwitch終端輸入連接控制器的命令,如圖9所示,控制器顯示與OpenFlow交換機(jī)連接成功,如圖10所示。此時(shí)OpenFlow交換機(jī)會(huì)自動(dòng)生成默認(rèn)流表,默認(rèn)流表的動(dòng)作是將報(bào)文上傳至控制器,再將兩臺(tái)PC之間進(jìn)行互相ping的操作,此時(shí)OpenFlow交換機(jī)中會(huì)出現(xiàn)由控制器自動(dòng)下發(fā)的流表。
圖9 查看OpenFlow交換機(jī)中的流表
圖10 POX控制器下發(fā)流表
為了使實(shí)驗(yàn)中控制器對(duì)OpenFlow交換機(jī)的控制效果更明顯,本節(jié)主要舉例在沒有默認(rèn)流表的情況下,手動(dòng)配置流表的實(shí)驗(yàn)。將控制器與OpenFlow連接機(jī)連接后,暫不連接PC,此時(shí)OpenFlow交換機(jī)中沒有流表,如圖9所示。打開控制器終端,輸入導(dǎo)入核心模塊的命令,并命名為of,再獲取OpenFlow交換機(jī)對(duì)應(yīng)的Key,如圖10所示。接下去開始手工設(shè)置流表的操作,圖10設(shè)置了“從1號(hào)端口流入的流量從2號(hào)端口流出”的流表。通過輸入OpenFlow交換機(jī)的Key將該流表下發(fā)之后,在OpenFlow交換機(jī)上再次輸入查看流表的命令,如圖9所示,出現(xiàn)了剛才設(shè)置的流表,表示實(shí)驗(yàn)成功。
本文通過SDN特點(diǎn)與發(fā)展趨勢(shì),闡述了建設(shè)支持SDN的高校計(jì)算機(jī)網(wǎng)絡(luò)實(shí)驗(yàn)室的重要性,并設(shè)計(jì)了SDN網(wǎng)絡(luò)實(shí)驗(yàn)室建設(shè)方案,包括將Open vSwitch軟件作為OpenFlow交換機(jī)與POX軟件的SDN控制器對(duì)接。在進(jìn)行同一個(gè)實(shí)驗(yàn)的前提下,對(duì)普通交換機(jī)和SDN交換機(jī)實(shí)現(xiàn)方法分別進(jìn)行了說(shuō)明,對(duì)比了兩種方法的不同之處,體現(xiàn)了SDN中軟件化虛擬網(wǎng)絡(luò)的優(yōu)勢(shì)。同時(shí),還進(jìn)行了SDN中控制器對(duì)OpenFlow交換機(jī)下發(fā)流表的實(shí)驗(yàn),體現(xiàn)SDN中控制面與轉(zhuǎn)發(fā)面分離,實(shí)現(xiàn)網(wǎng)絡(luò)統(tǒng)一管理的特性,從而讓學(xué)生在新型SDN實(shí)驗(yàn)室中,切實(shí)體驗(yàn)SDN網(wǎng)絡(luò)的特點(diǎn),深入理解網(wǎng)絡(luò)趨勢(shì)。
本文提出的計(jì)算機(jī)網(wǎng)絡(luò)實(shí)驗(yàn)室設(shè)計(jì)與實(shí)現(xiàn)方案能支持大部分SDN網(wǎng)絡(luò)實(shí)驗(yàn),除本文舉例的實(shí)驗(yàn)外,支持多樣化自主設(shè)計(jì)實(shí)驗(yàn),使學(xué)生對(duì)SDN有更全面的認(rèn)知,提升對(duì)SDN網(wǎng)絡(luò)的實(shí)際操作能力。同時(shí)還可使學(xué)生在同一個(gè)實(shí)驗(yàn)室中體會(huì)到傳統(tǒng)網(wǎng)絡(luò)與SDN網(wǎng)絡(luò)的區(qū)別,更深入了解SDN的特性。