本申請涉及通信技術(shù)領(lǐng)域,尤其涉及一種網(wǎng)絡(luò)中(Virtual Local Area Network,VLAN)VLAN標(biāo)識(Identifier,ID)分配的方法及控制器。
背景技術(shù):
開放堆棧(OpenStack)平臺作為具有降低運營成本、提高業(yè)務(wù)敏捷度、節(jié)能減排等優(yōu)點的云計算平臺,各通信運營商將其應(yīng)用到通信網(wǎng)絡(luò)中。OpenStack網(wǎng)絡(luò)服務(wù)(又稱為:Neutron)作為OpenStack的核心項目之一,提供云計算環(huán)境下的虛擬網(wǎng)絡(luò)功能。
在Neutron網(wǎng)絡(luò)中通常可以存在針對多個租戶創(chuàng)建的虛擬網(wǎng)絡(luò),即租戶網(wǎng)絡(luò)。為了保證不同租戶的租戶網(wǎng)絡(luò)之間通信的安全性,因此需要通過VLAN技術(shù)實現(xiàn)租戶網(wǎng)絡(luò)隔離。
在實現(xiàn)租戶網(wǎng)絡(luò)隔離中,為了保證同一租戶的處于不同計算節(jié)點的子網(wǎng)(Subnet)互通,通常采用虛擬擴展局域網(wǎng)(Virtual eXtensible Local Area Network,VxLAN)技術(shù)和VLAN技術(shù)結(jié)合實現(xiàn),其中計算節(jié)點為承載虛擬機(Virtual Machine,VM)的運行節(jié)點,該計算節(jié)點可以為虛擬交換機(Virtual Switch,vSwitch)。具體實現(xiàn)原理為:OpenStack平臺將分布在不同計算節(jié)點上的不同租戶的子網(wǎng)映射到不同的VLAN中,并且為了保證不同計算節(jié)點中同一租戶的子網(wǎng)互通,OpenStack平臺將分布在不同計算節(jié)點中同一租戶的子網(wǎng)映射到同一VLAN中;OpenStack平臺再將不同的VLAN映射到不同的VxLAN中。為了實現(xiàn)在Neutron網(wǎng)絡(luò)中數(shù)據(jù)流的傳輸,需要對數(shù)據(jù)流中VLAN標(biāo)簽(Tag)和VxLAN網(wǎng)絡(luò)標(biāo)識(VxLAN Network Identifier,VNI)之間轉(zhuǎn)換。
然而VLAN Tag字段在報文中占有12比特(bit)位,而VNI字段在報文中 占有24bit位,因此,在上述方式進行租戶網(wǎng)絡(luò)隔離,Neutron網(wǎng)絡(luò)中的租戶的個數(shù)將限制在4094(212-2=4094)內(nèi),限定了網(wǎng)絡(luò)規(guī)模。
為了擴大網(wǎng)絡(luò)規(guī)模,OpenStack平臺可以將上述傳統(tǒng)的VLAN-VxLAN兩段式映射關(guān)系的網(wǎng)絡(luò)布局方式,升級為通過VLAN1-VxLAN-VLAN2三段式映射關(guān)系的網(wǎng)絡(luò)布局方式,這樣,部署于不同的計算節(jié)點的同一租戶的子網(wǎng)無需映射到同一VLAN中,從而將Neutron網(wǎng)絡(luò)中的租戶的個數(shù)限制在VxLAN的數(shù)量規(guī)格范圍224-1=16777215內(nèi)。
然而,由于在上述三段式映射關(guān)系進行網(wǎng)絡(luò)布局的網(wǎng)絡(luò)中,租戶的子網(wǎng)的VLAN ID是由計算節(jié)點來分配的。通過每個計算節(jié)點分別為各自連接的租戶的子網(wǎng)分配VLAN ID的方式,可以保證將每個計算節(jié)點連接的不同租戶的子網(wǎng)分配不同的VLAN ID,但是有可能會出現(xiàn)接入同一網(wǎng)絡(luò)虛擬化邊界(Network Virtualization Edge,NVE)設(shè)備的同一接入接口的計算節(jié)點,為各自連接的不同租戶的子網(wǎng)分配的VLAN ID相同的情況,即會出現(xiàn)VLAN ID沖突的問題,而VLAN沖突的問題會進一步導(dǎo)致數(shù)據(jù)傳輸錯誤,租戶網(wǎng)絡(luò)無法實現(xiàn)隔離。
技術(shù)實現(xiàn)要素:
本申請?zhí)峁┮环N網(wǎng)絡(luò)中VLAN ID分配的方法及控制器,用以解決現(xiàn)有技術(shù)中OpenStack平臺通過計算節(jié)點來分配VLAN ID時,出現(xiàn)VLAN ID沖突的問題。
本申請?zhí)峁┑木唧w技術(shù)方案如下:
一方面,本申請實施例提供了一種網(wǎng)絡(luò)中VLAN ID分配的方法,所述網(wǎng)絡(luò)包括NVE設(shè)備和控制器,所述NVE設(shè)備為網(wǎng)絡(luò)邊緣設(shè)備,所述控制器對所述NVE設(shè)備進行控制管理,其中,第一VM和第二VM通過所述NVE設(shè)備連接網(wǎng)絡(luò),所述NVE設(shè)備通過同一接入接口與所述第一VM和所述第二VM連接,所述方法包括:
所述控制器獲得所述第一VM的第一VxLAN ID和所述第二VM的第二 VxLAN ID;所述控制器可以通過判斷獲得的所述第一VxLAN ID和所述VxLAN ID是否相同,來判斷所述第一VM和所述第二VM是否屬于同一個租戶;當(dāng)所述控制器判定所述第一VM和所述第二VM屬于同一個租戶后,為所述第一VM和所述第二VM分配相同的VLAN ID;當(dāng)所述控制判定所述第一VM和所述第二VM屬于不同的租戶后,為所述第一VM和所述第二VM分配不同的VLAN ID。
通過上述方法,所述控制器可以保證接入同一NVE設(shè)備的同一接入接口的多個VM中,屬于相同租戶的VM分配的VLAN ID相同,而屬于不同租戶的VM分配的VLAN ID不同,避免出現(xiàn)VLAN沖突的問題,提高了分配VLAN ID的準(zhǔn)確性,最終實現(xiàn)租戶網(wǎng)絡(luò)隔離。
在一個可能的設(shè)計中,所述第一VM和所述第二VM通過vSwitch連接所述NVE設(shè)備,具體包含兩種情況:
第一種情況:所述第一VM和所述第二VM通過一個vSwitch連接所述NVE設(shè)備;其中,所述vSwitch可以直接接入所述NVE設(shè)備的所述接入接口,也可以接入?yún)R聚交換機,再接入所述NVE設(shè)備的所述接入接口;
第二種情況:所述第一VM和所述第二VM通過兩個vSwitch連接所述NVE設(shè)備;所述兩個vSwitch需要通過匯聚交換機接入所述NVE設(shè)備的所述接入接口。
在一個可能的設(shè)計中,所述控制器將為所述第一VM和所述第二VM分配的VLAN ID發(fā)送給所述vSwitch,例如:所述控制器生成VLAN配置信息,所述VLAN配置信息中包含為所述第一VM和所述第二VM分配的VLAN ID的信息;所述控制器將所述VLAN配置信息發(fā)送至所述OpenStack平臺;所述OpenStack平臺再將所述VLAN配置信息下發(fā)至所述第一VM和所述第二VM連接的所述vSwitch。
通過上述方法,所述vSwitch可以實現(xiàn)對所述第一VM和所述第二VM的VLAN ID進行配置。
在一個可能的設(shè)計中,所述控制器從云計算平臺OpenStack平臺獲得所述第一VxLAN ID和所述第二VxLAN ID。
通過上述方法,所述控制器可以快速準(zhǔn)確地確定所述第一VM和所述第二VM的VxLAN ID。
在一個可能的設(shè)計中,所述控制器存儲針對所述接入接口的VxLAN ID和VLAN ID的對應(yīng)關(guān)系;所述控制器可以通過以下步驟為所述第一VM分配VLAN ID:所述控制器根據(jù)所述VxLAN ID和VLAN ID的對應(yīng)關(guān)系,確定所述第一VxLAN ID對應(yīng)的第一VLAN ID;并將所述第一VLAN ID分配給所述第一VM;
同理,所述控制器可以通過以下步驟為所述第二VM分配VLAN ID:
所述控制器根據(jù)所述VxLAN ID和VLAN ID的對應(yīng)關(guān)系,確定所述第二VxLAN ID對應(yīng)的第二VLAN ID;并將所述第二VLAN ID分配給所述第二VM。
通過以上方法,所述控制器可以快速準(zhǔn)確地確定所述第一VM和所述第二VM的VLAN ID,同時,可以保證在所述第一VM和所述第二VM屬于相同租戶時,為上述兩個VM分配相同的VLAN ID,在上述兩個VM屬于不同租戶時,分別為上述兩個VM分配不同的VLAN ID,避免出現(xiàn)VLAN沖突的問題,提高了分配VLAN ID的準(zhǔn)確性,最終實現(xiàn)租戶網(wǎng)絡(luò)隔離。
另一方面,本申請實施例還提供了一種網(wǎng)絡(luò)中VLAN ID分配的控制器,該控制器具有實現(xiàn)上述方法實例中控制器行為的功能。所述功能可以通過硬件實現(xiàn),也可以通過硬件執(zhí)行相應(yīng)的軟件實現(xiàn)。所述硬件或軟件包括一個或多個與上述功能相對應(yīng)的模塊。
在一種可能的設(shè)計中,所述控制器的結(jié)構(gòu)中包括獲取單元和處理單元,這些單元可以執(zhí)行上述方法示例中的相應(yīng)功能,具體參見方法示例中的詳細描述,此處不做贅述。
在一種可能的設(shè)計中,所述控制器的結(jié)構(gòu)中包括收發(fā)器、處理器、總線以 及存儲器,所述收發(fā)器用于與所述網(wǎng)絡(luò)中的其他設(shè)備進行通信交互,所述處理器被配置為支持所述控制器執(zhí)行上述方法中相應(yīng)的功能。所述存儲器與所述處理器耦合,其保存所述控制器必要的程序指令和數(shù)據(jù)。
采用本申請?zhí)峁┑木W(wǎng)絡(luò)中VLAN ID分配的方法,所述控制器可以保證接入同一NVE設(shè)備的同一接入接口的多個VM中,屬于相同租戶的VM分配的VLAN ID相同,而屬于不同租戶的VM分配的VLAN ID不同,避免出現(xiàn)VLAN沖突的問題,提高了分配VLAN ID的準(zhǔn)確性,最終實現(xiàn)租戶網(wǎng)絡(luò)隔離。
附圖說明
圖1為本申請實施例提供的一種Neutron網(wǎng)絡(luò)的架構(gòu)示意圖;
圖2為本申請實施例提供的一種網(wǎng)絡(luò)中VLANID分配的方法流程圖;
圖3為本申請實施例提供的一種控制器的結(jié)構(gòu)圖;
圖4為本申請實施例提供的另一種控制器的結(jié)構(gòu)圖。
具體實施方式
為了使本申請的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本申請作進一步地詳細描述,顯然,所描述的實施例僅僅是本申請一部分實施例,而不是全部的實施例?;诒旧暾堉械膶嵤├?,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本申請保護的范圍。
本申請實施例提供一種網(wǎng)絡(luò)中VLAN ID分配的方法及控制器,用以解決現(xiàn)有技術(shù)中OpenStack平臺通過計算節(jié)點來分配VLAN ID時,出現(xiàn)VLAN ID沖突的問題。其中,本申請實施例所述的方法和控制器基于同一發(fā)明構(gòu)思,由于本申請實施例中的方法及控制器解決問題的原理相似,因此控制器與方法的實施可以相互參見,重復(fù)之處不再贅述。
本申請實施例中,在包含NVE設(shè)備和控制器的網(wǎng)絡(luò)中,在所述NVE設(shè)備通過同一接入接口與第一VM和第二VM連接的情況下,當(dāng)所述控制器確定所 述第一VM和所述第二VM屬于同一租戶時,所述控制器為所述第一VM和所述第二VM分配相同的VLAN ID;當(dāng)所述控制器確定所述第一VM和所述第二VM屬于不同的租戶時,所述控制器為所述第一VM和所述第二VM分配不同的VLAN ID。上述方法可以保證接入同一NVE設(shè)備的同一接入接口的多個VM中,屬于相同租戶的VM分配的VLAN ID相同,而屬于不同租戶的VM分配的VLAN ID不同,避免出現(xiàn)VLAN ID沖突的問題,提高了分配VLAN ID的準(zhǔn)確性,最終實現(xiàn)租戶網(wǎng)絡(luò)隔離。
以下,對本申請中的部分用語進行解釋說明,以便與本領(lǐng)域技術(shù)人員理解。
本申請實施例涉及的控制器,是網(wǎng)絡(luò)中對其他網(wǎng)絡(luò)設(shè)備提供集中控制和管理功能的網(wǎng)絡(luò)設(shè)備,所述控制器可以為所述網(wǎng)絡(luò)中的VM分配VLAN ID??蛇x的,所述控制器還可以實現(xiàn)業(yè)務(wù)鏈集中控制、端到端的服務(wù)質(zhì)量(Quality of Service,QoS)策略集中控制,以及具備路徑優(yōu)化能力、提升網(wǎng)絡(luò)資源利用率等核心功能。
本申請實施例涉及的NVE設(shè)備,為網(wǎng)絡(luò)邊緣設(shè)備,是實現(xiàn)虛擬網(wǎng)絡(luò)的關(guān)鍵模塊,它可以實現(xiàn)虛擬交換機的功能,可以在物理交換機或路由器中實現(xiàn)。所述NVE設(shè)備可以幫助建立終端節(jié)點之間的邏輯連接(即隧道)。在通過VLAN1-VxLAN-VLAN2三段式映射關(guān)系進行網(wǎng)絡(luò)布局的網(wǎng)絡(luò)中,所述NVE設(shè)備實際上為VxLAN和VLAN之間的連接設(shè)備,具有VxLAN報文與VLAN報文之間轉(zhuǎn)換的能力,即可以將數(shù)據(jù)流中的VLAN Tag轉(zhuǎn)換為VxLAN VNI,或?qū)?shù)據(jù)流中的VxLAN VNI轉(zhuǎn)換為VLAN Tag??蛇x的,所述NVE設(shè)備可以為列末(End Of Row,EOR)交換機等。
本申請實施例中提到的“多個”,是指兩個或兩個以上。
另外,需要理解的是,在本申請實施例中的“第一”、“第二”等詞匯,僅用于區(qū)分描述的目的,而不能理解為指示或暗示相對重要性,也不能理解為指示或暗示順序。
為了更加清晰的描述本申請實施例的技術(shù)方案,下面結(jié)合圖1,對本申請 實施例可能的Neutron網(wǎng)絡(luò)的架構(gòu)進行說明。圖1示出了本申請實施例的一種可能的Neutron網(wǎng)絡(luò)的架構(gòu),在該網(wǎng)絡(luò)中包括:OpenStack平臺101、控制器102、至少一個NVE設(shè)備103、至少一個匯聚交換機104、多個vSwitch 105,以及多個VM 106,其中,
OpenStack平臺101,用于實現(xiàn)對Neutron網(wǎng)絡(luò)的管理,以及為所述Neutron網(wǎng)絡(luò)中的所述多個VM 106分配VxLAN ID。
控制器102,用于為所述Neutron網(wǎng)絡(luò)中的中的每個VM 106分配VLAN ID??蛇x的,所述控制器102與所述至少一個NVE設(shè)備103之間可以通過網(wǎng)關(guān)(GateWay,GW)等網(wǎng)絡(luò)設(shè)備連接。
NVE設(shè)備103,為所述Neutron網(wǎng)絡(luò)中VxLAN和VLAN之間的連接設(shè)備。
可選的,一個NVE設(shè)備103可以通過至少一個匯聚交換機104連接多個vSwitch 105,如圖中左側(cè)的NVE設(shè)備103所示,其中,不同的匯聚交換機104通過不同的所述NVE設(shè)備103的接入接口連接所述NVE設(shè)備103??蛇x的,一個NVE設(shè)備103的一個接入接口直接連接一個vSwitch 105,如圖中右側(cè)的NVE設(shè)備103所示。
需要說明的是,圖1僅為一個Neutron網(wǎng)絡(luò)的示例,本申請實施例并不限制所述NVE設(shè)備103與vSwitch 105之間的連接方式。在實際的Neutron網(wǎng)絡(luò)組網(wǎng)時,可以僅通過第一種連接方式,如圖中左側(cè)的NVE設(shè)備103所示,也可以部分NVE設(shè)備103采用第一種連接方式,部分NVE設(shè)備103采用第二種連接方式,如圖中右側(cè)的NVE設(shè)備103所示。
匯聚交換機104,用于將多個vSwitch 105進行匯聚,并連接至一個NVE設(shè)備103的一個接入接口中。由此可知,通過所述匯聚交換機104時,NVE設(shè)備103的一個接入接口可以連接多個vSwitch 105;不通過匯聚交換機104時,NVE設(shè)備103的一個接入接口只可以連接一個vSwitch 105??蛇x的,所述匯聚交換機104可以為架頂式(Top Of Rack,TOR)交換機。
vSwitch 105,位于所述Neutron網(wǎng)絡(luò)的計算節(jié)點中,對VM提供軟件的路 由交換協(xié)議棧。
VM 106,承載于所述Neutron網(wǎng)絡(luò)的計算節(jié)點中。一個計算節(jié)點中可以承載多個VM 106,一個計算節(jié)點中的多個VM 106可以屬于不同的租戶,而不同的計算節(jié)點中承載的VM 106可以屬于同一租戶。承載在計算節(jié)點中的至少一個VM 106通過位于該計算節(jié)點內(nèi)的vSwitch 105連接所述NVE設(shè)備103。
在所述Neutron網(wǎng)絡(luò)通過VLAN1-VxLAN-VLAN2三段式映射關(guān)系的網(wǎng)絡(luò)布局方式時,所述OpenStack平臺101為所述Neutron網(wǎng)絡(luò)中每個租戶分配VxLAN ID,其中每個租戶對應(yīng)至少一個VM 106。
所述OpenStack平臺101可以采用傳統(tǒng)的方式在為每個租戶分配VLANID,即所述OpenStack平臺101分別通過每個所述vSwitch 105為所在的計算節(jié)點中每個租戶的VM 106分配VLAN ID。顯然,同一租戶承載在計算節(jié)點A中VLAN ID與承載在計算節(jié)點B中的VLAN ID可以不同。
通過上述論述可知,相對于傳統(tǒng)的兩段式映射關(guān)系的網(wǎng)絡(luò)布局方式中VxLAN ID和VLAN ID需要一一對應(yīng),三段式映射關(guān)系的網(wǎng)絡(luò)布局方式中VxLAN ID和VLAN ID的對應(yīng)關(guān)系可以根據(jù)計算節(jié)點的不同而變化。因此Neutron網(wǎng)絡(luò)中的租戶的個數(shù)不會限制在VLAN的數(shù)量規(guī)格范圍內(nèi),而是限定在VxLAN的數(shù)量規(guī)格范圍內(nèi)。由于VxLAN的數(shù)量規(guī)格遠遠大于VLAN的數(shù)量規(guī)格,所以,Neutron網(wǎng)絡(luò)通過上述三段式映射關(guān)系的網(wǎng)絡(luò)布局方式可以顯著地提高租戶的數(shù)量,擴大了網(wǎng)絡(luò)規(guī)模。
然而,所述OpenStack平臺101在采用傳統(tǒng)的方式在為每個租戶分配VLANID時,由于每個所述vSwitch 105分別為所在的計算節(jié)點中每個租戶的VM 106分配VLAN ID,有可能會出現(xiàn)接入同一NVE設(shè)備103的同一接入接口的多個vSwitch 105,為各自連接的不同租戶的VM 106分配的VLAN ID相同的情況,即會出現(xiàn)VLAN沖突的問題。
例如,在圖中所示的Neutron網(wǎng)絡(luò)中,vSwitch1和vSwitch2通過匯聚交換機104接入所述NVE設(shè)備的同一接入接口,VM1和VM3屬于相同的租戶, 而VM2和VM4屬于相同的租戶。由于vSwitch1和vSwitch2在分別為各自對應(yīng)的VM分配VLAN ID時,是相互獨立的。因此,vSwitch1可以為VM1分配VLAN ID1,并為VM2分配VLAN ID2,vSwitch2可以為VM3分配VLANID3,并為VM4分配VLAN ID1。由于VM1和VM4分配了相同的VLAN ID,當(dāng)網(wǎng)絡(luò)側(cè)有下行報文需要傳輸給VM1時,由于所述VM4和所述VM1的VLAN ID相同,所述匯聚交換機104可能會將所述下行報文轉(zhuǎn)發(fā)給所述VM4,從而導(dǎo)致數(shù)據(jù)傳輸錯誤,租戶網(wǎng)絡(luò)無法實現(xiàn)隔離。
在本申請實施例中,所述控制器102可以為接入網(wǎng)絡(luò)的VM 106分配VLAN ID。其中,所述控制器102在為VM1、VM2、VM3和VM4分配VLAN ID時,先確定OpenStack平臺101為上述四個VM分配的VxLAN ID,其中,OpenStack平臺101為屬于相同租戶的VM分配相同的VxLAN ID,為屬于不同租戶的VM分配不同的VxLAN ID。通過上述四個VM1、VM2、VM3和VM4的VxLAN ID,所述控制器102可以確定所述VM1和所述VM3屬于一個租戶,所述VM2和所述VM4屬于另一個租戶;所述控制器為所述VM1和所述VM3分配VLAN ID1,為所述VM2和所述VM3分配所述VLAN ID2。
通過上述方法,可以保證所述Neutron網(wǎng)絡(luò)中接入同一NVE設(shè)備的同一接入接口的多個VM中,屬于相同租戶的VM分配的VLAN ID相同,而屬于不同租戶的VM分配的VLAN ID不同,避免出現(xiàn)VLAN ID沖突的問題,提高了分配VLAN ID的準(zhǔn)確性,最終實現(xiàn)租戶網(wǎng)絡(luò)隔離。
可選的,所述控制器102確定每個VM 106的VLAN ID后,生成VLAN配置信息,并將所述VLAN配置信息發(fā)送至所述OpenStack平臺101;所述OpenStack平臺101會通過遠程過程調(diào)用(Remote Procedure Call,RPC)技術(shù),將所述VLAN配置信息下發(fā)至每個vSwitch 105,使每個vSwitch 105根據(jù)所述VLAN配置信息,對每個vSwitch 105連接的VM 106配置VLAN ID,最終實現(xiàn)了對所述Neutron網(wǎng)絡(luò)中VM的VLAN的配置。
在本申請實施例提供的Neutron網(wǎng)絡(luò)中,所述控制器可以將接入同一NVE 設(shè)備的同一接入接口的多個VM中,屬于相同租戶的VM分配相同的VLAN ID,而屬于不同租戶的VM分配不同的VLAN ID,這樣,可以避免所述Neutron網(wǎng)絡(luò)出現(xiàn)VLAN ID沖突的問題,提高了分配VLAN ID的準(zhǔn)確性,最終實現(xiàn)租戶網(wǎng)絡(luò)隔離。
本申請實施例提供的一種網(wǎng)絡(luò)中VLAN ID分配的方法,所述網(wǎng)絡(luò)可以為如圖1所示的Neutron網(wǎng)絡(luò),其中,所述網(wǎng)絡(luò)包括NVE設(shè)備和控制器,所述NVE設(shè)備為網(wǎng)絡(luò)邊緣設(shè)備,所述控制器對所述NVE設(shè)備進行控制管理。多個VM通過所述NVE設(shè)備連接網(wǎng)絡(luò),且所述多個VM通過所述NVE設(shè)備的同一接入接口連接所述NVE設(shè)備。所述多個VM中包含第一VM和第二VM。參閱圖2所示,該方法的處理流程包括:
步驟201:所述控制器獲得所述第一VM的第一VxLAN ID和所述第二VM的第二VxLAN ID。
其中,可選的,所述控制器可以通過所述Neutron網(wǎng)絡(luò)的所述NVE的拓撲連接關(guān)系,確定所述接入接口連接的所述多個VM。所述拓撲連接關(guān)系可以體現(xiàn)所述NVE的每個接入接口與接入的VM的連接關(guān)系。
可選的,所述第一VM和所述第二VM通過vSwitch連接所述NVE設(shè)備。具體包含兩種情況:
第一種情況:所述第一VM和所述第二VM通過一個vSwitch連接所述NVE設(shè)備;例如圖1所示的Neutron網(wǎng)絡(luò)中VM1和VM2通過vSwitch1連接NVE設(shè)備,又例如所述Neutron網(wǎng)絡(luò)中的VM5和VM6通過vSwitch3連接NVE設(shè)備;
第二種情況:所述第一VM和所述第二VM通過兩個vSwitch連接所述NVE設(shè)備;例如所述Neutron網(wǎng)絡(luò)中所述第一VM為VM1/VM2,所述第二VM為VM3/VM4,所述第一VM通過vSwitch1連接所述NVE設(shè)備,且所述第二VM通過vSwitch2連接所述NVE設(shè)備。
在第一種情況下,所述vSwitch可以直接接入所述NVE設(shè)備的所述接入 接口,如圖1所示的vSwitch3;所述vSwitch也可以接入?yún)R聚交換機,再接入所述NVE設(shè)備的所述接入接口,如圖1所示的vSwitch1。
在第二種情況下,所述兩個vSwitch需要通過匯聚交換機接入所述NVE設(shè)備的所述接入接口。例如,圖1所示的vSwitch1和vSwitch2通過匯聚交換機104接入所述NVE設(shè)備103的一個接入接口。
為了實現(xiàn)租戶網(wǎng)絡(luò)隔離,在Neutron網(wǎng)絡(luò)組網(wǎng)完成后,OpenStack平臺為所述Neutron網(wǎng)絡(luò)中的所有VM分配VxLAN ID,其中,屬于同一租戶的VM分配的VxLAN ID相同,屬于不同租戶的VM分配的VxLAN ID不同。因此,可選的,所述控制器可以從OpenStack平臺獲得所述第一VxLAN ID和所述第二VxLAN ID。
由于所述OpenStack平臺將屬于同一租戶的VM分配相同的VxLAN ID,將屬于不同租戶的的VM分配不同的VxLAN ID。因此,所述控制器可以通過判斷獲得的所述第一VxLAN ID和所述VxLAN ID是否相同,來判斷所述第一VM和所述第二VM是否屬于同一個租戶。
步驟202:當(dāng)所述第一VxLAN ID和所述第二VxLAN ID相同時,確定所述第一VM和所述第二VM屬于同一個租戶,所述控制器為所述第一VM和所述第二VM分配相同的VLAN ID;當(dāng)所述第一VxLAN ID和所述第二VxLANID不同時,確定所述第一VM和所述第二VM屬于不同的租戶,所述控制器為所述第一VM和所述第二VM分配不同的VLAN ID。
在步驟202中,所述控制器可以通過判斷獲得的所述第一VxLAN ID和所述VxLAN ID是否相同,來判斷所述第一VM和所述第二VM是否屬于同一個租戶;所述控制器在判定所述第一VM和所述第二VM屬于同一個租戶后,為所述第一VM和所述第二VM分配相同的VLAN ID;或者所述控制在判定所述第一VM和所述第二VM屬于不同的租戶后,為所述第一VM和所述第二VM分配不同的VLAN ID。通過上述步驟,所述控制器可以避免出現(xiàn)VLAN ID沖突的問題,提高了分配VLAN ID的準(zhǔn)確性,最終實現(xiàn)租戶網(wǎng)絡(luò)隔離。
可選的,所述控制器中存儲有針對所述Neutron網(wǎng)絡(luò)中每個NVE設(shè)備的每個接入接口的VxLAN ID和VLAN ID的對應(yīng)關(guān)系。其中,針對一個NVE設(shè)備的不同接入接口的VxLAN ID和VLAN ID的對應(yīng)關(guān)系之間沒有任何約束關(guān)系,且針對不同NVE設(shè)備的接入接口的VxLAN ID和VLAN ID的對應(yīng)關(guān)系之間也沒有任何約束關(guān)系。例如,VxLAN ID1在針對NVE設(shè)備1的接入接口1的VxLAN ID和VLAN ID的對應(yīng)關(guān)系中,對應(yīng)VLAN ID1;但是,所述VxLAN ID1在針對NVE設(shè)備1的接入接口2的VxLAN ID和VLAN ID的對應(yīng)關(guān)系中,對應(yīng)VLAN ID2;所述VxLAN ID1在NVE設(shè)備2的接入接口1的VxLAN ID和VLAN ID的對應(yīng)關(guān)系中,對應(yīng)VLAN ID4。
由于所述控制器中保存有針對所述Neutron網(wǎng)絡(luò)中每個NVE設(shè)備的每個接入接口的VxLAN ID和VLAN ID的對應(yīng)關(guān)系,因此,一個VxLAN ID在不同的VxLAN ID和VLAN ID的對應(yīng)關(guān)系中,可以對應(yīng)不同的VLAN ID,從而實現(xiàn)了Neutron網(wǎng)絡(luò)三段式映射關(guān)系的網(wǎng)絡(luò)布局方式,保證了較大的網(wǎng)絡(luò)規(guī)模。
可選的,當(dāng)所述控制器中存儲針對針對所述接入接口的VxLAN ID和VLAN ID的對應(yīng)關(guān)系時,所述控制器為所述第一VM分配VLAN ID,包括:
所述控制器根據(jù)所述VxLAN ID和VLAN ID的對應(yīng)關(guān)系,確定所述第一VxLAN ID對應(yīng)的第一VLAN ID;并將所述第一VLAN ID分配給所述第一VM;
同理,所述控制器為所述第二VM分配VLAN ID,包括:
所述控制器根據(jù)所述VxLAN ID和VLAN ID的對應(yīng)關(guān)系,確定所述第二VxLAN ID對應(yīng)的第二VLAN ID;并將所述第二VLAN ID分配給所述第二VM。
通過以上方法,所述控制器可以快速準(zhǔn)確地確定所述第一VM和所述第二VM的VLAN ID,同時,可以保證在所述第一VM和所述第二VM屬于相同租戶時,為上述兩個VM分配相同的VLAN ID,在上述兩個VM屬于不同租戶時,分別為上述兩個VM分配不同的VLAN ID,避免出現(xiàn)VLAN ID沖突的 問題,提高了分配VLAN ID的準(zhǔn)確性,最終實現(xiàn)租戶網(wǎng)絡(luò)隔離。
本申請實施例僅以所述第一VM和所述第二VM為例,所述控制器可以通過上述方法,為接入所述接入接口的所述多個VM分配VLAN ID;進一步的,所述控制器還可以通過上述方法,為接入所述NVE設(shè)備的其他任意一個接入接口的多個VM分配VLAN ID;更進一步的,所述控制器還可以通過上述方法,為接入所述Neutron網(wǎng)絡(luò)中其他NVE設(shè)備的任意一個接入接口的多個VM分配VLAN ID,最終所述控制器可以實現(xiàn)為所述Neutron網(wǎng)絡(luò)中所有VM分配VLAN ID。
可選的,在所述控制器在執(zhí)行步驟202后,所述控制器將為所述第一VM和所述第二VM分配的VLAN ID發(fā)送給所述vSwitch。
可選的,所述控制器執(zhí)行上述步驟時,具體包括:
所述控制器生成VLAN配置信息,所述VLAN配置信息中包含為所述第一VM和所述第二VM分配的VLAN ID的信息;
所述控制器將所述VLAN配置信息發(fā)送至所述OpenStack平臺;所述OpenStack平臺將所述VLAN配置信息下發(fā)至所述第一VM和所述第二VM連接的所述vSwitch,使所述vSwitch可以根據(jù)所述VLAN配置信息,分別對所述第一VM和所述第二VM對應(yīng)的VLAN ID進行配置,即將第一VLAN ID配置給所述第一VM,將第二VLAN ID配置給所述第二VM。
可選的,在所述vSwitch對所述第一VM和所述第二VM對應(yīng)VLAN ID進行配置后,所述NVE設(shè)備中存儲所述第一VxLAN ID和第一接入信息的對應(yīng)關(guān)系,以及存儲所述第二VxLAN ID和第二接入信息的對應(yīng)關(guān)系,其中,所述第一接入信息包括:所述接入接口的接口信息和所述第一VLAN ID;所述第二接入信息包括:所述接入接口的接口信息和所述第二VLAN ID。
所述NVE設(shè)備維護有所述第一VxLAN ID和所述第一接入信息的對應(yīng)關(guān)系,這樣,在所述NVE設(shè)備中存在需要向所述第一VM發(fā)送的下行報文時,所述下行報文中包含所述第一VxLAN ID,所述NVE設(shè)備可以根據(jù)所述第一 VxLAN ID和所述第一接入信息的對應(yīng)關(guān)系,確定所述第一接入信息,從而所述NVE設(shè)備可以通過所述接入接口和所述第一VLAN ID,將所述下行報文傳輸給所述第一VM。
同理,所述NVE設(shè)備中維護有所述第二VxLAN ID和第二接入信息的對應(yīng)關(guān)系,保證所述NVE設(shè)備可以通過所述接入接口和所述第二VLAN ID,將下行報文傳輸給所述第二VM。
綜上所述,所述NVE設(shè)備保存所述第一VxLAN ID和所述第一接入信息的對應(yīng)關(guān)系,以及所述第二VxLAN ID和第二接入信息的對應(yīng)關(guān)系,可以保證所述NVE可以將待發(fā)送給所述第一VM和所述第二VM的下行報文能夠準(zhǔn)確的傳輸至對應(yīng)的目標(biāo)VM,保證數(shù)據(jù)傳輸?shù)臏?zhǔn)確性。
采用本申請上述實施例中的網(wǎng)絡(luò)中VLAN ID分配的方法,所述控制器可以保證接入同一NVE設(shè)備的同一接入接口的多個VM中,屬于相同租戶的VM分配的VLAN ID相同,而屬于不同租戶的VM分配的VLAN ID不同,避免出現(xiàn)VLAN ID沖突的問題,提高了分配VLAN ID的準(zhǔn)確性,最終實現(xiàn)租戶網(wǎng)絡(luò)隔離。
基于以上實施例,本申請還提供了一種網(wǎng)絡(luò)中VLAN ID分配的控制器,該控制器應(yīng)用于如1所示的Neutron網(wǎng)絡(luò)中,可以實現(xiàn)如圖2所示的網(wǎng)絡(luò)中VLAN ID分配的方法。其中,所述Neutron網(wǎng)絡(luò)包括所述控制器和NVE設(shè)備,第一VM和第二VM通過所述NVE設(shè)備連接網(wǎng)絡(luò),所述NVE設(shè)備為網(wǎng)絡(luò)邊緣設(shè)備,所述控制器對所述NVE設(shè)備進行控制管理,所述NVE設(shè)備通過同一接入接口與所述第一VM和所述第二VM連接。參閱圖3所示,在該控制器300中包括:獲取單元301和處理單元302,其中,
獲取單元301,用于獲得所述第一VM的第一虛擬擴展局域網(wǎng)標(biāo)識VxLAN ID和所述第二VM的第二VxLAN ID;
處理單元302,用于當(dāng)所述第一VxLAN ID和所述第二VxLAN ID相同時,確定所述第一VM和所述第二VM屬于同一個租戶,并為所述第一VM和所 述第二VM分配相同的VLAN ID;以及
當(dāng)所述第一VxLAN ID和所述第二VxLAN ID不同時,確定所述第一VM和所述第二VM屬于不同的租戶,并為所述第一VM和所述第二VM分配不同的VLAN ID。
可選的,所述第一VM和所述第二VM通過vSwitch連接所述NVE設(shè)備。
可選的,所述控制器300還包括:
發(fā)送單元,用于將為所述第一VM和所述第二VM分配的VLAN ID發(fā)送給所述vSwitch。
可選的,所述獲取單元301獲得所述第一VM的第一VxLAN ID和所述第二VM的第二VxLAN ID,包括:
所述獲取單元301從OpenStack平臺獲得所述第一VxLAN ID和所述第二VxLAN ID。
可選的,所述控制器300還包括:
存儲單元,用于存儲針對所述接入接口的VxLAN ID和VLAN ID的對應(yīng)關(guān)系;
所述處理單元302,在為所述第一VM分配VLAN ID時,具體用于:
根據(jù)所述VxLAN ID和VLAN ID的對應(yīng)關(guān)系,確定所述第一VxLAN ID對應(yīng)的第一VLAN ID;并將所述第一VLAN ID分配給所述第一VM;
所述處理單元302,在為所述第二VM分配VLAN ID時,具體用于:
根據(jù)所述VxLAN ID和VLAN ID的對應(yīng)關(guān)系,確定所述第二VxLAN ID對應(yīng)的第二VLAN ID;并將所述第二VLAN ID分配給所述第二VM。
采用本申請實施例提供的控制器,可以保證在接入同一NVE設(shè)備的同一接入接口的多個VM中,為屬于相同租戶的VM分配相同的VLAN ID,為屬于不同租戶的VM分配不同的VLAN ID,避免出現(xiàn)VLAN ID沖突的問題,提高了分配VLAN ID的準(zhǔn)確性,最終實現(xiàn)租戶網(wǎng)絡(luò)隔離。
需要說明的是,本申請實施例中對單元的劃分是示意性的,僅僅為一種邏 輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式。在本申請的實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。
所述集成的單元如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中。基于這樣的理解,本申請的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)或處理器(processor)執(zhí)行本申請各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
基于以上實施例,本申請實施例還提供了一種網(wǎng)絡(luò)中VLAN ID分配的控制器,所述控制器應(yīng)用于如1所示的Neutron網(wǎng)絡(luò)中,可以實現(xiàn)如圖2所示的網(wǎng)絡(luò)中VLAN ID分配的方法。其中,所述Neutron網(wǎng)絡(luò)還包括NVE設(shè)備,第一VM和第二VM通過所述NVE設(shè)備連接網(wǎng)絡(luò),所述NVE設(shè)備為網(wǎng)絡(luò)邊緣設(shè)備,所述控制器對所述NVE設(shè)備進行控制管理,所述NVE設(shè)備通過同一接入接口與所述第一VM和所述第二VM連接。參閱圖4所示,所述控制器400包括:收發(fā)器401、處理器402、總線403以及存儲器404,其中,
所述收發(fā)器401、所述處理器402以及所述存儲器404通過所述總線403相互連接;所述總線403可以是外設(shè)部件互連標(biāo)準(zhǔn)(peripheral component interconnect,簡稱PCI)總線或擴展工業(yè)標(biāo)準(zhǔn)結(jié)構(gòu)(extended industry standard architecture,簡稱EISA)總線等。所述總線可以分為地址總線、數(shù)據(jù)總線、控制總線等。為便于表示,圖4中僅用一條粗線表示,但并不表示僅有一根總線或一種類型的總線。
所述收發(fā)器401,用于與所述Neutron網(wǎng)絡(luò)網(wǎng)絡(luò)中的與所述控制器相連的其他設(shè)備進行通信交互。
所述處理器402,用于實現(xiàn)如圖2所示的網(wǎng)絡(luò)中VLAN ID分配的方法,包括:
獲得所述第一VM的第一虛擬擴展局域網(wǎng)標(biāo)識VxLAN ID和所述第二VM的第二VxLAN ID;
當(dāng)所述第一VxLAN ID和所述第二VxLAN ID相同時,確定所述第一VM和所述第二VM屬于同一個租戶,為所述第一VM和所述第二VM分配相同的VLAN ID;
當(dāng)所述第一VxLAN ID和所述第二VxLAN ID不同時,確定所述第一VM和所述第二VM屬于不同的租戶,為所述第一VM和所述第二VM分配不同的VLAN ID。
可選的,所述第一VM和所述第二VM通過vSwitch連接所述NVE設(shè)備。
可選的,所述處理器402還用于:
將為所述第一VM和所述第二VM分配的VLAN ID發(fā)送給所述vSwitch。
可選的,所述處理器402,在獲得所述第一VM的所述第一VxLAN ID和所述第二VM的所述第二VxLAN ID時,具體用于:
從OpenStack平臺獲得所述第一VxLAN ID和所述第二VxLAN ID。
可選的,所述控制器400存儲針對所述接入接口的VxLAN ID和VLAN ID的對應(yīng)關(guān)系;
所述處理器402在為所述第一VM分配VLAN ID時,具體用于:
根據(jù)所述VxLAN ID和VLAN ID的對應(yīng)關(guān)系,確定所述第一VxLAN ID對應(yīng)的第一VLAN ID;并將所述第一VLAN ID分配給所述第一VM;
所述處理器402在為所述第二VM分配VLAN ID時,具體用于:
根據(jù)所述VxLAN ID和VLAN ID的對應(yīng)關(guān)系,確定所述第二VxLAN ID對應(yīng)的第二VLAN ID;并將所述第二VLAN ID分配給所述第二VM。
所述存儲器404,用于存放程序、針對所述接入接口的VxLAN ID和VLAN ID的對應(yīng)關(guān)系等。具體地,程序可以包括程序代碼,該程序代碼包括計算機操作指令。存儲器404可能包含隨機存取存儲器(random access memory,簡稱RAM),也可能還包括非易失性存儲器(non-volatile memory),例如至少一個磁盤存儲器。所述處理器402執(zhí)行所述存儲器404所存放的應(yīng)用程序,實現(xiàn)上述功能,從而實現(xiàn)如圖2所示的網(wǎng)絡(luò)中VLAN ID分配的方法。
采用本申請實施例提供的控制器,可以保證在接入同一NVE設(shè)備的同一接入接口的多個VM中,為屬于相同租戶的VM分配相同的VLAN ID,為屬于不同租戶的VM分配不同的VLAN ID,避免出現(xiàn)VLAN ID沖突的問題,提高了分配VLAN ID的準(zhǔn)確性,最終實現(xiàn)租戶網(wǎng)絡(luò)隔離。
本申請實施例提供了一種網(wǎng)絡(luò)中VLAN ID分配的方法及控制器,適用于包含NVE設(shè)備和控制器的網(wǎng)絡(luò)中,其中,所述NVE設(shè)備通過同一接入接口與第一VM和第二VM連接,在該方法中,當(dāng)所述控制器確定所述第一VM和所述第二VM屬于同一租戶時,所述控制器為所述第一VM和所述第二VM分配相同的VLAN ID;當(dāng)所述控制器確定所述第一VM和所述第二VM屬于不同的租戶時,所述控制器為所述第一VM和所述第二VM分配不同的VLAN ID。上述方法可以保證接入同一NVE設(shè)備的同一接入接口的多個VM中,屬于相同租戶的VM分配的VLAN ID相同,而屬于不同租戶的VM分配的VLAN ID不同,避免出現(xiàn)VLAN ID沖突的問題,提高了分配VLAN ID的準(zhǔn)確性,最終實現(xiàn)租戶網(wǎng)絡(luò)隔離。
盡管已描述了本申請的優(yōu)選實施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例做出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實施例以及落入本申請范圍的所有變更和修改。
顯然,本領(lǐng)域的技術(shù)人員可以對本申請實施例進行各種改動和變型而不脫離本申請實施例的精神和范圍。這樣,倘若本申請實施例的這些修改和變型屬于本申請權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本申請也意圖包含這些改動和變型在內(nèi)。