羅萱 馬塞 金耀輝
摘要:提出了一種新的基于軟件定義網(wǎng)絡(luò)的多區(qū)域網(wǎng)絡(luò)虛擬化模型。該模型引入了網(wǎng)絡(luò)區(qū)域的邏輯概念,在同一個(gè)區(qū)域中使用某種網(wǎng)絡(luò)虛擬化技術(shù),在區(qū)域與區(qū)域的邊界通過(guò)控制平面的統(tǒng)一控制實(shí)現(xiàn)不同虛擬網(wǎng)絡(luò)標(biāo)識(shí)符的轉(zhuǎn)換,完成跨區(qū)域交互。該模型可以同時(shí)兼容多種網(wǎng)絡(luò)虛擬化技術(shù),實(shí)現(xiàn)高效率、可擴(kuò)展、大規(guī)模的網(wǎng)絡(luò)虛擬化。
關(guān)鍵詞: 網(wǎng)絡(luò)虛擬化;虛擬網(wǎng)絡(luò);軟件定義網(wǎng)絡(luò);區(qū)域
網(wǎng)絡(luò)虛擬化通過(guò)將邏輯網(wǎng)絡(luò)功能和物理網(wǎng)絡(luò)設(shè)備解耦合,使得網(wǎng)絡(luò)資源可以方便地整合與擴(kuò)展,可以大大地降低運(yùn)營(yíng)商的資本/運(yùn)營(yíng)支出[1-3]。在云計(jì)算環(huán)境中,網(wǎng)絡(luò)虛擬化將物理網(wǎng)絡(luò)劃分成多個(gè)虛擬網(wǎng)絡(luò),在不同的虛擬網(wǎng)絡(luò)之間進(jìn)行隔離,以保證租戶的隱私和安全。虛擬網(wǎng)絡(luò)的隔離主要體現(xiàn)在兩方面:第一,通過(guò)有效的封裝技術(shù)區(qū)分不同的虛擬網(wǎng)絡(luò);第二,允許每個(gè)租戶在自己的虛擬網(wǎng)絡(luò)內(nèi)自由定制地址空間。
為了實(shí)現(xiàn)網(wǎng)絡(luò)虛擬化,工業(yè)界提出了不少協(xié)議標(biāo)準(zhǔn)。虛擬局域網(wǎng)(VLAN)[4]協(xié)議是最廣泛使用的協(xié)議,操作需要較多的人工配置,最多支持4 096個(gè)虛擬網(wǎng)絡(luò),無(wú)法滿足大規(guī)模數(shù)據(jù)中心的需求。虛擬可擴(kuò)展局域網(wǎng)(VXLAN)[5]把二層以太網(wǎng)幀封裝到數(shù)據(jù)報(bào)協(xié)議(UDP)報(bào)文中,通過(guò)24比特的VXLAN網(wǎng)絡(luò)標(biāo)簽(VNI)來(lái)區(qū)分不同的虛擬網(wǎng)絡(luò)。VXLAN依賴組播實(shí)現(xiàn)地址學(xué)習(xí),需要通過(guò)VXLAN網(wǎng)關(guān)與物理設(shè)備(如防火墻/負(fù)載均衡器)相連。采用通用路由封裝的網(wǎng)絡(luò)虛擬化(NVGRE)[6]把二層以太網(wǎng)幀封裝到通用路由封裝協(xié)議(GRE)內(nèi),通過(guò)24比特的租戶網(wǎng)絡(luò)標(biāo)識(shí)(TNI)租戶網(wǎng)絡(luò)。NVGRE需要在端到端之間建立隧道,隧道的數(shù)量隨終端數(shù)量增加以平方速率上升。無(wú)狀態(tài)傳輸隧道(STT)[7]使用64比特的內(nèi)容標(biāo)識(shí)虛擬網(wǎng)絡(luò),把數(shù)據(jù)幀先進(jìn)行分割再封裝到傳輸控制協(xié)議(TCP)報(bào)文中,利用網(wǎng)卡的硬件加速功能來(lái)提升效率。STT在TCP包頭中沒(méi)有維護(hù)TCP狀態(tài)信息,故被稱為無(wú)狀態(tài)TCP,隧道模式接近UDP模式。
這些協(xié)議各有優(yōu)缺點(diǎn),運(yùn)營(yíng)商需要根據(jù)實(shí)際應(yīng)用場(chǎng)景選擇具體的技術(shù)路線。在選擇過(guò)程中,除了技術(shù)特點(diǎn),運(yùn)營(yíng)商還面臨其他問(wèn)題:
(1)設(shè)備支持
網(wǎng)絡(luò)虛擬化標(biāo)準(zhǔn)之爭(zhēng)愈演愈烈,交換機(jī)設(shè)備廠商或者支持VXLAN,或者支持NVGRE,很少有設(shè)備同時(shí)支持兩種協(xié)議。STT則需要物理網(wǎng)卡支持TCP分段卸載(TSO)或者大段卸載(LSO)。運(yùn)營(yíng)商的硬件選擇范圍受到限制。
(2)技術(shù)鎖定
現(xiàn)有的網(wǎng)絡(luò)虛擬化方案不支持多種虛擬化技術(shù)并存。運(yùn)營(yíng)商一旦選擇了某種虛擬化技術(shù),就被鎖定了,無(wú)法為新的應(yīng)用需求針對(duì)性的選擇虛擬化技術(shù)。
(3)原有設(shè)備兼容
運(yùn)營(yíng)商早期購(gòu)買的交換機(jī)/網(wǎng)卡通常不支持VXLAN/NVGRE/STT等協(xié)議,如果沒(méi)有合適的解決方案,只能全部替換,造成巨大浪費(fèi)。
針對(duì)上述問(wèn)題,我們?cè)O(shè)計(jì)了基于軟件定義網(wǎng)絡(luò)(SDN)[8]的多區(qū)域網(wǎng)絡(luò)虛擬化模型,可以兼容多種網(wǎng)絡(luò)虛擬化技術(shù),實(shí)現(xiàn)高效率、可擴(kuò)展、大規(guī)模的網(wǎng)絡(luò)虛擬化。主要設(shè)計(jì)原理是利用SDN對(duì)網(wǎng)絡(luò)物理設(shè)備可控制的優(yōu)勢(shì),引入網(wǎng)絡(luò)區(qū)域(Zone)的邏輯概念,在同一個(gè)區(qū)域中使用某種網(wǎng)絡(luò)虛擬化技術(shù),在區(qū)域與區(qū)域的邊界通過(guò)控制平面實(shí)現(xiàn)不同虛擬網(wǎng)絡(luò)標(biāo)識(shí)符的轉(zhuǎn)換,完成跨區(qū)域交互。
1 多區(qū)域模型
1.1 區(qū)域
區(qū)域是一個(gè)包含一定數(shù)量的服務(wù)器與交換機(jī)的物理設(shè)備集合。整個(gè)網(wǎng)絡(luò)可以根據(jù)實(shí)際需求劃分為若干個(gè)區(qū)域,不同的區(qū)域通過(guò)邊界交換機(jī)互連。區(qū)域內(nèi)的交換機(jī)(包括服務(wù)器上的虛擬交換機(jī))和邊界交換機(jī)需要能夠支持同一種網(wǎng)絡(luò)虛擬化技術(shù),實(shí)現(xiàn)區(qū)域內(nèi)的虛擬網(wǎng)絡(luò)隔離。多區(qū)域網(wǎng)絡(luò)虛擬化模型如圖1所示。區(qū)域X采用VXLAN,區(qū)域Y采用NVGRE。每個(gè)區(qū)域擁有自己的控制平面,負(fù)責(zé)區(qū)域內(nèi)的配置。
1.2 虛擬網(wǎng)絡(luò)片段
虛擬網(wǎng)絡(luò)可以在一個(gè)區(qū)域內(nèi),也可以跨多個(gè)區(qū)域。虛擬網(wǎng)絡(luò)在每一個(gè)區(qū)域中被稱為一個(gè)虛擬網(wǎng)絡(luò)片段,多個(gè)虛擬網(wǎng)絡(luò)片段通過(guò)域間的邊界交換機(jī)級(jí)聯(lián)成一個(gè)虛擬網(wǎng)絡(luò)。如圖1中,虛擬網(wǎng)絡(luò)A僅分布在區(qū)域X中,擁有一個(gè)虛擬網(wǎng)絡(luò)片段A1;虛擬網(wǎng)絡(luò)B分布在區(qū)域X和區(qū)域Y中,擁有兩個(gè)虛擬網(wǎng)絡(luò)片段B1和B2。
1.3 虛擬網(wǎng)絡(luò)標(biāo)簽
虛擬網(wǎng)絡(luò)標(biāo)簽是實(shí)現(xiàn)虛擬網(wǎng)絡(luò)隔離的關(guān)鍵。虛擬網(wǎng)絡(luò)標(biāo)簽的格式為{區(qū)域:標(biāo)識(shí)符,[區(qū)域:標(biāo)識(shí)符]……},利用每一個(gè)區(qū)域內(nèi)所采用網(wǎng)絡(luò)虛擬化技術(shù)的虛擬網(wǎng)絡(luò)標(biāo)識(shí)符唯一標(biāo)識(shí)其對(duì)應(yīng)的虛擬網(wǎng)絡(luò)片段,從而在不增加任何封裝開(kāi)銷的前提下唯一標(biāo)識(shí)一個(gè)虛擬網(wǎng)絡(luò)。
1.4 標(biāo)識(shí)符轉(zhuǎn)換
當(dāng)虛擬網(wǎng)絡(luò)有多個(gè)虛擬網(wǎng)絡(luò)片段時(shí),需要在邊界交換機(jī)處對(duì)報(bào)文進(jìn)行解封裝和重新封裝,更換標(biāo)識(shí)符,使得兩個(gè)虛擬網(wǎng)絡(luò)片段可以互通。邊界交換機(jī)為SDN交換機(jī),需要同時(shí)支持所有相鄰區(qū)域的網(wǎng)絡(luò)虛擬化技術(shù)。邊界交換機(jī)根據(jù)SDN控制器下發(fā)的配置,實(shí)現(xiàn)動(dòng)態(tài)標(biāo)識(shí)符轉(zhuǎn)換,支持虛擬網(wǎng)絡(luò)的動(dòng)態(tài)修改。邊界交換機(jī)標(biāo)識(shí)符轉(zhuǎn)換過(guò)程如圖2所示。
1.5 虛擬網(wǎng)絡(luò)管理者
虛擬網(wǎng)絡(luò)管理者負(fù)責(zé)管理虛擬網(wǎng)絡(luò)與虛擬網(wǎng)絡(luò)片段之間的映射關(guān)系。虛擬網(wǎng)絡(luò)管理者通常作為云計(jì)算平臺(tái)的一部分,向用戶/應(yīng)用提供定義良好的應(yīng)用編程接口(API),用于動(dòng)態(tài)創(chuàng)建/刪除/更新虛擬網(wǎng)絡(luò)。當(dāng)收到請(qǐng)求時(shí),虛擬網(wǎng)絡(luò)管理者根據(jù)虛擬機(jī)的分布、物理網(wǎng)絡(luò)拓?fù)湟约皡^(qū)域的劃分,將虛擬網(wǎng)絡(luò)嵌入到物理網(wǎng)絡(luò)中,計(jì)算需要多少個(gè)虛擬網(wǎng)絡(luò)片段以及每個(gè)虛擬網(wǎng)絡(luò)片段的邊緣交換機(jī)端口,分配虛擬網(wǎng)絡(luò)標(biāo)簽,然后調(diào)用對(duì)應(yīng)區(qū)域的控制平面,配置交換機(jī)建立區(qū)域內(nèi)的虛擬網(wǎng)絡(luò)連接。與此同時(shí),虛擬網(wǎng)絡(luò)管理者將虛擬網(wǎng)絡(luò)片段之間的對(duì)應(yīng)關(guān)系發(fā)送給SDN控制器,由SDN控制器負(fù)責(zé)下發(fā)配置給邊界交換機(jī),實(shí)現(xiàn)標(biāo)識(shí)符轉(zhuǎn)換。
2 實(shí)現(xiàn)
2.1 區(qū)域劃分
除了同區(qū)域交換機(jī)必須支持相同的網(wǎng)絡(luò)虛擬化技術(shù),區(qū)域劃分策略還可能受到其他因素影響:
(1)虛擬網(wǎng)絡(luò)規(guī)模
VLAN最多支持4 096個(gè)虛擬網(wǎng)絡(luò)。通過(guò)劃分N個(gè)區(qū)域,將一個(gè)虛擬網(wǎng)絡(luò)盡量嵌入到一個(gè)區(qū)域中,理想情況下可以將支持的虛擬網(wǎng)絡(luò)數(shù)目擴(kuò)大N倍。
(2)系統(tǒng)開(kāi)銷
GRE隧道的數(shù)目隨著終端數(shù)目增加以平方速率增長(zhǎng)。通過(guò)合理控制區(qū)域中的服務(wù)器/交換機(jī)數(shù)目,可以有效控制系統(tǒng)開(kāi)銷。
2.2 虛擬網(wǎng)絡(luò)嵌入
虛擬網(wǎng)絡(luò)嵌入是非線性編程-硬(NP-hard)問(wèn)題,計(jì)算復(fù)雜度隨物理網(wǎng)絡(luò)資源規(guī)模增加而急劇增加[9]。在我們的模型中,虛擬網(wǎng)絡(luò)嵌入分為兩步:虛擬網(wǎng)絡(luò)分解為若干個(gè)虛擬網(wǎng)絡(luò)片段,區(qū)域內(nèi)虛擬網(wǎng)絡(luò)片段的嵌入。
為了實(shí)現(xiàn)簡(jiǎn)單,我們盡量將虛擬網(wǎng)絡(luò)嵌入到一個(gè)區(qū)域內(nèi),降低跨區(qū)域引起的標(biāo)識(shí)符轉(zhuǎn)換開(kāi)銷。在某些情況下,虛擬網(wǎng)絡(luò)會(huì)被分為多個(gè)片段:
(1)策略需要
當(dāng)網(wǎng)絡(luò)區(qū)域劃分與其他策略(如災(zāi)備區(qū)域劃分)結(jié)合起來(lái)時(shí),將一個(gè)虛擬網(wǎng)絡(luò)劃分成多個(gè)虛擬網(wǎng)絡(luò)片段,使得一個(gè)虛擬網(wǎng)絡(luò)中的虛擬機(jī)能處于不同的區(qū)域中,實(shí)現(xiàn)災(zāi)備等功能。
(2)物理資源受限
一個(gè)區(qū)域的物理資源是有限的,包括服務(wù)器和交換機(jī)。當(dāng)新增需求超過(guò)了區(qū)域內(nèi)可用資源時(shí),可以將需求分布在多個(gè)區(qū)域中。例如,某個(gè)用戶需要150臺(tái)2核CPU的虛擬機(jī),連接在一個(gè)虛擬網(wǎng)絡(luò)中,而每個(gè)區(qū)域可用CPU都只有200核。此時(shí),虛擬網(wǎng)絡(luò)將被迫分為多個(gè)片段,通過(guò)多個(gè)區(qū)域的物理資源提供用戶所需要的150臺(tái)2核CPU的虛擬機(jī)。
區(qū)域內(nèi)虛擬網(wǎng)絡(luò)片段的嵌入可以使用任意已有的嵌入算法。
2.3 區(qū)域內(nèi)網(wǎng)絡(luò)虛擬化
區(qū)域控制平面有很多現(xiàn)成的解決方案,可以集成到我們的模型中,只需要其能提供API供虛擬網(wǎng)絡(luò)管理者調(diào)用,配置虛擬網(wǎng)絡(luò)連接。
下面將介紹如何用SDN實(shí)現(xiàn)區(qū)域內(nèi)網(wǎng)絡(luò)虛擬化。
我們將區(qū)域內(nèi)的交換機(jī)分為兩種:邊緣交換機(jī)和中間交換機(jī)。所有與虛機(jī)直接相連的交換機(jī)(即虛擬交換機(jī))都是邊緣交換機(jī),其他交換機(jī)則是中間交換機(jī)。邊緣交換機(jī)負(fù)責(zé)對(duì)數(shù)據(jù)包進(jìn)行封裝/解封裝,支持開(kāi)放流協(xié)議(OpenFlow)[10-11],可以通過(guò)OpenFlow控制器進(jìn)行管理。中間交換機(jī)只要能夠支持隧道的建立,可以不用支持OpenFlow。為了更好地控制虛擬網(wǎng)絡(luò)之間的安全隔離以及防止廣播包的洪泛,所有邊緣交換機(jī)上添加一條最低優(yōu)先級(jí)的流表,默認(rèn)丟棄所有的數(shù)據(jù)包。當(dāng)有虛擬網(wǎng)連接需要建立時(shí),通過(guò)添加更高級(jí)別的流表來(lái)允許此虛擬網(wǎng)的數(shù)據(jù)包通過(guò)。
控制平面主要包括3個(gè)模塊:
(1)拓?fù)涔芾砟K
控制器使用鏈路層發(fā)現(xiàn)協(xié)議(LLDP)[12]實(shí)現(xiàn)物理拓?fù)渥詣?dòng)發(fā)現(xiàn)。對(duì)于支持OpenFlow協(xié)議的交換機(jī),通過(guò)發(fā)送帶LLDP數(shù)據(jù)包的Packet-out消息,觸發(fā)相鄰OpenFlow交換機(jī)發(fā)送Packet-in消息,從而獲知兩臺(tái)交換機(jī)之間的連接情況。對(duì)于不支持OpenFlow協(xié)議的交換機(jī),控制器通過(guò)簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議從交換機(jī)的管理信息庫(kù)讀取相鄰鏈路信息。
(2)路徑計(jì)算模塊
根據(jù)輸入的虛機(jī)位置,調(diào)用路由算法尋找網(wǎng)絡(luò)路徑。模塊與路由算法解耦和,可以根據(jù)需求動(dòng)態(tài)調(diào)用不同的路由算法。
(3)虛擬網(wǎng)絡(luò)服務(wù)模塊
此模塊負(fù)責(zé)維護(hù)虛擬網(wǎng)絡(luò)片段與區(qū)域內(nèi)物理網(wǎng)絡(luò)之間的映射關(guān)系。當(dāng)虛擬網(wǎng)絡(luò)片段中有虛機(jī)加入/離開(kāi)/遷移時(shí),虛擬網(wǎng)絡(luò)服務(wù)模塊調(diào)用路徑計(jì)算模塊計(jì)算新的路徑,下發(fā)配置給交換機(jī),更新虛擬網(wǎng)絡(luò)片段。
對(duì)于虛擬網(wǎng)絡(luò)片段VN-X,當(dāng)虛機(jī)VM-X被創(chuàng)建后,OpenFlow控制器在虛機(jī)VM-X所在的邊緣交換機(jī)上創(chuàng)建一個(gè)端口P-X,并將端口P-X連接到虛機(jī)VM-X。如果虛機(jī)VM-X是虛擬網(wǎng)絡(luò)片段VN-X在此邊緣交換機(jī)上的第一臺(tái)虛機(jī),從此邊緣交換機(jī)建立到其他擁有屬于虛擬網(wǎng)絡(luò)片段VN-X虛機(jī)的邊緣交換機(jī)的隧道。
然后,控制器在邊緣交換機(jī)上配置3條流表:
(1)給從端口P發(fā)出的報(bào)文加上對(duì)應(yīng)的虛擬網(wǎng)絡(luò)標(biāo)識(shí)符I,并發(fā)送到對(duì)應(yīng)的隧道中,使得虛機(jī)V發(fā)出的報(bào)文能夠進(jìn)入虛擬網(wǎng)絡(luò)。
(2)將擁有相同虛擬網(wǎng)絡(luò)標(biāo)識(shí)符I的廣播包去除標(biāo)識(shí)符并發(fā)到端口P,使得虛機(jī)V能收到所屬虛擬網(wǎng)絡(luò)的廣播包。
(3)將擁有相同虛擬網(wǎng)絡(luò)標(biāo)識(shí)符I且目的媒體訪問(wèn)控制(MAC)地址為虛機(jī)V的MAC地址的單播包去除標(biāo)識(shí)符并發(fā)到端口P,確保虛機(jī)V只收到應(yīng)該收到的報(bào)文。
2.4 邊界交換機(jī)
邊界交換機(jī)需要支持OpenFlow協(xié)議和相鄰區(qū)域所采用的網(wǎng)絡(luò)虛擬化技術(shù)。當(dāng)虛擬網(wǎng)絡(luò)VN-X僅在一個(gè)區(qū)域內(nèi)時(shí),邊界交換機(jī)上無(wú)需做相應(yīng)配置。如果虛擬網(wǎng)絡(luò)VN-X分布在邊界交換機(jī)相鄰的M個(gè)區(qū)域時(shí),OpenFlow控制器從邊界交換機(jī)建立到這M個(gè)區(qū)域中所有擁有屬于虛擬網(wǎng)絡(luò)VN-X的虛機(jī)的邊緣交換機(jī)的隧道,然后在邊界交換機(jī)上配置流表:
(1)對(duì)于廣播包,逐一更換相應(yīng)的標(biāo)識(shí)符,從接收到的隧道轉(zhuǎn)發(fā)給所有其他虛擬網(wǎng)絡(luò)VN-X的隧道。
(2)對(duì)于單播包,根據(jù)MAC地址,更換相應(yīng)的標(biāo)識(shí)符,轉(zhuǎn)發(fā)到連接到目的虛機(jī)所在邊緣交換機(jī)的隧道。
3 演示
我們搭建了一個(gè)演示環(huán)境,用于證明多種網(wǎng)絡(luò)虛擬化技術(shù)可以共存在多區(qū)域網(wǎng)絡(luò)虛擬化模型中。演示環(huán)境如圖3所示。Floodlight[13]是一款基于Java開(kāi)發(fā)的開(kāi)源OpenFlow控制器,支持OpenFlow協(xié)議v1.0版本。我們?cè)贔loodlight基礎(chǔ)上做了擴(kuò)展實(shí)現(xiàn)SDN控制器。OpenStack[14]是開(kāi)源云計(jì)算平臺(tái)的領(lǐng)導(dǎo)者,其中的Neutron項(xiàng)目負(fù)責(zé)提供虛擬網(wǎng)絡(luò)連接服務(wù)。Neutron采用可擴(kuò)展的Plugin架構(gòu),支持使用不同的網(wǎng)絡(luò)虛擬化技術(shù)。Floodligth為Neutron實(shí)現(xiàn)了一個(gè)Plugin架構(gòu)[15],我們?cè)谶@個(gè)Plugin基礎(chǔ)上,實(shí)現(xiàn)了虛擬網(wǎng)絡(luò)管理者。虛擬網(wǎng)絡(luò)管理者在啟動(dòng)的時(shí)候會(huì)載入一個(gè)配置文件。配置文件中記錄了區(qū)域劃分信息、每一個(gè)區(qū)域支持的網(wǎng)絡(luò)虛擬化技術(shù)以及可用的標(biāo)識(shí)符區(qū)間。在演示環(huán)境中,網(wǎng)絡(luò)被劃分為3個(gè)區(qū)域,其中區(qū)域1和區(qū)域2采用VLAN,區(qū)域3采用GRE。虛擬網(wǎng)絡(luò)嵌入使用OpenStack默認(rèn)的調(diào)度算法。
3.1 區(qū)域內(nèi)連接與隔離
我們使用OpenStack控制節(jié)點(diǎn)創(chuàng)建兩個(gè)虛擬網(wǎng)絡(luò)A和B,使用相同的地址空間。區(qū)域2內(nèi)創(chuàng)建了4臺(tái)虛機(jī),其中虛機(jī)2和虛機(jī)3屬于虛擬網(wǎng)絡(luò)A,分別分配地址10.0.0.3和10.0.0.4;虛機(jī)4和虛機(jī)5屬于虛擬網(wǎng)絡(luò)B,分別分配地址10.0.0.2和10.0.0.3??刂破髟趨^(qū)域2內(nèi)創(chuàng)建了2個(gè)虛擬網(wǎng)絡(luò)片段A2和B1,分別分配標(biāo)識(shí)符VLAN ID 10和VLAN ID 20。
我們使用Ping命令測(cè)試虛機(jī)之間的可達(dá)性,并使用Tcpdump工具進(jìn)行抓包。測(cè)試結(jié)果顯示,虛擬2和虛機(jī)3之間能夠相互訪問(wèn),但不能訪問(wèn)虛機(jī)4和虛機(jī)5,也偵聽(tīng)不到虛機(jī)4和虛機(jī)5發(fā)出的廣播包;反之亦然。這說(shuō)明虛擬網(wǎng)絡(luò)A和B擁有獨(dú)立的地址空間,并且相互隔離。
3.2 跨不同網(wǎng)絡(luò)虛機(jī)化技術(shù)區(qū)域的
虛擬網(wǎng)絡(luò)
區(qū)域2和區(qū)域3使用了不同的網(wǎng)絡(luò)虛擬化技術(shù)。在3.1節(jié)基礎(chǔ)上,我們使用OpenStack控制節(jié)點(diǎn)在區(qū)域3內(nèi)創(chuàng)建虛機(jī)6,并加入虛擬網(wǎng)絡(luò)B??刂破鲿?huì)在區(qū)域3內(nèi)創(chuàng)建虛擬網(wǎng)絡(luò)片段B2,分配標(biāo)識(shí)符GRE key 100;然后配置邊界交換機(jī)B,對(duì)區(qū)域2的標(biāo)識(shí)符VLAN ID 20和區(qū)域3的標(biāo)識(shí)符GRE key 100進(jìn)行轉(zhuǎn)換。測(cè)試結(jié)果顯示虛機(jī)6能與虛機(jī)4和虛機(jī)5相互訪問(wèn),不能訪問(wèn)虛機(jī)2和虛機(jī)3。這表明虛擬網(wǎng)絡(luò)可以跨不同網(wǎng)絡(luò)虛擬化技術(shù)區(qū)域?qū)崿F(xiàn)。
3.3 跨相同網(wǎng)絡(luò)虛機(jī)化技術(shù)區(qū)域的
虛擬網(wǎng)絡(luò)
區(qū)域1和區(qū)域2使用了相同的網(wǎng)絡(luò)虛擬化技術(shù)。在3.1節(jié)基礎(chǔ)上,我們使用OpenStack控制節(jié)點(diǎn)在區(qū)域1內(nèi)創(chuàng)建虛機(jī)1,并加入虛擬網(wǎng)絡(luò)A??刂破鲿?huì)在區(qū)域1內(nèi)創(chuàng)建虛擬網(wǎng)絡(luò)片段A1,分配標(biāo)識(shí)符VLAN ID 20;然后配置邊界交換機(jī)A,對(duì)區(qū)域1的標(biāo)識(shí)符VLAN ID 20和區(qū)域2的標(biāo)識(shí)符VLAN ID 10進(jìn)行轉(zhuǎn)換。測(cè)試結(jié)果顯示虛機(jī)1能與虛機(jī)2和虛機(jī)3相互訪問(wèn);雖然虛機(jī)4和虛機(jī)5在區(qū)域2內(nèi)使用的標(biāo)識(shí)符也是VLAN ID 20,但不能與虛機(jī)1互相訪問(wèn)。這表明虛擬網(wǎng)絡(luò)可以跨相同網(wǎng)絡(luò)虛擬化技術(shù)區(qū)域?qū)崿F(xiàn),不同區(qū)域內(nèi)的虛擬網(wǎng)絡(luò)標(biāo)識(shí)符空間獨(dú)立。
4 結(jié)束語(yǔ)
本文提出了一種新型的多區(qū)域網(wǎng)絡(luò)虛擬化模型,將物理網(wǎng)絡(luò)劃分為多個(gè)區(qū)域,可以同時(shí)兼容多種網(wǎng)絡(luò)虛擬化技術(shù),實(shí)現(xiàn)網(wǎng)絡(luò)平滑升級(jí)。我們基于開(kāi)源軟件搭建了一個(gè)原型系統(tǒng),驗(yàn)證了模型的可行性。
參考文獻(xiàn)
[1] SHEN W, MINATO K, TSUKISHIMA Y, et al. Implementation of a novel management development [C]//Proceedings of the Network Operations and Management Symposium (APNOMS), 2013 15th Asia-Pacific. 2013
[2] CHOWDHURY N M, BOUTABA R. Network virtualization: state of the art and research challenges [J]. Communications Magazine, IEEE, 2009, 47(7): 20-26.
[3] CHOWDHURY N M, BOUTABA R. A survey of network virtualization [J]. Computer Networks, 2010, 54(5): 862-876.
[4] IEEE 802.1q. VLAN [S]. IEEE, 2005.
[5] IETF drafts. VXLAN: A Framework for Overlaying Virtualized Layer 2 Networks over Layer 3 Networks [S]. IETF, 2014.
[6] IETF drafts. NVGRE: Network Virtualization using Generic Routing Encapsulation [S]. IETF, 2014.
[7] IETF drafts. A Stateless Transport Tunneling Protocol for Network Virtualization (STT) [S]. IETF, 2013
[8] WIKIPEDIA. Software-defined networking [EB/OL]. (2014-02-28). http://en.wikipedia.org/wiki/Software-defined_networking.
[9] YU M, YI Y, REXFORD J, et al. Rethinking virtual network embedding: substrate support for path splitting and migration [J]. SIGCOMM Computer Communication Review, 2008,38(4): 19-29.
[10] MCKEOWN N. OpenFlow: Enabling Innovation in Campus Networks [J]. SIGCOMM Computer Communication Review, 2008,38(4): 69-74.
[11] OpenFlow specification v1.4.0. [EB/OL]. (2014-02-28). https://www.opennetworking.org/images/stories/downloads/sdn-resources/onf-specifications/openflow/openflow-spec-v1.4.0.pdf.
[12] IEEE 802.1AB-2009. Station and Media Access Control Connectivity Discovery [S]. IEEE, 2009.
[13] Floodligth [EB/OL]. (2014-02-28). http://www.projectfloodlight.org/floodlight/.
[14] OpenStack: Open Source Cloud Computing Software [EB/OL]. (2014-02-28). https://www.openstack.org/.
[15] Floodlight plugin for neutron: [EB/OL]. (2014-02-28). https://github.com/openstack/neutron/tree/master/neutron/plugins/bigswitch.