本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,特別涉及一種VXLAN網(wǎng)絡(luò)中報(bào)文轉(zhuǎn)發(fā)方法及裝置。
背景技術(shù):
VXLAN是一種MAC-in-UDP技術(shù),它通過在網(wǎng)絡(luò)的2.5層設(shè)置一個(gè)新的網(wǎng)絡(luò)分段模式,加入了一個(gè)24bit的段標(biāo)識(shí)符,極大的擴(kuò)充了云計(jì)算環(huán)境中所能支持的邏輯網(wǎng)絡(luò)的數(shù)量;并且使得工作負(fù)載與物理網(wǎng)絡(luò)脫離,實(shí)現(xiàn)邏輯網(wǎng)絡(luò)跨越IP網(wǎng)絡(luò)。
目前VXLAN組網(wǎng)示意圖如圖1所示。虛擬通道終端(VTEP)設(shè)備(封裝解封裝VXLAN設(shè)備),可以是物理服務(wù)器的虛擬交換機(jī)(vSwitch),也可以是物理交換機(jī)。VTEP10和VTEP11在數(shù)據(jù)中心1內(nèi)接入VXLAN網(wǎng)絡(luò),VTEP2在數(shù)據(jù)中心2內(nèi)接入VXLAN網(wǎng)絡(luò),當(dāng)前VXLAN網(wǎng)絡(luò)中同一個(gè)數(shù)據(jù)中心1內(nèi)存在兩個(gè)VTEP設(shè)備時(shí),兩個(gè)VTEP設(shè)備不能同時(shí)相互備份的方式接入VXLAN網(wǎng)絡(luò),無法在整個(gè)網(wǎng)絡(luò)內(nèi)形成備份。同時(shí)接入網(wǎng)絡(luò),也是以各自獨(dú)立的方式接入VXLAN網(wǎng)絡(luò),遠(yuǎn)端VTEP2設(shè)備訪問兩個(gè)VTEP時(shí)是以單獨(dú)的設(shè)備訪問,不能將此兩個(gè)VTEP作為一個(gè)等價(jià)路徑訪問。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供了一種VXLAN網(wǎng)絡(luò)中報(bào)文轉(zhuǎn)發(fā)方法及裝置,實(shí)現(xiàn)接入VTEP的備份,達(dá)到了基于VXLAN實(shí)例的負(fù)載分擔(dān),同時(shí)實(shí)現(xiàn)了遠(yuǎn)端VTEP到本地?cái)?shù)據(jù)中心的多路徑分擔(dān),提升了公網(wǎng)網(wǎng)絡(luò)的利用率。
本發(fā)明實(shí)施例提供了一種VXLAN網(wǎng)絡(luò)中報(bào)文轉(zhuǎn)發(fā)方法,同一數(shù)據(jù)中心的多個(gè)虛擬通道終端VTEP具有相同且唯一的聚合集標(biāo)識(shí)GROUP ID,該方 法包括:當(dāng)VTEP作為聚合集中的主Master設(shè)備時(shí),學(xué)習(xí)本地用戶設(shè)備的MAC地址之后,通過協(xié)議報(bào)文向VXLAN實(shí)例內(nèi)VXLAN隧道對(duì)端VTEP通告該用戶設(shè)備的MAC地址以及Master對(duì)應(yīng)的GROUP ID,以使對(duì)端VTEP保存該用戶設(shè)備的MAC地址和GROUP ID的對(duì)應(yīng)關(guān)系,其中,與同一GROUP ID內(nèi)的VETP建立的隧道之間為等價(jià)路徑;當(dāng)從VXLAN隧道對(duì)端VTEP轉(zhuǎn)發(fā)到本數(shù)據(jù)中心的數(shù)據(jù)報(bào)文到達(dá)聚合集中的從設(shè)備,則Master接收所述從設(shè)備轉(zhuǎn)發(fā)的數(shù)據(jù)報(bào)文,根據(jù)目的MAC地址查找,發(fā)送至本地用戶設(shè)備。
本發(fā)明實(shí)施例還提供了一種VXLAN網(wǎng)絡(luò)中報(bào)文轉(zhuǎn)發(fā)方法,應(yīng)用于VXLAN隧道對(duì)端VTEP,該方法包括:對(duì)端VTEP接收聚合集中的主設(shè)備Master發(fā)送的攜帶本地用戶設(shè)備MAC地址以及Master對(duì)應(yīng)的GROUP ID的協(xié)議報(bào)文;對(duì)端VTEP保存該用戶設(shè)備的MAC地址和GROUP ID的對(duì)應(yīng)關(guān)系,其中,與同一GROUP ID內(nèi)的VETP建立的隧道之間為等價(jià)路徑;當(dāng)對(duì)端VTEP本地接收到目的MAC地址為所述用戶設(shè)備的數(shù)據(jù)報(bào)文時(shí),根據(jù)所述對(duì)應(yīng)關(guān)系,選擇一個(gè)等價(jià)的VXLAN隧道出接口轉(zhuǎn)發(fā)到所述數(shù)據(jù)中心中的VTEP。
本發(fā)明實(shí)施例還提供了一種VXLAN網(wǎng)絡(luò)中報(bào)文轉(zhuǎn)發(fā)裝置,同一數(shù)據(jù)中心的多個(gè)虛擬通道終端VTEP具有相同且唯一的聚合集標(biāo)識(shí)GROUP ID,當(dāng)VTEP作為聚合集中的主Master設(shè)備時(shí),該裝置包括:通告單元,用于學(xué)習(xí)本地用戶設(shè)備的MAC地址之后,通過協(xié)議報(bào)文向VXLAN實(shí)例內(nèi)VXLAN隧道對(duì)端VTEP通告該用戶設(shè)備的MAC地址以及Master對(duì)應(yīng)的GROUP ID,以使對(duì)端VTEP保存該用戶設(shè)備的MAC地址和GROUP ID的對(duì)應(yīng)關(guān)系,其中,與同一GROUP ID內(nèi)的VETP建立的隧道之間為等價(jià)路徑;轉(zhuǎn)發(fā)單元,用于當(dāng)從VXLAN隧道對(duì)端VTEP轉(zhuǎn)發(fā)到本數(shù)據(jù)中心的數(shù)據(jù)報(bào)文到達(dá)聚合集中的從設(shè)備,則接收所述從設(shè)備轉(zhuǎn)發(fā)的數(shù)據(jù)報(bào)文,根據(jù)目的MAC地址查找,發(fā)送至本地用戶設(shè)備。
本發(fā)明實(shí)施例還提供了一種VXLAN網(wǎng)絡(luò)中報(bào)文轉(zhuǎn)發(fā)裝置,應(yīng)用于VXLAN隧道對(duì)端VTEP,該裝置包括:接收單元,用于接收聚合集中的主設(shè) 備Master發(fā)送的攜帶本地用戶設(shè)備MAC地址以及Master對(duì)應(yīng)的GROUP ID的協(xié)議報(bào)文;保存單元,用于保存該用戶設(shè)備的MAC地址和GROUP ID的對(duì)應(yīng)關(guān)系,其中,與同一GROUP ID內(nèi)的VETP建立的隧道之間為等價(jià)路徑;處理單元,用于當(dāng)本地接收到目的MAC地址為所述用戶設(shè)備的數(shù)據(jù)報(bào)文時(shí),根據(jù)所述對(duì)應(yīng)關(guān)系,選擇一個(gè)等價(jià)的VXLAN隧道出接口轉(zhuǎn)發(fā)到所述數(shù)據(jù)中心中的VTEP。
本發(fā)明的有益效果在于,將同一數(shù)據(jù)中心中的VTEP設(shè)備加入同一聚合集,相互之間構(gòu)成備份設(shè)備接入VXLAN網(wǎng)絡(luò)。聚合集中選舉出主設(shè)備和從設(shè)備,從設(shè)備起備份作用。遠(yuǎn)端VTEP到聚合集的路徑可以通過等價(jià)運(yùn)算而進(jìn)行選擇,從而實(shí)現(xiàn)了到聚合集的多路徑分擔(dān)。
附圖說明
圖1為VXLAN組網(wǎng)示意圖;
圖2為本發(fā)明提供的一種VXLAN網(wǎng)絡(luò)中報(bào)文轉(zhuǎn)發(fā)方法的流程示意圖;
圖3為本發(fā)明實(shí)施例應(yīng)用組網(wǎng)場(chǎng)景示意圖;
圖4為本發(fā)明實(shí)施例提供的一種VXLAN網(wǎng)絡(luò)中報(bào)文轉(zhuǎn)發(fā)裝置的結(jié)構(gòu)示意圖;
圖5為本發(fā)明實(shí)施例提供的一種VXLAN網(wǎng)絡(luò)中報(bào)文轉(zhuǎn)發(fā)裝置,當(dāng)VTEP作為VXLAN隧道對(duì)端VTEP的結(jié)構(gòu)示意圖。
具體實(shí)施方式
以下參照附圖,對(duì)本發(fā)明實(shí)施例作進(jìn)一步地詳細(xì)說明。
如圖2所示,本發(fā)明提供了一種VXLAN網(wǎng)絡(luò)中報(bào)文轉(zhuǎn)發(fā)方法,同一數(shù)據(jù)中心的多個(gè)虛擬通道終端VTEP具有相同且唯一的GROUP ID,該方法包括:
步驟21、當(dāng)VTEP作為聚合集中的主(Master)設(shè)備時(shí),學(xué)習(xí)本地用戶設(shè)備的MAC地址之后,通過協(xié)議報(bào)文向VXLAN實(shí)例內(nèi)VXLAN隧道對(duì)端 VTEP通告該用戶設(shè)備的MAC地址以及Master對(duì)應(yīng)的GROUP ID,以使對(duì)端VTEP保存該用戶設(shè)備的MAC地址和GROUP ID的對(duì)應(yīng)關(guān)系,其中,與同一GROUP ID內(nèi)的VETP建立的隧道之間為等價(jià)路徑;
步驟22、當(dāng)從VXLAN隧道對(duì)端VTEP轉(zhuǎn)發(fā)到本數(shù)據(jù)中心的數(shù)據(jù)報(bào)文到達(dá)聚合集中的從設(shè)備,則Master接收所述從設(shè)備轉(zhuǎn)發(fā)的數(shù)據(jù)報(bào)文,根據(jù)目的MAC地址查找,發(fā)送至本地用戶設(shè)備。
當(dāng)從VXLAN隧道對(duì)端VTEP轉(zhuǎn)發(fā)到本數(shù)據(jù)中心的數(shù)據(jù)報(bào)文到達(dá)聚合集中的Master,則Master根據(jù)目的MAC地址查找,發(fā)送至本地用戶設(shè)備。
在報(bào)文轉(zhuǎn)發(fā)之前,需要進(jìn)行聚合集中Master的選舉,以及VXLAN實(shí)例內(nèi)VXLAN隧道的創(chuàng)建,則具體實(shí)現(xiàn)為:
VXLAN實(shí)例內(nèi)的每個(gè)VTEP攜帶自身IP地址和所屬聚合集標(biāo)識(shí),向ENDS發(fā)送注冊(cè)請(qǐng)求報(bào)文,以使ENDS將相同聚合集內(nèi)的VTEP進(jìn)行Master選舉,選擇其中一個(gè)VTEP設(shè)備作為該聚合集內(nèi)的Master設(shè)備。
VXLAN實(shí)例內(nèi)的每個(gè)VTEP接收ENDS發(fā)送的攜帶各個(gè)VTEP IP地址、所屬聚合集標(biāo)識(shí)以及所處角色的注冊(cè)應(yīng)答報(bào)文;根據(jù)注冊(cè)信息觸發(fā)VXLAN隧道的創(chuàng)建。VXLAN實(shí)例內(nèi)的VTEP根據(jù)注冊(cè)信息觸發(fā)VXLAN隧道的創(chuàng)建的方法包括:VXLAN實(shí)例內(nèi)的VTEP與本聚合集中的Master建立VXLAN隧道;與其他聚合集中的每個(gè)VTEP建立VXLAN隧道,在VXLAN實(shí)例內(nèi)的VTEP上形成與其他聚合集中的每個(gè)VTEP之間的等價(jià)VXLAN隧道出接口。
下面通過本發(fā)明實(shí)施例一和實(shí)施例二進(jìn)一步說明本發(fā)明VXLAN網(wǎng)絡(luò)中報(bào)文轉(zhuǎn)發(fā)方法。圖3為本發(fā)明實(shí)施例一和實(shí)施例二應(yīng)用組網(wǎng)場(chǎng)景示意圖。
實(shí)施例一
首先,VXLAN實(shí)例內(nèi)ENDS(EVI鄰居發(fā)現(xiàn)服務(wù)器)接收ENDC(EVI鄰居發(fā)現(xiàn)客戶端)的注冊(cè)信息,根據(jù)各ENDC的注冊(cè)信息,將相同聚合集內(nèi)的ENDC進(jìn)行Master選舉,選擇其中一個(gè)VTEP設(shè)備作為聚合集內(nèi)的主(Master)設(shè)備,其他設(shè)備都是從(Backup)設(shè)備,聚合集內(nèi)的Master設(shè)備負(fù)責(zé)將本數(shù)據(jù)中心的 用戶MAC地址以ESADI協(xié)議報(bào)文通告給VXLAN實(shí)例內(nèi)的其他的VTEP遠(yuǎn)端設(shè)備。
其中,配置VXLAN實(shí)例時(shí),可以在VXLAN實(shí)例內(nèi)指定ENDS,ENDS也是該VXLAN實(shí)例內(nèi)的一個(gè)VTEP設(shè)備,其他VTEP設(shè)備為ENDC。ENDC通過ENDP(EVI Neighbor Discovery Protocol,EVI鄰居發(fā)現(xiàn)協(xié)議)的注冊(cè)請(qǐng)求報(bào)文主動(dòng)向ENDS注冊(cè),ENDS將所有的ENDC注冊(cè)信息通過ENDP的注冊(cè)應(yīng)答報(bào)文定時(shí)通告給ENDC。
當(dāng)同一數(shù)據(jù)中心中存在多個(gè)VTEP接入設(shè)備時(shí),這些VTEP設(shè)備可以通過備份的方式接入VXLAN網(wǎng)絡(luò),可以將這些同一個(gè)數(shù)據(jù)中心內(nèi)構(gòu)成相互備份的VTEP設(shè)備加入同一個(gè)聚合集中,每個(gè)聚合集使用一個(gè)GROUP ID來標(biāo)識(shí),在每個(gè)VTEP設(shè)備上靜態(tài)指定所屬的聚合集的GROUP ID,相同的聚合集必須指定相同的GROUP ID號(hào),同一個(gè)VXLAN實(shí)例內(nèi)的GROUP ID必須唯一,一個(gè)VXLAN實(shí)例內(nèi)可以允許有多個(gè)聚合集,但一個(gè)VTEP設(shè)備在一個(gè)VXLAN實(shí)例內(nèi)只能唯一的屬于一個(gè)聚合集,不允許同時(shí)存在于多個(gè)聚合集中。一個(gè)VTEP設(shè)備配置多個(gè)VXLAN實(shí)例時(shí),可以存在于每個(gè)實(shí)例的聚合集中。
EDNP注冊(cè)請(qǐng)求報(bào)文和ENDP注冊(cè)應(yīng)答報(bào)文,統(tǒng)稱為ENDP注冊(cè)報(bào)文,攜帶了ENDC的IP地址,所屬GROUP ID,所處角色(Master or Backup)。具體地,ENDC將自身IP地址,所屬GROUP ID攜帶在EDNP注冊(cè)請(qǐng)求報(bào)文中向ENDS注冊(cè),ENDS接收到各個(gè)ENDC發(fā)送的EDNP注冊(cè)請(qǐng)求報(bào)文后,保存各個(gè)ENDC的注冊(cè)信息,并選舉出Master設(shè)備,通過ENDP注冊(cè)應(yīng)答報(bào)文定時(shí)通告給所有ENDC,在注冊(cè)應(yīng)答報(bào)文中攜帶各個(gè)ENDC的IP地址,所屬GROUP ID,以及所處角色。
接下來,VXLAN網(wǎng)絡(luò)中的VTEP設(shè)備通過ENDP協(xié)議引入了GROUP的概念后,每個(gè)VTEP都能夠掌握網(wǎng)絡(luò)中存在有哪些ENDC聚合集,每個(gè)聚合集中的成員設(shè)備,以及每個(gè)聚合集中的Master設(shè)備。VTEP設(shè)備在學(xué)習(xí)到ENDC設(shè)備后觸發(fā)VXLAN隧道的創(chuàng)建。
其中,一個(gè)VTEP設(shè)備與每個(gè)ENDC聚合集中的成員設(shè)備都建立VXLAN 隧道,這些隧道出接口是等價(jià)的隧道出接口。從該VTEP設(shè)備轉(zhuǎn)發(fā)到聚合集中一個(gè)成員設(shè)備的報(bào)文可以通過任意一個(gè)等價(jià)的隧道出接口轉(zhuǎn)發(fā),報(bào)文到達(dá)聚合集中的VTEP設(shè)備后,該VTEP設(shè)備會(huì)彈掉隧道后再次將報(bào)文封裝VXLAN隧道發(fā)送給本數(shù)據(jù)中心的Master設(shè)備,由Master設(shè)備將報(bào)文最終轉(zhuǎn)發(fā)給數(shù)據(jù)中心的用戶側(cè)接入設(shè)備。
ENDC聚合集中的每個(gè)成員設(shè)備都需要和Master設(shè)備建立VXLAN隧道,Backup成員之間不需要建立VXLAN隧道,Backup成員從用戶側(cè)設(shè)備接收到報(bào)文時(shí)直接丟棄,從公網(wǎng)側(cè)接收到VXLAN隧道報(bào)文時(shí)彈掉VXLAN隧道頭并重新封裝VXLAN隧道,將報(bào)文轉(zhuǎn)發(fā)給Master設(shè)備,Master設(shè)備彈掉VXLAN隧道后將報(bào)文轉(zhuǎn)發(fā)給本地?cái)?shù)據(jù)中心的用戶接入設(shè)備。
Master設(shè)備是本數(shù)據(jù)中心用戶側(cè)流量進(jìn)入公網(wǎng)的總?cè)肟冢杏脩魝?cè)流量都通過Master轉(zhuǎn)發(fā)到公網(wǎng)側(cè)。同時(shí)公網(wǎng)側(cè)流量也最終通過Master設(shè)備進(jìn)入用戶側(cè)。
當(dāng)聚合集中的Master設(shè)備出現(xiàn)故障時(shí),在規(guī)定時(shí)間內(nèi)沒有向ENDS發(fā)送注冊(cè)信息,則ENDS會(huì)重新為該聚合集選擇一個(gè)Master設(shè)備,將更新后的ENDP注冊(cè)應(yīng)答報(bào)文發(fā)送給所有VTEP設(shè)備。聚合集中的VTEP設(shè)備按照新分配的Master創(chuàng)建VXLAN隧道。遠(yuǎn)端VTEP設(shè)備在規(guī)定時(shí)間內(nèi)沒有接收到故障Master的?;顖?bào)文,則刪除與該故障Master的VXLAN隧道連接,向聚合集中的其余VTEP設(shè)備轉(zhuǎn)發(fā)報(bào)文。
當(dāng)聚合集中的Master設(shè)備與用戶側(cè)鏈路異常時(shí),Master設(shè)備主動(dòng)向ENDS通告本設(shè)備用戶側(cè)鏈路故障,具體地,ENDP通告報(bào)文中攜帶本設(shè)備的IP地址,所屬GROUP ID,以及通告原因(User Error)。此時(shí)ENDS也會(huì)重新觸發(fā)Master的選擇操作,及時(shí)向所有ENDC通告ENDC的注冊(cè)信息。當(dāng)Master設(shè)備本身并未故障掉電,僅僅是用戶側(cè)接口故障時(shí),遠(yuǎn)端VTEP設(shè)備并不感知此事件,仍然通過等價(jià)的VXLAN隧道出接口發(fā)送報(bào)文,本地VTEP接收到VXLAN隧道報(bào)文后會(huì)將報(bào)文重新轉(zhuǎn)發(fā)給聚合集內(nèi)新的Master進(jìn)行轉(zhuǎn)發(fā)。
根據(jù)上述描述,本發(fā)明實(shí)施例一如圖3所示的VXLAN網(wǎng)絡(luò)中,VTEP10、 VTEP11和VTEP12在數(shù)據(jù)中心1內(nèi)接入VXLAN網(wǎng)絡(luò),VTEP2在數(shù)據(jù)中心2內(nèi)接入VXLAN網(wǎng)絡(luò),VTEP3在數(shù)據(jù)中心3內(nèi)接入VXLAN網(wǎng)絡(luò)。VTEP10、VTEP11、VTEP12、VTEP2和VTEP3上創(chuàng)建了相同VXLAN實(shí)例1,用戶設(shè)備PC10、PC11、PC12、PC13、PC20和PC30屬于同一VXLAN實(shí)例1。VTEP10、VTEP11和VTEP12通過二層交換機(jī)下掛用戶設(shè)備PC10、PC11、PC12和PC13;VTEP2下掛用戶設(shè)備PC20;VTEP3下掛用戶設(shè)備PC30。數(shù)據(jù)中心1中聚合集的VTEP10經(jīng)過選舉作為Mater設(shè)備,聚合集中的其他設(shè)備VTEP11、VTEP12均作為Backup設(shè)備。VTEP10與VTEP11之間建立VXLAN隧道,VTEP10與VTEP12之間建立VXLAN隧道,VTEP2分別與VTEP10、11、12建立VXLAN隧道,VTEP3分別與VTEP10、11、12建立VXLAN隧道。
下面以PC10和PC30之間的通信為例進(jìn)行說明。
1)用戶設(shè)備PC10發(fā)出ARP請(qǐng)求報(bào)文請(qǐng)求PC30的MAC地址。
2)VTEP10作為Master接收到PC10發(fā)送的ARP請(qǐng)求報(bào)文,執(zhí)行源MAC地址學(xué)習(xí)和目的MAC查找。
VTEP10學(xué)習(xí)用戶設(shè)備PC10的MAC地址MAC10。
VTEP10將ARP請(qǐng)求報(bào)文在VXLAN實(shí)例內(nèi)廣播,通過VXLAN隧道,將ARP請(qǐng)求報(bào)文進(jìn)行VXLAN隧道封裝發(fā)送到VTEP2和VTEP3。VXLAN隧道封裝的技術(shù)與現(xiàn)有相同,在此不再贅述。
VTEP10通過協(xié)議報(bào)文向VTEP2通告MAC10時(shí),通告消息中攜帶MAC10、VXLAN 1和VTEP10所屬GROUP ID。
VTEP10通過協(xié)議報(bào)文向VTEP3通告MAC10時(shí),通告消息中攜帶MAC10、VXLAN 1和VTEP10所屬GROUP ID。
該步驟中值得注意的是,VTEP10不會(huì)再將ARP請(qǐng)求報(bào)文向同聚合集中的VTEP11和VTEP12廣播。VTEP11和VTEP12接收到PC10發(fā)送的ARP請(qǐng)求報(bào)文后丟棄該ARP請(qǐng)求報(bào)文。
3)VTEP2接收到封裝了ARP請(qǐng)求報(bào)文的VXLAN隧道報(bào)文時(shí),進(jìn)行解VXLAN隧道封裝,將解封裝后的ARP請(qǐng)求報(bào)文,在本地VXLAN實(shí)例內(nèi)廣 播,ARP請(qǐng)求報(bào)文被廣播到PC20設(shè)備。
VTEP2接收到VTEP10發(fā)送的通告消息后,確定與VTEP10具有相同GROUP ID的還有VTEP11和VTEP12,因此將MAC10保存在VXLAN實(shí)例對(duì)應(yīng)的MAC地址表中,出接口為等價(jià)的VXLAN隧道出接口,分別是VTEP2和VTEP10、VTEP2和VTEP11、VTEP2和VTEP12之間的VXLAN隧道出接口。
VTEP3接收到封裝了ARP請(qǐng)求報(bào)文的VXLAN報(bào)文時(shí),進(jìn)行解VXLAN隧道封裝,將解封裝后的ARP請(qǐng)求報(bào)文,在本地VXLAN實(shí)例內(nèi)廣播,ARP請(qǐng)求報(bào)文被廣播到PC30設(shè)備。
VTEP3接收到VTEP10發(fā)送的通告消息后,確定與VTEP10具有相同GROUP ID的還有VTEP11和VTEP12,因此將MAC10保存在VXLAN實(shí)例對(duì)應(yīng)的MAC地址表中,出接口為等價(jià)的VXLAN隧道出接口,分別是VTEP3和VTEP10、VTEP3和VTEP11、VTEP3和VTEP12之間的VXLAN隧道出接口。
4)PC30接收到ARP請(qǐng)求報(bào)文,學(xué)習(xí)用戶設(shè)備PC10的ARP,產(chǎn)生ARP應(yīng)答報(bào)文,其中ARP應(yīng)答報(bào)文的目的MAC地址為用戶設(shè)備PC10的MAC地址MAC10;
5)VTEP3接收到ARP應(yīng)答報(bào)文,執(zhí)行源MAC地址學(xué)習(xí)和目的MAC查找。
VTEP3學(xué)習(xí)PC30的MAC地址MAC30。
VTEP3執(zhí)行目的MAC查找,獲取MAC10出接口為等價(jià)VXLAN隧道出接口,通過等價(jià)運(yùn)算后從VTEP3和VTEP11的出接口轉(zhuǎn)發(fā)。因此,VTEP3將ARP應(yīng)答報(bào)文進(jìn)行VXLAN隧道封裝,通過VXLAN隧道將封裝了ARP應(yīng)答報(bào)文的VXLAN報(bào)文發(fā)送到VTEP11。
VTEP3通過協(xié)議報(bào)文向VTEP10、11、12通告MAC30時(shí),通告消息中攜帶MAC30、VXLAN1。
6)VTEP11接收到封裝了ARP應(yīng)答報(bào)文的VXLAN隧道報(bào)文,進(jìn)行解 VXLAN隧道封裝,并封裝上VTEP11和VTEP10之間的VXLAN隧道,將報(bào)文轉(zhuǎn)發(fā)給VTEP10;
VTEP10接收后解封裝VXLAN隧道,并將報(bào)文轉(zhuǎn)發(fā)到用戶側(cè)網(wǎng)絡(luò)。
VTEP10接收到VTEP3發(fā)送的通告消息后,將MAC30保存在VXLAN實(shí)例對(duì)應(yīng)的MAC地址表中,出接口為VXLAN隧道。
VTEP11接收到VTEP3發(fā)送的通告消息后,將MAC30保存在VXLAN實(shí)例對(duì)應(yīng)的MAC地址表中,出接口為VXLAN隧道。
VTEP12接收到VTEP3發(fā)送的通告消息后,將MAC30保存在VXLAN實(shí)例對(duì)應(yīng)的MAC地址表中,出接口為VXLAN隧道。
7)用戶設(shè)備PC10接收到ARP應(yīng)答報(bào)文,學(xué)習(xí)PC30的MAC地址。
8)用戶設(shè)備PC10和PC30分別獲取對(duì)方的MAC地址后,兩者之間將發(fā)送IP單播報(bào)文進(jìn)行通信。
9)作為master的VTEP10本地接收到數(shù)據(jù)報(bào)文后,進(jìn)行目的MAC查找,確定該數(shù)據(jù)報(bào)文的目的MAC地址為MAC30,獲取MAC30出接口為VTEP3和VTEP10之間的VXLAN隧道。
VTEP10將數(shù)據(jù)報(bào)文進(jìn)行VXLAN隧道封裝,通過VXLAN隧道發(fā)送到VTEP3。
VTEP3接收后解封裝VXLAN隧道,并將數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)到用戶側(cè)網(wǎng)絡(luò)的PC30。
10)VTEP3本地接收到數(shù)據(jù)報(bào)文后,進(jìn)行目的MAC查找,確定該數(shù)據(jù)報(bào)文的目的MAC地址為MAC10,獲取MAC10出接口為等價(jià)的VXLAN隧道出接口,通過等價(jià)運(yùn)算后從VTEP3和VTEP11的出接口轉(zhuǎn)發(fā)。因此,VTEP3將數(shù)據(jù)報(bào)文進(jìn)行VXLAN隧道封裝,通過VXLAN隧道發(fā)送到VTEP11。
VTEP11接收到VXLAN隧道報(bào)文,進(jìn)行解VXLAN隧道封裝,并封裝上VTEP11和VTEP10之間的VXLAN隧道,將數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)給VTEP10。
VTEP10接收后解封裝VXLAN隧道,并將數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)到用戶側(cè)網(wǎng)絡(luò)的PC10。
至此,完成了PC10和PC30之間的通信。
由此可以看出,將數(shù)據(jù)中心1中的VTEP設(shè)備加入同一聚合集,相互之間構(gòu)成備份設(shè)備接入VXLAN網(wǎng)絡(luò)。聚合集中選舉出主設(shè)備和從設(shè)備,從設(shè)備起備份作用,當(dāng)主設(shè)備故障時(shí),在從設(shè)備中重新選舉主設(shè)備。Master設(shè)備是本數(shù)據(jù)中心用戶側(cè)流量進(jìn)入公網(wǎng)的總?cè)肟?,所有用戶?cè)流量都通過Master轉(zhuǎn)發(fā)到公網(wǎng)側(cè)。同時(shí)公網(wǎng)側(cè)流量也最終通過Master設(shè)備進(jìn)入用戶側(cè)。如此,保證了流量的對(duì)稱性,而且避免了由于進(jìn)入公網(wǎng)或者進(jìn)入用戶側(cè)的VTEP設(shè)備變化而導(dǎo)致的二層交換機(jī)需要不斷進(jìn)行MAC地址遷移的問題。遠(yuǎn)端VTEP3到數(shù)據(jù)中心1的路徑可以通過等價(jià)運(yùn)算而進(jìn)行選擇,從而實(shí)現(xiàn)了到數(shù)據(jù)中心1的多路徑分擔(dān)。
另外,針對(duì)不同的VXLAN實(shí)例應(yīng)該選擇不同的VTEP設(shè)備作為Master,可以保證網(wǎng)絡(luò)中的用戶流量按照VXLAN實(shí)例實(shí)現(xiàn)負(fù)載分擔(dān)。下面通過實(shí)施例二進(jìn)行說明。
實(shí)施例二
本發(fā)明實(shí)施例二如圖3所示的VXLAN網(wǎng)絡(luò)中,VTEP10、VTEP11和VTEP12在數(shù)據(jù)中心1內(nèi)接入VXLAN網(wǎng)絡(luò),VTEP2在數(shù)據(jù)中心2內(nèi)接入VXLAN網(wǎng)絡(luò),VTEP3在數(shù)據(jù)中心3內(nèi)接入VXLAN網(wǎng)絡(luò)。VTEP10、VTEP11和VTEP12通過二層交換機(jī)下掛用戶設(shè)備PC10、PC11、PC12和PC13;VTEP2下掛用戶設(shè)備PC20;VTEP3下掛用戶設(shè)備PC30。VTEP10、VTEP11、VTEP12、VTEP2和VTEP3上創(chuàng)建了相同VXLAN實(shí)例1。同時(shí),VTEP10、VTEP11、VTEP12、VTEP2和VTEP3上還創(chuàng)建了相同VXLAN實(shí)例2。
用戶設(shè)備PC10、PC11通過用戶側(cè)接口接到VTEP10上,屬于VXLAN實(shí)例1。
用戶設(shè)備PC10、PC11通過用戶側(cè)接口接到VTEP11上,屬于VXLAN實(shí)例1。
用戶設(shè)備PC10、PC11通過用戶側(cè)接口接到VTEP12上,屬于VXLAN 實(shí)例1。
用戶設(shè)備PC12、PC13通過用戶側(cè)接口接到VTEP10上,屬于VXLAN實(shí)例2。
用戶設(shè)備PC12、PC13通過用戶側(cè)接口接到VTEP11上,屬于VXLAN實(shí)例2。
用戶設(shè)備PC12、PC13通過用戶側(cè)接口接到VTEP12上,屬于VXLAN實(shí)例2。
PC20通過用戶側(cè)接口接到VTEP2上,屬于VXLAN實(shí)例2。
PC30通過用戶側(cè)接口接到VTEP3上,屬于VXLAN實(shí)例1。
用戶設(shè)備PC10、PC11、PC30在VXLAN實(shí)例1中,在VXLAN實(shí)例1中,數(shù)據(jù)中心1中聚合集的VTEP10經(jīng)過選舉作為Mater設(shè)備。用戶設(shè)備PC12、PC13、PC20在VXLAN實(shí)例2中,在VXLAN實(shí)例2中,數(shù)據(jù)中心1中聚合集的VTEP11經(jīng)過選舉作為Mater設(shè)備。相同VXLAN實(shí)例內(nèi)的PC可以進(jìn)行通信。PC10和PC30在VXLAN實(shí)例1內(nèi)通信,PC12和PC20在VXLAN實(shí)例2內(nèi)通信。
PC10和PC30在VXLAN實(shí)例1內(nèi)通信時(shí),作為Mater設(shè)備的VTEP10成為用戶側(cè)流量進(jìn)入公網(wǎng)的總?cè)肟?,所有用戶?cè)流量都通過Master轉(zhuǎn)發(fā)到公網(wǎng)側(cè)。同時(shí)公網(wǎng)側(cè)流量也最終通過Master設(shè)備VTEP10進(jìn)入用戶側(cè)。
PC12和PC20在VXLAN實(shí)例2內(nèi)通信時(shí),作為Mater設(shè)備的VTEP11成為用戶側(cè)流量進(jìn)入公網(wǎng)的總?cè)肟冢杏脩魝?cè)流量都通過Master轉(zhuǎn)發(fā)到公網(wǎng)側(cè)。同時(shí)公網(wǎng)側(cè)流量也最終通過Master設(shè)備VTEP11進(jìn)入用戶側(cè)。
如此,同一聚合集中的VTEP基于不同VXLAN實(shí)施,實(shí)現(xiàn)了負(fù)載分擔(dān)。
基于同樣的發(fā)明構(gòu)思,本發(fā)明實(shí)施例還提出一種VXLAN網(wǎng)絡(luò)中報(bào)文轉(zhuǎn)發(fā)裝置,如圖4所示,同一數(shù)據(jù)中心的多個(gè)虛擬通道終端VTEP具有相同且唯一的聚合集標(biāo)識(shí)GROUP ID,當(dāng)VTEP作為聚合集中的主Master設(shè)備時(shí),該裝置包括:
通告單元401,用于學(xué)習(xí)本地用戶設(shè)備的MAC地址之后,通過協(xié)議報(bào)文向VXLAN實(shí)例內(nèi)VXLAN隧道對(duì)端VTEP通告該用戶設(shè)備的MAC地址以及Master對(duì)應(yīng)的GROUP ID,以使對(duì)端VTEP保存該用戶設(shè)備的MAC地址和GROUP ID的對(duì)應(yīng)關(guān)系,其中,與同一GROUP ID內(nèi)的VETP建立的隧道之間為等價(jià)路徑;
轉(zhuǎn)發(fā)單元402,用于當(dāng)從VXLAN隧道對(duì)端VTEP轉(zhuǎn)發(fā)到本數(shù)據(jù)中心的數(shù)據(jù)報(bào)文到達(dá)聚合集中的從設(shè)備,則接收所述從設(shè)備轉(zhuǎn)發(fā)的數(shù)據(jù)報(bào)文,根據(jù)目的MAC地址查找,發(fā)送至本地用戶設(shè)備。
進(jìn)一步地,當(dāng)VTEP作為聚合集中的主Master設(shè)備時(shí),所述轉(zhuǎn)發(fā)單元402,還用于當(dāng)從VXLAN隧道對(duì)端VTEP轉(zhuǎn)發(fā)到本數(shù)據(jù)中心的數(shù)據(jù)報(bào)文到達(dá)聚合集中的Master,則根據(jù)目的MAC地址查找,發(fā)送至本地用戶設(shè)備。
對(duì)于VXLAN實(shí)例內(nèi)的每個(gè)VTEP,該裝置進(jìn)一步包括:注冊(cè)單元403,用于在報(bào)文轉(zhuǎn)發(fā)之前,攜帶自身IP地址和所屬聚合集標(biāo)識(shí),向以太網(wǎng)虛擬化互聯(lián)鄰居發(fā)現(xiàn)服務(wù)器ENDS發(fā)送注冊(cè)請(qǐng)求報(bào)文,以使以太網(wǎng)虛擬化互聯(lián)鄰居發(fā)現(xiàn)客戶端ENDS將相同聚合集內(nèi)的VTEP進(jìn)行Master選舉,選擇其中一個(gè)VTEP設(shè)備作為該聚合集內(nèi)的Master設(shè)備。
對(duì)于VXLAN實(shí)例內(nèi)的每個(gè)VTEP,所述注冊(cè)單元403還用于:接收ENDS發(fā)送的攜帶各個(gè)VTEP IP地址、所屬聚合集標(biāo)識(shí)以及所處角色的注冊(cè)應(yīng)答報(bào)文;根據(jù)注冊(cè)信息觸發(fā)VXLAN隧道的創(chuàng)建。
所述注冊(cè)單元403根據(jù)注冊(cè)信息觸發(fā)VXLAN隧道的創(chuàng)建時(shí)具體用于:
與本聚合集中的Master建立VXLAN隧道;與其他聚合集中的每個(gè)VTEP建立VXLAN隧道,在VXLAN實(shí)例內(nèi)的VTEP上形成與其他聚合集中的每個(gè)VTEP之間的等價(jià)VXLAN隧道出接口。
本發(fā)明實(shí)施例還提供了一種VXLAN網(wǎng)絡(luò)中報(bào)文轉(zhuǎn)發(fā)裝置,當(dāng)VTEP作為VXLAN隧道對(duì)端VTEP,如圖5所示,該裝置包括:
接收單元501,用于接收聚合集中的主設(shè)備Master發(fā)送的攜帶本地用戶設(shè)備MAC地址以及Master對(duì)應(yīng)的GROUP ID的協(xié)議報(bào)文;
保存單元502,用于保存該用戶設(shè)備的MAC地址和GROUP ID的對(duì)應(yīng)關(guān)系,其中,與同一GROUP ID內(nèi)的VETP建立的隧道之間為等價(jià)路徑;
處理單元503,用于當(dāng)本地接收到目的MAC地址為所述用戶設(shè)備的數(shù)據(jù)報(bào)文時(shí),根據(jù)所述對(duì)應(yīng)關(guān)系,選擇一個(gè)等價(jià)的VXLAN隧道出接口轉(zhuǎn)發(fā)到所述數(shù)據(jù)中心中的VTEP。
以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。