亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

跨虛擬可擴展局域網(wǎng)的組播數(shù)據(jù)報文轉發(fā)方法和設備與流程

文檔序號:11959859閱讀:296來源:國知局
跨虛擬可擴展局域網(wǎng)的組播數(shù)據(jù)報文轉發(fā)方法和設備與流程

本申請涉及網(wǎng)絡通信技術,特別涉及跨虛擬可擴展局域網(wǎng)(VXLAN:Virtual eXtensible Local Access Network)的組播數(shù)據(jù)報文轉發(fā)方法和設備。



背景技術:

目前,網(wǎng)關節(jié)點的硬件交換芯片即使支持三層組播轉發(fā),硬件交換芯片的轉發(fā)邏輯也不允許三層組播轉發(fā),只能進行二層組播轉發(fā)。

比如,圖1所示的組網(wǎng),PC發(fā)送的組播數(shù)據(jù)報文在非網(wǎng)關節(jié)點進行VXLAN封裝到達網(wǎng)關節(jié)點后,網(wǎng)關節(jié)點對組播數(shù)據(jù)報文進行VXLAN解封裝,發(fā)現(xiàn)組播數(shù)據(jù)報文的目的MAC地址是組播MAC地址,且組播數(shù)據(jù)報文的目的IP地址是組播IP地址,按照正常的處理方式,網(wǎng)關節(jié)點會對VXLAN解封裝后的組播數(shù)據(jù)報文進行三層組播復制轉發(fā),但限于網(wǎng)關節(jié)點上硬件交換芯片的轉發(fā)邏輯,即使網(wǎng)關節(jié)點的硬件交換芯片支持三層組播轉發(fā),也不能實現(xiàn)三層組播轉發(fā),只能對VXLAN解封裝后的組播數(shù)據(jù)報文進行二層轉發(fā)。

因此,在VXLAN交換機上實現(xiàn)VXLAN的三層網(wǎng)關功能以實現(xiàn)跨VXLAN的三層組播數(shù)據(jù)報文轉發(fā)是當前亟待解決的技術問題。



技術實現(xiàn)要素:

本申請?zhí)峁┝丝缣摂M可擴展局域網(wǎng)的組播數(shù)據(jù)報文轉發(fā)方法和設備,用于在作為網(wǎng)關的VXLAN交換機上實現(xiàn)VXLAN的三層網(wǎng)關功能,以實現(xiàn)兩個不同VXLAN之間的組播數(shù)據(jù)報文轉發(fā)。

本申請?zhí)峁┑募夹g方案包括:

一種跨虛擬可擴展局域網(wǎng)VXLAN的組播數(shù)據(jù)報文轉發(fā)方法,該方法應 用于作為網(wǎng)關的VXLAN交換機,該方法包括:

VXLAN交換機的接口板接收VXLAN封裝的組播數(shù)據(jù)報文,對組播數(shù)據(jù)報文進行VXLAN解封裝,確定VXLAN解封裝后的組播數(shù)據(jù)報文進行三層組播轉發(fā),則將VXLAN解封裝后的組播數(shù)據(jù)報文發(fā)送至所述VXLAN交換機的網(wǎng)板;

所述VXLAN交換機的網(wǎng)板接收接口板發(fā)送的組播數(shù)據(jù)報文,確定接收的組播數(shù)據(jù)報文由本網(wǎng)板進行三層組播轉發(fā),則在本網(wǎng)板本地的三層組播組表中找到與組播數(shù)據(jù)報文的目的IP地址和目的MAC地址匹配的三層組播組表項,在所述三層組播組表項中的組播組成員端口為VXLAN隧道口時,將通過所述組播組成員端口發(fā)送的組播數(shù)據(jù)報文的源MAC地址修改為所述VXLAN交換機的網(wǎng)關MAC地址,將修改后的組播數(shù)據(jù)報文發(fā)送至VXLAN交換機上與所述組播組成員端口相關聯(lián)的接口板;

所述VXLAN交換機上與所述組播組成員端口相關聯(lián)的接口板接收網(wǎng)板發(fā)送的組播數(shù)據(jù)報文,對組播數(shù)據(jù)報文進行VXLAN封裝并向VXLAN轉發(fā)。

一種跨虛擬可擴展局域網(wǎng)VXLAN的組播數(shù)據(jù)報文轉發(fā)設備,該設備應用于作為網(wǎng)關的VXLAN交換機,該設備包括:

接口板處理單元,處于所述VXLAN交換機的接口板,用于接收VXLAN封裝的組播數(shù)據(jù)報文,對組播數(shù)據(jù)報文進行VXLAN解封裝,確定VXLAN解封裝后的組播數(shù)據(jù)報文進行三層組播轉發(fā),則將VXLAN解封裝后的組播數(shù)據(jù)報文發(fā)送至所述VXLAN交換機的網(wǎng)板;以及,接收網(wǎng)板發(fā)送的組播數(shù)據(jù)報文,對接收的組播數(shù)據(jù)報文進行VXLAN封裝并向VXLAN轉發(fā);

網(wǎng)板處理單元,處于所述VXLAN交換機的網(wǎng)板,用于接收接口板發(fā)送的組播數(shù)據(jù)報文,確定接收的組播數(shù)據(jù)報文由本網(wǎng)板進行三層組播轉發(fā),則在本網(wǎng)板本地的三層組播組表中找到與組播數(shù)據(jù)報文的目的IP地址和目的MAC地址匹配的三層組播組表項,在所述三層組播組表項中的組播組成員端口為VXLAN隧道口時,將通過所述組播組成員端口發(fā)送的組播數(shù)據(jù)報文的 源MAC地址修改為所述VXLAN交換機的網(wǎng)關MAC地址,將修改后的組播數(shù)據(jù)報文發(fā)送至VXLAN交換機上與所述組播組成員端口相關聯(lián)的接口板。

由以上技術方案可以看出,本發(fā)明中,當作為網(wǎng)關的VXLAN交換機通過接口板接收到VXLAN封裝的組播數(shù)據(jù)報文時,對組播數(shù)據(jù)報文進行VXLAN解封裝;確定VXLAN解封裝后的組播數(shù)據(jù)報文進行三層組播轉發(fā)時,將所述VXLAN解封裝后的組播數(shù)據(jù)報文發(fā)送至網(wǎng)板;之后,在網(wǎng)板本地的三層組播組表中查找到與組播數(shù)據(jù)報文的目的IP地址和目的MAC地址匹配的三層組播組表項,在所述三層組播組表項中的組播組成員端口為VXLAN隧道口時,將通過所述組播組成員端口發(fā)送的組播數(shù)據(jù)報文的源MAC地址修改為所述VXLAN交換機的網(wǎng)關MAC地址,將修改后的組播數(shù)據(jù)報文發(fā)送至VXLAN交換機上與所述組播組成員端口相關聯(lián)的接口板,由該組播組成員端口相關聯(lián)的接口板對組播數(shù)據(jù)報文進行VXLAN封裝并向VXLAN轉發(fā),即通過作為網(wǎng)關的VXLAN交換機實現(xiàn)了VXLAN的三層網(wǎng)關功能,實現(xiàn)不同VXLAN之間的三層組播訪問,且整個過程只是在VXLAN交換機內部執(zhí)行,沒有浪費任何帶寬資源,做到了組播數(shù)據(jù)報文線速轉發(fā)的目的。

附圖說明

圖1為現(xiàn)有跨網(wǎng)絡轉發(fā)的應用組網(wǎng)圖;

圖2為本發(fā)明提供的方法流程圖;

圖3為本發(fā)明提供的實施例應用圖;

圖4為本發(fā)明提供的設備結構圖;

圖5為本發(fā)明提供的圖4所示設備的硬件結構圖。

具體實施方式

為了使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面結合附圖和具體實施例對本發(fā)明進行詳細描述。

一般的框式交換機由主控板(main board)、接口板(I/O board)、網(wǎng)板 (fabric board)組成。主控板為用于實現(xiàn)協(xié)議棧計算、轉發(fā)表項下發(fā)及控制、設備管理的單板。接口板為用于實現(xiàn)數(shù)據(jù)報文轉發(fā)(包括內部轉發(fā)和外部轉發(fā))的單板。網(wǎng)板為用于實現(xiàn)數(shù)據(jù)報文及控制報文在設備內部跨板、跨芯片轉發(fā)的單板。其中,網(wǎng)板上的芯片只具有報文轉發(fā)功能,用于在不同接口板之間中轉報文。

VXLAN交換機的結構與現(xiàn)有框式交換機的結構一樣,由主控板、接口板、網(wǎng)板組成。在通常的應用中,接口板的個數(shù)大于1。

在VXLAN應用中,VXLAN交換機的網(wǎng)板與現(xiàn)有框式交換機的網(wǎng)板一樣設置,網(wǎng)板上的芯片只具有報文轉發(fā)功能,僅負責在不同接口板之間中轉報文。

本發(fā)明中,為了實現(xiàn)VXLAN的三層網(wǎng)關功能,可選擇其中一個VXLAN交換機作為網(wǎng)關,對作為網(wǎng)關的VXLAN交換機(簡稱網(wǎng)關VXLAN交換機)進行改進,而對不作為網(wǎng)關的VXLAN交換機,可不作任何改進,仍按照現(xiàn)有的結構執(zhí)行。

其中,對網(wǎng)關VXLAN交換機進行的改進包括:

網(wǎng)關VXLAN交換機的網(wǎng)板采用具有轉發(fā)功能和表項功能的芯片,這里的表項功能至少包含接收并保存主控板下發(fā)的表項、表項查找等功能。優(yōu)選地,作為一種較佳實施例,這里網(wǎng)板采用的芯片可以為網(wǎng)關VXLAN交換機的接口板所采用的交換芯片。

當網(wǎng)關VXLAN交換機的網(wǎng)板采用具有轉發(fā)功能和表項功能的芯片,這樣,進入VXLAN交換機的組播數(shù)據(jù)報文可以通過VXLAN交換機的接口板和網(wǎng)板相互合作完成三層轉發(fā)。下面通過圖2對本發(fā)明提供的方法進行描述:

參見圖2,圖2為本發(fā)明提供的方法流程圖。該方法應用于網(wǎng)關VXLAN交換機。如上所述,網(wǎng)關VXLAN交換機的網(wǎng)板不再采用僅具有報文轉發(fā)功能的芯片,而是采用具有轉發(fā)功能和表項功能的芯片比如與接口板相同的交換芯片?;诖?,如圖2所示,該流程可包括以下步驟:

步驟201,網(wǎng)關VXLAN交換機的接口板接收VXLAN封裝的組播數(shù)據(jù)報文,對組播數(shù)據(jù)報文進行VXLAN解封裝,確定VXLAN解封裝后的組播數(shù)據(jù)報文進行三層組播轉發(fā),則將VXLAN解封裝后的組播數(shù)據(jù)報文發(fā)送至網(wǎng)關VXLAN交換機的網(wǎng)板。

優(yōu)選地,在步驟201中,網(wǎng)關VXLAN交換機的接口板在對組播數(shù)據(jù)報文進行VXLAN解封裝之前,可進一步執(zhí)行以下步驟:從組播數(shù)據(jù)報文的VXLAN封裝頭中識別出虛擬網(wǎng)絡標識(VNID);

基于此,作為一個優(yōu)選實施例,步驟201中,網(wǎng)關VXLAN交換機的接口板可基于該識別出的VNID確定VXLAN解封裝后的組播數(shù)據(jù)報文進行三層組播轉發(fā),具體可包括:

從本接口板本地的MAC表中查找與所述VNID和所述VXLAN解封裝后的組播數(shù)據(jù)報文的目的MAC地址匹配的MAC表項,如果查找到,則,

當查找到的所述MAC表項的出接口為第一虛擬端口,且所述VXLAN解封裝后的組播數(shù)據(jù)報文的目的MAC地址為組播MAC地址、目的IP地址為組播IP地址,則確定VXLAN解封裝后的組播數(shù)據(jù)報文進行三層組播轉發(fā)。

這里,第一虛擬端口所表示的意義在下文進行了描述,這里暫不贅述。

作為本發(fā)明的一個實施例,當上述查找到的MAC表項的出接口不為第一虛擬端口,則在VXLAN解封裝后的組播數(shù)據(jù)報文的目的MAC地址為組播MAC地址、目的IP地址為組播IP地址時,可按照普通的二層組播數(shù)據(jù)報文轉發(fā)的方式轉發(fā)所述VXLAN解封裝后的組播數(shù)據(jù)報文,不再展開描述。

本發(fā)明中,接口板本地的MAC表可以是接口板按照類似現(xiàn)有MAC表的學習方式學習得到的,也可以是主控板直接配置的,還可以是主控板按照類似現(xiàn)有MAC表的學習方式學習并下發(fā)給本接口板的,本發(fā)明并不具體限定。

作為本發(fā)明的一個實施例,步驟201中,為了保證VXLAN解封裝后的組播數(shù)據(jù)報文從接口板順利發(fā)送至網(wǎng)板,一種較佳的實現(xiàn)方式是接口板對VXLAN解封裝后的組播數(shù)據(jù)報文進行用于轉發(fā)至網(wǎng)板的封裝,為便于描 述,這里將該內部封裝簡稱為第一內部封裝。如此,步驟201中,接口板將VXLAN解封裝后的組播數(shù)據(jù)報文發(fā)送至網(wǎng)關VXLAN交換機的網(wǎng)板可包括:

步驟a1,將VXLAN解封裝后的組播數(shù)據(jù)報文進行第一內部封裝。

這里,第一內部封裝包含:第一目的芯片標識(mod)和第一目的端口標識(port),第一目的mod為第一虛擬芯片的標識,第一目的port為第一虛擬端口的標識;

優(yōu)選地,作為本發(fā)明一個實例,第一虛擬芯片可為預先配置的用于指示網(wǎng)板可繼續(xù)執(zhí)行查表進行組播數(shù)據(jù)報文轉發(fā)的虛擬芯片,第一虛擬端口可為預先配置的用于指示由網(wǎng)板代理三層組播轉發(fā)的虛擬端口,這里的代理三層組播轉發(fā)具體為:繼續(xù)執(zhí)行查表進行組播數(shù)據(jù)報文轉發(fā)。

步驟a2,在本接口板僅連接一個網(wǎng)板時,通過本接口板連接網(wǎng)板的互連口發(fā)送第一內部封裝的組播數(shù)據(jù)報文;在本接口板連接多個網(wǎng)板時,通過與多個網(wǎng)板分別連接的互連口中的一個互連口發(fā)送第一內部封裝的組播數(shù)據(jù)報文。

實際應用中,在本接口板連接多個網(wǎng)板時,本接口板與多個網(wǎng)板分別連接的互連口可聚合成一個聚合組。如此,在步驟a2中,通過與多個網(wǎng)板分別連接的互連口中的一個互連口發(fā)送第一內部封裝的組播數(shù)據(jù)報文可包括:從所述聚合組中選擇一個互連口,通過選擇的一個互連口發(fā)送第一內部封裝的組播數(shù)據(jù)報文。這里,從所述聚合組中選擇一個互連口的方式有多種,比如隨機選擇一個互連口,或者按照一定的算法比如通過哈希算法選擇一個互連口等,本發(fā)明并不具體限定。

通過上述步驟a1和步驟a2,網(wǎng)關VXLAN交換機的接口板會將VXLAN解封裝后的組播數(shù)據(jù)報文順利發(fā)送至網(wǎng)關VXLAN交換機的網(wǎng)板。

步驟202,網(wǎng)關VXLAN交換機的網(wǎng)板接收接口板發(fā)送的組播數(shù)據(jù)報文,確定接收的組播數(shù)據(jù)報文由本網(wǎng)板進行三層組播轉發(fā),則在本網(wǎng)板本地的三層組播組表中找到與組播數(shù)據(jù)報文的目的IP地址和目的MAC地址匹配 的三層組播組表項,在所述三層組播組表項中的組播組成員端口為VXLAN隧道口時,將通過所述組播組成員端口發(fā)送的組播數(shù)據(jù)報文的源MAC地址修改為網(wǎng)關VXLAN交換機的網(wǎng)關MAC地址,將修改后的組播數(shù)據(jù)報文發(fā)送至網(wǎng)關VXLAN交換機上與所述組播組成員端口相關聯(lián)的接口板(該接口板簡稱匹配接口板)。

本步驟202中的VXLAN隧道口是一個虛擬的概念,作為本發(fā)明一個實施例,本步驟202中的VXLAN隧道口可通過VXLAN隧道封裝索引表示,比如VXLAN隧道口為Tunnel1(Tunnel1為VXLAN隧道封裝索引)。

本發(fā)明中,所述三層組播組表項中的組播組成員端口可不止一個,基于此,所述三層組播組表項中的組播組成員端口數(shù)量大于1時,本步驟202可針對每一組播組成員端口,其會先識別組播組成員端口是否為VXLAN隧道口,在該組播組成員端口為VXLAN隧道口時執(zhí)行上述的將通過組播組成員端口發(fā)送的組播數(shù)據(jù)報文的源MAC地址修改為所述VXLAN交換機的網(wǎng)關MAC地址,將修改后的組播數(shù)據(jù)報文發(fā)送至匹配接口板。反之,在該組播組成員端口不為VXLAN隧道口,比如為虛擬局域網(wǎng)絡(VLAN)端口,則可執(zhí)行其它操作。由于本專利重點是跨VXLAN的組播數(shù)據(jù)報文轉發(fā),因此,組播組成員端口不為VXLAN隧道口的情況不是本專利的重點,這里不展開描述。

還有,本發(fā)明中,如上所述,所述三層組播組表項中的組播組成員端口可不止一個,基于此,當所述三層組播組表項中的組播組成員端口數(shù)量大于1時,由于網(wǎng)板只接收到一份組播數(shù)據(jù)報文,基于此,網(wǎng)板可依據(jù)組播組成員端口的數(shù)量對組播數(shù)據(jù)報文進行復制,復制的組播數(shù)據(jù)報文的數(shù)量等于組播組成員端口的數(shù)量,之后,將復制的組播數(shù)據(jù)報文分配給各個組播組成員端口,以保證最終每一組播組成員端口都會分配到一份復制的組播數(shù)據(jù)報文,基于此,上述步驟202中所述的通過所述組播組成員端口發(fā)送的組播數(shù)據(jù)報文就為組播組成員端口分配的一份復制的組播數(shù)據(jù)報文。

基于上面步驟201描述的第一內部封裝,則較佳地,步驟202中,網(wǎng)板確定接收的組播數(shù)據(jù)報文由本網(wǎng)板進行三層組播轉發(fā)可包括:

從接收的組播數(shù)據(jù)報文的第一內部封裝頭中確定出第一目的mod和第一目的port;如果確定出的第一目的mod為上述的第一虛擬芯片的標識,第一目的port為上述的第一虛擬端口的標識,則對組播數(shù)據(jù)報文的第一內部封裝進行解封裝,如果解封裝后的組播數(shù)據(jù)報文的目的MAC地址為組播MAC地址、目的IP地址為組播IP地址,則確定接收的組播數(shù)據(jù)報文由本網(wǎng)板進行三層組播轉發(fā)。

作為本發(fā)明的一個實施例,則上述中,當確定目的mod不為上述的第一虛擬芯片的標識,和/或目的port不為上述的第一虛擬端口的標識,則可以不對組播數(shù)據(jù)報文的第一內部封裝進行解封裝,直接按照第一內部封裝的目的port繼續(xù)轉發(fā)組播數(shù)據(jù)報文即可,這類似現(xiàn)有網(wǎng)板轉發(fā)組播數(shù)據(jù)報文的方式,不再展開描述。

本步驟202中,網(wǎng)板本地的三層組播組表可以是主控板按照類似現(xiàn)有三層組播組表的學習方式學習并下發(fā)給網(wǎng)板的,本發(fā)明并不具體限定。

作為本發(fā)明的一個實施例,本步驟202中所述將修改后的組播數(shù)據(jù)報文發(fā)送至匹配接口板具體實現(xiàn)時包括:

步驟b1,依據(jù)所述組播組成員端口確定目標出端口,選擇所述目標出端口所在的接口板為匹配接口板。

這里,依據(jù)所述組播組成員端口確定目標出端口可包括:

步驟b11,在本地找到與所述組播組成員端口相關聯(lián)的VXLAN隧道對應的下一跳表項;

步驟b12,在所述下一跳表項中僅有一個下一跳時,確定所述下一跳表項中所述下一跳為目標下一跳,在所述下一跳表項中有兩個以上下一跳時,從所述下一跳表項中的兩個以上下一跳中選擇一個下一跳確定為目標下一跳。這里,從所述下一跳表項中的兩個以上下一跳中選擇一個下一跳的方式 可有多種方式,比如隨機選擇一個,或者按照設定的選擇方式比如哈希算法等選擇,本發(fā)明并不具體限定;

步驟b13,在所述下一跳表項中與所述目標下一跳對應的出端口為單一的物理端口時,確定所述單一的物理端口為目標出端口;在所述下一跳表項中與所述目標下一跳對應的出端口為至少兩個物理端口聚合形成的聚合端口,確定所述聚合端口中一個物理端口為所述目標出端口。

這里,所述聚合端口中一個物理端口是從聚合端口中選擇出的。其中,從聚合端口中選擇一個物理端口的方式可有多種方式,比如隨機選擇一個,或者按照設定的選擇方式比如哈希算法等選擇,本發(fā)明并不具體限定。

步驟b2,對修改后的組播數(shù)據(jù)報文進行第二內部封裝,將第二內部封裝的報文發(fā)送至匹配接口板;第二內部封裝包含:組播組成員端口對應的VXLAN隧道封裝表項索引和虛擬轉發(fā)實例(VFI:Virtual Forwarding Instance)。

優(yōu)選地,組播組成員端口對應的VXLAN隧道封裝表項索引一般存放在組播組成員端口對應的VXLAN隧道封裝表項中,組播組成員端口對應的VFI一般存放在組播組成員端口對應的VFI表項中。

其中,VXLAN隧道封裝表項、VFI表項可以是預先配置在網(wǎng)板上的,本發(fā)明并不具體限定。

通過步驟b1和步驟b2的描述可以看出,最終,匹配接口板接收的來自網(wǎng)板的組播數(shù)據(jù)報文是執(zhí)行了第二內部封裝的報文。

步驟203,網(wǎng)關VXLAN交換機上的匹配接口板接收網(wǎng)板發(fā)送的組播數(shù)據(jù)報文,對接收的組播數(shù)據(jù)報文進行VXLAN封裝并向VXLAN轉發(fā)。

基于上面步驟202限定的網(wǎng)關VXLAN交換機上的網(wǎng)板如何將修改后的組播數(shù)據(jù)報文發(fā)送至網(wǎng)關VXLAN交換機上的匹配接口板,則優(yōu)選地,本步驟203中對接收的組播數(shù)據(jù)報文進行VXLAN封裝并向VXLAN轉發(fā)可包括:

從組播數(shù)據(jù)報文的第二內部封裝頭中確定出VXLAN隧道封裝表項索引和VFI并對組播數(shù)據(jù)報文的第二內部封裝進行解封裝,依據(jù)所述VXLAN隧 道封裝表項索引在本地找到對應的VXLAN隧道封裝表項,從預先設置的VFI和VNID之間的映射關系中找到與該確定出的VFI具有映射關系的VNID,利用所述VXLAN隧道封裝表項和找到的VNID對組播數(shù)據(jù)報文進行VXLAN封裝并通過該找到的VXLAN隧道封裝表項中的出端口發(fā)送。

這里,利用所述VXLAN隧道封裝表項和找到的VNID對組播數(shù)據(jù)報文進行VXLAN封裝具體可為:利用所述VXLAN隧道封裝表項中的VXLAN隧道封裝信息對組播數(shù)據(jù)報文進行VXLAN外層頭封裝,利用找到的VNID對組播數(shù)據(jù)報文進行VXLAN字段(實質為VNID字段)的封裝。這里VXLAN外層頭至少包含外層以太(ETH)封裝,其中,外層以太(ETH)封裝至少包含外層源MAC地址、外層目的MAC地址、外層源IP地址、外層目的IP地址等。

作為本發(fā)明的一個實施例,這里,通過該找到的VXLAN隧道封裝表項中的出端口發(fā)送可為:識別該找到的VXLAN隧道封裝表項中的出端口,如果該出端口為單一的物理端口,則直接通過該單一的物理端口發(fā)送,而如果該出端口為至少兩個物理端口聚合形成的聚合端口,則就需要從聚合端口中選擇一個物理端口,通過該選擇的物理端口發(fā)送。需要說明的是,這里從聚合端口中選擇一個物理端口的方式不再隨機,其必須最終保證選擇的物理端口與上述網(wǎng)板在確定目標出端口時選擇的物理端口一致。至于具體實現(xiàn)時如何保證接口板最終選擇的物理端口與上述網(wǎng)板在確定目標出端口時選擇的物理端口一致,本發(fā)明并不具體限定,其可有多種實現(xiàn)方式,比如網(wǎng)板按照哈希方式選擇物理端口,接口板也同樣按照哈希方式選擇物理端口等。

本發(fā)明中,作為一個實施例,接口板本地的VXLAN隧道封裝表項可以是預先配置在接口板上的,本發(fā)明并不具體限定。

至此,完成圖2所示的流程。

通過圖2所示流程可以看出,本發(fā)明中,網(wǎng)關VXLAN交換機的網(wǎng)板不再使用僅具有報文轉發(fā)功能的芯片,而是使用具有轉發(fā)功能和表項功能的芯片比如與接口板相同的交換芯片,這樣,當網(wǎng)關VXLAN交換機通過接口板 接收到VXLAN封裝的組播數(shù)據(jù)報文時,對組播數(shù)據(jù)報文進行VXLAN解封裝;確定VXLAN解封裝后的組播數(shù)據(jù)報文進行三層組播轉發(fā)時,將所述VXLAN解封裝后的組播數(shù)據(jù)報文發(fā)送至網(wǎng)板;之后,在本網(wǎng)板本地的三層組播組表中找到與組播數(shù)據(jù)報文的目的IP地址和目的MAC地址匹配的三層組播組表項,在所述三層組播組表項中的組播組成員端口為VXLAN隧道口時,將通過所述組播組成員端口發(fā)送的組播數(shù)據(jù)報文的源MAC地址修改為所述VXLAN交換機的網(wǎng)關MAC地址,將修改后的組播數(shù)據(jù)報文發(fā)送至VXLAN交換機上與所述組播組成員端口相關聯(lián)的接口板,由該組播組成員端口相關聯(lián)的接口板對組播數(shù)據(jù)報文進行VXLAN封裝并向VXLAN轉發(fā),即通過網(wǎng)關VXLAN交換機實現(xiàn)了VXLAN的三層網(wǎng)關功能,實現(xiàn)不同VXLAN之間的三層組播訪問,且整個過程只是在網(wǎng)關VXLAN交換機內部執(zhí)行,沒有浪費任何帶寬資源,做到了組播數(shù)據(jù)報文線速轉發(fā)的目的。

下面通過一個實施例對圖2所示流程進行描述:

以圖3所示的組網(wǎng)為例,在圖3中,虛擬機(VM:Virtual Machine)01至VM05為第一VXLAN中的設備,第一VXLAN的VNID為100,VM11至VM15為第二VXLAN中的設備,第二VXLAN的VNID為200。

網(wǎng)關VXLAN交換機連接在第一VXLAN和第二VXLAN之間,其包含主控板、接口板和網(wǎng)板。主控板在本申請中不重點涉及,圖3未示出。網(wǎng)板采用具有轉發(fā)功能和表項功能的芯片,以與接口板中的交換芯片相同為例。圖3僅示出VXLAN交換機的三個接口板為例。

以VM01發(fā)送組播數(shù)據(jù)報文為例,則,

網(wǎng)關VXLAN交換機的接口板1通過本地端口(圖3以端口10為例)收到來自第一VXLAN中VM01發(fā)送的組播數(shù)據(jù)報文。為便于描述,這里將接收的組播數(shù)據(jù)報文稱為報文0。接口板1收到的報文0帶有對應第一VXLAN的VXLAN封裝,VXLAN封裝至少包含第一VXLAN的VNID100以及第一VXLAN對應的VXLAN外層頭(圖3所示的報文0的VXLAN外層頭包含 外層ETH封裝,外層ETH封裝以包含外層源MAC地址、外層目的MAC地址、外層源IP地址、外層目的IP地址封裝為例),圖3簡單示出了帶有VXLAN封裝的報文結構。

接口板1從VXLAN封裝中獲取VNID100,之后對報文0進行VXLAN解封裝,為便于描述,這里將VXLAN解封裝后的報文0記為報文1;

接口板1使用報文1的目的MAC地址和獲取的VNID100作為關鍵字在接口板1本地的MAC表中查找匹配的MAC表項。

接口板1查找到匹配的MAC表項,接口板1發(fā)現(xiàn)查找到的MAC表項的出接口為第一虛擬端口、且報文1的目的MAC地址為組播MAC地址、目的IP地址為組播IP地址,則確定報文1需要三層組播轉發(fā)。

接口板1對報文1進行第一內部封裝,第一內部封裝的第一目的mod為第一虛擬芯片的標識(圖3以chip01為例),第一內部封裝的第一目的port為第一虛擬端口的標識(圖3以Port1為例)。為便于描述,這里將第一內部封裝后的報文1稱為報文2。

如圖3所示,接口板1通過聚合了互連口11、互連口12、互連口13的聚合組與各網(wǎng)板連接,則接口板1從本接口板1連接各網(wǎng)板的聚合組中選擇一個互連口,比如選擇圖3所示的互連口11將報文2發(fā)送至網(wǎng)板1。接口板1選擇互連口的方式可預先設置,比如哈希算法,通過對報文2的目的IP地址進行哈希運算,選擇編號與哈希運算結果對應的互連口。

網(wǎng)板1接收到報文2,從報文2的第一內部封裝頭中識別出第一目的mod和第一目的port分別為chip01和Port1,正好依次是第一虛擬芯片的標識和第一虛擬端口的標識,則對報文2的第一內部封裝進行解封裝(即恢復了上述的報文1)。

網(wǎng)板1發(fā)現(xiàn)報文1的目的MAC地址為組播MAC地址、目的IP地址為組播IP地址,確定本網(wǎng)板1需要對報文1進行三層組播轉發(fā)。

網(wǎng)板1依據(jù)報文1的目的IP地址和目的MAC地址在本網(wǎng)板1本地的三層組播組表中查找到匹配的三層組播組表項。

網(wǎng)板1發(fā)現(xiàn)三層組播組表項中存在三個組播組成員端口。假如這三個組播組成員端口分別記為Port11、Port12、Port13(這三個組播組成員端口在圖3未示出)。

網(wǎng)板1復制三份報文1,分別記為報文11、報文12、報文13,復制的這三份報文分別分配給三個組播組成員端口Port11、Port12、Port13。假如報文11分配給Port11、報文12分配給Port12、報文13分配給Port13。

以Port11為例,Port12、Port13原理類似,網(wǎng)板1發(fā)現(xiàn)Port11為VXLAN隧道口,則將報文11的源MAC地址修改為網(wǎng)關VXLAN交換機的網(wǎng)關MAC地址;為便于描述,這里將源MAC地址修改后的報文11稱為報文3。

網(wǎng)板1在本地找到與VXLAN隧道口相關聯(lián)的VXLAN隧道對應的下一跳表項,假如發(fā)現(xiàn)該找到的下一跳表項中僅有一個下一跳,且該下一跳的出端口為至少兩個物理端口聚合形成的聚合端口,則選擇聚合端口中一個物理端口為目標出端口,而該目標出端口所在的接口板為組播組成員端口Port11相關聯(lián)的接口板,為便于描述,這里假設該接口板為接口板2。

網(wǎng)板1在本地VXLAN隧道封裝表項中找到組播組成員端口Port11對應的VXLAN隧道封裝表項,以及在本地VFI表項中找到組播組成員端口Port11對應的VFI表項;

網(wǎng)板1對報文3進行第二內部封裝,為便于描述,這里將第二內部封裝的報文3稱為報文4。第二內部封裝包含網(wǎng)板1找到的VXLAN隧道封裝表項的索引、以及網(wǎng)板1找到的VFI表項中的VFI;

網(wǎng)板1通過本網(wǎng)板1連接接口板2的互連口將報文4發(fā)送至接口板2。

接口板2接收網(wǎng)板發(fā)送的報文4,從報文4的第二內部封裝頭中確定出VXLAN隧道封裝表項索引和VFI并對報文4的第二內部封裝進行解封裝(即恢復了上述的報文3)。

接口板2依據(jù)所述VXLAN隧道封裝表項索引在本地找到對應的VXLAN隧道封裝表項,從預先設置的VFI和VNID之間的映射關系中找到與該確定出的VFI具有映射關系的VNID(實質為第二VXLAN的VNID200),利用 找到的VXLAN隧道封裝表項和找到的VNID(實質為第二VXLAN的VNID200)對報文3進行VXLAN封裝。為便于描述,這里將VXLAN封裝的報文3稱為報文5。這里利用找到的VXLAN隧道封裝表項和找到的VNID對報文3進行VXLAN封裝具體為:利用找到的VXLAN隧道封裝表項中的VXLAN隧道封裝信息對報文3進行VXLAN外層頭的封裝,利用找到的VNID(實質為第二VXLAN的VNID200)對報文3進行VXLAN字段(實質為VNID字段)的封裝。圖3所示的報文3的VXLAN封裝中以VXLAN外層頭的外層ETH封裝包含外層源MAC地址、外層目的MAC地址、外層源IP地址、外層目的IP地址為例。

接口板2依據(jù)找到的VXLAN隧道封裝表項中的出端口發(fā)送報文5。這里,具體實現(xiàn)時,接口板2依據(jù)找到的VXLAN隧道封裝表項中的出端口發(fā)送報文5具體為:識別該找到的VXLAN隧道封裝表項中的出端口,該識別的出端口實質是網(wǎng)板找到的一個下一跳的出端口,如上所述,網(wǎng)板找到的一個下一跳的出端口為至少兩個物理端口聚合形成的聚合端口,基于此,這里識別出的VXLAN隧道封裝表項中的出端口就為聚合端口,如此,接口板2按照網(wǎng)板選擇目標出端口的方式從識別出的出端口中選擇一個物理端口,最終保證發(fā)送報文5的端口實質與網(wǎng)板選擇的目標出端口一致。

假如Port11關聯(lián)的組播組成員為VM11,則最終第二VXLAN的VM11會收到VM01發(fā)送的組播數(shù)據(jù)報文。類似的原理,假如Port12關聯(lián)的組播組成員為VM12,Port13關聯(lián)的組播組成員為VM13,則第二VXLAN的VM12、VM13也會收到VM01發(fā)送的組播數(shù)據(jù)報文。即通過網(wǎng)關VXLAN交換機實現(xiàn)了從第一VXLAN至第二VXLAN的組播數(shù)據(jù)報文轉發(fā)。

至此,完成圖3所示的流程。

以上對本發(fā)明提供的方法進行了描述,下面對本發(fā)明提供的設備進行描述:

參見圖4,圖4為本發(fā)明提供的設備結構圖。該設備應用于作為網(wǎng)關的VXLAN交換機,所述VXLAN交換機至少由接口板、網(wǎng)板組成,接口板、 網(wǎng)板的個數(shù)均為1個以上,網(wǎng)板采用具有轉發(fā)功能和表項功能的芯片,如圖4所示,該設備可包括:

接口板處理單元,處于所述VXLAN交換機的接口板,用于接收VXLAN封裝的組播數(shù)據(jù)報文,對組播數(shù)據(jù)報文進行VXLAN解封裝,確定VXLAN解封裝后的組播數(shù)據(jù)報文進行三層組播轉發(fā),則將VXLAN解封裝后的組播數(shù)據(jù)報文發(fā)送至所述VXLAN交換機的網(wǎng)板;以及,接收網(wǎng)板發(fā)送的組播數(shù)據(jù)報文,對接收的組播數(shù)據(jù)報文進行VXLAN封裝并向VXLAN轉發(fā);

網(wǎng)板處理單元,處于所述VXLAN交換機的網(wǎng)板,用于接收接口板發(fā)送的組播數(shù)據(jù)報文,確定接收的組播數(shù)據(jù)報文由本網(wǎng)板進行三層組播轉發(fā),則在本網(wǎng)板本地的三層組播組表中找到與組播數(shù)據(jù)報文的目的IP地址和目的MAC地址匹配的三層組播組表項,在所述三層組播組表項中的組播組成員端口為VXLAN隧道口時,將通過所述組播組成員端口發(fā)送的組播數(shù)據(jù)報文的源MAC地址修改為所述VXLAN交換機的網(wǎng)關MAC地址,將修改后的組播數(shù)據(jù)報文發(fā)送至VXLAN交換機上與所述組播組成員端口相關聯(lián)的接口板。

優(yōu)選地,所述接口板處理單元在對組播數(shù)據(jù)報文進行VXLAN解封裝之前進一步包括:從組播數(shù)據(jù)報文的VXLAN封裝頭中識別出VNID;

基于此,所述接口板處理單元通過以下步驟確定VXLAN解封裝后的組播數(shù)據(jù)報文進行三層組播轉發(fā):從本接口板本地的MAC表中查找到與所述VNID和所述VXLAN解封裝后的組播數(shù)據(jù)報文的目的MAC地址匹配的MAC表項,當所述MAC表項的出接口為第一虛擬端口,且所述VXLAN解封裝后的組播數(shù)據(jù)報文的目的MAC地址為組播MAC地址、目的IP地址為組播IP地址,則確定VXLAN解封裝后的組播數(shù)據(jù)報文進行三層組播轉發(fā)。

優(yōu)選地,所述接口板處理單元通過以下步驟將VXLAN解封裝后的組播數(shù)據(jù)報文發(fā)送至所述VXLAN交換機的網(wǎng)板:

將VXLAN解封裝后的組播數(shù)據(jù)報文進行第一內部封裝,第一內部封裝包含:第一目的芯片標識mod和第一目的端口標識port,第一目的mod為第一虛擬芯片的標識,第一目的port為第一虛擬端口的標識;

在本接口板僅連接一個網(wǎng)板時,通過本接口板連接網(wǎng)板的互連口發(fā)送第一內部封裝的組播數(shù)據(jù)報文;在本接口板連接多個網(wǎng)板時,通過與多個網(wǎng)板分別連接的互連口中的一個互連口發(fā)送第一內部封裝的組播數(shù)據(jù)報文;

基于此,所述網(wǎng)板處理單元通過以下步驟確定接收的組播數(shù)據(jù)報文由本網(wǎng)板進行三層組播轉發(fā):

從接收的組播數(shù)據(jù)報文的第一內部封裝頭中確定出第一目的mod和第一目的port;如果確定出的第一目的mod為所述第一虛擬芯片的標識,第一目的port為所述第一虛擬端口的標識,則對組播數(shù)據(jù)報文的第一內部封裝進行解封裝,如果解封裝后的組播數(shù)據(jù)報文的目的MAC地址為組播MAC地址、目的IP地址為組播IP地址,則確定接收的組播數(shù)據(jù)報文由本網(wǎng)板進行三層組播轉發(fā)。

優(yōu)選地,所述網(wǎng)板處理單元通過以下步驟將修改后的組播數(shù)據(jù)報文發(fā)送至所述VXLAN交換機上與所述組播組成員端口相關聯(lián)的接口板:依據(jù)所述組播組成員端口確定目標出端口,選擇所述目標出端口所在的接口板為與所述組播組成員端口相關聯(lián)的接口板對修改后的組播數(shù)據(jù)報文進行第二內部封裝,將第二內部封裝的報文發(fā)送至所述目標出端口所在的接口板;第二內部封裝包含:所述組播組成員端口對應的VXLAN隧道封裝表項的索引和VFI;

基于此,所述接口板處理單元通過以下步驟對組播數(shù)據(jù)報文進行VXLAN封裝并向VXLAN轉發(fā):從組播數(shù)據(jù)報文的第二內部封裝頭中確定出VXLAN隧道封裝表項索引和VFI并對組播數(shù)據(jù)報文的第二內部封裝進行解封裝,依據(jù)所述VXLAN隧道封裝表項索引在本地找到對應的VXLAN隧道封裝表項,從預先設置的VFI和VNID之間的映射關系中找到與該確定出的VFI具有映射關系的VNID,利用所述VXLAN隧道封裝表項和找到的VNID對組播數(shù)據(jù)報文進行VXLAN封裝并通過該找到的VXLAN隧道封裝表項中的出端口發(fā)送。

優(yōu)選地,本發(fā)明中,所述網(wǎng)板處理單元通過以下步驟實現(xiàn)依據(jù)所述組播組成員端口確定目標出端口:

在本地找到與所述組播組成員端口相關聯(lián)的VXLAN隧道對應的下一跳表項;

在所述下一跳表項中僅有一個下一跳時,確定所述下一跳表項中所述下一跳為目標下一跳,在所述下一跳表項中有兩個以上下一跳時,從所述下一跳表項中的兩個以上下一跳中選擇一個下一跳確定為目標下一跳;

在所述下一跳表項中與所述目標下一跳對應的出端口為單一的物理端口時,確定所述單一的物理端口為目標出端口;在所述下一跳表項中與所述目標下一跳對應的出端口為至少兩個物理端口聚合形成的聚合端口,確定所述聚合端口中一個物理端口為所述目標出端口。

至此,完成圖4所示的設備結構圖。

作為本發(fā)明的一個實施例,本發(fā)明還提供了圖4所示設備的硬件結構圖。如圖5所示,該設備硬件結構可包括:

接口板和網(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所示的設備硬件結構圖。

以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含 在本發(fā)明保護的范圍之內。

當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1