新四季網

雲間通信方法及相關設備、雲間通信配置方法及相關設備與流程

2023-06-07 05:30:36


本申請涉及雲間通信技術領域,更具體地,涉及雲間通信方法及相關設備、雲間通信的配置方法及相關設備。



背景技術:

租戶可以向雲服務提供商,請求創建雲平臺。雲服務提供商使用大量通用伺服器組成資源池,為租戶提供包括計算、存儲及網絡等一體化的雲平臺。租戶並不需要關注云平臺的實現細節,只需提出需求,如平臺包括什麼規格的計算、什麼容量的存儲、以及計算與存儲資源之間如何通過網絡互連,雲服務提供商的雲管理系統便可以根據需求,生成相應的雲平臺並提供給租戶。

為了保證雲平臺的安全性及穩定性,雲平臺通常被部署在多個雲上。這樣,當某個雲由於不可抗拒的因素不可提供服務時,可以使用其他雲上的計算及存儲資源,從而避免雲平臺出現故障不可用的情況。

雲平臺跨雲部署,因此,需要一種技術方案來實現多雲之間的通信。



技術實現要素:

本申請提出一種雲間通信的方法,用於實現部署在不同雲內的虛擬機之間的通信。

為實現以上發明目的,本申請提供的技術方案如下:

第一方面,本申請實施例提供了一種雲間通信方法,用於將第一虛擬機的數據包發送至第二虛擬機,所述第一虛擬機與所述第二虛擬機處於不同雲中,且所述第一虛擬機與第一虛擬交換機部署在第一計算節點上,所述第二虛擬機與第二虛擬交換機部署在第二計算節點上;該方法包括:所述第一虛擬交換機接收到第一虛擬機的數據包後,確定所述數據包的第一跳節點為所述第二虛擬機所在的雲內的網關節點;所述第一虛擬交換機通過所述第一計算節點與所述網關節點之間的隧道,將所述數據包發送至所述網關節點;所述網關節點接收到所述數據包後,確定所述數據包的第二跳節點為所述第二計算節點;所述網關節點通過自身與所述第二計算節點之間的隧道,將所述數據包發送至所述第二計算節點;所述第二計算節點上部署的所述第二虛擬交換機將所述數據包發送至所述第二虛擬機。在本實施例中,雲間通信的數據包只經過兩跳節點,分別為接收數據包的虛擬機所在雲內的網關節點及接收數據包的虛擬機所在的計算節點,本實施例通信路徑較短,通信效率更高。

在一個可能的設計中,所述第一虛擬交換機接收到第一虛擬機的數據包後,確定所述數據包的第一跳節點為所述第二虛擬機所在的雲內的網關節點,具體包括:所述第一虛擬交換機接收到第一虛擬機的數據包後,根據所述數據包的目的地址及預生成的第一轉發關係表,將所述目的地址對應的所述網關節點確定為第一跳節點;其中,所述第一轉發關係表用於表示第二虛擬機與所述第二虛擬機所在的雲內的網關節點之間的對應關係。本實現方式中,虛擬交換機使用轉發關係表來確定數據包的第一跳節點,確定方式簡單且易實現。

在一個可能的設計中,所述網關節點接收到所述數據包後,確定所述數據包的第二跳節點為所述第二計算節點,包括:所述網關節點接收到所述數據包後,根據所述數據包的目的地址及預生成的第二轉發關係表,將所述目的地址對應的所述第二計算節點確定為第二跳節點;其中,所述第二轉發關係表用於表示所述第二虛擬機與所述第二虛擬機所在的計算節點之間的對應關係。本實現方式中,網關節點同樣使用轉發關係表來確定數據包的第二跳節點,確定方式簡單且易實現。

在一個可能的設計中,所述第一計算節點與所述網關節點之間的隧道是在所述第一虛擬交換機接收到第一虛擬機的數據包後建立的。所述網關節點與所述第二計算節點之間的隧道是在所述網關節點接收到所述數據包後建立的。本實現方式中,隧道是在有業務需求時才建立的,可以節省隧道資源。

另一方面,本申請實施例提供了一種雲間通信的設置方法,包括:第一交換機代理模塊若監控到與第一虛擬交換機相連的第一虛擬機上線,則通知第一網絡控制器或所述網絡協調器將所述第一虛擬機的連通性信息發送至第一網關代理模塊;其中,所述連通性信息包含所述第一虛擬機的地址及所述第一虛擬機所在的計算節點的地址;所述第一網關代理模塊依據所述連通性信息,為第一網關節點配置轉發關係表;其中,所述第一虛擬機及所述第一網關節點部署在第一雲內;所述網絡協調器修改所述連通性信息,並將修改後的連通性信息發送至第二交換機代理模塊;其中,所述修改後的連通性信息包含所述第一虛擬機的地址及所述第一網關節點的地址;所述第二交換機代理模塊依據所述修改後的連通性信息,為第二虛擬交換機配置轉發關係表;其中,所述第二交換機代理模塊及所述第二虛擬交換機部署在第二雲內。本實施例可以為網關節點及虛擬交換機配置轉發關係表,使用轉發關係表可以實現將一個雲內的數據包通過兩跳節點發送至另一雲中。

在一個可能的設計中,在所述第一網關代理模塊依據所述連通性信息,為第一網關節點配置轉發關係表之後,還包括:所述第一網關節點建立與所述第一交換機代理模塊所在的計算節點之間的隧道。在所述第二交換機代理模塊依據所述修改後的連通性信息,為第二交換機配置轉發關係表之後,還包括:所述第二交換機代理模塊所在的計算節點建立與所述第一網關節點之間的隧道。在此實現方式中,隧道在業務數據發送之前建立,可以提高業務數據的發送效率。

在一個可能的設計中,所述網絡協調器將修改後的連通性信息發送至第二交換機代理模塊,包括:所述網絡協調器將修改後的連通性信息發送至第二網絡控制器;所述第二網絡控制器保存所述修改後的連通性信息,並將所述修改後的連通性信息發送至第二交換機代理模塊。本實現方式中,第二網絡控制器可以保存連通性信息,以在接收數據包的虛擬機所在的雲內新創建虛擬機後,交換機代理模塊讀取該連通性信息,並為虛擬交換機生成轉發關係表。

所述第二交換機代理模塊若監控到所述第二虛擬交換機連接第二虛擬機,且監測到所述第二虛擬交換機上並未配置有轉發關係表,則從所述第二網絡控制器讀取所述修改後的連通性信息,並依據所述修改後的連通性信息,為所述第二虛擬交換機配置轉發關係表。本實現方式中,接收數據包的虛擬機所在的雲內新創建虛擬機後,交換機代理模塊可以讀取該連通性信息,並為虛擬交換機生成轉發關係表。

在一個可能的設計中,在第一交換機代理模塊若監控到第一虛擬交換機連接第一虛擬機之後,還包括:所述第一交換機代理模塊從第一網絡控制器上讀取所述第一虛擬機所連接的虛擬埠的虛擬網絡信息,並根據所述虛擬網絡信息,生成流表記錄並下發給所述第一虛擬交換機。這樣,虛擬交換機可以使用流錶轉發數據包。

再一方面,本申請實施例提供了一種雲間通信系統,該系統具有實現上述雲間通信方法的功能。所述功能可以通過硬體實現,也可以通過硬體執行相應的軟體實現。所述硬體或軟體包括一個或多個與上述功能相對應的模塊。

再一方面,本申請實施例提供了一種雲間通信設置系統,該系統具有實現上述雲間通信設置方法的功能。所述功能可以通過硬體實現,也可以通過硬體執行相應的軟體實現。所述硬體或軟體包括一個或多個與上述功能相對應的模塊。

再一方面,本申請提供了一種計算節點,包括處理器和存儲器,其中,所述處理器通過運行存儲在所述存儲器內的軟體程序、調用存儲在所述存儲器內的數據,至少執行步驟:生成數據包後,確定所述數據包的下一跳節點為接收所述數據包的虛擬機所在的雲內的網關節點;通過所述計算節點與所述網關節點之間的隧道,將所述數據包發送至所述網關節點。

再一方面,本申請提供了一種網關節點,包括處理器和存儲器,其中,所述處理器通過運行存儲在所述存儲器內的軟體程序、調用存儲在所述存儲器內的數據,至少執行步驟:接收到數據包後,確定所述數據包的下一跳節點為接收所述數據包的虛擬機所在的計算節點;通過所述網關節點與所述計算節點之間的隧道,將所述數據包發送至所述計算節點。

附圖說明

為了更清楚地說明本申請實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請的實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據提供的附圖獲得其它的附圖。

圖1及圖2為現有的兩種雲間通信方法的流程圖;

圖3為本申請提供的用於VM1向VM3通信的系統結構圖;

圖4為本申請提供的VM1向VM3通信方法的流程圖;

圖5為本申請提供的用於VM3向VM1通信的系統結構圖;

圖6為本申請提供的雲間通信的配置系統的結構圖;

圖7為本申請提供的雲間通信的配置方法的流程圖;

圖8為本申請提供的計算機通用框架示意圖。

具體實施方式

為了便於理解,首先對本申請涉及的應用場景進行介紹。

雲服務提供商可以根據租戶的請求,構建相應的雲平臺。為了保證雲平臺的安全性及穩定性,雲平臺通常跨雲部署,這樣可以避免由於一個雲出現故障導致雲平臺整體不可用的情況。

具體來講,雲平臺中包含VM(Virtual Machine,虛擬機)及虛擬網絡。其中,VM作為計算及存儲等資源,可以提供計算及存儲等服務。VM被部署在多個雲上,並使用虛擬網絡進行跨雲的通信。

目前,實現多雲之間互通的方案主要有以下幾種。

第一種方案如圖1所示,雲1與雲2通過外網internet互通。當雲1上的VM1與雲2上的VM2通信時,VM1的數據包需要通過vRouter(Virtual Router,虛擬路由器)進入外網internet,通過外網internet到達雲2上的vRouter,再由vRouter到達VM3。

此種互通方案至少存在兩方面的問題。問題一是無法實現高可用性。因為此方案需要經過vRouter的轉發,為三層互通方式,然而高可用性要求通信雙方在同一個二層網絡中。問題二是通信成本較高。數據包需要經過外網internet的轉發,因此需要公網IP(Internet Protocol,網絡之間的互連協議)地址。然而,雲裡的VM為了節省成本,多採用私有地址,若申請帶寬收費較貴的公網IP位址,必然會提高通信成本。

第二種方案如圖2所示,雲1的計算節點Computer Node1與雲2的計算節點Computer Node2之間建立有隧道。當計算節點Computer Node1上的VM1與Computer Node2上的VM3通信時,VM1的數據包直接通過隧道到達VM3。

此種互通方案同樣至少存在兩方面的問題。問題一是需要建立的隧道過多。一個VM所在的計算節點需要跟所有通信的VM所在的通信節點建立隧道,例如,VM1還需要與VM5通信,VM5位於另一臺計算節點如Computer Node3上,則Computer Node1還需要與Computer Node3建立隧道。問題二是雲裡VM的位置發生變化,則其他雲需要感知位置的變化,並需要重新建立隧道。例如,VM1從計算節點Computer Node1遷移至計算節點Computer Node3,則需要建立Computer Node3與Computer Node1之間的隧道。

可見,現有的兩種雲間互通的方案存在成本及效率等方面的問題。對此,本申請提供了一種雲間通信方法,用以解決現有的雲間通信方案中存在的問題。

見圖3,其示出了本申請提供的雲間通信系統的結構示意。如圖3所示,該雲間通信系統用於實現雲1與雲2之間的通信,具體指的是雲1中的VM1與雲2中的VM3通信。需要說明的是,本申請中的雲1與雲2為兩個不同的雲。雲內部署有計算、存儲、網絡等資源,每個雲均有各自的雲管理系統,用於對自身雲內的資源進行管理,雲管理系統可以包括各種管理模塊例如本申請中的網絡控制器。不同雲管理系統的網絡地址及域名不同,因此,可以根據云管理系統的網絡地址或域名來界定不同的雲。

雲1中部署有Computer Node1及GW1,Computer Node1上設置有vSwitch1、VM1及VM2,VM1及VM2與vSwitch1相連。雲2中部署有Computer Node2及GW2,Computer Node2上設置有vSwitch2、VM3及VM4,VM3及VM4與vSwitch2相連。

需要說明的是,GW1及GW2均為網關節點,Computer Node1及Computer Node2均為計算節點,vSwitch1及vSwitch2均為虛擬交換機,VM1~VM4為虛擬機。為了實現雲之間的通信,雲中還部署有其他網絡設備,如TOR(Top-of-Rack Switch,機架頂層交換機)及CORE(Core Switch,核心交換機),此些網絡設備均為現有設備,並不贅述。

其中,VM1與VM3屬於一個虛擬網絡,可以互相通信;VM2及VM4屬於另一虛擬網絡,可以互相通信。本申請以VM1與VM3之間的通信為例進行說明,VM2與VM4之間的通信過程可以參見下文,並不贅述。

見圖4,其示出了虛擬機1向虛擬機3發送數據包的通信流程,具體包括以下步驟S41~S46。

S41:在計算節點1上,虛擬機1將數據包發送給虛擬交換機1。

其中,虛擬機1及虛擬交換機1設置在同一計算節點上,如圖3所示,設置在計算節點1上。虛擬交換機1具有虛擬埠,虛擬機1具有虛擬網卡,通過配置將該虛擬埠與該虛擬網卡綁定,則虛擬機1便連接在該虛擬交換機1上。這樣,虛擬機1發送的數據包便通過該虛擬埠發送至虛擬交換機1。

需要說明的是,虛擬機1發送的該數據包為向虛擬機3發送的數據包,則該數據包中攜帶有目的MAC(Media Access Control,介質訪問控制)地址,即虛擬機3的物理地址MAC3。

S42:虛擬交換機1依據自身的轉發關係表,確定下一跳節點為網關節點2。

其中,虛擬交換機1上保存有轉發關係表,為了將虛擬交換機1上的轉發關係表與其他節點上的轉發關係表區分,可以將該轉發關係表稱為第一轉發關係表。

該轉發關係表用於表示目的地址與下一跳節點的對應關係。換句話講,轉發關係表可以用於指示,發往目的地址的數據包發送至下一跳節點即可。因此,根據轉發關係表及目的MAC地址,可以為數據包確定下一跳節點。

目的MAC地址與下一跳節點所在的雲與虛擬交換機1所在的云為不同雲,以實現不同雲間的通信。具體地,該下一跳節點可以為虛擬交換機1所在的雲之外的其他雲內的網關節點。

例如,虛擬交換機1上的轉發關係表包括(MAC3,vTepM),MAC3為圖3中的VM3的地址,vTepM為下一跳節點即該圖中GW2的地址。因此,虛擬交換機1接收到發往VM3的數據包後,根據轉發關係表及目的地址MAC3,根據,確定下一跳節點的地址為vTepM,從而可以確定需要將數據包發送至GW2。

S43:虛擬交換機1通過計算節點1與網關節點2建立的隧道,將該數據包發送至網關節點2。

其中,虛擬交換機1所在的計算節點1與網關節點2之間建立有隧道,該隧道的建立可以有兩種方式。第一種方式可以是,在虛擬交換機1接收到該數據包後,確定需要向網關節點2發送該數據包時,建立該隧道。第二種方式可以是在雲間通信配置過程中建立的,詳見下文圖7所示的流程。簡單而言,第一種方式是在有數據發送業務的需求時才建立隧道,可以節省隧道資源;第二種方式是在有數據發送業務之前建立隧道,可以提高數據發送效率。

隧道是一種疊加(Overlay)技術,即通過在現有網絡上疊加一個軟體定義的邏輯網絡,通過定義其上的邏輯網絡,實現業務邏輯,從而也物理解耦。更具體地,隧道是將二層網絡架構在三層/四層報文中進行傳遞的網絡封裝技術。隧道的一種具體的應用形式可以為VXLAN(virtual Extensible LAN,虛擬可擴展區域網)。VXLAN使用MAC in UDP(User Data Protocol,用戶數據報協議)的方法對數據包進行封裝,提供了將二層網絡疊加在四層網絡上的能力。

計算節點1與網關節點2之間建立有隧道,虛擬交換機1設置在計算節點1上,則虛擬交換機1發送至網關節點2的數據包可以通過該隧道發送至網關節點2。

S44:網關節點2依據自身的轉發關係表,確定下一跳節點為計算節點2。

其中,網關節點2上保存有轉發關係表,可以將該轉發關係表稱為第二轉發關係表。

該轉發關係表用於表示目的地址與下一跳節點的對應關係。目的地址與該下一跳節點在同一雲內,具體地,該下一跳節點可以為目的地址所在的計算節點。

根據該轉發關係表及目的地址,可以為數據包確定下一跳節點,該下一跳節點即本雲內的計算節點。

例如,網關節點2上的轉發關係表包括(MAC3,vTep3),MAC3為圖3中的VM3的地址,vTep3為下一跳節點即該圖中的Computer Node2的地址。因此,網關節點2接收到發往VM3的數據包後,根據轉發關係表及目的地址MAC3,根據,確定下一跳節點的地址為vTep3,從而可以確定需要將數據包發送至Computer Node2。

S45:網關節點2通過與計算節點2建立的隧道,將該數據包發送至計算節點2。

其中,網關節點2與計算節點2建立有隧道,參見步驟S43的說明,該隧道的建立方式有兩種,此處不贅述。通過該隧道,可以將發送虛擬機3的數據包發送至計算節點2,具體地,該數據包可以被發送至計算節點2上的虛擬交換機2。

S46:在計算節點2上,虛擬交換機2將數據包發送給虛擬機3。

參見圖3,計算節點2設置有虛擬交換機2及虛擬機3。虛擬機3通過虛擬埠p3連接虛擬交換機2,虛擬交換機2的流表中記錄有虛擬機3與虛擬埠p3的對應關係。從而根據流表,可以確定出發往該虛擬機3的數據包需要通過虛擬埠p3發送出去。

以上通信流程為雲1內虛擬機1向雲2內虛擬機3發送數據包的流程,數據包的路徑可以參見圖3中的虛線。

為了便於描述,可以將數據包的目的地址(虛擬機3)所在的雲稱為接收端雲,將發送數據包的虛擬機1所在的雲稱為發送端雲。

與現有技術1相比,該流程中,數據包通過隧道發送至下一跳節點,隧道是將二層網絡疊加在三層網絡上,應用可以基於此實現高可用。另外,雲內的虛擬機並不需要使用公網地址,通信成本較低。

與現有技術2相比,在該流程中,接收端雲內的網關作為對外通信的入口,發送數據包的虛擬機只需要與接收端雲內的網關建立隧道即可,向接收端雲內的虛擬機發送的數據包發送至該網關即可。這樣,既可以減少隧道的數量,而且,接收端雲內的虛擬機的位置發生變化,發送數據包的虛擬機也並不需要感知此位置變化。

另外,該流程中,數據包直接到達接收端雲內的網關節點,並不需要經過發送端雲內的網關節點,這樣,任意兩個雲內虛擬機的通信只需要經過兩跳節點,通信路徑較短,通信效率較高。

以上流程可以實現虛擬機1向虛擬機3發送數據包,虛擬機3向虛擬機1發送數據包的流程與上述流程相似,數據包同樣經過兩跳節點,第一跳節點為虛擬機1所在雲內的網關節點,第二跳節點為虛擬機1所在的計算節點,通信路徑較短。

需要說明的是,本申請涉及的兩跳節點並非三層網絡架構中的路由器及網關等網絡節點,而是二層虛擬網絡的應用場景中的兩跳節點。在此應用場景中,二層虛擬網絡內構建有隧道,通過隧道將數據包發送到的節點即數據包所跳至的節點。

以圖3為例,計算節點1與網關節點2之間建立有隧道,通過該隧道將數據包發送至網關節點2,網關節點2即第一跳節點;網關節點2與計算節點2之間建立有隧道,通過該隧道將數據包發送至計算節點2,計算節點2即第二跳節點。可見,本申請中的兩跳節點是與兩個隧道相關的,與三層網絡中泛指的網絡節點不同。

具體地,虛擬機3所在的計算節點內的虛擬交換機2上保存有轉發關係表(MAC1,vTepN),MAC1為虛擬機1的物理地址,vTepN為虛擬機1所在的雲內的網關節點的地址。網關節點GW1上保存有轉發關係表(MAC1,vTep1),vTep1為虛擬機1所在的雲內的計算節點的地址。需要說明的是,本申請中的vTep1、vTep2、vTepN、vTepM等均指的是vTep(VXLAN Tunnel End Point,VXLAN隧道端點)地址。

見圖5所示的虛線表示的VM3向VM1發送數據包的路徑,MAC1為VM1的物理地址,vTepN為GW1的地址,vTep1為Computer Node1的地址。vSwitch2根據轉發關係表,通過Computer Node2與GW1之間的隧道將數據包發送至GW1,GW1根據轉發關係表,通過GW1與Computer Node1之間的隧道將數據包發送至Computer Node1,Computer Node1內的vSwitch1將數據包發送至VM1。

需要說明的是,不同雲上的屬於同一網絡的其他虛擬機之間的通信過程可以參見上述流程,如圖3及圖5中的雲1中的VM2向雲2中的VM4發送數據包的流程可以參見VM1向VM3發送數據包的流程,VM4向VM2發送數據包的流程可以參見VM3向VM1發送數據包的流程。

本申請提供的多雲之間的通信流程可以應用在各種雲環境管理平臺中,如OpenStack,CloudStack等。

為了實現以上多雲之間的通信,本申請還提供了雲間通信的配置流程,以實現對通信過程所需的轉發關係表的配置及隧道的建立。

見圖6,其示出了本申請提供的雲間通信的配置系統結構示意圖。該系統具體包括:Network Coordinator、Network Controller1、Network Controller2、agent1、agnet3、gw_agent1及gw_agent2。

Network Controller1、agent1及gw_agent1部署在雲1內,Network Controller2、agent3及gw_agent1部署在雲2內。Network Coordinator可以部署在雲1內,也可以部署在雲2內。進一步地,Network Coordinator可以與Network Controller1合設在同一個物理伺服器或物理伺服器集群中,也可以與Network Controller2合設在同一個物理伺服器或物理伺服器集群中。

更具體地,agent1部署在vSwitch1所在的計算節點上,該計算節點可以稱為計算節點1,該計算節點的地址為vTep1。agent3部署在vSwitch3所在的計算節點上,該計算節點可以稱為計算節點3,該計算節點的地址為vTep3。

計算節點1上還可以創建有VM1,VM1與虛擬交換機vSwitch1相連。計算節點3上還可以創建有VM3,VM3與虛擬交換機vSwitch3相連。

經過本系統的配置後,VM1及VM3之間可以實現跨雲通信,且通信過程僅需要經過兩跳,通信路徑較短。

為了便於理解,對本系統中的英文名稱表示的設備或模塊進行中文解釋說明。Network Coordinator為網絡協調器、Network Controller1及Network Controller2為網絡控制器、agent1及agent3為交換機代理模塊、gw_agent1及gw_agent2為網關代理模塊、vSwitch1及vSwitch3為虛擬交換機、VM1及VM3為虛擬機。

基於上述結構的系統,本申請提供了一種雲間通信的配置流程,該配置流程可以具體參見圖7,包括步驟S701~S712。

S701:交換機代理模塊1監控虛擬交換機1的配置信息。

其中,交換機代理模塊1即圖6中的agent1,虛擬交換機1即vSwitch1。交換機代理模塊1與虛擬交換機1設置在同一計算節點上,用於對虛擬交換機1進行監控及配置。監控的一方面內容為虛擬交換機的配置信息。虛擬交換機上可以設置虛擬埠,虛擬埠增加、減少或更改均會導致配置信息的變化。

虛擬埠用於連接虛擬機,不同虛擬交換機的虛擬埠可以屬於同一虛擬網絡,這樣與該此些虛擬埠相連的虛擬機可以實現互相通信。若此些虛擬交換機位於不同雲,則可以實現跨雲的虛擬機之間的通信。跨雲通信的虛擬機如圖6中的VM1與VM3,或者如VM2與VM4。

S702:交換機代理模塊1若監控到虛擬交換機1的虛擬埠連接虛擬機1,則從網絡控制器1上讀取虛擬埠的虛擬網絡信息。

假設雲管理系統創建有虛擬網絡1,該虛擬網絡跨雲部署在雲1及雲2上,具體包括圖6中雲1上的vSwitch1及雲2上的vSwitch3。另外,雲管理系統可以創建虛擬機,連接在虛擬交換機上。仍以圖6為例,假設雲管理系統創建VM1,並調用Network Coordinator1在vSwitch1上創建一個虛擬埠p1,並將VM1的虛擬網卡與虛擬埠p1綁定,實現VM1與vSwitch1的連接。

當VM1與vSwitch1連接時,會導致vSwitch1配置信息的變化,agent1可以監控到該變化,從而agent1從Network Controller1處讀取虛擬埠的虛擬網絡信息。

S703:交換機代理模塊1根據該虛擬網絡信息,生成流表記錄並下發給虛擬交換機1。

具體地,虛擬網絡信息可以包括虛擬埠的標識、虛擬埠所屬的虛擬網絡的標識、以及虛擬埠所連接的虛擬機的地址。將該三者建立對應關係後,獲得一條流表記錄,並將該流表記錄下發給虛擬交換機1。如圖6所示,與VM1相連的虛擬埠為p1,且p1所屬的虛擬網絡的標識為100,VM1的地址為MAC1,則生成的流表記錄為p1-100-MAC1。

虛擬交換機1可以使用流表進行數據包的轉發,或者在發送的數據包內添加虛擬網絡的標識等。

S704:交換機代理模塊1通知網絡控制器1該虛擬埠上線。

其中,網絡控制器1即圖6中的Network Controller1。虛擬埠上線表示虛擬機可以通過該虛擬埠向虛擬交換機發送數據包。虛擬機與虛擬交換機的虛擬埠具有綁定關係,虛擬埠上線可以表示與該虛擬埠綁定的虛擬機上線。以圖6為例,虛擬機VM1與虛擬交換機vSwitch1的虛擬埠p1綁定,p1上線可以表示VM1上線。

S705:網絡控制器1將虛擬埠的連通性信息(VNI,MAC,vTep)發送至網關代理模塊1。

網絡控制器1可以將虛擬埠上線的通告轉發至網絡協調器,因此,向網關代理模塊1發送連通性消息的另一種實現方式是,由網絡協調器將該虛擬埠的連通性信息(VNI,MAC,vTep)發送至網關代理模塊1。

連通性信息包括虛擬埠所歸屬的虛擬網絡的標識VNI、虛擬埠所連接的虛擬機的地址MAC、虛擬埠所在的計算節點的地址vTep。如圖6所示,虛擬埠p1的連通性信息可以包括(100,MAC1,vTep1)。

如上所述,虛擬機與虛擬交換機的虛擬埠具有綁定關係,則虛擬埠的連通性信息也可以認為是與該虛擬埠綁定的虛擬機的連通性信息。以圖6為例,虛擬埠p1的連通性信息可以認為是虛擬機VM1的連通性信息。

S706:網關代理模塊1依據連通性信息(VNI,MAC,vTep),在網關節點1上配置轉發關係表。

其中,網關代理模塊1即圖6中的gw_agent1,網關節點1即GW1。網關代理模塊用於對網關節點進行管理,網關代理模塊1所管理的網關節點即網關節點1,兩者可以部署在同一網關集群中。

網關代理模塊1將連通性信息中的MAC與vTep的對應關係生成轉發關係表(MAC,vTep),轉發關係表可以作為網關節點1轉發數據包的依據。網關節點1接收到目的地址為MAC的數據包後,根據該轉發關係表,可以確定該數據包的下一跳節點為該vTep指示的計算節點。

例如,在圖5所示的VM3向VM1發送數據包的流程中,GW1上保存有轉發關係表(MAC1,vTep1),GW1接收到發送至VM1的數據包後,根據該數據包的目的地址MAC1,確定數據包的下一跳節點為vTep1指示的Computer Node1。

S707:網關節點1建立與交換機代理模塊1所在的計算節點的隧道。

其中,在網關代理模塊1接收到連通性信息後,便可以觸發網關節點建立與交換機代理模塊1所在計算節點的隧道。以圖6為例,GW1建立與agent1所在的計算節點Computer Node1的隧道。

若交換機代理模塊1所在的計算節點為下一跳節點,則網關節點1通過建立的該隧道可以直接將數據包發送至交換機代理模塊1所在的計算節點。

S708:網絡控制器1將虛擬埠的連通性信息(VNI,MAC,vTep)發送至網絡協調器。

S709:網絡協調器將該連通性信息(VNI,MAC,vTep)修改為(VNI,MAC,vTep』)發送至網絡控制器2。

其中,網絡協調器接收到網絡控制器1發送的連通性信息後,將連通性信息中的虛擬埠所在的計算節點的地址vTep修改為vTep』,vTep』為網關節點1的地址,以使網關節點1作為對外通信的接口。

以圖6為例,Network Coordinator將連通性信息(100,MAC1,vTep1)修改為(100,MAC1,vTepN)後發送至Network Controller2。

S710:網絡控制器2將修改後的連通性信息發送至交換機代理模塊3。

需要說明的是,S709及S710中,修改後的連通性信息是通過網絡控制器2發送至交換機代理模塊3。或者,還可以由網絡協調器直接將連通性信息發送至交換機代理模塊3。在前一種實現方式中,網絡控制器2可以保存連通性信息,這樣,網絡控制器2所在的雲內,若新創建一個虛擬機,並將虛擬機連接到虛擬交換機的虛擬埠上後,管理該虛擬交換機的交換機代理模塊首先判斷虛擬交換機上是否配置有轉發關係表,若否,則交換機代理模塊從網絡控制器2上讀取修改後的連通性信息,並執行S711在該虛擬交換機上配置轉發關係表。

需要說明的是,交換機代理模塊3並非一個,根據實際情況,可以是多個。

S711:交換機代理模塊3依據修改後的連通性信息,在虛擬交換機3上配置轉發關係表。

其中,交換機代理模塊3即圖6中的agent3,虛擬交換機3即圖6中的vSwitch3。交換機代理模塊與虛擬交換機在同一計算節點上,交換機代理模塊用於對虛擬交換機進行管理,交換機代理模塊3管理的模塊即虛擬交換機3。

交換機代理模塊3將連通性信息中的MAC與vTep』的對應關係生成轉發關係表(MAC,vTep』),轉發關係表可以作為虛擬交換機3轉發數據包的依據。虛擬交換機3接收到目的地址為MAC的數據包後,根據該轉發關係表,可以確定該數據包的下一跳節點為該vTep』指示的網關節點。

例如,在圖5所示的VM3向VM1發送數據包的流程中,vSwitch3上保存有轉發關係表(MAC1,vTepN),vSwitch3接收到發送至VM1的數據包後,根據該數據包的目的地址MAC1,確定數據包的下一跳節點為vTepN指示的GW1。

S712:交換機代理模塊3所在的計算節點建立與網關節點1的隧道。

其中,交換機代理模塊3接收到修改後的連通性信息後,便可以觸發所在的計算節點建立與網關節點1的隧道。以圖6為例,agent3所在的計算節點Computer Node3建立GW1的隧道。

若網關節點1為下一跳節點,則虛擬交換機3可以通過該隧道直接將數據包發送至網關節點1。

由以上的配置流程可知,配置後的雲間通信系統可以實現圖5所示的虛擬機3向虛擬機1發送數據包的流程。具體地,虛擬機3發送的數據包,首先依據步驟S711配置的轉發關係表,通過步驟S712建立的隧道到達網關節點1,然後依據步驟S706配置的轉發關係表,通過步驟S707建立的隧道到達計算節點1,由計算節點1內的虛擬交換機1將數據包發送給虛擬機1。所述通信流程中僅經過兩跳,通信路徑較短。

以上配置流程,以交換機代理模塊1對虛擬交換機1的監控為例進行說明,交換機代理模塊3對虛擬交換機3的監控與上述配置流程相同,具體流程並不贅述,以下僅說明該流程中所涉及的與圖7不同的幾處數據。

以圖6為例,在後者配置流程中,創建的虛擬機為VM3,同樣屬於虛擬網絡100。VM3的物理地址為MAC3,VM3連接的vSwitch3的虛擬埠為p3,vSwitch3上配置的流表記錄為p3-100-MAC3。

Network Controller2發送給agent3的連通性信息包括(100,MAC3,vTep3),GW2上配置的轉發關係表為(MAC3,vTep3),GW2建立與Computer Node3的隧道。

Network Coordinator將該連通性信息(100,MAC3,vTep3)修改為(100,MAC3,vTepM)發送至Network Controller1。在vSwitch1上配置的轉發關係表為(MAC3,vTepM)。vSwitch1所在的計算節點Computer Node1建立與GW2的隧道。

見圖8,其示出了計算節點/網關節點的一種可能的結構示意,包括:

總線、控制器/處理器1、存儲器2、通信接口3、輸入設備4和輸出設備5。處理器1、存儲器2、通信接口3、輸入設備4和輸出設備5通過總線相互連接。其中:

總線可包括一通路,在計算機系統各個部件之間傳送信息。

控制器/處理器1可以是通用處理器,例如通用中央處理器(CPU)、網絡處理器(Network Processor,簡稱NP)、微處理器等,也可以是特定應用集成電路(application-specific integrated circuit,ASIC),或一個或多個用於控制本發明方案程序執行的集成電路。還可以是數位訊號處理器(DSP)、專用集成電路(ASIC)、現成可編程門陣列(FPGA)或者其他可編程邏輯器件、分立門或者電晶體邏輯器件、分立硬體組件。控制器/處理器1也可以是實現計算功能的組合,例如包含一個或多個微處理器組合,DSP和微處理器的組合等等。具體地:

計算節點的控制器/處理器可用於執行圖4中涉及計算節點1的處理過程以及圖7中涉及虛擬交換機1及交換機代理模塊1的處理過程和/或用於本申請所描述的技術的其他過程。

網關節點的控制器/處理器可用於執行圖4中涉及網關節點2的處理過程和/或用於本申請所描述的技術的其他過程。

存儲器2中保存有執行本申請技術方案的程序,還可以保存有作業系統和其他應用程式。具體地,程序可以包括程序代碼,程序代碼包括計算機操作指令。更具體的,存儲器2可以是只讀存儲器(read-only memory,ROM)、可存儲靜態信息和指令的其他類型的靜態存儲設備、隨機存取存儲器(random access memory,RAM)、可存儲信息和指令的其他類型的動態存儲設備、磁碟存儲器等等。

通信接口3可包括使用任何收發器一類的裝置,以便與其他設備或通信網絡通信,如乙太網,無線接入網(RAN),無線區域網(WLAN)等。

輸入設備4可包括接收用戶輸入的數據和信息的裝置,例如鍵盤、滑鼠、攝像頭、掃描儀、光筆、語音輸入裝置、觸控螢幕等。

輸出設備5可包括允許輸出信息給用戶的裝置,例如顯示屏、印表機、揚聲器等。

結合本發明公開內容所描述的方法或者算法的步驟可以硬體的方式來實現,也可以是由處理器執行軟體指令的方式來實現。軟體指令可以由相應的軟體模塊組成,軟體模塊可以被存放於RAM存儲器、快閃記憶體、ROM存儲器、EPROM存儲器、EEPROM存儲器、寄存器、硬碟、移動硬碟、CD-ROM或者本領域熟知的任何其它形式的存儲介質中。一種示例性的存儲介質耦合至處理器,從而使處理器能夠從該存儲介質讀取信息,且可向該存儲介質寫入信息。當然,存儲介質也可以是處理器的組成部分。處理器和存儲介質可以位於ASIC中。另外,該ASIC可以位於用戶設備中。當然,處理器和存儲介質也可以作為分立組件存在於用戶設備中。

本領域技術人員應該可以意識到,在上述一個或多個示例中,本發明所描述的功能可以用硬體、軟體、固件或它們的任意組合來實現。當使用軟體實現時,可以將這些功能存儲在計算機可讀介質中或者作為計算機可讀介質上的一個或多個指令或代碼進行傳輸。計算機可讀介質包括計算機存儲介質和通信介質,其中通信介質包括便於從一個地方向另一個地方傳送電腦程式的任何介質。存儲介質可以是通用或專用計算機能夠存取的任何可用介質。

以上所述的具體實施方式,對本發明的目的、技術方案和有益效果進行了進一步詳細說明,所應理解的是,以上所述僅為本發明的具體實施方式而已,並不用於限定本發明的保護範圍,凡在本發明的技術方案的基礎之上,所做的任何修改、等同替換、改進等,均應包括在本發明的保護範圍之內。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀