本發(fā)明涉及通信技術(shù)領(lǐng)域,具體地,涉及一種TRILL(Transparent Interconnection of Lots of Links,多鏈接半透明互聯(lián))組播報文的轉(zhuǎn)發(fā)方法和裝置。
背景技術(shù):
TRILL網(wǎng)絡(luò)是一種大二層網(wǎng)絡(luò)技術(shù),其具有高效轉(zhuǎn)發(fā)、有效環(huán)路避免、快速收斂、部署方便、容易支持多租戶、平滑演進(jìn)等特點(diǎn),能滿足云計算時代下數(shù)據(jù)中心對網(wǎng)絡(luò)架構(gòu)的需求。
目前,大型數(shù)據(jù)中心網(wǎng)絡(luò)的TOR和網(wǎng)絡(luò)互連交換機(jī)按照胖樹(FATTREE)架構(gòu)大二層互連,為提高鏈路利用率,通常要求支持TRILL協(xié)議,即使用交換機(jī)作為TRILL網(wǎng)絡(luò)中的RB(Routing Bridge,路由網(wǎng)橋)來進(jìn)行報文轉(zhuǎn)發(fā)。而在報文轉(zhuǎn)發(fā)中,為了使TRILL組播報文本地終結(jié)和網(wǎng)絡(luò)側(cè)轉(zhuǎn)發(fā)同時有效,交換機(jī)普遍采用的方法是在其內(nèi)部執(zhí)行報文還回,下面參考圖1來具體說明。
圖1是具有還回結(jié)構(gòu)的基于流水線結(jié)構(gòu)的交換機(jī)的TRILL網(wǎng)絡(luò)的結(jié)構(gòu)示意圖,如圖1所示,TRILL網(wǎng)絡(luò)一般包括接口單元11、入口路由橋Ingress RB 12、存儲調(diào)度單元13和出口路由橋Egress RB 14,TRILL組播報文通過接口單元11進(jìn)入Ingress RB 12,在Ingress RB 12中通過流水線處理的形式獲取TRILL組播報文的網(wǎng)絡(luò)側(cè)出口信息,根據(jù)網(wǎng)絡(luò)側(cè)出口信息,存儲調(diào)度單元13進(jìn)行報文復(fù)制,并將復(fù)制的報文送入Egress RB 14,在Egress RB 14中,可先通過報文的標(biāo)志信號確定當(dāng)前報文是在TRILL網(wǎng)絡(luò)側(cè)進(jìn)行轉(zhuǎn)發(fā),再編輯報文并通過接口單元11輸出,從而實(shí)現(xiàn)了TRILL組播報文在TRILL網(wǎng)絡(luò)側(cè)的正常轉(zhuǎn)發(fā)。但是,如果在實(shí)現(xiàn)TRILL組播報文在TRILL網(wǎng)絡(luò)側(cè)的正常轉(zhuǎn)發(fā)的同時,還期望實(shí)現(xiàn)TRILL組播報文的本地終結(jié),則需要采用內(nèi)部還回方式,即在檢測到本地有接收者時,利用圖1中的虛線所示的內(nèi)部還回,把報文還回到入口處,進(jìn)行解封裝處理,獲取本地出口。
這種報文還回方式雖能使TRILL組播報文本地終結(jié)和網(wǎng)絡(luò)側(cè)轉(zhuǎn)發(fā)同時有效,但對于流水線結(jié)構(gòu)的交換機(jī)來說,復(fù)雜度和風(fēng)險度要明顯提高。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是提供一種TRILL組播報文的轉(zhuǎn)發(fā)方法和裝置,用于解決在實(shí)現(xiàn)TRILL組播報文本地終結(jié)和網(wǎng)絡(luò)側(cè)轉(zhuǎn)發(fā)同時有效時,報文還回會引入復(fù)雜度和風(fēng)險度的問題。
為了實(shí)現(xiàn)上述目的,本發(fā)明提供一種TRILL組播報文的轉(zhuǎn)發(fā)方法,應(yīng)用于流水線結(jié)構(gòu)的交換機(jī)的TRILL網(wǎng)絡(luò),且所述TRILL網(wǎng)絡(luò)至少包括接口單元、Ingress RB、存儲調(diào)度單元和Egress RB,所述TRILL組播報文的轉(zhuǎn)發(fā)方法包括:通過接口單元接收TRILL組播報文;在Ingress RB獲取所接收的TRILL組播報文的網(wǎng)絡(luò)側(cè)出口信息及本地出口信息;在存儲調(diào)度單元根據(jù)所述網(wǎng)絡(luò)側(cè)出口信息及所述本地出口信息進(jìn)行所述TRILL組播報文的復(fù)制;以及在Egress RB識別所復(fù)制的TRILL組播報文是網(wǎng)絡(luò)轉(zhuǎn)發(fā)報文或者本地出口報文,并根據(jù)識別結(jié)果對所復(fù)制的TRILL組播報文進(jìn)行編輯輸出。
可選地,所述Ingress RB至少包括報文解析模塊、隧道報文處理模塊、L2模塊和L3模塊;并且,所述在Ingress RB獲取所接收的TRILL組播報文的網(wǎng)絡(luò)側(cè)出口信息及本地出口信息包括:通過所述報文解析模塊解析所述TRILL組播報文;通過所述隧道報文處理模塊判斷解析出的所述TRILL組播報文是否需要本地解封裝;對不需要本地解封裝的所述TRILL組播報文,根據(jù)解析出的所述TRILL組播報文的組播索引在所述L3模塊查詢網(wǎng)絡(luò)側(cè)出口信息;以及對需要本地解封裝的所述TRILL組播報文,根據(jù)解析出的所述TRILL組播報文的組播索引在所述L3模塊查詢網(wǎng)絡(luò)側(cè)出口信息,以及在所述L2模塊進(jìn)行本地解封裝,以獲得剝?nèi)RILL隧道頭的內(nèi)層報文,并根據(jù)所述內(nèi)層報文的類型獲得一個或多個本地出口信息。
可選地,所述根據(jù)所述內(nèi)層報文的類型獲得一個或多個本地出口信息包括:若內(nèi)層報文是已知單播報文,則獲得一個本地出口信息;若內(nèi)層報文是未知單播報文、組播報文和廣播報文中的一者,則根據(jù)相應(yīng)報文的設(shè)置獲得多個本地出口信息。
可選地,所述在所述存儲調(diào)度單元根據(jù)所述網(wǎng)絡(luò)側(cè)出口信息及所述本地出口信息進(jìn)行所述TRILL組播報文的復(fù)制包括:為所復(fù)制的TRILL組播報文設(shè)置來自本地出口或網(wǎng)絡(luò)側(cè)出口的標(biāo)志位;以及所述在Egress RB識別所復(fù)制的TRILL組播報文是網(wǎng)絡(luò)轉(zhuǎn)發(fā)報文或者本地出口報文包括:識別所復(fù)制的TRILL組播報文的標(biāo)志位,并根據(jù)該標(biāo)志位判斷所復(fù)制的TRILL組播報文是網(wǎng)絡(luò)轉(zhuǎn)發(fā)報文或者本地出口報文。
可選地,所述根據(jù)識別結(jié)果對所復(fù)制的TRILL組播報文進(jìn)行編輯輸出包括:若所復(fù)制的TRILL組播報文是網(wǎng)絡(luò)轉(zhuǎn)發(fā)報文,則獲取TRILL組播報文在網(wǎng)絡(luò)側(cè)轉(zhuǎn)發(fā)需要的信息,并編輯TRILL頭,再轉(zhuǎn)發(fā)該TRILL組播報文;若所復(fù)制的TRILL組播報文是本地出口報文,則將TRILL頭剝掉,并進(jìn)行VLAN((Virtual Local Area Network,虛擬局域網(wǎng)))處理,再轉(zhuǎn)發(fā)該TRILL組播報文。
本發(fā)明還提供了一種TRILL組播報文的轉(zhuǎn)發(fā)裝置,應(yīng)用于流水線結(jié)構(gòu)的交換機(jī)的TRILL網(wǎng)絡(luò),且所述TRILL網(wǎng)絡(luò)至少包括接口單元、Ingress RB、存儲調(diào)度單元和Egress RB,所述TRILL組播報文的轉(zhuǎn)發(fā)裝置包括:接收模塊,用于通過接口單元接收TRILL組播報文;出口信息獲取模塊,用于在Ingress RB獲取所接收的TRILL組播報文的網(wǎng)絡(luò)側(cè)出口信息及本地出口信息;報文復(fù)制模塊,用于在存儲調(diào)度單元根據(jù)所述網(wǎng)絡(luò)側(cè)出口信息及所述本地出口信息進(jìn)行所述TRILL組播報文的復(fù)制;以及報文輸出模塊,用于在Egress RB識別所復(fù)制的TRILL組播報文是網(wǎng)絡(luò)轉(zhuǎn)發(fā)報文或者本地出口報文,并根據(jù)識別結(jié)果對所復(fù)制的TRILL組播報文進(jìn)行編輯輸出。
可選地,所述Ingress RB至少包括報文解析模塊、隧道報文處理模塊、L2模塊和L3模塊;并且,所述出口信息獲取模塊包括:解析子模塊,用于通過所述報文解析模塊解析所述TRILL組播報文;判斷子模塊,用于通過所述隧道報文處理模塊判斷解析出的所述TRILL組播報文是否需要本地解封裝;第一處理子模塊,用于對不需要本地解封裝的所述TRILL組播報文,根據(jù)解析出的所述TRILL組播報文的組播索引在所述L3模塊查詢網(wǎng)絡(luò)側(cè)出口信息;以及第二處理子模塊,用于對需要本地解封裝的所述TRILL組播報文,根據(jù)解析出的所述TRILL組播報文的組播索引在所述L3模塊查詢網(wǎng)絡(luò)側(cè)出口信息,以及在所述L2模塊進(jìn)行本地解封裝,以獲得剝?nèi)RILL隧道頭的內(nèi)層報文,并根據(jù)所述內(nèi)層報文的類型獲得一個或多個本地出口信息。
可選地,對于所述第二處理子模塊:若內(nèi)層報文是已知單播報文,則獲得一個本地出口信息;若內(nèi)層報文是未知單播報文、組播報文和廣播報文中的一者,則根據(jù)相應(yīng)報文的設(shè)置獲得多個本地出口信息。
可選地,所述TRILL組播報文的轉(zhuǎn)發(fā)裝置還包括:標(biāo)志位設(shè)置模塊,用于為所述報文復(fù)制模塊所復(fù)制的TRILL組播報文設(shè)置來自本地出口或網(wǎng)絡(luò)側(cè)出口的標(biāo)志位。
可選地,所述報文輸出模塊包括:識別子模塊,用于識別所復(fù)制的TRILL組播報文的標(biāo)志位,并根據(jù)該標(biāo)志位判斷所復(fù)制的TRILL組播報文是網(wǎng)絡(luò)轉(zhuǎn)發(fā)報文或者本地出口報文;網(wǎng)絡(luò)側(cè)報文編輯子模塊,用于在所復(fù)制的TRILL組播報文是網(wǎng)絡(luò)轉(zhuǎn)發(fā)報文時,獲取TRILL組播報文在網(wǎng)絡(luò)側(cè)轉(zhuǎn)發(fā)需要的信息,并編輯TRILL頭,再轉(zhuǎn)發(fā)該TRILL組播報文;以及本地報文編輯子模塊,用于在所復(fù)制的TRILL組播報文是本地出口報文時,將TRILL頭剝掉,并進(jìn)行VLAN處理,再轉(zhuǎn)發(fā)該TRILL組播報文。
通過上述技術(shù)方案,本發(fā)明的技術(shù)效果是:采用本發(fā)明的TRILL組播報文的轉(zhuǎn)發(fā)方法及裝置中涉及的方案,TRILL網(wǎng)絡(luò)能夠同時執(zhí)行網(wǎng)絡(luò)側(cè)轉(zhuǎn)發(fā)和本地解封裝,不通過還回結(jié)構(gòu),而是通過流水線的不同階段對網(wǎng)絡(luò)側(cè)轉(zhuǎn)發(fā)和本地解封裝進(jìn)行處理,實(shí)現(xiàn)了在Ingress RB端混合處理,在Egress RB端分類處理,從而避免了還回方式引入的復(fù)雜度、風(fēng)險和不確定性。
本發(fā)明的其它特征和優(yōu)點(diǎn)將在隨后的具體實(shí)施方式部分予以詳細(xì)說明。
附圖說明
附圖是用來提供對本發(fā)明的進(jìn)一步理解,并且構(gòu)成說明書的一部分,與下面的具體實(shí)施方式一起用于解釋本發(fā)明,但并不構(gòu)成對本發(fā)明的限制。在附圖中:
圖1是具有還回結(jié)構(gòu)的基于流水線結(jié)構(gòu)的交換機(jī)的TRILL網(wǎng)絡(luò)的結(jié)構(gòu)示意圖;
圖2是無還回結(jié)構(gòu)的基于流水線結(jié)構(gòu)的交換機(jī)的TRILL網(wǎng)絡(luò)的結(jié)構(gòu)示意圖;
圖3是本發(fā)明實(shí)施例所述的TRILL組播報文的轉(zhuǎn)發(fā)方法的流程示意圖;
圖4是本發(fā)明實(shí)施例中流水線形式的Ingress RB的結(jié)構(gòu)示意圖;
圖5是本發(fā)明實(shí)施例中Ingress RB獲取出口信息的流程示意圖;
圖6是本發(fā)明實(shí)施例所述TRILL組播報文的轉(zhuǎn)發(fā)裝置的結(jié)構(gòu)示意圖;
圖7是本發(fā)明實(shí)施例中的出口信息獲取模塊的結(jié)構(gòu)示意圖;
圖8是本發(fā)明實(shí)施例中的報文輸出模塊的結(jié)構(gòu)示意圖。
附圖標(biāo)記說明
11 接口單元 12 Ingress RB
13 存儲調(diào)度單元 14 Egress RB
41 報文解析模塊 42 隧道報文處理模塊
43 L2模塊 44 L3模塊
61 接收模塊 62 出口信息獲取模塊
63 報文復(fù)制模塊 64 報文輸出模塊
621 解析子模塊 622 判斷子模塊
623 第一處理子模塊 624 第二處理子模塊
641 識別子模塊 642 網(wǎng)絡(luò)側(cè)報文編輯子模塊
643 本地報文編輯子模塊
具體實(shí)施方式
以下結(jié)合附圖對本發(fā)明的具體實(shí)施方式進(jìn)行詳細(xì)說明。應(yīng)當(dāng)理解的是,此處所描述的具體實(shí)施方式僅用于說明和解釋本發(fā)明,并不用于限制本發(fā)明。
本發(fā)明實(shí)施例給出了一種TRILL組播報文的轉(zhuǎn)發(fā)方法,其應(yīng)用于流水線結(jié)構(gòu)的交換機(jī)的TRILL網(wǎng)絡(luò),如圖2所示,所述TRILL網(wǎng)絡(luò)至少包括接口單元11、Ingress RB 12、存儲調(diào)度單元13和Egress RB 14,但不包括如圖1中的虛線所示的還回結(jié)構(gòu)?;谌鐖D2所示的無還回結(jié)構(gòu)的TRILL網(wǎng)絡(luò),如圖3所示,本發(fā)明實(shí)施例所述的TRILL組播報文的轉(zhuǎn)發(fā)方法主要包括以下步驟:
步驟S301,通過接口單元11接收TRILL組播報文。
其中,該接口單元11是TRILL網(wǎng)絡(luò)實(shí)現(xiàn)與其他網(wǎng)絡(luò)或設(shè)備進(jìn)行信息交互的接口,該交互包括發(fā)送和接收,即接口單元除接收TRILL組播報文外,也能發(fā)送TRILL組播報文。
步驟S302,在Ingress RB 12獲取所接收的TRILL組播報文的網(wǎng)絡(luò)側(cè)出口信息及本地出口信息。
在流水線結(jié)構(gòu)的交換機(jī)的TRILL網(wǎng)絡(luò)中,Ingress RB 12的流程主要用于對報文進(jìn)行解封裝,以實(shí)現(xiàn)對報文目的出口的查找。
本實(shí)施例中,所述Ingress RB 12通過流水線處理的形式來獲取網(wǎng)絡(luò)側(cè)出口信息及本地出口信息,如圖4所示,流水線形式的Ingress RB 12主要包括報文解析模塊41、隧道報文處理模塊42、L2模塊43和L3模塊44。
其中,報文解析模塊41主要用于識別入口報文類型,比如可以判斷是否為TRILL隧道報文;還用于在識別入口報文類型后,解析出報文頭關(guān)鍵域段,比如mac頭、VLAN、TRILL頭等后級處理需要的域段。
其中,隧道報文處理模塊42主要用于處理前級(本實(shí)施例對應(yīng)為報文解析模塊41)識別出的隧道報文。對TRILL隧道報文來說,隧道報文處理模塊42更為具體的功能是判斷是否需要本地終結(jié),并給終結(jié)標(biāo)志位;同時,給出TRILL報文網(wǎng)絡(luò)側(cè)轉(zhuǎn)發(fā)需要的下一跳信息。
其中,L2模塊43的基本功能是完成本地交換出口的查詢。如果TRILL組播報文需要本地終結(jié),則會在該L2模塊43根據(jù)終結(jié)后報文DMAC及VLAN信息完成出口查詢。
其中,L3模塊44的基本功能是進(jìn)行路由查詢,進(jìn)行路由轉(zhuǎn)發(fā)。其中,TRILL網(wǎng)絡(luò)側(cè)報文轉(zhuǎn)發(fā)時會跳過路由查詢流程,復(fù)用L3模塊44的組播下一跳表項(xiàng),以獲取網(wǎng)絡(luò)側(cè)出口。
需說明的是,這四個模塊的功能的基本功能的具體實(shí)現(xiàn)可參考現(xiàn)有技術(shù)中的相關(guān)文獻(xiàn),本實(shí)施例主要是利用這四個模塊的基本功能來同時獲取TRILL組播報文的網(wǎng)絡(luò)側(cè)出口信息和本地出口信息。
具體地,基于上述流水線形式的Ingress RB 12,如圖5所示,本實(shí)施例中,在Ingress RB12獲取所接收的TRILL組播報文的網(wǎng)絡(luò)側(cè)出口信息及本地出口信息主要包括以下步驟:
步驟S501,通過所述報文解析模塊41解析TRILL組播報文。
其中,報文解析模塊41可通過以太網(wǎng)類型ethertype來識別TRILL報文。這里,通過對TRILL組播報文的解析可獲得報文的TRILL頭、MAC表項(xiàng)、組播索引以及指示報文是否需要本地解封裝的信息等。
步驟S502,通過所述隧道報文處理模塊42判斷解析出的所述TRILL組播報文是否需要本地解封裝。
其中,TRILL組播報文會進(jìn)行網(wǎng)絡(luò)側(cè)轉(zhuǎn)發(fā),但其在本地是否解封裝需要根據(jù)TRILL頭中的信息進(jìn)行查詢,從而決定是否進(jìn)行解封裝。舉例來說,是否進(jìn)行本地解封裝的判斷,是根據(jù)用戶配置表項(xiàng),入口報文trill頭及mac頭等相關(guān)信息進(jìn)行表項(xiàng)查詢而得到的結(jié)論。從最終的報文出口來看,TRILL組播報文進(jìn)來后,根據(jù)查表的結(jié)果不同,會有兩種結(jié)果:一是只進(jìn)行TRILL組播網(wǎng)絡(luò)側(cè)轉(zhuǎn)發(fā);二是同時進(jìn)行TRILL組播網(wǎng)絡(luò)側(cè)轉(zhuǎn)發(fā)和本地解封裝。
步驟S503,對不需要本地解封裝的所述TRILL組播報文,根據(jù)解析出的所述TRILL組播報文的組播索引在所述L3模塊44查詢網(wǎng)絡(luò)側(cè)出口信息。
其中,對于不需要本地解封裝的TRILL組播報文,即表明其不需要進(jìn)行本地終結(jié),而只需實(shí)現(xiàn)網(wǎng)絡(luò)側(cè)轉(zhuǎn)發(fā)。如此,根據(jù)解析出的TRILL組播報文的組播索引可以直接在L3模塊44中查詢網(wǎng)絡(luò)側(cè)出口信息。
步驟S504,對需要本地解封裝的所述TRILL組播報文,根據(jù)解析出的所述TRILL組播報文的組播索引在所述L3模塊44查詢網(wǎng)絡(luò)側(cè)出口信息,以及在所述L2模塊43進(jìn)行本地解封裝,以獲得剝?nèi)RILL隧道頭的內(nèi)層報文,并根據(jù)所述內(nèi)層報文的類型獲得一個或多個本地出口信息。
其中,解封裝的具體過程可以是:根據(jù)TRILL報文內(nèi)層MAC頭的DMAC和VLAN等信息,查詢二層轉(zhuǎn)發(fā)表,獲取出口信息。
該步驟S504中,通過L3模塊44獲取了TRILL組播報文的網(wǎng)絡(luò)側(cè)出口信息,通過L2模塊43獲取了TRILL組播報文的本地出口信息。即,本地解封裝是由L2模塊43實(shí)現(xiàn)的,其將剝?nèi)RILL隧道頭的內(nèi)層報文按照普通二層報文轉(zhuǎn)發(fā)流程進(jìn)行處理,并可根據(jù)處理結(jié)果,確定內(nèi)層報文的類型。
其中,根據(jù)所述內(nèi)層報文的類型獲得一個或多個本地出口信息包括:若內(nèi)層報文是已知單播報文,則獲得一個本地出口信息;若內(nèi)層報文是未知單播報文、組播報文或者廣播報文,則根據(jù)相應(yīng)報文的設(shè)置獲得多個本地出口信息。
如此,通過步驟S501-S504,實(shí)現(xiàn)了在Ingress RB 12的流水線的不同階段對網(wǎng)絡(luò)側(cè)轉(zhuǎn)發(fā)和本地解封裝的報文進(jìn)行處理,即利用無還回的純流水線結(jié)構(gòu)實(shí)現(xiàn)報文的網(wǎng)絡(luò)側(cè)轉(zhuǎn)發(fā)和本地解封裝同時進(jìn)行,使得網(wǎng)絡(luò)側(cè)出口信息和本地出口信息同時存在,從而有利于后續(xù)實(shí)現(xiàn)TRILL組播報文本地終結(jié)和網(wǎng)絡(luò)側(cè)轉(zhuǎn)發(fā)同時有效。
步驟S303,在存儲調(diào)度單元13根據(jù)所述網(wǎng)絡(luò)側(cè)出口信息及所述本地出口信息進(jìn)行所述TRILL組播報文的復(fù)制。
其中,存儲調(diào)度單元13根據(jù)所述網(wǎng)絡(luò)側(cè)出口信息及所述本地出口信息,可調(diào)度獲取相應(yīng)的出口,并將報文復(fù)制到獲取的出口。另外,在報文復(fù)制時,還可以為所復(fù)制的TRILL組播報文設(shè)置來自本地出口或網(wǎng)絡(luò)側(cè)出口的標(biāo)志位,該標(biāo)志位表明了所復(fù)制的報文來自本地出口或者網(wǎng)絡(luò)側(cè)出口。
步驟S304,在Egress RB 14識別所復(fù)制的TRILL組播報文是網(wǎng)絡(luò)轉(zhuǎn)發(fā)報文或者本地出口報文,并根據(jù)識別結(jié)果對所復(fù)制的TRILL組播報文進(jìn)行編輯輸出。
其中,Egress RB 14的識別過程主要是:可識別為所復(fù)制的TRILL組播報文設(shè)置的來自本地出口或網(wǎng)絡(luò)側(cè)出口的標(biāo)志位,并根據(jù)該標(biāo)志位判斷所復(fù)制的TRILL組播報文是網(wǎng)絡(luò)轉(zhuǎn)發(fā)報文或者本地出口報文。
其中,根據(jù)識別結(jié)果對所復(fù)制的TRILL組播報文進(jìn)行編輯輸出具體可以包括:若是網(wǎng)絡(luò)轉(zhuǎn)發(fā)報文,則獲取TRILL組播報文在網(wǎng)絡(luò)側(cè)轉(zhuǎn)發(fā)需要的信息,并編輯TRILL頭,再轉(zhuǎn)發(fā)該TRILL組播報文;若是本地出口報文,則將TRILL頭剝掉,并進(jìn)行VLAN處理,再轉(zhuǎn)發(fā)該TRILL組播報文。
其中,編輯TRILL頭可以包括:修改TRILL頭中的Egress nickname、Ingress nickname、VLAN、hop_cnt等信息,增加新的rbridge mac頭。
其中,將TRILL頭剝掉并進(jìn)行VLAN處理包括:剝掉外層mac頭和TRILL頭后,修改內(nèi)層mac頭的VLAN信息后進(jìn)行本地轉(zhuǎn)發(fā)。
綜上,本實(shí)施例中TRILL網(wǎng)絡(luò)同時執(zhí)行網(wǎng)絡(luò)側(cè)轉(zhuǎn)發(fā)和本地解封裝,不通過還回結(jié)構(gòu),而是通過流水線的不同階段對網(wǎng)絡(luò)側(cè)轉(zhuǎn)發(fā)和本地解封裝進(jìn)行處理,實(shí)現(xiàn)了在Ingress RB端混合處理,在Egress RB端分類處理,從而避免了還回方式引入的復(fù)雜度、風(fēng)險和不確定性。
基于與上述TRILL組播報文的轉(zhuǎn)發(fā)方法相同的發(fā)明思路,本發(fā)明另一實(shí)施例還提供了一種TRILL組播報文的轉(zhuǎn)發(fā)裝置,應(yīng)用于流水線結(jié)構(gòu)的交換機(jī)的TRILL網(wǎng)絡(luò),同樣地,所述TRILL網(wǎng)絡(luò)如圖2所示,包括接口單元11、Ingress RB 12、存儲調(diào)度單元13和Egress RB 14。如圖6所示,本實(shí)施例中的所述TRILL組播報文的轉(zhuǎn)發(fā)裝置包括:接收模塊61,用于通過接口單元接收TRILL組播報文;出口信息獲取模塊62,用于在Ingress RB獲取所接收的TRILL組播報文的網(wǎng)絡(luò)側(cè)出口信息及本地出口信息;報文復(fù)制模塊63,用于在存儲調(diào)度單元根據(jù)所述網(wǎng)絡(luò)側(cè)出口信息及所述本地出口信息進(jìn)行所述TRILL組播報文的復(fù)制;以及報文輸出模塊64,用于在Egress RB識別所復(fù)制的TRILL組播報文是網(wǎng)絡(luò)轉(zhuǎn)發(fā)報文或者本地出口報文,并根據(jù)識別結(jié)果對所復(fù)制的TRILL組播報文進(jìn)行編輯輸出。
進(jìn)一步地,如圖4所示,所述Ingress RB 12可以包括報文解析模塊41、隧道報文處理模塊42、L2模塊43和L3模塊44。據(jù)此,如圖7所示,本實(shí)施例的所述出口信息獲取模塊62可以包括:解析子模塊621,用于通過所述報文解析模塊解析所述TRILL組播報文;判斷子模塊622,用于通過所述隧道報文處理模塊判斷解析出的所述TRILL組播報文是否需要本地解封裝;第一處理子模塊623,用于對不需要本地解封裝的所述TRILL組播報文,根據(jù)解析出的所述TRILL組播報文的組播索引在所述L3模塊查詢網(wǎng)絡(luò)側(cè)出口信息;以及第二處理子模塊624,用于對需要本地解封裝的所述TRILL組播報文,根據(jù)解析出的所述TRILL組播報文的組播索引在所述L3模塊查詢網(wǎng)絡(luò)側(cè)出口信息,以及在所述L2模塊進(jìn)行本地解封裝,以獲得剝?nèi)RILL隧道頭的內(nèi)層報文,并根據(jù)所述內(nèi)層報文的類型獲得一個或多個本地出口信息。
其中,對于所述第二處理子模塊624:若內(nèi)層報文是已知單播報文,則獲得一個本地出口信息;若內(nèi)層報文是未知單播報文、組播報文或者廣播報文,則根據(jù)相應(yīng)報文的設(shè)置獲得多個本地出口信息。
進(jìn)一步地,所述TRILL組播報文的轉(zhuǎn)發(fā)裝置還可以包括:標(biāo)志位設(shè)置模塊(圖6中未示出),用于為所述報文復(fù)制模塊所復(fù)制的TRILL組播報文設(shè)置來自本地出口或網(wǎng)絡(luò)側(cè)出口的標(biāo)志位。
進(jìn)一步地,如圖8所示,所述報文輸出模塊64可以包括:識別子模塊641,用于識別所復(fù)制的TRILL組播報文的標(biāo)志位,并根據(jù)該標(biāo)志位判斷所復(fù)制的TRILL組播報文是網(wǎng)絡(luò)轉(zhuǎn)發(fā)報文或者本地出口報文;網(wǎng)絡(luò)側(cè)報文編輯子模塊642,用于在所復(fù)制的TRILL組播報文是網(wǎng)絡(luò)轉(zhuǎn)發(fā)報文時,獲取TRILL組播報文在網(wǎng)絡(luò)側(cè)轉(zhuǎn)發(fā)需要的信息,并編輯TRILL頭,再轉(zhuǎn)發(fā)該TRILL組播報文;以及本地報文編輯子模塊643,用于在所復(fù)制的TRILL組播報文是本地出口報文時,將TRILL頭剝掉,并進(jìn)行VLAN處理,再轉(zhuǎn)發(fā)該TRILL組播報文。
本實(shí)施例的TRILL組播報文的轉(zhuǎn)發(fā)裝置與上述TRILL組播報文的轉(zhuǎn)發(fā)方法的具體實(shí)施細(xì)節(jié)及效果相同或相近,在此不再贅述。
以上結(jié)合附圖詳細(xì)描述了本發(fā)明的優(yōu)選實(shí)施方式,但是,本發(fā)明并不限于上述實(shí)施方式中的具體細(xì)節(jié),在本發(fā)明的技術(shù)構(gòu)思范圍內(nèi),可以對本發(fā)明的技術(shù)方案進(jìn)行多種簡單變型,這些簡單變型均屬于本發(fā)明的保護(hù)范圍。
另外需要說明的是,在上述具體實(shí)施方式中所描述的各個具體技術(shù)特征,在不矛盾的情況下,可以通過任何合適的方式進(jìn)行組合。為了避免不必要的重復(fù),本發(fā)明對各種可能的組合方式不再另行說明。
此外,本發(fā)明的各種不同的實(shí)施方式之間也可以進(jìn)行任意組合,只要其不違背本發(fā)明的思想,其同樣應(yīng)當(dāng)視為本發(fā)明所公開的內(nèi)容。