本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種報文轉(zhuǎn)發(fā)的透明配置方法。
背景技術(shù):
在現(xiàn)有技術(shù)中,通常通過軟件或者硬件方法創(chuàng)建一個VTEP(VxLAN Tunneling End Point)作為接入點,將物理機或者虛擬機接入數(shù)據(jù)中心。接入點將物理機發(fā)出的報文外層封裝VxLAN的包頭(Header),然后將封裝后的報文送入數(shù)據(jù)中心,數(shù)據(jù)中心根據(jù)VxLAN報頭進(jìn)行轉(zhuǎn)發(fā)和路由,送達(dá)數(shù)據(jù)中心內(nèi)部的VTEP接入點,內(nèi)部接入點解除物理機報文的VxLAN封裝,將報文送達(dá)數(shù)據(jù)中心的虛擬機(Virtual machine,VM)或者虛擬路由(router),從而實現(xiàn)物理機(Physical machine,PM)接入數(shù)據(jù)中心的虛擬網(wǎng)絡(luò)中的虛擬機/虛擬路由器等設(shè)備通信。
在圖1中,VTEP10與VTEP20分別接入VxLAN隧道5。當(dāng)數(shù)據(jù)報文從物理機PM_1轉(zhuǎn)發(fā)至虛擬機VM_1時。需要使用轉(zhuǎn)發(fā)表“Vlan<->Vxlan mapping”(以下簡稱“表A”),以及轉(zhuǎn)發(fā)表“VTEP L2Table”(以下簡稱“表B”)。在表A中,記載VLAN與VxLAN的映射關(guān)系;在表B中,記載有多條由MAC、VxLAN ID及Remote VTEP組成的記錄。因此,在現(xiàn)有技術(shù)中,數(shù)據(jù)報文經(jīng)過端口配置以完成收發(fā)的過程中存在的缺陷主要包括:首先,VLAN ID(VIN)存在上限的瓶頸,最大只有4096個,因此在接入數(shù)量更多的物理機時,就無法為每個物理機實現(xiàn)分配VLAN ID;其次,物理機需要執(zhí)行VLAN ID識別、封裝和解封裝操作,從而導(dǎo)致服務(wù)器的CPU資源開銷過大;最后,現(xiàn)有技術(shù)中,報文在轉(zhuǎn)發(fā)過程中需要對轉(zhuǎn)發(fā)設(shè)備及交換機端口上進(jìn)行VLAN配置才能保證VLAN數(shù)據(jù)包能夠被在內(nèi)外網(wǎng)之間進(jìn)行轉(zhuǎn)發(fā),這在一定程度上也存在操作繁瑣,端口配置不透明的缺陷。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于公開一種報文轉(zhuǎn)發(fā)的透明配置方法,用于突破VLAN ID區(qū)分租戶和網(wǎng)絡(luò)的數(shù)量瓶頸,降低服務(wù)器CPU的計算開銷。
為實現(xiàn)上述目的,本發(fā)明提供了一種報文轉(zhuǎn)發(fā)的透明配置方法,計算執(zhí)行機構(gòu)通過VTEP接入VxLAN隧道,SDN控制器全局維護(hù)用于標(biāo)記計算執(zhí)行機構(gòu)的信息表,所述信息表中包含若干條至少由MAC,IP,PORT及VxLAN ID所組成的記錄,SDN控制器將所述信息表下發(fā)和/或更新至VTEP,VTEP查詢信息表以對計算執(zhí)行機構(gòu)經(jīng)由VxLAN隧道轉(zhuǎn)發(fā)的數(shù)據(jù)報文進(jìn)行封裝及解封裝操作。
作為本發(fā)明的進(jìn)一步改進(jìn),所述記錄由MAC,IP,PORT,VxLAN ID以及下述任意一種或者多種參數(shù)組成:租戶信息,網(wǎng)絡(luò)信息及VTEP Locator。
作為本發(fā)明的進(jìn)一步改進(jìn),該方法還包括根據(jù)租戶信息、網(wǎng)絡(luò)信息或者VTEP Locator對接入VxLAN隧道的VTEP的身份進(jìn)行查詢及隔離。
作為本發(fā)明的進(jìn)一步改進(jìn),所述SDN控制器通過資源統(tǒng)一接口將所述信息表下發(fā)和/或更新至VTEP。
作為本發(fā)明的進(jìn)一步改進(jìn),所述資源統(tǒng)一接口包括:restful接口或者NETCONF接口。
作為本發(fā)明的進(jìn)一步改進(jìn),所述SDN控制器通過TCP消息或者h(yuǎn)ttp消息將所述信息表下發(fā)和/或更新至VTEP。
作為本發(fā)明的進(jìn)一步改進(jìn),所述計算執(zhí)行機構(gòu)包括虛擬機、物理機、計算節(jié)點、集群服務(wù)器或者內(nèi)部通過虛擬化技術(shù)所開啟并通過虛擬交換機關(guān)聯(lián)多個虛擬機的物理機。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:在本發(fā)明中,通過SDN控制器全局維護(hù)用于標(biāo)記計算執(zhí)行機構(gòu)的信息表,實現(xiàn)了報文經(jīng)由VxLAN隧道進(jìn)行轉(zhuǎn)發(fā)時,不需要將報文先打上VLAN標(biāo)簽,避免使用VLAN ID識別租戶和網(wǎng)絡(luò),突破了傳統(tǒng)的VLAN ID的限制;同時,由于不需要物理服務(wù)器對VLAN執(zhí)行封裝與解封裝操作,從而降低了服務(wù)器CPU的計算開銷,實現(xiàn)了數(shù)據(jù)中心的高可用性。
附圖說明
圖1現(xiàn)有技術(shù)中物理機與虛擬機通過VTEP接入VxLAN隧道時的組網(wǎng)圖;
圖2為應(yīng)用本發(fā)明一種報文轉(zhuǎn)發(fā)的透明配置方法的一種組網(wǎng)圖;
圖3為SDN控制器將信息表下發(fā)和/或更新至VTEP的示意圖;
圖4為應(yīng)用本發(fā)明一種報文轉(zhuǎn)發(fā)的透明配置方法的另一種組網(wǎng)圖;
具體實施方式
下面結(jié)合附圖所示的各實施方式對本發(fā)明進(jìn)行詳細(xì)說明,但應(yīng)當(dāng)說明的是,這些實施方式并非對本發(fā)明的限制,本領(lǐng)域普通技術(shù)人員根據(jù)這些實施方式所作的功能、方法、或者結(jié)構(gòu)上的等效變換或替代,均屬于本發(fā)明的保護(hù)范圍之內(nèi)。
本說明書中所公開的一個或者多個實施例所揭示的方法、裝置、系統(tǒng)或者應(yīng)用均可以單獨或者組合的方式展現(xiàn)。所述模塊或者單元的劃分,僅僅是計算機內(nèi)部的一種邏輯功能的劃分,實際上也可為其他的劃分方式,例如多個單元或者模塊或者組件可以結(jié)合或者集成或者固化到另一個計算機系統(tǒng)或者計算機裝置中。技術(shù)名詞“數(shù)據(jù)報文”與技術(shù)名稱“報文”在本文中具有等同含義。技術(shù)名詞“數(shù)據(jù)包”是“數(shù)據(jù)報文”或者“報文”在轉(zhuǎn)發(fā)或者通信過程中所形成的采取封裝標(biāo)準(zhǔn)的數(shù)據(jù)。
SDN(Software Defined Networking,軟件定義網(wǎng)絡(luò))是一種基于軟件的網(wǎng)絡(luò)架構(gòu)及技術(shù),其核心技術(shù)為OpenFlow技術(shù),SDN的技術(shù)核心是通過控制器(controller)及OpenFlow交換機(switcher)將網(wǎng)絡(luò)設(shè)備控制面與數(shù)據(jù)面分開,從而實現(xiàn)對網(wǎng)絡(luò)流量的靈活控制。為了區(qū)分?jǐn)?shù)據(jù)中心內(nèi)的租戶和網(wǎng)絡(luò),物理機在發(fā)送報文的時候需要將報文先打上VLAN標(biāo)簽(Tag),使用VLAN標(biāo)簽來標(biāo)識租戶和網(wǎng)絡(luò)并實現(xiàn)隔離,在VTEP上存放有VLAN和VxLAN的對應(yīng)關(guān)系表,接入點根據(jù)對應(yīng)關(guān)系表將VLAN的包頭剝離再做VxLAN報頭封裝轉(zhuǎn)發(fā)如圖2所示。兩個接入點之間通過交換機(switcher)或者路由器(router)通過VxLAN隧道作數(shù)據(jù)報文的轉(zhuǎn)發(fā)。
本實施方式公開了一種報文轉(zhuǎn)發(fā)的透明配置方法,計算執(zhí)行機構(gòu)通過VTEP接入VxLAN隧道5,SDN控制器30全局維護(hù)用于標(biāo)記計算執(zhí)行機構(gòu)的信息表40,所述信息表40中包含若干條至少由MAC,IP,PORT及VxLAN ID所組成的記錄,SDN控制器30將所述信息表40下發(fā)和/或更新至VTEP,VTEP查詢信息表40a及信息表40b對計算執(zhí)行機構(gòu)經(jīng)由VxLAN隧道5轉(zhuǎn)發(fā)的數(shù)據(jù)報文進(jìn)行封裝及解封裝操作。
具體的,該計算執(zhí)行機構(gòu)包括虛擬機、物理機、計算節(jié)點、集群服務(wù)器或者內(nèi)部通過虛擬化技術(shù)所開啟并通過虛擬交換機關(guān)聯(lián)多個虛擬機的物理機,在本實施例中,分別示出了將虛擬機、物理機、內(nèi)部通過虛擬化技術(shù)所開啟并通過虛擬交換機關(guān)聯(lián)多個虛擬機的物理機分別接入VxLAN隧道5的工程實例。
具體的,在圖2所示,虛擬機VM_1至虛擬機VM_n均通過第一VTEP10接入VxLAN隧道5,物理機PM_1至物理機PM_n均通過第二VTEP20接入VxLAN隧道5,VxLAN隧道5形成計算執(zhí)行機構(gòu)發(fā)送或者接收的數(shù)據(jù)報文的轉(zhuǎn)發(fā)通道。SDN控制器30內(nèi)部運行有用于標(biāo)記計算執(zhí)行機構(gòu)的信息表40信息表40,并通過SDN控制器30將信息表40下發(fā)或者更新至第一VTEP10與第二VTEP20中。
該信息表40中形成有多條用于表征數(shù)據(jù)報文邏輯地址和/或物理地址屬性的記錄,以通過該記錄確定發(fā)出或者接受的數(shù)據(jù)報文是屬于本地(Local)還是遠(yuǎn)端(Remote),從而用于數(shù)據(jù)報文在轉(zhuǎn)發(fā)過程中對VxLAN報文執(zhí)行封裝與解封裝的操作,以通過VxLAN隧道在本地與對端進(jìn)行轉(zhuǎn)發(fā)。
最優(yōu)選的,信息表40中所包含的每一條記錄可由MAC,IP,PORT,VxLAN ID,租戶信息(即Tenant(UUID)),網(wǎng)絡(luò)信息(即Network(UUID))及VTEP Locator組成。記錄的邏輯結(jié)構(gòu)如下表一所示。
表一
當(dāng)然,信息表40中的每一條記錄可經(jīng)由MAC,IP,PORT,VxLAN ID,租戶信息(即Tenant(UUID))及網(wǎng)絡(luò)信息(即Network(UUID))組成。記錄的邏輯結(jié)構(gòu)如下表二所示。
表二
此外,信息表40中所包含的每一條記錄可僅由MAC,IP,PORT,VxLAN ID組成。
具體的,參圖2至圖4所示,當(dāng)VxLAN隧道終端(VTEP)收到本地物理機(Physical Machine)或者虛擬機(Virtual Machine)發(fā)送的數(shù)據(jù)包,首先去查詢本地MAC、IP、Port、Tenant、Network、VxLAN ID、VTEP Locator之間具有對應(yīng)關(guān)系的信息表40a。
根據(jù)遠(yuǎn)端MAC、IP、Port、VTEP locator查詢確認(rèn)發(fā)出的數(shù)據(jù)包是發(fā)送到本地VTEP還是遠(yuǎn)端VTEP,并根據(jù)本地MAC、IP、Port信息確認(rèn)該數(shù)據(jù)包來自指定租戶的具體網(wǎng)絡(luò)。然后,根據(jù)查詢到的信息得到VxLANID(VNI)以及VTEP locator的IP地址。得到上述信息后,封裝VxLAN報頭,將封裝后的數(shù)據(jù)報文進(jìn)行轉(zhuǎn)發(fā)。
在本實施例中,對數(shù)據(jù)報文進(jìn)行封裝與接封裝基于現(xiàn)有技術(shù),并在本申請文件中作簡要闡述。
VxLAN(Virtual Extensible LAN)虛擬可擴展局域網(wǎng),是一種overlay網(wǎng)絡(luò)技術(shù),將原始二層以太網(wǎng)報文進(jìn)行UDP封裝(MAC-in-UDP),外層增加8字節(jié)VxLAN頭部,8字節(jié)UDP頭部,20字節(jié)IP頭部和14字節(jié)以太網(wǎng)頭部。VxLAN使用VTEP對VxLAN報文進(jìn)行封裝與解封裝,VTEP將原始以太網(wǎng)幀通過VxLAN封裝后發(fā)送至對端的VTEP,對端VTEP接收到VxLAN報文后解封裝然后,根據(jù)原始MAC進(jìn)行轉(zhuǎn)發(fā),VTEP可以是物理交換機、物理服務(wù)器或者其他支持VxLAN的硬件設(shè)備或軟件來實現(xiàn)。
本實施例中,第一VTEP10與第二VTEP20在數(shù)據(jù)報文轉(zhuǎn)發(fā)過程中的具體工作方式及流程如下所示。
當(dāng)租戶創(chuàng)建一個計算執(zhí)行機構(gòu)時,例如,租戶創(chuàng)建虛擬機VM_1,并將虛擬機VM_1接入第一VTEP10。Orchestrator編排協(xié)調(diào)器(位于控制層)會將虛擬機VM_1的相關(guān)屬性作為一條記錄發(fā)送到SDN控制器30中,并保存入如表一所示信息表40中。該記錄由虛擬機VM_1的MAC,IP,PORT以及租戶信息、網(wǎng)絡(luò)信息和VxLAN ID(即VNI)等信息所組成。
如圖3所示,例如,該虛擬機VM_1的MAC地址是11:11:11:11:11:11,IP是192.168.1.1,連接到第一VTEP10的第三端口(PORT3)。該虛擬機VM_1屬于租戶的A網(wǎng)絡(luò)所對應(yīng)的VxLAN ID是1001,第一VTEP10的VTEP Locator為1.1.1.1。所有上述屬性所構(gòu)成的記錄會分別保存至第一VTEP10和第二VTEP20中,通過SDN控制器30通過資源統(tǒng)一接口將信息表40通過下發(fā)至第一VTEP10和第二VTEP20中,以在第一VTEP10中形成信息表40a,在第二VTEP20中形成信息表40b,信息表40a與信息表40b具有相同屬性。
當(dāng)租戶遠(yuǎn)程創(chuàng)建新的虛擬機或者管理員在后臺接入新的物理機時,SDN控制器30會將向信息表40中添加新的計算執(zhí)行機構(gòu)的記錄,并對第一VTEP10中所保存的信息表40a及第二VTEP20中所保存的信息表40b進(jìn)行更新,以利于下一次數(shù)據(jù)報文的轉(zhuǎn)發(fā)操作。
具體的,該資源統(tǒng)一接口包括:restful接口或者NETCONF接口,并更優(yōu)選為restful接口。另外,該SDN控制器30也可通過TCP消息或者h(yuǎn)ttp消息將所述信息表40下發(fā)和/或更新至第一VTEP10及第二VTEP20中。
當(dāng)虛擬機VM_1通過VxLAN隧道5發(fā)送一個數(shù)據(jù)報文到遠(yuǎn)端的計算執(zhí)行機構(gòu)(例如物理機PM_1)的時候,待轉(zhuǎn)發(fā)的數(shù)據(jù)報文會先到達(dá)第一VTEP10。第一VTEP10根據(jù)虛擬機VM_1需要轉(zhuǎn)發(fā)的數(shù)據(jù)報文所攜帶虛擬機VM_1本身的MAC,IP,Port(端口號)等屬性去查詢信息表40a。
例如,該數(shù)據(jù)報文的本地MAC地址是11:11:11:11:11:11,本地的IP地址是192.168.1.1,所屬于的第一VTEP10的端口號(PORT)是3,通過查詢信息表40a,該第一VTEP10可以確定這個數(shù)據(jù)報文需要添加的外層VNI(VxLAN ID)是1001,根據(jù)發(fā)送數(shù)據(jù)報文中的對端MAC,IP和前面查詢到的VNI,例如某個數(shù)據(jù)報文的所指向的對端的計算執(zhí)行機構(gòu)(例如物理機PM_1)MAC是55:55:55:55:55:55,IP是192.168.1.3,外層VNI是信息表40a所保存的參數(shù)1001。通過查詢第二VTEP20中由SDN控制器30所下發(fā)/更新的信息表40b,就可以確定該數(shù)據(jù)報文所需要添加的外層VXLAN的目的IP。
由此,第二VTEP20就獲得了整個數(shù)據(jù)報文在進(jìn)入VxLAN隧道5時所需要添加的所有信息。此時,第二VTEP20會將虛擬機VM_1所發(fā)送的數(shù)據(jù)報文的外層添加得到的VxLAN信息,然后將封裝后的數(shù)據(jù)報文通過VxLAN隧道5轉(zhuǎn)發(fā)至位于對端的物理機PM_1中。對端的物理機PM_1接收到封裝后的數(shù)據(jù)報文后,通過信息表40b對由虛擬機VM_1轉(zhuǎn)發(fā)的數(shù)據(jù)報文進(jìn)行解封裝,從而通過第二VTEP20將解封裝后的數(shù)據(jù)報文發(fā)送至指定的對端(即物理機PM_1中),從而完成虛擬機VM_1向物理機PM_1進(jìn)行數(shù)據(jù)報文的轉(zhuǎn)發(fā)操作。
當(dāng)物理機PM_1向虛擬機VM_1逆向轉(zhuǎn)發(fā)數(shù)據(jù)報文時,可參上述步驟,并將物理機PM_1定義為本端(或者本地、源),將虛擬機VM_1定義為對端(或者目的地)。
當(dāng)?shù)谝籚TEP10或者第二VTEP20收到位于遠(yuǎn)端的物理機或者虛擬機發(fā)送的數(shù)據(jù)報文,首先查詢外層VxLAN包頭的MAC、IP信息,如果與本地VTEP locator對應(yīng),第一VTEP10或者第二VTEP20首先會將外層封裝的VxLAN報文去除,并且查詢本地的信息表(即信息表40a或者信息表40b),將VxLAN ID(VNI)對應(yīng)的PORT列出。然后,根據(jù)去掉VxLAN頭后數(shù)據(jù)報文所指向的位于對端的計算執(zhí)行機構(gòu)的MAC、IP、Port確認(rèn)將數(shù)據(jù)報文送到位于對端的指定端口(PORT)的計算執(zhí)行機構(gòu)(例如虛擬機)上。由此,完成物理機和數(shù)據(jù)中心虛擬網(wǎng)絡(luò)中的虛擬設(shè)備(如虛擬機、物理機或者內(nèi)部通過虛擬化技術(shù)(例如Hyper-V虛擬化技術(shù))所開啟,并通過虛擬交換機501關(guān)聯(lián)多個虛擬機的物理機)之間的相互通信。
需要說明的是,在本實施例中在虛擬機VM_1與物理機PM_1之間建立通信過程中,信息表40、信息表40a及信息表40b中的每一條記錄由MAC、IP、Port、Tenant、Network、VxLAN ID、VTEP Locator組成。進(jìn)一步的,為了進(jìn)一步降低第一VTEP10與第二VTEP20在對數(shù)據(jù)報文的轉(zhuǎn)發(fā)過程中配置的透明性,也可將信息表40、信息表40a及信息表40b中的每一條記錄僅由MAC、IP、Port及VxLAN ID組成。
參圖4所示,圖4示出了應(yīng)用本發(fā)明一種報文轉(zhuǎn)發(fā)的透明配置方法的另一種組網(wǎng)圖。在此工程實例中,接入第一VTEP10的計算執(zhí)行機構(gòu)被配置為一臺物理機PM50,且該物理機PM50包含了n個虛擬機,即虛擬機VM_1~VM_n,虛擬機VM_1~VM_n通過虛擬機交換機501相互通信,并位于同一個網(wǎng)段內(nèi)。物理機PM50與物理機PM_a接入第一VTEP10中,物理機PM_1至物理機PM_n接入第二VTEP20中。數(shù)據(jù)報文在VxLAN隧道5中進(jìn)行轉(zhuǎn)發(fā)的具體過程參上文所述,并實現(xiàn)了物理機PM50中的任意一臺虛擬機與接入第二VTEP20的任意一臺物理機(即物理機PM_1至物理機PM_n)進(jìn)行數(shù)據(jù)報文的轉(zhuǎn)發(fā)操作。
在本說明書中,僅示出在VxLAN隧道5中接入兩個VTEP,本領(lǐng)域技術(shù)人員可以合理預(yù)測到,還可在上述VxLAN隧道5接入數(shù)量更多的VTEP,且數(shù)據(jù)報文在多個VTEP中進(jìn)行數(shù)據(jù)報文的轉(zhuǎn)發(fā)機制具有相同原理,在此不再贅述。
本說明書中的所述集成的單元如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)或處理器(processor)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)磁碟、非易失性存儲器裝置(NVM)或者光盤等各種可以存儲程序代碼的介質(zhì)。
上文所列出的一系列的詳細(xì)說明僅僅是針對本發(fā)明的可行性實施方式的具體說明,它們并非用以限制本發(fā)明的保護(hù)范圍,凡未脫離本發(fā)明技藝精神所作的等效實施方式或變更均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
對于本領(lǐng)域技術(shù)人員而言,顯然本發(fā)明不限于上述示范性實施例的細(xì)節(jié),而且在不背離本發(fā)明的精神或基本特征的情況下,能夠以其他的具體形式實現(xiàn)本發(fā)明。因此,無論從哪一點來看,均應(yīng)將實施例看作是示范性的,而且是非限制性的,本發(fā)明的范圍由所附權(quán)利要求而不是上述說明限定,因此旨在將落在權(quán)利要求的等同要件的含義和范圍內(nèi)的所有變化囊括在本發(fā)明內(nèi)。不應(yīng)將權(quán)利要求中的任何附圖標(biāo)記視為限制所涉及的權(quán)利要求。
此外,應(yīng)當(dāng)理解,雖然本說明書按照實施方式加以描述,但并非每個實施方式僅包含一個獨立的技術(shù)方案,說明書的這種敘述方式僅僅是為清楚起見,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)將說明書作為一個整體,各實施例中的技術(shù)方案也可以經(jīng)適當(dāng)組合,形成本領(lǐng)域技術(shù)人員可以理解的其他實施方式。