本發(fā)明涉及通信技術領域,尤指一種跨數據中心的虛擬機通信方法及裝置。
背景技術:
早期建立數據中心時,由于數據中心的規(guī)模較小,為了滿足虛擬機(Virtual Machine,VM)遷移后互聯網協(xié)議(Internet Protocol,IP)地址不變、且依然能夠通訊,通常將數據中心的所有服務器分配在同一個大二層網絡中,數據中心中的網關只有一個。后來隨著需求增大,需要對數據中心進行擴建,增加至少一個數據中心。
下面以增加一個數據中心為例進行說明。如圖1所示為大二層網絡下的兩個數據中心A、B的網絡架構圖,P1、P2、P3、P4為服務器,VM1-VM11運行在各個服務器下,S1、S2、S3、S4為服務器的接入設備,S5和S6為網關,S7、S8為大二層網絡的出口設備(圖中用一個網絡設備表示),S5和S6的IP地址相同,P1、P2、P3、P4所在的網段、虛擬局域網(Virtual Local Area Network,VLAN)也都是同一個。
兩個數據中心的VM可以通過S5或S6實現對外通訊,例如,VM1的報文通過S5、S7轉發(fā)出去,回程的報文可以通過S7、S5應答給VM1,這樣就可以實現大二層網絡中所有虛擬機對外通信,但是,如果兩個數據中心之間的虛擬機無法通信。因此,目前亟需一種跨數據中心的虛擬機通信方法。
技術實現要素:
本發(fā)明實施例提供一種跨數據中心的虛擬機通信方法及裝置,用以解決現有技術中存在的跨數據中心的虛擬機無法通信的問題。
根據本發(fā)明實施例,提供一種跨數據中心的虛擬機通信方法,多個數據中心位于同一個大二層網絡,每個數據中心的網關與對應的虛擬可擴展局域網VXLAN設備通信連接,所述大二層網絡中的兩兩VXLAN設備之間建立VXLAN隧道,所述方法包括:
所述VXLAN設備確定對應的網關轉發(fā)的數據報文的類型;
若所述數據報文為互聯網協(xié)議IP報文,則確定所述IP報文的目的媒體訪問控制MAC地址是否是所述VXLAN設備的MAC地址;
若所述IP報文的目的MAC地址是所述VXLAN設備的MAC地址,則確定所述IP報文的目的IP地址是否是所述VXLAN設備的IP地址;
若確定所述IP報文的目的IP地址是所述VXLAN設備的IP地址,則確定所述IP報文是所述大二層網絡中的其他VXLAN設備發(fā)送的VXLAN報文,解封裝所述VXLAN報文,根據第一虛擬機信息表將解封裝后的所述VXLAN報文轉發(fā)給所述VXLAN設備所在的數據中心的第一虛擬機;
若確定所述IP報文的目的IP地址不是所述VXLAN設備的IP地址,則根據所述IP報文的目的MAC地址、目的IP地址和所述第一虛擬機信息表確定所述IP報文的目的VXLAN設備,將所述IP報文發(fā)送給所述目的VXLAN設備,以使所述目的VXLAN設備將所述IP報文轉發(fā)給所述目的VXLAN設備所在的數據中心的第二虛擬機。
具體的,根據第一虛擬機信息表將解封裝后的所述VXLAN報文轉發(fā)給所述VXLAN設備所在的數據中心的第一虛擬機,具體包括:
在所述第一虛擬機信息表中查找解封裝后的所述VXLAN報文的目的IP地址和目的MAC地址;
若在所述第一虛擬機信息表中查找到解封裝后的所述VXLAN報文的目的IP地址和目的MAC地址,則從所述第一虛擬機信息表中獲取包括解封裝后的所述VXLAN報文的目的IP地址和目的MAC地址的第一表項;
若所述第一表項包括的VXLAN設備標識是所述VXLAN設備的標識,則將解封裝后的所述VXLAN報文轉發(fā)給解封裝后的所述VXLAN報文的目的IP地址和目的MAC地址對應的第一虛擬機。
具體的,根據所述IP報文的目的MAC地址、目的IP地址和所述第一虛擬機信息表確定所述IP報文的目的VXLAN設備,具體包括:
在所述第一虛擬機信息表中查找所述IP報文的目的IP地址和目的MAC地址;
若在所述第一虛擬機信息表中查找到所述IP報文的目的IP地址和目的MAC地址,則在所述第一虛擬機信息表中獲取包括所述IP報文的目的IP地址和目的MAC地址的第二表項;
將所述第二表項包括的VXLAN設備的標識對應的VXLAN設備作為所述IP報文的目的VXLAN設備。
可選的,還包括:
若所述數據報文為地址解析協(xié)議ARP請求報文,則根據所述ARP請求報文的目的IP地址和所述第一虛擬機信息表確定發(fā)送所述ARP請求報文的第三虛擬機請求的MAC地址;
將所述第三虛擬機請求的MAC地址應答給所述第三虛擬機。
具體的,根據所述ARP請求報文的目的IP地址和所述第一虛擬機信息表確定發(fā)送所述ARP請求報文的第三虛擬機請求的MAC地址,具體包括:
在所述第一虛擬機信息表中查找所述ARP請求報文的目的IP地址;
若在所述第一虛擬機信息表中查找到所述ARP請求報文的目的IP地址,則從所述第一虛擬機信息表中獲取包括所述ARP請求報文的目的IP地址的第三表項;
確定所述第三表項包括的VXLAN設備的標識是否是所述VXLAN設備的標識;
若所述第三表項包括的VXLAN設備的標識不是所述VXLAN設備的標識,則將所述VXLAN設備的MAC地址作為所述第三虛擬機請求的MAC地址。
可選的,還包括:
接收對應的網關鏡像轉發(fā)的報文后,獲取所述報文的源IP地址和源MAC地址,所述報文是所述VXLAN設備所在的數據中心的第四虛擬機發(fā)送的;
確定所述第一虛擬機信息表中是否保存所述報文的源IP地址和源MAC地址;
若所述第一虛擬機信息表中未保存所述報文的源IP地址和源MAC地址,則在所述第一虛擬機信息表中建立第四表項,所述第四表項包括所述報文的源IP地址、源MAC地址和所述VXLAN設備的標識;以及,
將所述第四表項同步給所述大二層網絡中的其他VXLAN設備,以使所述大二層網絡中的其他VXLAN設備在自身的第二虛擬機信息表中保存所述第四表項。
可選的,還包括:
接收所述大二層網絡中的其他VXLAN設備發(fā)送的第五表項,所述第五表項包括IP地址、MAC地址和對應的其他VXLAN設備的標識;
在所述第一虛擬機信息表中查找所述第五表項包括的IP地址和MAC地址;
若在所述第一虛擬機信息表中查找到所述第五表項包括的IP地址和MAC地址,則在所述第一虛擬機信息表中刪除所述第五表項包括的IP地址和MAC地址對應的表項,并在所述第一虛擬機信息表中保存所述第五表項;
若在所述第一虛擬機信息表中未查找到所述第五表項包括的IP地址和MAC地址,則在所述第一虛擬機信息表中保存所述第五表項。
根據本發(fā)明實施例,還提供一種跨數據中心的虛擬機通信裝置,多個數據中心位于同一個大二層網絡,每個數據中心的網關與對應的虛擬可擴展局域網VXLAN設備通信連接,所述大二層網絡中的兩兩VXLAN設備之間建立VXLAN隧道,所述裝置包括:
第一確定模塊,用于確定對應的網關轉發(fā)的數據報文的類型;
第二確定模塊,用于若所述數據報文為互聯網協(xié)議IP報文,則確定所述IP報文的目的媒體訪問控制MAC地址是否是所述VXLAN設備的MAC地址;
第三確定模塊,用于若所述IP報文的目的MAC地址是所述VXLAN設備的MAC地址,則確定所述IP報文的目的IP地址是否是所述VXLAN設備的IP地址;
轉發(fā)模塊,用于若確定所述IP報文的目的IP地址是所述VXLAN設備的IP地址,則確定所述IP報文是所述大二層網絡中的其他VXLAN設備發(fā)送的VXLAN報文,解封裝所述VXLAN報文,根據第一虛擬機信息表將解封裝后的所述VXLAN報文轉發(fā)給所述VXLAN設備所在的數據中心的第一虛擬機;若確定所述IP報文的目的IP地址不是所述VXLAN設備的IP地址,則根據所述IP報文的目的MAC地址、目的IP地址和所述第一虛擬機信息表確定所述IP報文的目的VXLAN設備,將所述IP報文發(fā)送給所述目的VXLAN設備,以使所述目的VXLAN設備將所述IP報文轉發(fā)給所述目的VXLAN設備所在的數據中心的第二虛擬機。
具體的,所述轉發(fā)模塊,用于根據第一虛擬機信息表將解封裝后的所述VXLAN報文轉發(fā)給所述VXLAN設備所在的數據中心的第一虛擬機,具體用于:
在所述第一虛擬機信息表中查找解封裝后的所述VXLAN報文的目的IP地址和目的MAC地址;
若在所述第一虛擬機信息表中查找到解封裝后的所述VXLAN報文的目的IP地址和目的MAC地址,則從所述第一虛擬機信息表中獲取包括解封裝后的所述VXLAN報文的目的IP地址和目的MAC地址的第一表項;
若所述第一表項包括的VXLAN設備標識是所述VXLAN設備的標識,則將解封裝后的所述VXLAN報文轉發(fā)給解封裝后的所述VXLAN報文的目的IP地址和目的MAC地址對應的第一虛擬機。
具體的,所述轉發(fā)模塊,用于根據所述IP報文的目的MAC地址、目的IP地址和所述第一虛擬機信息表確定所述IP報文的目的VXLAN設備,具體用于:
在所述第一虛擬機信息表中查找所述IP報文的目的IP地址和目的MAC地址;
若在所述第一虛擬機信息表中查找到所述IP報文的目的IP地址和目的MAC地址,則在所述第一虛擬機信息表中獲取包括所述IP報文的目的IP地址和目的MAC地址的第二表項;
將所述第二表項包括的VXLAN設備的標識對應的VXLAN設備作為所述IP報文的目的VXLAN設備。
可選的,還包括:
第四確定模塊,用于若所述數據報文為地址解析協(xié)議ARP請求報文,則根據所述ARP請求報文的目的IP地址和所述第一虛擬機信息表確定發(fā)送所述ARP請求報文的第三虛擬機請求的MAC地址;
應答模塊,用于將所述第三虛擬機請求的MAC地址應答給所述第三虛擬機。
具體的,所述第四確定模塊,用于根據所述ARP請求報文的目的IP地址和所述第一虛擬機信息表確定發(fā)送所述ARP請求報文的第三虛擬機請求的MAC地址,具體用于:
在所述第一虛擬機信息表中查找所述ARP請求報文的目的IP地址;
若在所述第一虛擬機信息表中查找到所述ARP請求報文的目的IP地址,則從所述第一虛擬機信息表中獲取包括所述ARP請求報文的目的IP地址的第三表項;
確定所述第三表項包括的VXLAN設備的標識是否是所述VXLAN設備的標識;
若所述第三表項包括的VXLAN設備的標識不是所述VXLAN設備的標識,則將所述VXLAN設備的MAC地址作為所述第三虛擬機請求的MAC地址。
可選的,還包括:
獲取模塊,用于接收對應的網關鏡像轉發(fā)的報文后,獲取所述報文的源IP地址和源MAC地址,所述報文是所述VXLAN設備所在的數據中心的第四虛擬機發(fā)送的;
第五確定模塊,用于確定所述第一虛擬機信息表中是否保存所述報文的源IP地址和源MAC地址;
第一同步模塊,用于若所述第一虛擬機信息表中未保存所述報文的源IP地址和源MAC地址,則在所述第一虛擬機信息表中建立第四表項,所述第四表項包括所述報文的源IP地址、源MAC地址和所述VXLAN設備的標識;以及,將所述第四表項同步給所述大二層網絡中的其他VXLAN設備,以使所述大二層網絡中的其他VXLAN設備在自身的第二虛擬機信息表中保存所述第四表項。
可選的,還包括:
接收模塊,用于接收所述大二層網絡中的其他VXLAN設備發(fā)送的第五表項,所述第五表項包括IP地址、MAC地址和對應的其他VXLAN設備的標識;
查找模塊,用于在所述第一虛擬機信息表中查找所述第五表項包括的IP地址和MAC地址;
第二同步模塊,用于若在所述第一虛擬機信息表中查找到所述第五表項包括的IP地址和MAC地址,則在所述第一虛擬機信息表中刪除所述第五表項包括的IP地址和MAC地址對應的表項,并在所述第一虛擬機信息表中保存所述第五表項;若在所述第一虛擬機信息表中未查找到所述第五表項包括的IP地址和MAC地址,則在所述第一虛擬機信息表中保存所述第五表項。
本發(fā)明有益效果如下:
本發(fā)明實施例提供一種跨數據中心的虛擬機通信方法及裝置,所述VXLAN設備確定對應的網關轉發(fā)的數據報文的類型;若所述數據報文為IP報文,則確定所述IP報文的目的MAC地址是否是所述VXLAN設備的MAC地址;若所述IP報文的目的MAC地址是所述VXLAN設備的MAC地址,則確定所述IP報文的目的IP地址是否是所述VXLAN設備的IP地址;若確定所述IP報文的目的IP地址是所述VXLAN設備的IP地址,則確定所述IP報文是所述大二層網絡中的其他VXLAN設備發(fā)送的VXLAN報文,解封裝所述VXLAN報文,根據第一虛擬機信息表將解封裝后的所述VXLAN報文轉發(fā)給所述VXLAN設備所在的數據中心的第一虛擬機;若確定所述IP報文的目的IP地址不是所述VXLAN設備的IP地址,則根據所述IP報文的目的MAC地址、目的IP地址和所述第一虛擬機信息表確定所述IP報文的目的VXLAN設備,將所述IP報文發(fā)送給所述目的VXLAN設備,以使所述目的VXLAN設備將所述IP報文轉發(fā)給所述目的VXLAN設備所在的數據中心的第二虛擬機。該方案中,無需改變原有數據中心的架構,只需要在每個數據中心的網關旁掛一個VXLAN設備,該VXLAN設備可以實現在兩個數據中心的虛擬機之間的報文轉發(fā),從而可以實現兩個數據中心之間的虛擬機通信。
附圖說明
圖1為現有技術中兩個數據中心的網絡架構圖;
圖2為本發(fā)明實施例中兩個數據中心的網絡架構圖;
圖3為本發(fā)明實施例中跨數據中心的虛擬機通信方法的流程圖;
圖4為本發(fā)明實施例中S34的流程圖;
圖5為本發(fā)明實施例中S35的流程圖;
圖6為本發(fā)明實施例中第一種虛擬機信息同步方法的流程圖;
圖7為本發(fā)明實施例中第二種虛擬機信息同步方法的流程圖;
圖8為本發(fā)明實施例中跨數據中心的虛擬機通信裝置的結構示意圖。
具體實施方式
針對現有技術中存在的跨數據中心的虛擬機無法通信的問題,本發(fā)明實施例提供一種跨數據中心的虛擬機通信方法,多個數據中心位于同一個大二層網絡,每個數據中心的網關與對應的VXLAN設備通信連接,大二層網絡中的兩兩VXLAN設備之間建立VXLAN隧道,如圖2所示為大二層網絡包括兩個數據中心的架構圖,S9和S10為A、B兩個數據中心的VXLAN設備,分別旁掛在S5、S6旁。該方法的執(zhí)行主體為每個數據中心的VXLAN設備,流程如圖3所示,執(zhí)行步驟如下:
S31:確定對應的網關轉發(fā)的數據報文的類型。
在本發(fā)明中,每個數據中心的網關還會繼續(xù)轉發(fā)VM對外通信的報文,這里不再贅述。對于幾類數據報文,網關會轉給旁掛的VXLAN設備,例如:廣播報文、未知名報文和知名單播報文等等,可以設置專門的數據轉發(fā)鏈路來轉發(fā)這些數據報文。不同的數據報文有不同的處理方法,因此,VXLAN設備接收到網關轉發(fā)的數據報文后,需要先確定數據報文的類型。
S32:若數據報文為IP報文,則確定IP報文的目的媒體訪問控制(Media Access Control,MAC)地址是否是VXLAN設備的MAC地址。
當數據報文是IP報文時,這有可能是跨數據中心的虛擬機通信的報文,因此,需要進一步確定IP的目的MAC地址是否是VXLAN設備的MAC地址。
S33:若IP報文的目的MAC地址是VXLAN設備的MAC地址,則確定IP報文的目的IP地址是否是VXLAN設備的IP地址;若確定IP報文的目的IP地址是VXLAN設備的IP地址,執(zhí)行S34;若確定IP報文的目的IP地址不是VXLAN設備的IP地址,執(zhí)行S35。
若IP報文的目的MAC地址是VXLAN設備的MAC地址,則進一步確定IP報文的目的IP地址是否是VXLAN設備的IP地址;若IP報文的目的MAC地址不是VXLAN設備的MAC地址,則直接丟棄,VXLAN設備無需處理。
S34:確定IP報文是大二層網絡中的其他VXLAN設備發(fā)送的VXLAN報文,解封裝VXLAN報文,根據第一虛擬機信息表將解封裝后的VXLAN報文轉發(fā)給VXLAN設備所在的數據中心的第一虛擬機。
其中,第一虛擬機信息表中保存的是大二層網絡中每個VM的IP地址、MAC地址和所屬VXLAN設備的標識。
通過該步驟可以實現將大二層網絡中的其他數據中心的VM發(fā)送的IP報文轉發(fā)給VXLAN設備所在的數據中心的VM,也就是實現接收其他數據中心的VM的報文。
S35:根據IP報文的目的MAC地址、目的IP地址和第一虛擬機信息表確定IP報文的目的VXLAN設備,將IP報文發(fā)送給目的VXLAN設備,以使目的VXLAN設備將IP報文轉發(fā)給目的VXLAN設備所在的數據中心的第二虛擬機。
通過該步驟可以實現將VXLAN設備所在的數據中心的VM發(fā)送的IP報文轉發(fā)給大二層網絡中的其他數據中心的VM,也就是實現向其他數據中心的VM發(fā)送IP報文。
該方案中,無需改變原有數據中心的架構,只需要在每個數據中心的網關旁掛一個VXLAN設備,該VXLAN設備可以實現在兩個數據中心的虛擬機之間的報文轉發(fā),從而可以實現兩個數據中心之間的虛擬機通信。
具體的,上述S34中根據第一虛擬機信息表將解封裝后的VXLAN報文轉發(fā)給VXLAN設備所在的數據中心的第一虛擬機的實現過程,如圖4所示,具體包括以下步驟:
S341:在第一虛擬機信息表中查找解封裝后的VXLAN報文的目的IP地址和目的MAC地址。
S342:若在第一虛擬機信息表中查找到解封裝后的VXLAN報文的目的IP地址和目的MAC地址,則從第一虛擬機信息表中獲取包括解封裝后的VXLAN報文的目的IP地址和目的MAC地址的第一表項。
若第一虛擬機信息表中未查找到解封裝后的VXLAN報文的目的IP地址和目的MAC地址,說明解封裝后的VXLAN報文的目的IP地址和目的MAC地址對應的虛擬機不在大二層網絡中,VXLAN設備無需處理該報文,丟棄即可;若第一虛擬機信息表中查找到解封裝后的VXLAN報文的目的IP地址和目的MAC地址,說明解封裝后的VXLAN報文的目的IP地址和目的MAC地址對應的虛擬機是在大二層網絡中,可以進一步確定該虛擬機所屬的VXLAN設備,具體可以從第一虛擬機信息表中獲取包括解封裝后的VXLAN報文的目的IP地址和目的MAC地址的第一表項。
S343:若第一表項包括的VXLAN設備標識是VXLAN設備的標識,則將解封裝后的VXLAN報文轉發(fā)給解封裝后的VXLAN報文的目的IP地址和目的MAC地址對應的第一虛擬機。
若第一表項包括的VXLAN設備標識是VXLAN設備的標識,說明解封裝后的VXLAN報文的目的IP地址和目的MAC地址對應的第一虛擬機是在本數據中心,可以將解封裝后的VXLAN報文轉發(fā)給第一虛擬機,從而實現其他數據中心的虛擬機向本數據中心的虛擬機發(fā)送IP報文。
具體的,上述S35中的根據IP報文的目的MAC地址、目的IP地址和第一虛擬機信息表確定IP報文的目的VXLAN設備的實現過程,如圖5所示,具體包括:
S351:在第一虛擬機信息表中查找IP報文的目的IP地址和目的MAC地址。
S352:若在第一虛擬機信息表中查找到IP報文的目的IP地址和目的MAC地址,則在第一虛擬機信息表中獲取包括IP報文的目的IP地址和目的MAC地址的第二表項。
若第一虛擬機信息表中未查找到IP報文的目的IP地址和目的MAC地址,說明IP報文的目的IP地址和目的MAC地址對應的虛擬機不在大二層網絡中,VXLAN設備無需處理該報文,丟棄即可;若第一虛擬機信息表中查找到IP報文的目的IP地址和目的MAC地址,說明IP報文的目的IP地址和目的MAC地址對應的虛擬機是在大二層網絡中,可以進一步確定該虛擬機所述的VXLAN設備,具體可以從第一虛擬機信息表中獲取包括IP報文的目的IP地址和目的MAC地址的第二表項。
S353:將第二表項包括的VXLAN設備的標識對應的VXLAN設備作為IP報文的目的VXLAN設備。
通過S351-S353可以確定IP報文的目的VXLAN設備,從而可以確保將本數據中心的虛擬機發(fā)送的IP報文發(fā)送給其他數據中心的虛擬機。
以上說明的是VXLAN設備確定數據報文是IP報文時的處理過程,在虛擬機發(fā)送IP報文之前,通常需要發(fā)送地址解析協(xié)議(Address Resolution Protocol,ARP)請求報文請求MAC地址,下面介紹VXLAN設備接收到ARP請求報文的處理過程,具體過程包括:若數據報文為ARP請求報文,則根據ARP請求報文的目的IP地址和第一虛擬機信息表確定發(fā)送ARP請求報文的第三虛擬機請求的MAC地址;將第三虛擬機請求的MAC地址應答給第三虛擬機。
其中,根據ARP請求報文的目的IP地址和第一虛擬機信息表確定發(fā)送ARP請求報文的第三虛擬機請求的MAC地址,具體包括:在第一虛擬機信息表中查找ARP請求報文的目的IP地址;若在第一虛擬機信息表中查找到ARP請求報文的目的IP地址,則從第一虛擬機信息表中獲取包括ARP請求報文的目的IP地址的第三表項;確定第三表項包括的VXLAN設備的標識是否是VXLAN設備的標識;若第三表項包括的VXLAN設備的標識不是VXLAN設備的標識,則將VXLAN設備的MAC地址作為第三虛擬機請求的MAC地址。
需要說明的是,若在第一虛擬機信息表中未查找到ARP請求報文的目的IP地址或者第三表象包括的VXLAN設備的標識是該VXLAN設備的標識,則該VXLAN無需處理該ARP請求報文,丟棄即可。
為了實現跨數據中心的虛擬機通信,每個VXLAN設備需要獲知大二層網絡中所有的虛擬機信息,因此,每個VXLAN設備需要獲取本數據中心的虛擬機信息并同步給大二層網絡中的其他VXLAN設備,同時還需要獲取其他數據中心的虛擬機信息,下面分別介紹這兩種情況。
第一種情況的實現過程如圖6所示,具體包括以下步驟:
S61:接收對應的網關鏡像轉發(fā)的報文后,獲取報文的源IP地址和源MAC地址,報文是VXLAN設備所在的數據中心的第四虛擬機發(fā)送的。
S62:確定第一虛擬機信息表中是否保存報文的源IP地址和源MAC地址。
S63:若第一虛擬機信息表中未保存報文的源IP地址和源MAC地址,則在第一虛擬機信息表中建立第四表項,第四表項包括報文的源IP地址、源MAC地址和VXLAN設備的標識。
S64:將第四表項同步給大二層網絡中的其他VXLAN設備,以使大二層網絡中的其他VXLAN設備在自身的第二虛擬機信息表中保存第四表項。
鏡像轉發(fā)是網關將接收到的來自本數據中心的虛擬機的所有報文同步給VXLAN設備,具體可以在網關與VXLAN設備之間設置專門的數據分析鏈路,然后網關通過數據分析鏈路將VXLAN所在的數據中心的虛擬機發(fā)送的所有報文同步給VXLAN設備,從而實現鏡像轉發(fā)。VXLAN設備根據網關鏡像轉發(fā)的報文獲取本數據中心的虛擬機信息,并同步給大二層網絡中的其他VXLAN設備。由于虛擬機在數據中心之間發(fā)生遷移后,會發(fā)送免費ARP報文等等,這些報文網關同樣會轉給旁掛的VXLAN設備,即使虛擬機在數據中心之間發(fā)生遷移,VXLAN設備上的虛擬機信息表也能獲取最準確的虛擬機信息,從而確保準確地在跨數據中心的虛擬機之間轉發(fā)報文,實現跨數據中心的虛擬機通信。
第二種情況的實現過程如圖7所示,具體包括以下步驟:
S71:接收大二層網絡中的其他VXLAN設備發(fā)送的第五表項,第五表項包括IP地址、MAC地址和對應的其他VXLAN設備的標識。
S72:在第一虛擬機信息表中查找第五表項包括的IP地址和MAC地址,若在第一虛擬機信息表中查找到第五表項包括的IP地址和MAC地址,執(zhí)行S73;若在第一虛擬機信息表中未查找到第五表項包括的IP地址和MAC地址,執(zhí)行S74。
S73:在第一虛擬機信息表中刪除第五表項包括的IP地址和MAC地址對應的表項,并在第一虛擬機信息表中保存第五表項。
S74:在第一虛擬機信息表中保存第五表項。
通過S71-S75可以實現將大二層網絡中的其他VXLAN設備保存的虛擬機信息通過給本VXLAN設備。
基于同一發(fā)明構思,本發(fā)明實施例提供一種跨數據中心的虛擬機通信裝置,多個數據中心位于同一個大二層網絡,每個數據中心的網關與對應的VXLAN設備通信連接,大二層網絡中的兩兩VXLAN設備之間建立VXLAN隧道,該裝置的結構如圖8所示,包括:
第一確定模塊81,用于確定對應的網關轉發(fā)的數據報文的類型;
第二確定模塊82,用于若數據報文為IP報文,則確定IP報文的目的MAC地址是否是VXLAN設備的MAC地址;
第三確定模塊83,用于若IP報文的目的MAC地址是VXLAN設備的MAC地址,則確定IP報文的目的IP地址是否是VXLAN設備的IP地址;
轉發(fā)模塊84,用于若確定IP報文的目的IP地址是VXLAN設備的IP地址,則確定IP報文是大二層網絡中的其他VXLAN設備發(fā)送的VXLAN報文,解封裝VXLAN報文,根據第一虛擬機信息表將解封裝后的VXLAN報文轉發(fā)給VXLAN設備所在的數據中心的第一虛擬機;若確定IP報文的目的IP地址不是VXLAN設備的IP地址,則根據IP報文的目的MAC地址、目的IP地址和第一虛擬機信息表確定IP報文的目的VXLAN設備,將IP報文發(fā)送給目的VXLAN設備,以使目的VXLAN設備將IP報文轉發(fā)給目的VXLAN設備所在的數據中心的第二虛擬機。
該方案中,無需改變原有數據中心的架構,只需要在每個數據中心的網關旁掛一個VXLAN設備,該VXLAN設備可以實現在兩個數據中心的虛擬機之間的報文轉發(fā),從而可以實現兩個數據中心之間的虛擬機通信。
具體的,轉發(fā)模塊84,用于根據第一虛擬機信息表將解封裝后的VXLAN報文轉發(fā)給VXLAN設備所在的數據中心的第一虛擬機,具體用于:
在第一虛擬機信息表中查找解封裝后的VXLAN報文的目的IP地址和目的MAC地址;
若在第一虛擬機信息表中查找到解封裝后的VXLAN報文的目的IP地址和目的MAC地址,則從第一虛擬機信息表中獲取包括解封裝后的VXLAN報文的目的IP地址和目的MAC地址的第一表項;
若第一表項包括的VXLAN設備標識是VXLAN設備的標識,則將解封裝后的VXLAN報文轉發(fā)給解封裝后的VXLAN報文的目的IP地址和目的MAC地址對應的第一虛擬機。
具體的,轉發(fā)模塊84,用于根據IP報文的目的MAC地址、目的IP地址和第一虛擬機信息表確定IP報文的目的VXLAN設備,具體用于:
在第一虛擬機信息表中查找IP報文的目的IP地址和目的MAC地址;
若在第一虛擬機信息表中查找到IP報文的目的IP地址和目的MAC地址,則在第一虛擬機信息表中獲取包括IP報文的目的IP地址和目的MAC地址的第二表項;
將第二表項包括的VXLAN設備的標識對應的VXLAN設備作為IP報文的目的VXLAN設備。
可選的,還包括:
第四確定模塊,用于若數據報文為ARP請求報文,則根據ARP請求報文的目的IP地址和第一虛擬機信息表確定發(fā)送ARP請求報文的第三虛擬機請求的MAC地址;
應答模塊,用于將第三虛擬機請求的MAC地址應答給第三虛擬機。
具體的,第四確定模塊,用于根據ARP請求報文的目的IP地址和第一虛擬機信息表確定發(fā)送ARP請求報文的第三虛擬機請求的MAC地址,具體用于:
在第一虛擬機信息表中查找ARP請求報文的目的IP地址;
若在第一虛擬機信息表中查找到ARP請求報文的目的IP地址,則從第一虛擬機信息表中獲取包括ARP請求報文的目的IP地址的第三表項;
確定第三表項包括的VXLAN設備的標識是否是VXLAN設備的標識;
若第三表項包括的VXLAN設備的標識不是VXLAN設備的標識,則將VXLAN設備的MAC地址作為第三虛擬機請求的MAC地址。
可選的,還包括:
獲取模塊,用于接收對應的網關鏡像轉發(fā)的報文后,獲取報文的源IP地址和源MAC地址,報文是VXLAN設備所在的數據中心的第四虛擬機發(fā)送的;
第五確定模塊,用于確定第一虛擬機信息表中是否保存報文的源IP地址和源MAC地址;
第一同步模塊,用于若第一虛擬機信息表中未保存報文的源IP地址和源MAC地址,則在第一虛擬機信息表中建立第四表項,第四表項包括報文的源IP地址、源MAC地址和VXLAN設備的標識;以及,將第四表項同步給大二層網絡中的其他VXLAN設備,以使大二層網絡中的其他VXLAN設備在自身的第二虛擬機信息表中保存第四表項。
可選的,還包括:
接收模塊,用于接收大二層網絡中的其他VXLAN設備發(fā)送的第五表項,第五表項包括IP地址、MAC地址和對應的其他VXLAN設備的標識;
查找模塊,用于在第一虛擬機信息表中查找第五表項包括的IP地址和MAC地址;
第二同步模塊,用于若在第一虛擬機信息表中查找到第五表項包括的IP地址和MAC地址,則在第一虛擬機信息表中刪除第五表項包括的IP地址和MAC地址對應的表項,并在第一虛擬機信息表中保存第五表項;若在第一虛擬機信息表中未查找到第五表項包括的IP地址和MAC地址,則在第一虛擬機信息表中保存第五表項。
本發(fā)明是參照根據本發(fā)明實施例的方法、設備(系統(tǒng))、和計算機程序產品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數據處理設備的處理器以產生一個機器,使得通過計算機或其他可編程數據處理設備的處理器執(zhí)行的指令產生用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導計算機或其他可編程數據處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的制造品,該指令裝置實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數據處理設備上,使得在計算機或其他可編程設備上執(zhí)行一系列操作步驟以產生計算機實現的處理,從而在計算機或其他可編程設備上執(zhí)行的指令提供用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
盡管已描述了本發(fā)明的可選實施例,但本領域內的技術人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權利要求意欲解釋為包括可選實施例以及落入本發(fā)明范圍的所有變更和修改。
顯然,本領域的技術人員可以對本發(fā)明實施例進行各種改動和變型而不脫離本發(fā)明實施例的精神和范圍。這樣,倘若本發(fā)明實施例的這些修改和變型屬于本發(fā)明權利要求及其等同技術的范圍之內,則本發(fā)明也意圖包含這些改動和變型在內。