本申請涉及網(wǎng)絡(luò)通信技術(shù),特別涉及從虛擬可擴展局域網(wǎng)(VXLAN:Virtual eXtensible Local Access Network)至虛擬局域網(wǎng)(VLAN:Virtual Local Access Network)的報文轉(zhuǎn)發(fā)方法和設(shè)備。
背景技術(shù):
目前,網(wǎng)關(guān)節(jié)點的硬件交換芯片即使支持三層轉(zhuǎn)發(fā),硬件交換芯片的轉(zhuǎn)發(fā)邏輯也不允許三層轉(zhuǎn)發(fā),只能進行二層轉(zhuǎn)發(fā)。
比如,圖1所示的組網(wǎng),PC發(fā)送的報文在非網(wǎng)關(guān)節(jié)點進行VXLAN封裝到達網(wǎng)關(guān)節(jié)點后,網(wǎng)關(guān)節(jié)點對報文進行VXLAN解封裝,發(fā)現(xiàn)報文的目的MAC地址是本網(wǎng)關(guān)節(jié)點的MAC地址,按照正常的處理方式網(wǎng)關(guān)節(jié)點對VXLAN解封裝后的報文進行三層轉(zhuǎn)發(fā),但限于網(wǎng)關(guān)節(jié)點上硬件交換芯片的轉(zhuǎn)發(fā)邏輯,即使網(wǎng)關(guān)節(jié)點的硬件交換芯片支持三層轉(zhuǎn)發(fā),也不能實現(xiàn)三層轉(zhuǎn)發(fā),只能對VXLAN解封裝后的目的MAC地址不是本網(wǎng)關(guān)節(jié)點的MAC地址的報文進行二層轉(zhuǎn)發(fā)。
因此,在VXLAN交換機上實現(xiàn)VXLAN的三層網(wǎng)關(guān)功能以實現(xiàn)從VXLAN至VLAN的三層轉(zhuǎn)發(fā)是當(dāng)前亟待解決的技術(shù)問題。
技術(shù)實現(xiàn)要素:
本申請?zhí)峁┝藦奶摂M可擴展局域網(wǎng)至虛擬局域網(wǎng)的報文轉(zhuǎn)發(fā)方法和設(shè)備,用于在作為網(wǎng)關(guān)的VXLAN交換機上實現(xiàn)VXLAN的三層網(wǎng)關(guān)功能,以實現(xiàn)從VXLAN至VLAN的報文轉(zhuǎn)發(fā)。
本申請?zhí)峁┑募夹g(shù)方案包括:
一種從虛擬可擴展局域網(wǎng)VXLAN至虛擬局域網(wǎng)VLAN的報文轉(zhuǎn)發(fā)方法, 該方法應(yīng)用于作為網(wǎng)關(guān)的VXLAN交換機,包括:
VXLAN交換機的接口板接收VXLAN封裝的報文,對報文進行VXLAN解封裝,確定VXLAN解封裝后的報文進行三層轉(zhuǎn)發(fā),則將VXLAN解封裝后的報文發(fā)送至所述VXLAN交換機的網(wǎng)板;
所述VXLAN交換機的網(wǎng)板接收接口板發(fā)送的報文,確定接收的報文由本網(wǎng)板進行三層轉(zhuǎn)發(fā),則在本網(wǎng)板本地的三層表項中查找到與報文的目的IP地址匹配的三層表項,將該報文的源MAC地址修改為所述VXLAN交換機的網(wǎng)關(guān)MAC地址,將報文的目的MAC地址修改為所述匹配的三層表項中的目的MAC地址,在所述匹配的三層表項中的出端口為VLAN端口時,將本網(wǎng)板修改后的報文發(fā)送至所述VXLAN交換機上與所述匹配的三層表項中的出端口相關(guān)聯(lián)的接口板;
所述VXLAN交換機上與所述匹配的三層表項中的出端口相關(guān)聯(lián)的接口板接收網(wǎng)板發(fā)送的報文,通過與所述匹配的三層表項中的出端口向VLAN轉(zhuǎn)發(fā)報文。
一種從虛擬可擴展局域網(wǎng)VXLAN至虛擬局域網(wǎng)VLAN的報文轉(zhuǎn)發(fā)設(shè)備,該設(shè)備應(yīng)用于作為網(wǎng)關(guān)的VXLAN交換機,包括:
接口板處理單元,處于所述VXLAN交換機的接口板,用于接收VXLAN封裝的報文,對報文進行VXLAN解封裝,確定VXLAN解封裝后的報文進行三層轉(zhuǎn)發(fā),則將VXLAN解封裝后的報文發(fā)送至所述VXLAN交換機的網(wǎng)板;以及,接收網(wǎng)板發(fā)送的報文,通過網(wǎng)板查找到的匹配的三層表項中的出端口向VLAN轉(zhuǎn)發(fā)報文;
網(wǎng)板處理單元,處于所述VXLAN交換機的網(wǎng)板,用于接收接口板發(fā)送的報文,確定接收的報文由本網(wǎng)板進行三層轉(zhuǎn)發(fā),則在本網(wǎng)板本地的三層表項中查找到與報文的目的IP地址匹配的三層表項,將報文的源MAC地址修改為本VXLAN交換機的網(wǎng)關(guān)MAC地址,將報文的目的MAC地址修改為所述匹配的三層表項中的目的MAC地址,在所述匹配的三層表項中的出端口 為VLAN端口時,將本網(wǎng)板修改后的報文發(fā)送至所述VXLAN交換機上與所述匹配的三層表項中的出端口相關(guān)聯(lián)的接口板。
由以上技術(shù)方案可以看出,本發(fā)明中,作為網(wǎng)關(guān)的VXLAN交換機,通過接口板接收到VXLAN封裝的報文時,對報文進行VXLAN解封裝,確定VXLAN解封裝后的報文進行三層轉(zhuǎn)發(fā),則將VXLAN解封裝后的報文發(fā)送至所述VXLAN交換機的網(wǎng)板;之后,在網(wǎng)板本地的三層表項中查找到與報文的目的IP地址匹配的三層表項,將該報文的源MAC地址修改為所述VXLAN交換機的網(wǎng)關(guān)MAC地址,將報文的目的MAC地址修改為所述匹配的三層表項中的目的MAC地址,在所述匹配的三層表項中的出端口為VLAN端口時,將本網(wǎng)板修改后的報文發(fā)送至所述VXLAN交換機上與所述匹配的三層表項中的出端口相關(guān)聯(lián)的接口板發(fā)送,即通過作為網(wǎng)關(guān)的VXLAN交換機實現(xiàn)了VXLAN的三層網(wǎng)關(guān)功能,實現(xiàn)從VXLAN至VLAN的三層訪問,且整個過程只是在作為網(wǎng)關(guān)的VXLAN交換機內(nèi)部執(zhí)行,沒有浪費任何帶寬資源,做到了報文線速轉(zhuǎn)發(fā)的目的。
附圖說明
圖1為現(xiàn)有跨網(wǎng)絡(luò)轉(zhuǎn)發(fā)的應(yīng)用組網(wǎng)圖;
圖2為本發(fā)明提供的方法流程圖;
圖3為本發(fā)明提供的實施例應(yīng)用圖;
圖4為本發(fā)明提供的設(shè)備結(jié)構(gòu)圖;
圖5為本發(fā)明提供的圖4所示設(shè)備的硬件結(jié)構(gòu)圖。
具體實施方式
為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面結(jié)合附圖和具體實施例對本發(fā)明進行詳細(xì)描述。
一般的框式交換機由主控板(main board)、接口板(I/O board)、網(wǎng)板 (fabric board)組成。主控板為用于實現(xiàn)協(xié)議棧計算、轉(zhuǎn)發(fā)表項下發(fā)及控制、設(shè)備管理的單板。接口板為用于實現(xiàn)數(shù)據(jù)報文轉(zhuǎn)發(fā)(包括內(nèi)部轉(zhuǎn)發(fā)和外部轉(zhuǎn)發(fā))的單板。網(wǎng)板為用于實現(xiàn)數(shù)據(jù)報文及控制報文在設(shè)備內(nèi)部跨板、跨芯片轉(zhuǎn)發(fā)的單板。其中,網(wǎng)板上的芯片只具有報文轉(zhuǎn)發(fā)功能,用于在不同接口板之間中轉(zhuǎn)報文。
VXLAN交換機的結(jié)構(gòu)與現(xiàn)有框式交換機的結(jié)構(gòu)一樣,由主控板、接口板、網(wǎng)板組成。在通常的應(yīng)用中,接口板的個數(shù)大于1。
在VXLAN應(yīng)用中,VXLAN交換機的網(wǎng)板與現(xiàn)有框式交換機的網(wǎng)板一樣設(shè)置,網(wǎng)板上的芯片只具有報文轉(zhuǎn)發(fā)功能,僅負(fù)責(zé)在不同接口板之間中轉(zhuǎn)報文。
本發(fā)明中,為了實現(xiàn)VXLAN的三層網(wǎng)關(guān)功能,可選擇其中一個VXLAN交換機作為網(wǎng)關(guān),對作為網(wǎng)關(guān)的VXLAN交換機(簡稱網(wǎng)關(guān)VXLAN交換機)進行改進,而對不作為網(wǎng)關(guān)的VXLAN交換機,可不作任何改進,仍按照現(xiàn)有的結(jié)構(gòu)執(zhí)行。
其中,對網(wǎng)關(guān)VXLAN交換機進行的改進包括:
網(wǎng)關(guān)VXLAN交換機的網(wǎng)板采用具有轉(zhuǎn)發(fā)功能和表項功能的芯片,這里的表項功能至少包含接收并保存主控板下發(fā)的表項、表項查找等功能。優(yōu)選地,作為一種較佳實施例,這里網(wǎng)板采用的芯片可以為網(wǎng)關(guān)VXLAN交換機的接口板所采用的交換芯片。
當(dāng)網(wǎng)關(guān)VXLAN交換機的網(wǎng)板采用具有轉(zhuǎn)發(fā)功能和表項功能的芯片,這樣,進入VXLAN交換機的報文可以通過VXLAN交換機的接口板和網(wǎng)板相互合作完成三層轉(zhuǎn)發(fā)。下面通過圖2對本發(fā)明提供的方法進行描述:
參見圖2,圖2為本發(fā)明提供的方法流程圖。該方法應(yīng)用于網(wǎng)關(guān)VXLAN交換機。如上所述,網(wǎng)關(guān)VXLAN交換機的網(wǎng)板不再采用僅具有報文轉(zhuǎn)發(fā)功能的芯片,而是采用具有轉(zhuǎn)發(fā)功能和表項功能的芯片比如與接口板相同的交換芯片?;诖?,如圖2所示,該流程可包括以下步驟:
步驟201,網(wǎng)關(guān)VXLAN交換機的接口板接收VXLAN封裝的報文,對 報文進行VXLAN解封裝,確定VXLAN解封裝后的報文進行三層轉(zhuǎn)發(fā),則將VXLAN解封裝后的報文發(fā)送至網(wǎng)關(guān)VXLAN交換機的網(wǎng)板。
優(yōu)選地,在步驟201中,網(wǎng)關(guān)VXLAN交換機的接口板在對報文進行VXLAN解封裝之前,可進一步執(zhí)行以下步驟:從報文的VXLAN封裝頭中識別出虛擬網(wǎng)絡(luò)標(biāo)識(VNID);
基于此,作為一個優(yōu)選實施例,步驟201中,網(wǎng)關(guān)VXLAN交換機的接口板可基于該識別出的VNID確定VXLAN解封裝后的報文進行三層轉(zhuǎn)發(fā),具體可包括:
從本接口板本地的MAC表項中查找與所述VNID和所述VXLAN解封裝后的報文的目的MAC地址匹配的MAC表項,如果查找到,且確定所述VXLAN解封裝后的報文的目的MAC地址為本VXLAN交換機的網(wǎng)關(guān)MAC地址,確定VXLAN解封裝后的報文進行三層轉(zhuǎn)發(fā)。
這里,如果查找到匹配的MAC表項,但所述VXLAN解封裝后的報文的目的MAC地址不為本VXLAN交換機的網(wǎng)關(guān)MAC地址,則可按照普通的二層報文轉(zhuǎn)發(fā)的方式轉(zhuǎn)發(fā)所述VXLAN解封裝后的報文,不再展開描述。
本發(fā)明中,接口板本地的MAC表項可以是接口板按照類似現(xiàn)有MAC表項的學(xué)習(xí)方式學(xué)習(xí)得到的,也可以是主控板直接配置的,還可以是主控板按照類似現(xiàn)有MAC表項的學(xué)習(xí)方式學(xué)習(xí)并下發(fā)給本接口板的,本發(fā)明并不具體限定。
作為本發(fā)明的一個實施例,步驟201中,為了保證VXLAN解封裝后的報文從接口板順利發(fā)送至網(wǎng)板,一種較佳的實現(xiàn)方式是接口板對VXLAN解封裝后的報文進行用于轉(zhuǎn)發(fā)至網(wǎng)板的封裝,為便于描述,這里將該內(nèi)部封裝簡稱為第一內(nèi)部封裝。如此,步驟201中,接口板將VXLAN解封裝后的報文發(fā)送至網(wǎng)關(guān)VXLAN交換機的網(wǎng)板進行代理轉(zhuǎn)發(fā)可包括:
步驟a1,將VXLAN解封裝后的報文進行第一內(nèi)部封裝。
這里,第一內(nèi)部封裝包含:第一目的芯片標(biāo)識(mod)和第一目的端口標(biāo)識(port),第一目的mod為第一虛擬芯片標(biāo)識,第一目的port為第一虛 擬端口標(biāo)識;
優(yōu)選地,作為本發(fā)明一個實例,第一虛擬芯片標(biāo)識可為預(yù)先配置的用于指示網(wǎng)板可繼續(xù)執(zhí)行查表進行報文轉(zhuǎn)發(fā)的虛擬芯片標(biāo)識,第一虛擬端口標(biāo)識可為預(yù)先配置的用于指示網(wǎng)板可繼續(xù)執(zhí)行查表進行報文轉(zhuǎn)發(fā)的虛擬端口標(biāo)識。當(dāng)網(wǎng)關(guān)VXLAN交換機存在多個網(wǎng)板時,所有網(wǎng)板都會配置上述的第一虛擬芯片標(biāo)識和第一虛擬端口標(biāo)識。
步驟a2,在本接口板僅連接一個網(wǎng)板時,通過本接口板連接網(wǎng)板的互連口發(fā)送第一內(nèi)部封裝的報文;在本接口板連接多個網(wǎng)板時,通過與多個網(wǎng)板分別連接的互連口中的一個互連口發(fā)送第一內(nèi)部封裝的報文。
實際應(yīng)用中,在本接口板連接多個網(wǎng)板時,本接口板與多個網(wǎng)板分別連接的互連口可聚合成一個聚合組。如此,在步驟a2中,通過與多個網(wǎng)板分別連接的互連口中的一個互連口發(fā)送第一內(nèi)部封裝的報文可包括:從所述聚合組中選擇一個互連口,通過選擇的一個互連口發(fā)送第一內(nèi)部封裝的報文。這里,從所述聚合組中選擇一個互連口的方式有多種,比如隨機選擇一個互連口,或者按照一定的算法比如通過哈希算法選擇一個互連口等,本發(fā)明并不具體限定。
通過上述步驟a1和步驟a2,網(wǎng)關(guān)VXLAN交換機的接口板會將VXLAN解封裝后的報文順利發(fā)送至網(wǎng)關(guān)VXLAN交換機的網(wǎng)板。
步驟202,網(wǎng)關(guān)VXLAN交換機的網(wǎng)板接收接口板發(fā)送的報文,確定接收的報文由本網(wǎng)板進行三層轉(zhuǎn)發(fā),則在本網(wǎng)板本地的三層表項中查找到與報文的目的IP地址匹配的三層表項,將該報文的源MAC地址修改為所述VXLAN交換機的網(wǎng)關(guān)MAC地址,將報文的目的MAC地址修改為所述匹配的三層表項中的目的MAC地址,在所述匹配的三層表項中的出端口為VLAN端口時,將本網(wǎng)板修改后的報文發(fā)送至網(wǎng)關(guān)VXLAN交換機上與所述匹配的三層表項中的出端口相關(guān)聯(lián)的接口板(該接口板簡稱匹配接口板)。
基于上面步驟201描述的第一內(nèi)部封裝,則較佳地,步驟202中,網(wǎng)板確定接收的報文由本網(wǎng)板進行三層轉(zhuǎn)發(fā)可包括:
從接收的報文的第一內(nèi)部封裝頭中確定出第一目的mod和第一目的port;如果確定出的第一目的mod為上述的第一虛擬芯片標(biāo)識,第一目的port為上述的第一虛擬端口標(biāo)識,則對報文的第一內(nèi)部封裝進行解封裝,識別解封裝后的報文的目的MAC地址為所述VXLAN交換機的網(wǎng)關(guān)MAC地址,則確定接收的報文由本網(wǎng)板進行三層轉(zhuǎn)發(fā)。
作為本發(fā)明的一個實施例,則上述中,當(dāng)確定目的mod不為上述的第一虛擬芯片標(biāo)識,和/或目的port不為上述的第一虛擬端口標(biāo)識,則可以不對報文的第一內(nèi)部封裝進行解封裝,直接按照第一內(nèi)部封裝的目的port繼續(xù)轉(zhuǎn)發(fā)報文即可,這類似現(xiàn)有網(wǎng)板轉(zhuǎn)發(fā)報文的方式,不再展開描述。
本步驟202中,網(wǎng)板本地的三層表項可以是主控板直接配置的,還可以是主控板按照類似現(xiàn)有三層表項的學(xué)習(xí)方式學(xué)習(xí)并下發(fā)給網(wǎng)板的,本發(fā)明并不具體限定。這里,作為一個實施例,三層表項具體實現(xiàn)時可優(yōu)選為路由表項,其一般包含目的IP地址、虛擬局域網(wǎng)絡(luò)(VLAN)標(biāo)識(ID)、目的MAC地址、源MAC地址、出端口等?;谌龑颖眄棸膬?nèi)容,本步驟202中與報文的目的IP地址匹配的三層表項就為包含報文的目的IP地址的三層表項。
本發(fā)明中,VLAN端口具體實現(xiàn)時可為單一的物理端口,也可為至少兩個物理端口聚合形成的聚合端口,這里將單一的物理端口、至少兩個物理端口聚合形成的聚合端口統(tǒng)稱為VLAN端口,只是出于清楚描述的目的,并非限定本申請。
本發(fā)明中,一種較佳的實現(xiàn)方式是,網(wǎng)板對本網(wǎng)板修改后的報文進行對應(yīng)的封裝并發(fā)送至匹配接口板,以保證匹配接口板向VXLAN發(fā)送報文,為便于描述,這里將該封裝記為第二內(nèi)部封裝。
基于此,本步驟202中,將本網(wǎng)板修改后的報文發(fā)送至匹配接口板包括:
步驟b1,依據(jù)所述匹配的三層表項中的出端口確定目標(biāo)出端口。
作為本發(fā)明的一個實施例,這里確定目標(biāo)出端口可依據(jù)所述匹配的三層 表項中的出端口的具體形式確定,如上所述,匹配的三層表項中的出端口為VLAN端口,基于此,這里在該VLAN端口為單一的物理端口時,確定目標(biāo)出端口為該單一的物理端口,而在該VLAN端口為為至少兩個物理端口聚合形成的聚合端口時,確定目標(biāo)出端口為聚合端口中一個物理端口。這里,聚合端口中一個物理端口是從聚合端口中選擇出的。其中,從聚合端口中選擇一個物理端口的方式可有多種方式,比如隨機選擇一個,或者按照設(shè)定的選擇方式比如哈希算法等選擇,本發(fā)明并不具體限定。
步驟b2,選擇所述目標(biāo)出端口所在的接口板為上述的匹配接口板。
也即,本發(fā)明中,上述的匹配接口板是基于上述步驟b1中的目標(biāo)出端口確定。
步驟b3,對修改后的報文進行第二內(nèi)部封裝。
這里,第二內(nèi)部封裝可包含:第二目的mod、第二目的port;第二目的mod為:匹配接口板上用于轉(zhuǎn)發(fā)報文的芯片的標(biāo)識,假如匹配接口板上僅存在一塊芯片,則第二目的mod可為該僅存在的一塊芯片的標(biāo)識,而假如匹配接口板上存在兩塊以上芯片,則可預(yù)先指定其中的一塊芯片用于轉(zhuǎn)發(fā)報文,第二目的mod可為該預(yù)先指定的一塊芯片的標(biāo)識;至于第二目的port,其具體為步驟b1確定的目標(biāo)出端口的標(biāo)識。
步驟b4,將第二內(nèi)部封裝的報文發(fā)送至匹配接口板。
通過步驟b1至步驟b4的描述可以看出,匹配接口板接收的來自網(wǎng)板的報文是執(zhí)行了第二內(nèi)部封裝的報文。
步驟203,網(wǎng)關(guān)VXLAN交換機上的匹配接口板接收網(wǎng)板發(fā)送的報文,通過與所述匹配的三層表項中的出端口向VLAN轉(zhuǎn)發(fā)報文。
基于上面步驟202限定的網(wǎng)關(guān)VXLAN交換機上的網(wǎng)板如何將本網(wǎng)板修改后的報文發(fā)送至網(wǎng)關(guān)VXLAN交換機上的匹配接口板,則優(yōu)選地,本步驟203通過與匹配的三層表項中的出端口向VLAN轉(zhuǎn)發(fā)報文可包括:
從報文的第二內(nèi)部封裝頭中確定出第二目的mod和第二目的port;如果所述第二目的mod為本接口板上用于轉(zhuǎn)發(fā)報文的芯片的標(biāo)識且所述第二目 的port為本接口板連接的物理端口的標(biāo)識,即意味著該報文是由本接口板通過連接的物理端口轉(zhuǎn)發(fā),則對報文的第二內(nèi)部封裝進行解封裝,通過所述第二目的port對應(yīng)的物理端口向VLAN發(fā)送報文。
本發(fā)明中,作為一個實施例,接口板本地的封裝表項可以是預(yù)先配置在接口板上的,本發(fā)明并不具體限定。
至此,完成圖2所示的流程。
通過圖2所示流程可以看出,本發(fā)明中,網(wǎng)關(guān)VXLAN交換機的網(wǎng)板不再使用僅具有報文轉(zhuǎn)發(fā)功能的芯片,而是使用具有轉(zhuǎn)發(fā)功能和表項功能的芯片比如與接口板相同的交換芯片,這樣,當(dāng)網(wǎng)關(guān)VXLAN交換機通過接口板接收到VXLAN封裝的報文時,對報文進行VXLAN解封裝;確定VXLAN解封裝后的報文進行三層轉(zhuǎn)發(fā),則將VXLAN解封裝后的報文發(fā)送至所述VXLAN交換機的網(wǎng)板;之后,在網(wǎng)板本地的三層表項中查找到與該報文的目的IP地址匹配的三層表項,在所述匹配的三層表項中的出端口為VLAN端口時,通知本網(wǎng)關(guān)VXLAN交換機上與所述匹配的三層表項中的出端口相關(guān)聯(lián)的接口板向VLAN發(fā)送本網(wǎng)板修改后的報文,即通過網(wǎng)關(guān)VXLAN交換機實現(xiàn)了VXLAN的三層網(wǎng)關(guān)功能,實現(xiàn)從VXLAN至VLAN的報文轉(zhuǎn)發(fā),且整個過程只是在網(wǎng)關(guān)VXLAN交換機內(nèi)部執(zhí)行,沒有浪費任何帶寬資源,做到了報文線速轉(zhuǎn)發(fā)的目的。
下面通過一個實施例對圖2所示流程進行描述:
以圖3所示的組網(wǎng)為例,在圖3中,物理機(PM:Physical Machine)1至PM5為VLAN中的設(shè)備,虛擬機(VM:Virtual Machine)1至VM5為VXLAN中的設(shè)備。網(wǎng)關(guān)VXLAN交換機連接在VLAN和VXLAN之間,其包含主控板、接口板和網(wǎng)板。主控板在本申請中不重點涉及,圖3未示出。網(wǎng)板采用具有轉(zhuǎn)發(fā)功能和表項功能的芯片,以與接口板中的交換芯片相同為例。圖3僅示出VXLAN交換機的三個接口板為例。
以VM1訪問PM1為例,則,
網(wǎng)關(guān)VXLAN交換機的接口板1通過本地端口(圖3以端口10為例)收到來自VXLAN中VM1發(fā)送的報文。為便于描述,這里將接口板1接收的報文稱為報文0。接口板1收到的報文0帶有對應(yīng)第一VXLAN的VXLAN封裝,VXLAN封裝至少包含第一VXLAN的VNID100以及第一VXLAN對應(yīng)的VXLAN外層頭(圖3所示的報文0的VXLAN外層頭包含外層ETH封裝,外層ETH封裝以包含外層源MAC地址、外層目的MAC地址、外層源IP地址、外層目的IP地址封裝為例),圖3簡單示出了帶有VXLAN封裝的報文結(jié)構(gòu)。
接口板1從VXLAN封裝中獲取VNID100,之后對報文0進行VXLAN解封裝,為便于描述,這里將VXLAN解封裝后的報文0記為報文1;
接口板1使用報文1的目的MAC地址和獲取的VNID100作為關(guān)鍵字在本接口板1本地的MAC表項中查找匹配的MAC表項。如果接口板1查找到匹配的MAC表項,并且,發(fā)現(xiàn)報文1的目的MAC地址正好為網(wǎng)關(guān)VXLAN交換機的網(wǎng)關(guān)MAC地址,則確定報文1需要三層轉(zhuǎn)發(fā)。
接口板1對報文1進行第一內(nèi)部封裝,第一內(nèi)部封裝的第一目的mod為第一虛擬芯片標(biāo)識(圖3以chip01為例),第一內(nèi)部封裝的第一目的port為第一虛擬端口標(biāo)識(圖3以Port1為例)。為便于描述,這里將第一內(nèi)部封裝后的報文1稱為報文2。
如圖3所示,接口板1通過聚合了互連口11、互連口12、互連口13的聚合組與各網(wǎng)板連接,則接口板1從本接口板1連接各網(wǎng)板的聚合組中選擇一個互連口,比如選擇圖3所示的互連口11將報文2發(fā)送至網(wǎng)板1。接口板1選擇互連口的方式可預(yù)先設(shè)置,比如哈希算法,通過對報文2的目的IP地址進行哈希運算,選擇編號與哈希運算結(jié)果對應(yīng)的互連口。
網(wǎng)板1接收到報文2,從報文2的第一內(nèi)部封裝頭中識別出第一目的mod和第一目的port分別為chip01和Port1,正好依次是第一虛擬芯片標(biāo)識和第一虛擬端口標(biāo)識,則對報文2的第一內(nèi)部封裝進行解封裝(即恢復(fù)了上述的 報文1)。
網(wǎng)板1識別報文1的目的MAC地址,發(fā)現(xiàn)報文1的目的MAC地址正好為網(wǎng)關(guān)VXLAN交換機的網(wǎng)關(guān)MAC地址,確定本網(wǎng)板1需要對報文1進行三層轉(zhuǎn)發(fā)。
網(wǎng)板1在本網(wǎng)板1本地的三層表項中查找到與報文1的目的IP地址匹配的三層表項,發(fā)現(xiàn)查找到的三層表項中的出端口為VLAN端口,則將報文1的源MAC地址修改為網(wǎng)關(guān)VXLAN交換機的網(wǎng)關(guān)MAC地址、將報文1的目的MAC地址修改為查找到的三層表項中的目的MAC地址(圖3以查找到的三層表項中的目的MAC地址實質(zhì)為PM1的MAC地址);為便于描述,這里將源MAC地址、目的MAC地址修改后的報文1稱為報文3。
網(wǎng)板1發(fā)現(xiàn)該找到的三層表項中的出端口為至少兩個物理端口聚合形成的聚合端口,則網(wǎng)板1選擇聚合端口中一個物理端口所在的接口板為匹配接口板。當(dāng)然,該找到的三層表項中的出端口為單一的物理端口時,網(wǎng)板1直接選擇該單一的物理端口所在的接口板為匹配接口板。為便于描述,這里假設(shè)該單一的物理端口連接的接口板為接口板2。
網(wǎng)板1對報文3進行第二內(nèi)部封裝,為便于描述,這里將第二內(nèi)部封裝的報文3稱為報文4。第二內(nèi)部封裝包含第二目的mod、第二目的port。第二目的mod為:接口板2上用于轉(zhuǎn)發(fā)報文的芯片的標(biāo)識(圖3以芯片標(biāo)識為Chip02為例描述)。第二目的port為目標(biāo)出端口(圖3以端口20為例描述)。
網(wǎng)板1通過本網(wǎng)板1連接接口板2的互連口將報文4發(fā)送至接口板2。
接口板2接收網(wǎng)板發(fā)送的報文4,從報文4的第二內(nèi)部封裝頭中確定出第二目的mod和第二目的port;如果確定出的第二目的mod為本接口板上用于轉(zhuǎn)發(fā)報文的芯片(Chip02)的標(biāo)識且第二目的port為本接口板連接的物理端口的標(biāo)識即端口20,則對報文4的第二內(nèi)部封裝進行解封裝(即恢復(fù)了上述的報文3)。
接口板2通過第二目的port即端口20對應(yīng)的出端口發(fā)送報文3。
最終PM1會收到VXLAN中VM1發(fā)送的報文。即通過網(wǎng)關(guān)VXLAN交 換機實現(xiàn)了從VXLAN至VLAN的報文轉(zhuǎn)發(fā)。
至此,完成圖3所示的流程。
以上對本發(fā)明提供的方法進行了描述,下面對本發(fā)明提供的設(shè)備進行描述:
參見圖4,圖4為本發(fā)明提供的設(shè)備結(jié)構(gòu)圖。該設(shè)備應(yīng)用于作為網(wǎng)關(guān)的VXLAN交換機,所述VXLAN交換機至少由接口板、網(wǎng)板組成,接口板、網(wǎng)板的個數(shù)均為1個以上,網(wǎng)板采用具有轉(zhuǎn)發(fā)功能和表項功能的芯片,如圖4所示,該設(shè)備可包括:
接口板處理單元,處于所述VXLAN交換機的接口板,用于接收VXLAN封裝的報文,對報文進行VXLAN解封裝,確定VXLAN解封裝后的報文進行三層轉(zhuǎn)發(fā),則將VXLAN解封裝后的報文發(fā)送至所述VXLAN交換機的網(wǎng)板;以及,接收網(wǎng)板發(fā)送的報文,通過網(wǎng)板查找到的匹配的三層表項中的出端口向VLAN轉(zhuǎn)發(fā)報文;
網(wǎng)板處理單元,處于所述VXLAN交換機的網(wǎng)板,用于接收接口板發(fā)送的報文,確定接收的報文由本網(wǎng)板進行三層轉(zhuǎn)發(fā),則在本網(wǎng)板本地的三層表項中查找到與報文的目的IP地址匹配的三層表項,將報文的源MAC地址修改為本VXLAN交換機的網(wǎng)關(guān)MAC地址,將報文的目的MAC地址修改為所述匹配的三層表項中的目的MAC地址,在所述匹配的三層表項中的出端口為VLAN端口時,將本網(wǎng)板修改后的報文發(fā)送至所述VXLAN交換機上與所述匹配的三層表項中的出端口相關(guān)聯(lián)的接口板。
優(yōu)選地,所述接口板處理單元在對報文進行VXLAN解封裝之前進一步包括:從報文的VXLAN封裝頭中識別出虛擬網(wǎng)絡(luò)標(biāo)識VNID;
所述接口板處理單元通過以下步驟確定VXLAN解封裝后的報文進行三層轉(zhuǎn)發(fā):從本接口板本地的MAC表項中查找與所述VNID和所述VXLAN解封裝后的報文的目的MAC地址匹配的MAC表項,如果查找到,且確定所述VXLAN解封裝后的報文的目的MAC地址為本VXLAN交換機的網(wǎng)關(guān)MAC地址,確定VXLAN解封裝后的報文進行三層轉(zhuǎn)發(fā)。
優(yōu)選地,所述接口板處理單元通過以下步驟將VXLAN解封裝后的報文發(fā)送至所述VXLAN交換機的網(wǎng)板進行代理轉(zhuǎn)發(fā):
將VXLAN解封裝后的報文進行第一內(nèi)部封裝,第一內(nèi)部封裝包含:第一目的芯片標(biāo)識mod和第一目的端口標(biāo)識port,第一目的mod為第一虛擬芯片標(biāo)識,第一目的port為第一虛擬端口標(biāo)識;
在本接口板僅連接一個網(wǎng)板時,通過本接口板連接網(wǎng)板的互連口發(fā)送第一內(nèi)部封裝的報文;在本接口板連接多個網(wǎng)板時,通過與多個網(wǎng)板分別連接的互連口中的一個互連口發(fā)送第一內(nèi)部封裝的報文;
所述網(wǎng)板處理單元通過以下步驟確定接收的報文由本網(wǎng)板進行三層轉(zhuǎn)發(fā):
從接收的報文的第一內(nèi)部封裝頭中確定出第一目的mod和第一目的port;如果確定出的第一目的mod為所述第一虛擬芯片標(biāo)識,第一目的port為所述第一虛擬端口標(biāo)識,則對報文的第一內(nèi)部封裝進行解封裝,識別解封裝后的報文的目的MAC地址為所述VXLAN交換機的網(wǎng)關(guān)MAC地址,則確定接收的報文由本網(wǎng)板進行三層轉(zhuǎn)發(fā)。
優(yōu)選地,所述網(wǎng)板處理單元通過以下步驟將本網(wǎng)板修改后的報文發(fā)送至所述VXLAN交換機上與所述匹配的三層表項中的出端口相關(guān)聯(lián)的接口板:依據(jù)所述匹配的三層表項中的出端口確定目標(biāo)出端口,選擇所述目標(biāo)出端口所在的接口板為與所述匹配的三層表項中出端口相關(guān)聯(lián)的接口板,對修改后的報文進行第二內(nèi)部封裝,將第二內(nèi)部封裝的報文發(fā)送至該確定的與所述匹配的三層表項中的出端口相關(guān)聯(lián)的接口板,第二內(nèi)部封裝包含:第二目的mod、第二目的port;第二目的mod為:與所述匹配的三層表項中出端口相關(guān)聯(lián)的接口板上用于轉(zhuǎn)發(fā)報文的芯片的標(biāo)識,第二目的port為:所述目標(biāo)出端口的標(biāo)識;
所述接口板處理單元通過以下步驟實現(xiàn)通過網(wǎng)板查找到的匹配的三層表項中的出端口向VLAN轉(zhuǎn)發(fā)報文:從報文的第二內(nèi)部封裝頭中確定出第二目的mod和第二目的port;如果所述第二目的mod為本接口板上用于轉(zhuǎn)發(fā)報文 的芯片的標(biāo)識且所述第二目的port為本接口板連接的物理端口的標(biāo)識,則對報文的第二內(nèi)部封裝進行解封裝,通過所述第二目的port對應(yīng)的物理端口向VLAN發(fā)送報文。
優(yōu)選地,所述網(wǎng)板處理單元通過以下步驟依據(jù)所述匹配的三層表項中的出端口確定目標(biāo)出端口:
在所述匹配的三層表項中的出端口為單一的物理端口時,確定所述物理端口為目標(biāo)出端口,在所述匹配的三層表項中的出端口為至少兩個物理端口聚合形成的聚合端口時,選擇所述聚合端口中一個物理端口為目標(biāo)出端口。
至此,完成本發(fā)明提供的設(shè)備描述。
作為本發(fā)明的一個實施例,本發(fā)明還提供了圖4所示設(shè)備的硬件結(jié)構(gòu)圖。如圖5所示,該設(shè)備硬件結(jié)構(gòu)可包括:
接口板和網(wǎng)板。
其中,接口板上可包括:第一CPU和第一存儲器。
第一存儲器,用于存放接口板處理單元;
第一CPU,用于存放接口板處理單元運行的控制程序,以控制所述第一存儲器中的接口板處理單元執(zhí)行如上所述的操作。至于所述第一存儲器中的接口板處理單元執(zhí)行的操作,其如上述接口板處理單元執(zhí)行的操作,這里不再贅述。
網(wǎng)板上可包括:第二CPU和第二存儲器。
第二存儲器,用于存放網(wǎng)板處理單元;
第二CPU,用于存放網(wǎng)板處理單元運行的控制程序,以控制所述第二存儲器中的網(wǎng)板處理單元執(zhí)行操作。至于所述第二存儲器中的網(wǎng)板處理單元執(zhí)行的操作,其如上述網(wǎng)板處理單元執(zhí)行的操作,這里不再贅述。
至此,完成圖5所示的設(shè)備硬件結(jié)構(gòu)圖。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明保護的范圍之內(nèi)。