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

一種報文轉(zhuǎn)發(fā)方法和裝置與流程

文檔序號:12623379閱讀:186來源:國知局
一種報文轉(zhuǎn)發(fā)方法和裝置與流程
本公開涉及通信技術(shù),特別涉及一種報文轉(zhuǎn)發(fā)方法和裝置。
背景技術(shù)
:為了滿足數(shù)據(jù)中心的需求,相關(guān)技術(shù)中提出了堆疊組網(wǎng),例如,CB(controlbridge,控制橋)之間通過堆疊鏈路連接形成CB堆疊系統(tǒng),PE(portextender,端口擴展)連接CB并作為CB的遠程接口板提供端口擴展功能,PE接收到的報文要上送CB,由CB進行查表轉(zhuǎn)發(fā)。為了節(jié)省PE向CB的上行鏈路,可以將多個獨立的PE之間也通過堆疊鏈路連接形成PE堆疊系統(tǒng),報文被該PE堆疊系統(tǒng)的入口PE接收后,經(jīng)過PE堆疊系統(tǒng)內(nèi)的報文轉(zhuǎn)發(fā)將報文送出堆疊系統(tǒng)上送至CB,或者PE堆疊系統(tǒng)將由CB接收的報文下發(fā)至接收者。當(dāng)前的PE堆疊系統(tǒng)在轉(zhuǎn)發(fā)報文時,需要在報文中插入標(biāo)簽tag,以使得堆疊系統(tǒng)內(nèi)的各個PE根據(jù)該tag進行報文轉(zhuǎn)發(fā),但是這種方式將限制PE堆疊的實現(xiàn)需要支持tag封裝的PE設(shè)備,比如,只能同廠家同型號的PE實現(xiàn)堆疊。技術(shù)實現(xiàn)要素:本公開實施例提供一種報文轉(zhuǎn)發(fā)方法和裝置,以實現(xiàn)不用tag封裝的PE堆疊系統(tǒng)內(nèi)的報文轉(zhuǎn)發(fā),使得PE堆疊系統(tǒng)的設(shè)備選擇更加靈活。具體地,本公開是通過如下技術(shù)方案實現(xiàn)的:第一方面,提供一種報文轉(zhuǎn)發(fā)方法,所述方法應(yīng)用于端口擴展PE堆疊 中的PE設(shè)備;所述方法包括:從本地入端口接收報文;根據(jù)所述本地入端口查找所存儲的本地轉(zhuǎn)發(fā)表項,通過所述本地轉(zhuǎn)發(fā)表項中與所述本地入端口相對應(yīng)的本地出端口對所述報文進行轉(zhuǎn)發(fā)。第二方面,提供一種報文轉(zhuǎn)發(fā)裝置,包括:報文接收模塊,用于從本地入端口接收報文;轉(zhuǎn)發(fā)處理模塊,用于根據(jù)所述本地入端口查找存儲的本地轉(zhuǎn)發(fā)表項,通過所述本地轉(zhuǎn)發(fā)表項中與本地入端口相對應(yīng)的本地出端口對報文進行轉(zhuǎn)發(fā)。本公開提供的報文轉(zhuǎn)發(fā)方法和裝置,通過由堆疊中的PE根據(jù)本地轉(zhuǎn)發(fā)表項進行報文轉(zhuǎn)發(fā),使得可以不再使用tag封裝的報文轉(zhuǎn)發(fā)方式,從而實現(xiàn)了PE堆疊系統(tǒng)的設(shè)備選擇更加靈活。附圖說明圖1示例了一種報文轉(zhuǎn)發(fā)的應(yīng)用場景;圖2示例了報文轉(zhuǎn)發(fā)方法應(yīng)用的組網(wǎng)結(jié)構(gòu);圖3示例了PE的結(jié)構(gòu);圖4示例了一種報文轉(zhuǎn)發(fā)方法的流程圖;圖5示例了另一種報文轉(zhuǎn)發(fā)方法的流程圖;圖6示例了表項轉(zhuǎn)換的流程圖;圖7示例了報文轉(zhuǎn)發(fā)路徑的示意圖;圖8示例了報文轉(zhuǎn)發(fā)路徑的示意圖;圖9示例了一種表項轉(zhuǎn)換的示意圖;圖10示例了另一種表項轉(zhuǎn)換的示意圖;圖11示例了端口確定的流程圖;圖12示例了堆疊間轉(zhuǎn)發(fā)示意圖;圖13示例了圖12的轉(zhuǎn)發(fā)流程圖;圖14示例了堆疊內(nèi)轉(zhuǎn)發(fā)示意圖;圖15示例了圖14的轉(zhuǎn)發(fā)流程圖;圖16示例了環(huán)堆系統(tǒng)圖;圖17示例了對應(yīng)圖16的組播轉(zhuǎn)發(fā)示意圖;圖18示例了組播下行的報文轉(zhuǎn)發(fā);圖19示例了組播下行轉(zhuǎn)發(fā)表項;圖20示例了組播下行報文轉(zhuǎn)發(fā)流程圖;圖21示例了PE的結(jié)構(gòu)框圖;圖22示例了一種報文轉(zhuǎn)發(fā)裝置的結(jié)構(gòu)圖;圖23示例了另一種報文轉(zhuǎn)發(fā)裝置的結(jié)構(gòu)圖。具體實施方式本公開實施例的報文轉(zhuǎn)發(fā),可以應(yīng)用于PE堆疊系統(tǒng)的報文轉(zhuǎn)發(fā),例如,由PE堆疊系統(tǒng)將源設(shè)備發(fā)送的報文上行轉(zhuǎn)發(fā)至CB,或者將CB發(fā)出的報文下行轉(zhuǎn)發(fā)至目的設(shè)備;并且,使用該方法在PE堆疊系統(tǒng)的各個PE設(shè)備之間轉(zhuǎn)發(fā)報文時,該報文不用進行tag封裝(例如,常用的Higig封裝),即用于實現(xiàn)無tag封裝的報文的PE堆疊轉(zhuǎn)發(fā)。圖1示例了一種報文轉(zhuǎn)發(fā)的應(yīng)用場景,如圖1所示,PC1、PC2和PC3可以是發(fā)送報文的源設(shè)備或者接收報文的目的設(shè)備(例如,PC1向PC3發(fā)送報文),在報文發(fā)送的過程中,由圖1中示例的PE堆疊系統(tǒng)或者CB堆疊系統(tǒng)進行轉(zhuǎn)發(fā)(當(dāng)然,實際應(yīng)用中也可以是單個CB或PE,本公開示例了堆疊實現(xiàn)的方式)。比如圖1的箭頭線所示意(該箭頭線只是用于表示報文的走向,并不代表實際的路徑設(shè)備),在PC1向PC3發(fā)送報文時,PC1將報文發(fā)送至PE堆疊系統(tǒng),由PE堆疊系統(tǒng)將報文上送CB進行查表轉(zhuǎn)發(fā)(PE相當(dāng)于CB的擴展端口,報文查表轉(zhuǎn)發(fā)處理仍然在CB執(zhí)行),然后再由PE堆疊系統(tǒng)將CB下發(fā)的報文發(fā)送至PC3。本公開實施例的報文轉(zhuǎn)發(fā)方法,將描述在上送CB或下發(fā)PC的報文轉(zhuǎn)發(fā)中,報文如何在PE堆疊系統(tǒng)內(nèi)部實現(xiàn)轉(zhuǎn)發(fā)。在描述PE堆疊系統(tǒng)內(nèi)部的報文轉(zhuǎn)發(fā)之前,結(jié)合圖2,簡單說明在該報文 轉(zhuǎn)發(fā)的方法描述中涉及到的組網(wǎng)結(jié)構(gòu)。如圖2所示,示例了兩個PE堆疊系統(tǒng),包括:由PE1、PE2、PE3和PE4組成的第一PE堆疊系統(tǒng),以及由PE5和PE6組成的第二PE堆疊系統(tǒng)。其中,PE堆疊系統(tǒng)是由多個PE連接組成,以第一PE堆疊系統(tǒng)為例,各個PE之間的連接關(guān)系可以參見圖2示例。每個PE都包括多個端口,其中,PE之間連接的端口稱為“堆疊口”(stackingport),屬于PE但是不是用于PE之間連接的端口稱為“非堆疊口”,該“堆疊口”和“非堆疊口”都是該PE的本地端口(localport),而站在某個PE的角度看其他PE,都可以稱為“遠端PE”,遠端PE的端口稱為“遠端端口”。以圖2中的PE2為例,該PE2包括端口:P1、S1和S2,其中,P1是非堆疊口,用于連接PC,S1和S2都是堆疊口,S1用于連接PE1,S2用于連接PE3;PE3稱為PE2的遠端PE,PE3上的端口S1相當(dāng)于PE2的遠端端口。此外,PE的非堆疊口可以用于連接PC或者CB,例如圖2的示例,PE2的端口P1連接PC1,PE3的端口P1連接PC2,PE5的端口P1連接PC3。并且,當(dāng)在802.1BR技術(shù)為基礎(chǔ)的CB-PE縱向堆疊系統(tǒng)中部署時,PE的端口還分配了PCID,作為端口標(biāo)識符。比如,PE2的用于連接PC1的端口的PCID是“100”,PE3的用于連接PC2的端口的PCID是“101”,而PE5上用于連接PC3的端口對應(yīng)的PCID可以為“200”,例如,如果報文中攜帶“100”,則該報文是從PC1發(fā)出或者要發(fā)送至PC1。該“100”設(shè)置在報文的E-tag的E-CID字段。PE還可以通過非堆疊口連接CB,例如,PE1通過其端口P1連接CB堆疊系統(tǒng)中的CB1的端口P1,PE4通過端口P1連接CB堆疊系統(tǒng)中的CB2的端口P1,并且通過端口P2連接CB堆疊系統(tǒng)中的CB2的端口P2,其他原理類似。在圖2中,為了進行報文轉(zhuǎn)發(fā),每一個PE設(shè)備,都包括控制平面和轉(zhuǎn)發(fā)平面,如圖3所示例的PE結(jié)構(gòu),控制平面31負(fù)責(zé)生成轉(zhuǎn)發(fā)報文依據(jù)的“轉(zhuǎn)發(fā)表項”,轉(zhuǎn)發(fā)平面32用于根據(jù)該“轉(zhuǎn)發(fā)表項”進行報文轉(zhuǎn)發(fā)。按照現(xiàn)有的PE堆疊的實現(xiàn),在轉(zhuǎn)發(fā)報文時(例如,將報文由PC向CB轉(zhuǎn)發(fā),或者將報 文由CB向PC轉(zhuǎn)發(fā)),PE堆疊系統(tǒng)的各個PE設(shè)備中,都會存儲相同的轉(zhuǎn)發(fā)表項,比如,在第一PE堆疊系統(tǒng)發(fā)送單播報文時(上行或下行),該第一PE堆疊系統(tǒng)中的PE1-PE4存儲一份完全相同的單播轉(zhuǎn)發(fā)表。本公開實施例中,每個PE設(shè)備都要進行表項轉(zhuǎn)換,就上述完全相同的轉(zhuǎn)發(fā)表項各自轉(zhuǎn)換為“本地轉(zhuǎn)發(fā)表項”,不同的PE生成的“本地轉(zhuǎn)發(fā)表項”是不同的,并各自根據(jù)自己的本地轉(zhuǎn)發(fā)表項進行報文轉(zhuǎn)發(fā)。圖4示例了從單個PE的角度來看,執(zhí)行的報文轉(zhuǎn)發(fā)方法,包括:401、從本地入端口接收報文;402、根據(jù)所述本地入端口查找所存儲的本地轉(zhuǎn)發(fā)表項,通過所述本地轉(zhuǎn)發(fā)表項中與所述本地入端口相對應(yīng)的本地出端口對所述報文進行轉(zhuǎn)發(fā)。上述的圖4描述了在本公開的報文轉(zhuǎn)發(fā)方法中,PE堆疊中的各個PE是如何轉(zhuǎn)發(fā)報文的,并且,由上述流程可以看到,PE是根據(jù)自身存儲的本地轉(zhuǎn)發(fā)表項進行報文轉(zhuǎn)發(fā)。在轉(zhuǎn)發(fā)報文時,PE可以根據(jù)報文進入該PE的本地入端口,查找本地轉(zhuǎn)發(fā)表項,將報文由本地轉(zhuǎn)發(fā)表項中與本地入端口對應(yīng)的本地出端口發(fā)出??梢姡谠摲椒ㄖ?,PE都是依據(jù)本地的端口進行報文轉(zhuǎn)發(fā),這種方式使得即使對報文不進行tag封裝,PE仍然可以根據(jù)本地轉(zhuǎn)發(fā)表項轉(zhuǎn)發(fā)報文,從而擺脫對tag封裝的依賴,提高PE堆疊實現(xiàn)中設(shè)備選擇的靈活性。在另一個例子中,PE在根據(jù)本地轉(zhuǎn)發(fā)表項轉(zhuǎn)發(fā)報文時,如果報文進入PE的本地入端口是非堆疊口,那么可以按照圖4示例的方式,根據(jù)本地入端口查找本地轉(zhuǎn)發(fā)表項轉(zhuǎn)發(fā)。而如果報文進入PE的本地入端口是堆疊口,那么為了使得對報文的轉(zhuǎn)發(fā)更加準(zhǔn)確,可以使用綜合根據(jù)本地入端口和擴展通道標(biāo)識進行報文轉(zhuǎn)發(fā)的方式。例如,可以參見圖5所示的流程,當(dāng)PE接收報文的本地入端口為邊緣非堆疊口時,比如可以是圖2中的PE1和PE2的P1端口,那么PE可以在步驟502中在報文中增加擴展通道標(biāo)識ECID。這樣當(dāng)攜帶ECID的報文在PE堆疊系統(tǒng)內(nèi)轉(zhuǎn)發(fā),由堆疊中的某個PE的堆疊口進入PE時,該PE在進行查表轉(zhuǎn)發(fā)時,可以是根據(jù)本地入端口(即堆疊口)和報文中的擴展通道標(biāo)識 查找存儲的本地轉(zhuǎn)發(fā)表項,通過本地轉(zhuǎn)發(fā)表項中與所述本地入端口和擴展通道標(biāo)識對應(yīng)的本地出端口對報文進行轉(zhuǎn)發(fā),參見步驟504所示。此外,上述報文轉(zhuǎn)發(fā)方法中PE所依據(jù)的本地轉(zhuǎn)發(fā)表項,可以是各個PE根據(jù)堆疊轉(zhuǎn)發(fā)表項進行表項轉(zhuǎn)換得到,該“堆疊轉(zhuǎn)發(fā)表項”即上述提到的堆疊系統(tǒng)中的各PE設(shè)備上存儲的完全相同的一份轉(zhuǎn)發(fā)表項,通常該表項中可以包括報文的目的端口信息(即報文由堆疊系統(tǒng)的哪個端口出去),該目的端口位于堆疊系統(tǒng)中的某個PE上,那么對于該PE來說,堆疊轉(zhuǎn)發(fā)表項中的目的端口是其本地端口,而對于其他PE來說,該目的端口是遠端端口。本步驟中,每個PE都要對該堆疊轉(zhuǎn)發(fā)表項進行解析,解析的目的是轉(zhuǎn)換成用于本PE設(shè)備轉(zhuǎn)發(fā)報文依據(jù)的本地轉(zhuǎn)發(fā)表項,而本地轉(zhuǎn)發(fā)表項中包括的是PE的本地端口。PE可以按照圖6所示的流程進行表項轉(zhuǎn)換得到本地轉(zhuǎn)發(fā)表項,包括:601、根據(jù)所述PE堆疊的堆疊拓?fù)湫畔?,按照預(yù)設(shè)規(guī)則計算轉(zhuǎn)發(fā)報文到堆疊轉(zhuǎn)發(fā)表項中的目的端口的報文轉(zhuǎn)發(fā)路徑;602、確定所述報文轉(zhuǎn)發(fā)路徑經(jīng)過的本地端口,并根據(jù)所述本地端口生成所述本地轉(zhuǎn)發(fā)表項。結(jié)合圖6和圖7的示例,來說明表項轉(zhuǎn)換的原理,假設(shè)某報文轉(zhuǎn)發(fā)對應(yīng)的“堆疊轉(zhuǎn)發(fā)表項”中包括了報文的入端口為PE2的端口P1,并指定了報文的出端口(即目的端口)為PE4的端口P2。在進行表項轉(zhuǎn)換時,PE可以根據(jù)該報文的入端口、出端口,并結(jié)合堆疊拓?fù)湫畔ⅲ嬎銏笪牡竭_出端口所經(jīng)過的路徑。該堆疊拓?fù)湫畔⒅傅氖牵琍E堆疊系統(tǒng)中各個PE之間的連接關(guān)系(例如,PE2通過堆疊口S1連接PE1的堆疊口S2),即,每個PE都知道PE堆疊系統(tǒng)的連接結(jié)構(gòu),在此基礎(chǔ)上,各PE使用相同的堆疊內(nèi)部選路算法,計算在該連接結(jié)構(gòu)的堆疊系統(tǒng)內(nèi)經(jīng)過怎樣的報文轉(zhuǎn)發(fā)路徑將報文從入端口送到出端口。由于使用的選路算法相同,各個PE得到的路徑通常是相同的,例如是圖7所示的PE2(端口P1)——PE2(端口S1)——PE1(端口S2)——PE1(端口S1)——PE4(端口S2)——PE4(端口P2)的路徑。以PE1為例,按照上述計算得到的路徑,PE可以獲知,報文是從其端口S2進入PE1,并從端口S1出PE1,即報文轉(zhuǎn)發(fā)路徑上經(jīng)過的本地端口是S2和S1。據(jù)此,PE1生成的本地轉(zhuǎn)發(fā)表項中包括該S2和S1,比如,表項中包括的表項下發(fā)位置是入口S2,并且報文轉(zhuǎn)發(fā)的本地出端口是S1,PE1向S2口下發(fā)重定向的表項,該重定向的表項用于指示S2口“在接收到某某條件的報文時,將該報文由S1口發(fā)出”(某某條件,例如是匹配E-CID等)。不論是報文的上行轉(zhuǎn)發(fā)或者下行轉(zhuǎn)發(fā),表項轉(zhuǎn)換的原理是相同的,都是通過路徑計算得到報文轉(zhuǎn)發(fā)路徑上經(jīng)過的本地端口,并生成包含該本地端口的本地轉(zhuǎn)發(fā)表項,這樣各個PE就能根據(jù)該本地轉(zhuǎn)發(fā)表項進行報文轉(zhuǎn)發(fā)。在現(xiàn)有的封裝tag的方式中,tag中封裝了報文的源地址和目的地址等信息,各個PE設(shè)備自身是沒有本地轉(zhuǎn)發(fā)表項的,只能通過解析報文中的tag獲取目的地址等信息并進行轉(zhuǎn)發(fā),如果取消了tag封裝,PE將無法轉(zhuǎn)發(fā)報文;相對的,本公開實施例中,即使不封裝tag,各個PE自身已經(jīng)具有了“本地轉(zhuǎn)發(fā)表項”,能夠正常轉(zhuǎn)發(fā)報文,相當(dāng)于各PE只管做好報文在自身的轉(zhuǎn)發(fā)即可,各個PE逐跳接力最終將報文送出堆疊。由于取消了tag,各PE之間直接采用1BR報文進行傳遞,也極大了擴展了PE設(shè)備選取的靈活性,例如,不同芯片廠家之間的PE進行混堆,或者同芯片廠家不同芯片之間進行混堆,即使是不支持tag(例如,Higig)的設(shè)備也能參與PE堆疊,PE堆疊的組網(wǎng)更加靈活,也能節(jié)省組網(wǎng)成本。如下,分別以單播上行、單播下行、組播下行等應(yīng)用場景為例,詳細描述本公開實施例的報文轉(zhuǎn)發(fā)方法中PE如何進行表項轉(zhuǎn)換。單播上行:單播報文的上行轉(zhuǎn)發(fā),即PE堆疊系統(tǒng)要將PC發(fā)送的報文向CB轉(zhuǎn)發(fā),例如,若PC1向PC3發(fā)送報文,PC1可以先將報文發(fā)送至第一PE堆疊系統(tǒng),由第一PE堆疊系統(tǒng)將報文上送至CB查表。如下的表1,示例了一種單播報文轉(zhuǎn)發(fā)時,第一PE堆疊系統(tǒng)中的PE1-PE4上都存儲的一份相同的堆疊轉(zhuǎn)發(fā)表項,在該表項中,以第一條表項為例,在PE2的端口P1上下發(fā)重定向規(guī)則,指明報文的目的出端口是TrunkPort,包 括PE1的端口P1,以及PE4的端口P1和P2,也就是說,當(dāng)PE2的端口P1接收到匹配的報文時,將報文發(fā)往PE1的端口P1或者PE4的端口P1和P2送出堆疊。表1堆疊轉(zhuǎn)發(fā)表項位置動作物理出端口PE2/P1端口重定向TrunkPort(PE1/P1,PE4/P1,PE4/P2)PE3/P1端口重定向TrunkPort(PE1/P1,PE4/P1,PE4/P2)以該表1中的第一條表項為例,描述各個PE是如何將這份相同的表項轉(zhuǎn)換為各自的本地轉(zhuǎn)發(fā)表項:以PE1為例,PE1的控制平面根據(jù)上述的報文入端口、出端口以及堆疊拓?fù)湫畔ⅲㄟ^堆疊內(nèi)部的選路算法,計算出報文從PE2的端口P1進入堆疊,到從第一條表項規(guī)定的物理出端口“TrunkPort(PE1/P1,PE4/P1,PE4/P2)”出堆疊,所經(jīng)過的路徑,該路徑可以是按照最短路徑選路算法計算得到,該路徑參見圖8所示。PE1得到了路徑上經(jīng)過的本地端口,該本地端口包括:用于接收報文的本地入端口(即堆疊口S2)、以及用于發(fā)出報文的本地出端口(即本地端口P1、以及堆疊口S1)。根據(jù)上述得到的本地端口,PE1獲知了兩方面信息,一方面信息是報文重定向規(guī)則的下發(fā)位置,即接收報文的堆疊口S2;另一方面信息是報文的目的端口,即本地端口P1、以及堆疊口S1,并將這兩個localport作為一個聚合口TrunkPort。由此得到PE1的本地轉(zhuǎn)發(fā)表項如下:表2PE1的本地轉(zhuǎn)發(fā)表項位置動作物理出端口S2ACL重定向(匹配E-CID-100)Trunk(P1,S1)如表2所示,PE1根據(jù)該本地轉(zhuǎn)發(fā)表項,向S2(命令下發(fā)位置)下發(fā)重定向規(guī)則,指示報文的本地出端口是“Trunk(P1,S1)”。其中,該重定向規(guī)則是ACL重定向規(guī)則,因為規(guī)則下發(fā)的報文本地入端口是一個用于PE間連接 的堆疊口,堆疊口的特點是經(jīng)過的流量可能不僅有PC1的流量,還有其他流量(比如PC2發(fā)出經(jīng)PE3、PE2到達PE1),因此堆疊口的報文匹配包括兩方面,即要同時匹配報文進入設(shè)備的端口號以及報文中的E-tag中的E-CID(擴展通道標(biāo)識)字段,根據(jù)圖8所示,該報文要匹配“由PE1的端口S2進入,且報文的E-tag中的E-CID字段是100(即該報文是PE2的PCID為100的端口接收的報文)”。PE1根據(jù)表2的表項,在其本地的堆疊口S2上下發(fā)ACL重定向規(guī)則,匹配入端口S2和報文的E-CID100,S2口接收到報文后,如果報文滿足重定向規(guī)則,就將報文送往目的端口localportP1以及S1。上述是以PE1為例,說明了PE1如何將表1中的表項“PE2/P1,端口重定向,TrunkPort(PE1/P1,PE4/P1,PE4/P2)”轉(zhuǎn)換為表2所示的PE1的本地轉(zhuǎn)發(fā)表項,并且PE1根據(jù)該表項向本地端口下發(fā)了ACL重定向規(guī)則,用于指示報文在PE1的轉(zhuǎn)發(fā)。其他PE(例如,PE2、PE3、PE4)對上述表1中的表項的轉(zhuǎn)換方式與PE1相同,不再詳述,參見圖9所示的表項轉(zhuǎn)換的對應(yīng)關(guān)系,圖9示例了堆疊轉(zhuǎn)發(fā)表項在各個PE轉(zhuǎn)換后分別對應(yīng)的本地轉(zhuǎn)發(fā)表項。其中,需要說明的是,除了上述PE1得到的“ACL重定向規(guī)則”,PE設(shè)備的非堆疊口上下發(fā)的是“端口重定向規(guī)則”,“端口重定向規(guī)則”相比于“ACL重定向規(guī)則”來說,只需要報文匹配入端口即可。例如,以PE2為例,根據(jù)圖8所示的計算路徑,報文從PE2的本地端口P1進入,從PE2的本地端口S1發(fā)出,那么PE2的命令下發(fā)位置是P1,該P1是非堆疊口,采用端口重定向規(guī)則即可,只要報文是從P1進入,對應(yīng)的出端口是S1,參見圖9中PE2上對應(yīng)堆疊轉(zhuǎn)發(fā)表項第一條的本地轉(zhuǎn)發(fā)表項。此外,對于PE3,由于報文的選路算法計算的報文轉(zhuǎn)發(fā)路徑不會經(jīng)過PE3進行轉(zhuǎn)發(fā),因此PE3上不會有轉(zhuǎn)換的本地轉(zhuǎn)發(fā)表項。單播下行:在PE堆疊系統(tǒng)將PC發(fā)送的報文上送至CB后,CB經(jīng)過查表還會將報文發(fā)回PE堆疊系統(tǒng),由堆疊系統(tǒng)將報文最終發(fā)往目的設(shè)備例如PC3,因此,單播下行即PE堆疊系統(tǒng)將CB發(fā)送的報文向PC轉(zhuǎn)發(fā)。圖10示例了在單播下行報文轉(zhuǎn)發(fā)時,將堆疊轉(zhuǎn)發(fā)表項轉(zhuǎn)換為各個PE上對應(yīng)的本地轉(zhuǎn)發(fā)表項,表項轉(zhuǎn)換的原理與單播上行時類似,不再詳述。在單播下行的表項轉(zhuǎn)換,根據(jù)E-CID屬性值所在的位置以及堆疊的最短路徑算法,共同確定下行報文轉(zhuǎn)發(fā)經(jīng)過的PE和端口。參見圖10,以堆疊轉(zhuǎn)發(fā)表項中的第二條表項(101,PE3/P1)的轉(zhuǎn)換為例,結(jié)合圖2所示的組網(wǎng),E-CID101配置在PE3的端口P1上,如果站在PE1的角度,要尋址到E-CID101,由兩條路徑可選擇,PE1-PE4-PE3,或者,PE1-PE2-PE3,但是選路算法將選擇一條路。假設(shè)各個PE的選路算法都會選擇順時針方向的路徑,即PE1-PE4-PE3,那么報文在PE1的端口S1出,在PE4的出端口為S1,在PE3上的出端口是P1;而在PE2的角度來看,去往E-CID101的最短路徑只能是經(jīng)過PE2的S2直接到PE3,因此報文在PE2的出端口是PE2/S2??梢?,在單播下行的表項轉(zhuǎn)換時,每個PE將分別計算自己到堆疊轉(zhuǎn)發(fā)表項中的報文出端口的路徑,確定該路徑經(jīng)過的本地出端口,當(dāng)接收到報文時,將報文由本地出端口發(fā)出。此外,在進行表項轉(zhuǎn)換時,如果堆疊轉(zhuǎn)發(fā)表項中的目的端口為聚合口,那么在確定報文轉(zhuǎn)發(fā)路徑經(jīng)過的本地端口時,可以按照圖11的流程確定本地端口,包括:1101、分別計算到達所述聚合口中的各個端口的路徑,并根據(jù)所述路徑得到:作為部分所述聚合口的第一本地端口、以及到達位于遠端PE設(shè)備的聚合口時經(jīng)過的第二本地端口;例如,仍然結(jié)合圖8的示例,堆疊轉(zhuǎn)發(fā)表項中的目的端口即出端口是聚合口(trunkport),那么PE1在計算本地端口確定本地出端口時,計算到達聚合口中的各個端口的路徑,確定的第一本地端口是PE1的P1端口,確定的到達位于遠端PE設(shè)備即PE4的聚合口時經(jīng)過的第二本地端口是PE1的S1。而對于PE4來說,確定的第一本地端口是PE4的P1和P2,而第二本地端口是PE4的S2。1102、在確定所述第二本地端口與所述本地入端口不同時,將所述第一 本地端口和第二本地端口作為本地出端口;在確定所述第二本地端口與所述本地入端口相同時,將所述第一本地端口作為本地出端口。例如,對于PE1來說,報文是從S2進入PE1,即PE1的本地入端口是S2,而第二本地端口是S1,可見,第二本地端口與本地入端口不同,那么PE1可以將P1和S1作為本地出端口。而對于PE4來說,報文是從PE4的S2進入,即PE4的本地入端口是S2,而PE4的第二本地端口也是S2,那么第二本地端口與本地入端口相同,PE4可以將P1和P2作為本地出端口,而不將S2作為本地出端口。在上述描述單播上行和單播下行的“表項轉(zhuǎn)換”的基礎(chǔ)上,如下將結(jié)合圖9和圖10中的各個PE轉(zhuǎn)換后得到的本地轉(zhuǎn)發(fā)表項,說明PE堆疊系統(tǒng)根據(jù)該本地轉(zhuǎn)發(fā)表項進行單播報文轉(zhuǎn)發(fā)的過程,并且分別以堆疊間的單播報文轉(zhuǎn)發(fā)、和堆疊內(nèi)的單播報文轉(zhuǎn)發(fā)為例。如圖12的示例,圖12中用帶箭頭的虛點線表示報文轉(zhuǎn)發(fā)的行徑,并用圓圈中的數(shù)字表示該行徑上的各個轉(zhuǎn)發(fā)處理步驟,此外,由于圖12示例的是PC1發(fā)送報文至PC3的堆疊間轉(zhuǎn)發(fā),還需要依據(jù)PE5上的本地轉(zhuǎn)發(fā)表項如下:表3PE5的本地轉(zhuǎn)發(fā)表項E-CID物理出端口200PE5/P1圖13示出了圖12中的報文堆疊間轉(zhuǎn)發(fā)的步驟,如下:1001、PC1發(fā)送以太報文至PE2;其中,報文中攜帶目的設(shè)備PC3的MAC地址,PC1發(fā)送的該以太報文從PE2的端口P1進入堆疊。1002、PE2根據(jù)端口重定向,將報文從端口S1發(fā)往PE1;其中,PE2對接收到的PC1發(fā)送的報文,封裝成802.1BR報文,不帶Higtag,并在報文的E-CID字段填入端口標(biāo)識符100,100是PE2的端口P1分配的PCID,報文中的ingressE-CID填0;或者根據(jù)具體的芯片,也可以 是在E-CID填0,在ingressE-CID填100。并且,如上面實施例描述的,PE2會在其本地端口P1下發(fā)端口重定向規(guī)則,只要符合入端口匹配(由端口P1進),就將報文由堆疊口S1發(fā)出,參見圖9中的PE2上的第一條表項。則PE2根據(jù)端口重定向?qū)笪膹腟1發(fā)出。1003、PE1根據(jù)ACL重定向,將報文從P1送出,到達CB1;其中,PE1根據(jù)其本地轉(zhuǎn)發(fā)表項,已經(jīng)在本地的堆疊口S2下發(fā)了ACL重定向規(guī)則,只要報文從S2口進入PE1,并且報文中的E-tag中的E-CID是100,則將報文從Trunk(P1,S1)送出。本步驟中,PE1收到PE2發(fā)來的1BR報文,確定其命中了ACL重定向規(guī)則,且本地出端口是trunk口,則PE1從trunk口中隨機選擇一個送出報文即可(即從聚合口的其中一個端口發(fā)出一份報文即可),假設(shè)本實施例PE1將報文從本地端口P1送出,向上到達CB1。1004、CB1將報文查表轉(zhuǎn)發(fā),從CB1的端口P2發(fā)出;其中,CB1對于接收到的報文,根據(jù)DMAC+VLAN的方式查表得到目的E-CID是200,以及對應(yīng)的本地出端口是P2,則將200填入報文的E-tag的E-CID字段,替換原E-CID100,ingressE-CID仍舊填0,并將報文從P2發(fā)出。報文從CB1的端口P2發(fā)出后,將到達第二PE堆疊系統(tǒng)中的PE5,從PE5的端口P1進入第二PE堆疊系統(tǒng)。1005、PE5根據(jù)轉(zhuǎn)發(fā)表項,將報文從端口P1發(fā)出,到達PC3。其中,PE5根據(jù)上述表3所示的本地轉(zhuǎn)發(fā)表項,獲知E-CID200的報文對應(yīng)本地出端口是PE5/P1,則將報文從P1端口發(fā)出,同時剝?nèi)-tag。最終PC3接收到該報文,PC1發(fā)出的報文經(jīng)過第一PE堆疊系統(tǒng)、CB堆疊系統(tǒng)、第二PE堆疊系統(tǒng),到達了目的設(shè)備PC3,并且通過圖10所示流程可以看到,在該報文轉(zhuǎn)發(fā)的過程中,PE堆疊系統(tǒng)中的各個PE,都是根據(jù)本地轉(zhuǎn)發(fā)表項進行報文轉(zhuǎn)發(fā)的。圖14示例了堆疊內(nèi)轉(zhuǎn)發(fā)(即報文轉(zhuǎn)發(fā)依據(jù)同一個PE堆疊系統(tǒng))的行徑,PC1發(fā)送報文至PC2,并且,PE堆疊系統(tǒng)中的各個PE仍然依據(jù)圖9和圖10中轉(zhuǎn)換得到的本地轉(zhuǎn)發(fā)表項進行轉(zhuǎn)發(fā)。圖15示出了該堆疊內(nèi)轉(zhuǎn)發(fā)的流程:1201、PC1發(fā)送以太報文至PE2;其中,報文中攜帶目的設(shè)備PC2的MAC地址,PC1發(fā)送的該以太報文從PE2的端口P1進入堆疊。1202、PE2根據(jù)端口重定向,將報文從端口S1發(fā)往PE1;其中,PE2對接收到的PC1發(fā)送的報文,封裝成802.1BR報文,不帶Higtag,并在報文的E-CID字段填入端口標(biāo)識符100,,報文中的ingressE-CID填0。并且,如上面實施例描述的,PE2會在其本地端口P1下發(fā)端口重定向規(guī)則,只要符合入端口匹配(由端口P1進),就將報文由堆疊口S1發(fā)出,參見圖9中的PE2上的第一條表項。則PE2根據(jù)端口重定向?qū)笪膹腟1發(fā)出。1203、PE1根據(jù)ACL重定向,將報文從S1送出;其中,PE1根據(jù)其本地轉(zhuǎn)發(fā)表項,已經(jīng)在本地的堆疊口S2下發(fā)了ACL重定向規(guī)則,只要報文從S2口進入PE1,并且報文中的E-tag中的E-CID是100,則將報文從Trunk(P1,S1)送出。本步驟中,PE1收到PE2發(fā)來的1BR報文,確定其命中了ACL重定向規(guī)則,且本地出端口是trunk口,則PE1從trunk口中隨機選擇一個送出報文即可(即從聚合口的其中一個端口發(fā)出一份報文即可),假設(shè)本實施例PE1將報文從本地端口S1送出,不帶Higig,到達PE4。1204、PE4將報文從P1發(fā)往CB2;其中,PE4在通過堆疊口S2接收到報文后,也要進行ACL重定向,得到報文的本地出端口是Trunk(P1,P2),則PE4隨機選擇P1發(fā)出報文,報文到達CB2。1205、CB2將報文查表轉(zhuǎn)發(fā),從CB2的端口P2發(fā)出;其中,CB2對于接收到的報文,根據(jù)DMAC+VLAN的方式查表得到目的E-CID是101,以及對應(yīng)的本地出端口為trunk口,假設(shè)CB2將101填入報文的E-tag的E-CID字段,替換原E-CID100,并且為了實現(xiàn)源過濾,將ingressE-CID填100,并隨機選擇端口P2發(fā)出報文,到達第一PE堆疊系統(tǒng) 的PE4。1206、PE4將報文從端口S1發(fā)出,到達PE3;其中,結(jié)合圖10中的PE4的轉(zhuǎn)發(fā)表項,E-CID是101的報文,從PE4/S1口發(fā)出,則PE4將報文由S1口發(fā)出,報文到達PE3。1207、PE3將報文從端口P1發(fā)出,剝?nèi)-tag,PC2收到報文。其中,結(jié)合圖10中的PE3的轉(zhuǎn)發(fā)表項,E-CID是101的報文,從PE3/P1口發(fā)出,則PE3將報文由P1口發(fā)出,報文到達目的設(shè)備PC2。當(dāng)報文是多播報文時(例如,組播或廣播報文),報文在向CB發(fā)送時的上行轉(zhuǎn)發(fā)過程,與單播轉(zhuǎn)發(fā)上行的原理類似,不再贅述,但是在下行轉(zhuǎn)發(fā)時,多播報文與單播轉(zhuǎn)發(fā)有不同之處。以環(huán)堆情況下的組播轉(zhuǎn)發(fā)為例,在進入PE堆疊系統(tǒng)的入口PE后,入口PE會將該報文沿順時針和逆時針方向的本地出端口都發(fā)出一份,其余的PE為了避免報文形成環(huán)路,在組播轉(zhuǎn)發(fā)的堆疊口上的處理原則是:從最短路徑來的報文允許轉(zhuǎn)發(fā),從非最短路徑來的報文不允許轉(zhuǎn)發(fā),等價路徑只選其中一條。首先說明現(xiàn)有方式的做法:例如,參見圖16的示例,PE4、PE3、PE2和PE1形成環(huán)堆,組播報文從PE4進入該堆疊系統(tǒng),假設(shè)報文的組播地址中包括多個接收者PC,其中的兩個接收PC是PC1和PC2。PE4將報文從其本地端口S7和S8都發(fā)出,報文沿順時針和逆時針發(fā)送。根據(jù)上述的堆疊口轉(zhuǎn)發(fā)原則,在PE2上,當(dāng)PE2接收到S3來的報文時,確定端口S3和S4到入口PE4的距離相同(都是兩跳),但是必須選擇其中一個接收報文,另一個阻塞,以避免重復(fù)發(fā)送,則PE2可以接收逆時針方向從S3來的報文,復(fù)制給PC1,但是對于順時針方向從S4到達PE2的報文,PE2阻塞不繼續(xù)發(fā)送,相當(dāng)于順時針方向報文在PE2的S4端口被阻塞。同理,對于PE3來說,S6接收的報文是最短路徑來的,接收并復(fù)制給PC2,但是端口S5接收的逆時針方向的報文,不是距離PE4的最短路徑,被阻塞。與圖16示例的處理相對應(yīng)的,圖17示例了本公開實施例的組播轉(zhuǎn)發(fā)處 理方式,即,報文并不是在下一個PE的入口被阻塞,而是直接在上一個PE的出口阻塞。例如,在圖16中,PE2將報文從堆疊口S4逆時針發(fā)送至PE3,PE3在接收該報文的堆疊口S5阻塞報文,不繼續(xù)發(fā)送;而在圖17中,PE2不再將報文從堆疊口S4發(fā)出,直接在其本地端口阻塞報文。同理,在圖16中,將原本由PE2的堆疊口S4阻塞的順時針方向的報文,直接從PE3的本地堆疊口S5阻塞,不會發(fā)送至PE2。而對于PE從自身的哪個端口阻塞報文,可以根據(jù)堆疊組播的阻塞算法生成。綜上,PE在根據(jù)路徑生成組播轉(zhuǎn)發(fā)表時,還要根據(jù)堆疊組播的阻塞算法生成用于阻斷環(huán)路流量的本地阻塞端口,并且設(shè)置所述本地轉(zhuǎn)發(fā)表項中的本地出端口中刪除所述本地阻塞端口。結(jié)合圖18所示,示例了組播下行的報文轉(zhuǎn)發(fā),假設(shè)PC1是源設(shè)備,PC2、PC3和PC4是接收者,并且假設(shè)組E-CID是5000。圖19還示例了各個PE上的組播下行轉(zhuǎn)發(fā)表項,結(jié)合圖20的流程,描述PE堆疊系統(tǒng)的PE根據(jù)圖19的表項下行轉(zhuǎn)發(fā)組播報文的流程,包括:1701、CB1將報文從端口P1和P2發(fā)出;其中,假設(shè)CB1查表得到要達到該組播報文的目的設(shè)備,對應(yīng)的出端口是P1和P2,則CB1在報文中填入E-CID5000。報文從P1發(fā)出到達第一PE堆疊系統(tǒng),從PE1進入作為入口PE;報文從P2發(fā)出到達第二PE堆疊系統(tǒng),從PE5進入,PE5為入口PE。1702、PE1收到報文,從本地端口S1和S2發(fā)出;1703、PE2收到報文,根據(jù)圖19所示的下行本地轉(zhuǎn)發(fā)表項,將報文從P1和S2發(fā)出;其中,報文從P1發(fā)出后到達其中一個組播接收者PC4。1704、PE3收到報文,根據(jù)圖19所示的下行本地轉(zhuǎn)發(fā)表項,將報文從P1送出,同時剝?nèi)-tag,報文到達第二個組播接收者PC2。需要說明的是,PE3已經(jīng)根據(jù)堆疊組播的阻塞算法得到了本地阻塞端口是S2,因此,PE3接收到PE2發(fā)來的報文后,不會再繼續(xù)通過堆疊口S2往PE4發(fā)送,將逆時針方向報文在PE3處阻塞。圖19的表項出端口中也沒有 S2。1705、PE4接收到報文,查表發(fā)現(xiàn)沒有接收端口,不做處理。其中,PE4接收到的是PE1順時針發(fā)送的報文,并且,PE4也通過堆疊組播的阻塞算法得到了本地阻塞端口是S1,因此在圖19的PE4表項中的出端口不包括S1,則PE4將順時針報文在本地阻塞,不繼續(xù)發(fā)往PE3。1706、PE5將報文從P1發(fā)出,到達PC3。此外,當(dāng)PE堆疊系統(tǒng)的堆疊拓?fù)浒l(fā)生變化,或者PE的端口發(fā)生變化(例如,PE與CB連接的端口,或者PE之間連接的堆疊口)時,各個PE將獲取更新后的堆疊拓?fù)湫畔ⅲ⒏鶕?jù)更新后的堆疊拓?fù)湫畔⒅匦掠嬎惚镜囟丝?,更新用于報文轉(zhuǎn)發(fā)的本地轉(zhuǎn)發(fā)表項。另外,本公開實施例中的堆疊口不是1BR定義的cascadeport/upstreamport/extendedport中的任何一種,而是單獨的另外一類端口,無方向性。圖21提供了一種PE,該PE可以包括:處理器(processor)1801、通信接口(CommunicationsInterface)1802、存儲器(memory)1803和總線1804;處理器1801、通信接口1802、存儲器1803通過總線1804完成相互間的通信。通信接口1802用于與網(wǎng)元通信,比如與其他PE通信。處理器1801用于調(diào)用執(zhí)行存儲器1803中存儲的邏輯指令1805,處理器1801可以是一個中央處理器CPU,存儲器1803例如可以是非易失性存儲器(non-volatilememory)。所述的邏輯指令1805可以稱為報文轉(zhuǎn)發(fā)裝置,從邏輯上可以劃分為圖22所示的功能模塊,包括:報文接收模塊2201和轉(zhuǎn)發(fā)處理模塊2202;PE通過處理器執(zhí)行該邏輯指令,可以實現(xiàn)上述的報文轉(zhuǎn)發(fā)。其中,報文接收模塊2201,用于從本地入端口接收報文;轉(zhuǎn)發(fā)處理模塊2202,用于根據(jù)所述本地入端口查找存儲的本地轉(zhuǎn)發(fā)表項,通過所述本地轉(zhuǎn)發(fā)表項中與本地入端口相對應(yīng)的本地出端口對報文進行轉(zhuǎn)發(fā)。進一步的,當(dāng)所述本地入端口為邊緣非堆疊口時,所述報文接收模塊,還用于在從本地入端口接收報文之后,在所述報文中增加擴展通道標(biāo)識;轉(zhuǎn)發(fā)處理模塊,用于當(dāng)所述本地入端口為堆疊口時,根據(jù)本地入端口和報文中 的擴展通道標(biāo)識查找存儲的本地轉(zhuǎn)發(fā)表項,通過本地轉(zhuǎn)發(fā)表項中與所述本地入端口和擴展通道標(biāo)識對應(yīng)的本地出端口對所述報文進行轉(zhuǎn)發(fā)。圖23示例了另一種報文轉(zhuǎn)發(fā)裝置的結(jié)構(gòu),該裝置還可以包括:路徑計算模塊2203、表項生成模塊2204;其中,路徑計算模塊2203,用于根據(jù)所述PE堆疊的堆疊拓?fù)湫畔?,按照預(yù)設(shè)規(guī)則計算轉(zhuǎn)發(fā)報文到堆疊轉(zhuǎn)發(fā)表項中的目的端口的報文轉(zhuǎn)發(fā)路徑;表項生成模塊2204,用于確定所述報文轉(zhuǎn)發(fā)路徑經(jīng)過的本地端口,并根據(jù)所述本地端口生成所述本地轉(zhuǎn)發(fā)表項。進一步的,路徑計算模塊2203,用于根據(jù)所述堆疊轉(zhuǎn)發(fā)表項中的目的端口、以及進入所述PE堆疊的源端口,計算轉(zhuǎn)發(fā)報文由所述源端口至目的端口的報文轉(zhuǎn)發(fā)路徑;所述表項生成模塊2204,在確定所述報文轉(zhuǎn)發(fā)路徑經(jīng)過的本地端口時,包括:獲得所述報文轉(zhuǎn)發(fā)路徑經(jīng)過的用于接收報文的本地入端口、以及用于發(fā)出報文的本地出端口。進一步的,表項生成模塊2204可以包括:端口計算單元2301、端口選擇單元2302。端口計算單元2301,用于當(dāng)堆疊轉(zhuǎn)發(fā)表項中的目的端口為聚合口時,分別計算到達所述聚合口中的各個端口的路徑,并根據(jù)所述路徑得到:作為部分聚合口的第一本地端口、以及到達位于遠端PE設(shè)備的聚合口時經(jīng)過的第二本地端口;端口選擇單元2302,用于在確定所述第二本地端口與所述本地入端口不同時,將所述第一本地端口和第二本地端口作為本地出端口;在確定所述第二本地端口與所述本地入端口相同時,將所述第一本地端口作為本地出端口。進一步的,表項生成模塊2204還可以包括:阻塞算法單元2303,用于:當(dāng)所述報文是多播報文時,根據(jù)堆疊組播的阻塞算法生成用于阻斷環(huán)路流量的本地阻塞端口,并且設(shè)置所述本地轉(zhuǎn)發(fā)表項中的本地出端口中刪除所述本地阻塞端口。通過上述結(jié)構(gòu)的PE,可以根據(jù)本地轉(zhuǎn)發(fā)表項進行報文轉(zhuǎn)發(fā),并且還可以 將堆疊轉(zhuǎn)發(fā)表項轉(zhuǎn)換為本地轉(zhuǎn)換表項,使得PE可以不再依賴于tag封裝,提高了PE堆疊中設(shè)備選擇的靈活性。所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,上述描述的各個模塊的具體工作過程,可以參考前述方法實施例中的對應(yīng)過程,在此不再贅述。上述的報文轉(zhuǎn)發(fā)裝置的功能如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中?;谶@樣的理解,本公開的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(ROM,Read-OnlyMemory)、隨機存取存儲器(RAM,RandomAccessMemory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。以上所述僅為本公開的較佳實施例而已,并不用以限制本公開,凡在本公開的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應(yīng)包含在本公開保護的范圍之內(nèi)。當(dāng)前第1頁1 2 3 
當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1