本申請涉及通信網(wǎng)絡(luò)技術(shù)領(lǐng)域,特別涉及一種堆疊系統(tǒng)中的MAC地址信息同步方法及裝置。
背景技術(shù):以太網(wǎng)交換機(jī)堆疊技術(shù)可以將多個(gè)交換機(jī)互聯(lián)在一起,形成分布式交換架構(gòu),并作為一個(gè)邏輯交換實(shí)體運(yùn)行。從管理和配置的角度來看,一個(gè)分布式交換架構(gòu)看起來就像一臺(tái)交換設(shè)備;從性能的角度來看,一個(gè)分布式交換架構(gòu)中的每一個(gè)交換機(jī)都能針對本交換機(jī)的端口上的第二層、第三層數(shù)據(jù)流通信業(yè)務(wù),制定本地轉(zhuǎn)發(fā)策略。通過堆疊,多個(gè)交換設(shè)備可以互相連接起來形成一個(gè)“聯(lián)合設(shè)備”,可以將這個(gè)“聯(lián)合設(shè)備”稱為一個(gè)Stacking(堆疊系統(tǒng)),將組成Stacking的每一個(gè)交換設(shè)備稱為一個(gè)Slot(堆疊成員)。多個(gè)Slot組成一個(gè)Stacking之后,無論在管理還是在使用上,就都成為了一個(gè)整體。也就是說,用戶可以將這多個(gè)Slot看成單一設(shè)備進(jìn)行管理和使用。這樣既可以通過增加Slot來擴(kuò)展端口數(shù)量和交換能力,同時(shí)也可以通過多個(gè)Slot之間的相互備份增加整個(gè)Stacking的可靠性。圖1所示,3個(gè)設(shè)備:Slot1、Slot2和Slot3組成一個(gè)環(huán)形堆疊系統(tǒng)。每一個(gè)Slot上最多具有兩組堆疊口,分別記為P1和P2。一個(gè)Slot的堆疊口P1與相鄰的另一個(gè)Slot的堆疊口P2相連,組成環(huán)形堆疊系統(tǒng)。該環(huán)形堆疊系統(tǒng)中的每一個(gè)Slot通過聚合與交換機(jī)SW1和SW2連接。上行方向的單播流(目的MAC(MediaAccessControl,媒體訪問控制)地址為Mac2,源MAC地址為Mac1)經(jīng)該環(huán)形堆疊系統(tǒng)的Slot1轉(zhuǎn)發(fā)至SW2,從而,Slot1上學(xué)習(xí)到了源MAC地址:Mac1。而回復(fù)的下行方向的單播流(目的MAC地址為Mac1,源MAC地址是Mac2)經(jīng)聚合組Hash(哈希)計(jì)算后,并沒有從Slot1轉(zhuǎn)發(fā),而是從Slot2上進(jìn)入該環(huán)形堆疊系統(tǒng)。由于Slot2上并沒有學(xué)習(xí)到Mac1,Slot2查表發(fā)現(xiàn)該單播報(bào)文是目的MAC地址未知的單播報(bào)文,因此,將該單播報(bào)文在該環(huán)形堆疊系統(tǒng)內(nèi)廣播。這樣,不僅增加了額外帶寬的消耗,而且會(huì)使得目的設(shè)備(即MAC地址為Mac1的設(shè)備)收到多份報(bào)文。為了避免上述情況的發(fā)生,堆疊系統(tǒng)通常借助IPC(Inter-processCommunication,進(jìn)程間通信)通信技術(shù),在堆疊成員之間進(jìn)行MAC地址的同步處理。同步方式主要有定期批量同步方式和事件觸發(fā)方式兩種。定期批量同步方式是指:每一個(gè)堆疊成員定期(周期性)讀取本設(shè)備學(xué)習(xí)到的所有MAC地址信息,通過IPC通信手段,將這些MAC地址信息打包發(fā)送給其它堆疊成員。其它堆疊成員收到同步過來的MAC地址信息之后,確定是否需要同步,即,本設(shè)備上是否已經(jīng)存在該MAC地址信息,以及,合法性檢查;當(dāng)確定需要同步時(shí),則將該MAC地址信息配置到硬件FDB(ForwardingDatabase,轉(zhuǎn)發(fā)數(shù)據(jù)庫)中。事件觸發(fā)方式是指:每一個(gè)堆疊成員在學(xué)習(xí)到MAC地址或有MAC地址老化時(shí),進(jìn)行MAC地址信息的同步,過程同定期批量同步方式。其中,被同步的MAC地址信息可以是聚合組下學(xué)習(xí)到的MAC地址信息,也可以是任意其他端口學(xué)習(xí)到的MAC地址信息。上述現(xiàn)有的堆疊系統(tǒng)內(nèi)MAC地址信息的同步方法,必須借助IPC通信技術(shù),使用板間IPC消息傳遞被同步的MAC地址信息。這樣,同步發(fā)起端中的CPU(CentralProcessingUnit,中央處理器)需要組織MAC同步數(shù)據(jù)包(即板間IPC消息),被同步端中的CPU需要解析MAC同步數(shù)據(jù)包,確定是否需要同步,在確定需要同步后逐條配置到硬件FDB中??梢姡麄€(gè)同步過程嚴(yán)重消耗CPU的處理能力,占用CPU的開銷較大。
技術(shù)實(shí)現(xiàn)要素:本申請?zhí)峁┝艘环N堆疊系統(tǒng)中的MAC地址信息同步方法及裝置,以解決現(xiàn)有的堆疊系統(tǒng)內(nèi)MAC地址信息的同步方法存在的占用CPU的開銷較大的問題。本申請的技術(shù)方案如下:一方面,提供了一種堆疊系統(tǒng)中的MAC地址信息同步方法,堆疊系統(tǒng)中包括:多個(gè)成員設(shè)備,該方法應(yīng)用于成員設(shè)備,該方法包括:構(gòu)建MAC地址同步報(bào)文模板,其中,MAC地址同步報(bào)文模板中包括:源MAC地址域、VLANID域、目的MAC地址域和芯片間轉(zhuǎn)發(fā)信息結(jié)構(gòu),且目的MAC地址域的值是廣播地址;當(dāng)需要同步MAC地址信息時(shí),將該MAC地址信息中的MAC地址填充到源MAC地址域中,該MAC地址信息中的VLANID填充到VLANID域中,該MAC地址信息中的源端口信息填充到芯片間轉(zhuǎn)發(fā)信息結(jié)構(gòu)中,得到MAC地址同步報(bào)文;轉(zhuǎn)發(fā)芯片從本芯片的報(bào)文緩沖區(qū)中獲取到MAC地址同步報(bào)文,通過堆疊端口廣播MAC地址同步報(bào)文給堆疊系統(tǒng)中的其他成員設(shè)備,并禁止通過用戶業(yè)務(wù)端口轉(zhuǎn)發(fā)MAC地址同步報(bào)文。另一方面,還提供了一種堆疊系統(tǒng)中的MAC地址信息同步裝置,堆疊系統(tǒng)中包括:多個(gè)成員設(shè)備,該裝置應(yīng)用于成員設(shè)備,該裝置包括:構(gòu)建模塊,用于構(gòu)建MAC地址同步報(bào)文模板,其中,MAC地址同步報(bào)文模板中包括:源MAC地址域、VLANID域、目的MAC地址域和芯片間轉(zhuǎn)發(fā)信息結(jié)構(gòu),且目的MAC地址域的值是廣播地址;填充模塊,用于當(dāng)本成員設(shè)備需要同步MAC地址信息時(shí),將該MAC地址信息中的MAC地址填充到源MAC地址域中,該MAC地址信息中的VLANID填充到VLANID域中,該MAC地址信息中的源端口信息填充到芯片間轉(zhuǎn)發(fā)信息結(jié)構(gòu)中,得到MAC地址同步報(bào)文;發(fā)送模塊,用于觸發(fā)轉(zhuǎn)發(fā)芯片從本芯片的報(bào)文緩沖區(qū)中獲取到MAC地址同步報(bào)文,通過堆疊端口廣播MAC地址同步報(bào)文給堆疊系統(tǒng)中的其他成員設(shè)備,并禁止通過用戶業(yè)務(wù)端口轉(zhuǎn)發(fā)MAC地址同步報(bào)文。通過本申請的技術(shù)方案,預(yù)先構(gòu)建了一個(gè)MAC地址同步報(bào)文的模板,該模板中包括:源MAC地址域、VLANID域、目的MAC地址域和芯片間轉(zhuǎn)發(fā)信息結(jié)構(gòu),且目的MAC地址域的值固定設(shè)置為廣播地址,當(dāng)需要同步MAC地址信息時(shí),只需將該MAC地址信息中的MAC地址填充到模板的源MAC地址域中,該MAC地址信息中的VLANID填充到模板的VLANID域中,該MAC地址信息中的源端口信息填充到模板的芯片間轉(zhuǎn)發(fā)信息結(jié)構(gòu)中,從而得到一個(gè)MAC地址同步報(bào)文,然后,廣播該MAC地址同步報(bào)文給堆疊系統(tǒng)中的其他成員設(shè)備。這樣,同步發(fā)起端只需構(gòu)建模板和填充模板中的部分信息即可,而不需要每一個(gè)MAC同步數(shù)據(jù)包(即板間IPC消息)都單獨(dú)的組織構(gòu)造;并且,由于需要同步的MAC地址信息中的MAC地址作為MAC地址同步報(bào)文的源MAC地址、MAC地址信息中的VLANID作為MAC地址同步報(bào)文的VLANID,被同步端接收到MAC地址同步報(bào)文后,即可觸發(fā)源MAC地址學(xué)習(xí),CPU無需參與任何操作,從而,在同步發(fā)起端和被同步端都減少了CPU的開銷,實(shí)現(xiàn)了無IPC通信、低CPU開銷的MAC地址信息同步。附圖說明圖1是一種實(shí)際的堆疊系統(tǒng)的架構(gòu)示意圖;圖2是本申請的實(shí)施例一的堆疊系統(tǒng)中的MAC地址信息同步方法的流程圖;圖3是本申請的實(shí)施例一的MAC地址同步報(bào)文模板的一種格式示意圖;圖4是本申請的實(shí)施例一的MAC地址同步報(bào)文模板的另一種格式示意圖;圖5是本申請的實(shí)施例二的堆疊系統(tǒng)中的MAC地址信息同步裝置的結(jié)構(gòu)示意圖。具體實(shí)施方式為了解決現(xiàn)有的堆疊系統(tǒng)內(nèi)MAC地址信息的同步方法存在的占用CPU的開銷較大的問題,本申請的以下實(shí)施例中提供了一種堆疊系統(tǒng)中的MAC地址信息同步方法,以及一種堆疊系統(tǒng)中的MAC地址信息同步裝置。在以下實(shí)施例中,堆疊系統(tǒng)中包括:多個(gè)成員設(shè)備(Slot)。成員設(shè)備可以是交換機(jī)等,本申請對此不做限定。實(shí)施例一本申請的實(shí)施例一的堆疊系統(tǒng)中的MAC地址信息同步方法由成員設(shè)備來執(zhí)行。如圖2所示,該同步方法包括以下步驟:步驟S202,構(gòu)建MAC地址同步報(bào)文模板,其中,MAC地址同步報(bào)文模板中包括:源MAC地址域、VLAN(VirtualLocalAreaNetwork,虛擬局域網(wǎng)標(biāo)識(shí))ID域、目的MAC地址域和芯片間轉(zhuǎn)發(fā)信息結(jié)構(gòu),且目的MAC地址域的值是廣播地址(即全0xFF);在實(shí)際實(shí)施過程中,MAC地址同步報(bào)文模板的格式如圖3或圖4所示。MAC地址同步報(bào)文模板可以為一塊內(nèi)存buffer(緩沖區(qū)),該模板的大小為:64字節(jié)+芯片間轉(zhuǎn)發(fā)信息結(jié)構(gòu)所占字節(jié)。其中,64字節(jié)為基本報(bào)文,在基本報(bào)文中包括:源MAC地址域(在圖3或圖4中,以源MAC地址表示)、VLAN(VirtualLocalAreaNetwork,虛擬局域網(wǎng))ID域(在圖3或圖4中,以VLANTAG(標(biāo)簽)表示)、目的MAC地址域(在圖3或圖4中,以目的MAC地址表示)和二層協(xié)議號(hào)域(在圖3或圖4中,以二層協(xié)議號(hào)表示);芯片間轉(zhuǎn)發(fā)信息結(jié)構(gòu)(在圖3或圖4中,以芯片間轉(zhuǎn)發(fā)信息結(jié)構(gòu)表示)用于多芯片間的統(tǒng)一轉(zhuǎn)發(fā)。在圖3和圖4中,在MAC地址同步報(bào)文模板中的負(fù)載中可以填充數(shù)據(jù),也可以不填充數(shù)據(jù),負(fù)載部分僅僅是為了滿足報(bào)文的長度不能小于64字節(jié)的要求。預(yù)置MAC地址同步報(bào)文模板的目的MAC地址為廣播地址,二層協(xié)議號(hào)為預(yù)設(shè)二層協(xié)議號(hào),稱為同步MAC報(bào)文私有協(xié)議號(hào),該私有協(xié)議號(hào)僅在堆疊系統(tǒng)內(nèi)部使用,該私有協(xié)議號(hào)的具體值可以靈活定義,只要不引起沖突即可,例如,可以為0xACAC。圖3和圖4中,帶有斜線的幾個(gè)域:目的MAC地址域、二層協(xié)議號(hào)域和負(fù)載的值是固定的,當(dāng)需要同步MAC地址信息時(shí),只需填充其他域的值即可。步驟S204,當(dāng)需要同步MAC地址信息時(shí),將該MAC地址信息中的MAC地址填充到源MAC地址域中,該MAC地址信息中的VLANID填充到VLANID域中,該MAC地址信息中的源端口信息填充到芯片間轉(zhuǎn)發(fā)信息結(jié)構(gòu)中,得到MAC地址同步報(bào)文;其中,MAC地址信息中可以包括:MAC地址、VLANID和源端口信息。在實(shí)際實(shí)施過程中,步驟S204的具體實(shí)施方法可以包括步驟11-12:步驟11:CPU將該MAC地址信息中的MAC地址填充到源MAC地址域中,將該MAC地址信息中的VLANID填充到VLANID域中,將該MAC地址信息中的源端口信息填充到芯片間轉(zhuǎn)發(fā)信息結(jié)構(gòu)中,其中,源端口信息包括:源芯片ID和源端口ID;其中,源端口信息映射到硬件中一般由源芯片ID(即轉(zhuǎn)發(fā)芯片的ID)和源端口ID(即該轉(zhuǎn)發(fā)芯片上的端口ID)唯一標(biāo)識(shí)。這樣,芯片間轉(zhuǎn)發(fā)信息結(jié)構(gòu)中應(yīng)該包括:源芯片ID域和源端口ID域,分別用于攜帶源端口信息中的源芯片ID和源端口ID。在填充源端口信息時(shí),將源端口信息中的源芯片ID填充到源芯片ID域中,將源端口信息中的源端口ID填充到源端口ID域中。步驟12:CPU將填充后的MAC地址同步報(bào)文模板復(fù)制到轉(zhuǎn)發(fā)芯片的報(bào)文緩沖區(qū)中得到MAC地址同步報(bào)文,并通知轉(zhuǎn)發(fā)芯片發(fā)送MAC地址同步報(bào)文。步驟S206,轉(zhuǎn)發(fā)芯片從本芯片的報(bào)文緩沖區(qū)中獲取到MAC地址同步報(bào)文,通過堆疊端口廣播MAC地址同步報(bào)文給所述堆疊系統(tǒng)中的其他成員設(shè)備,并禁止通過用戶業(yè)務(wù)端口轉(zhuǎn)發(fā)MAC地址同步報(bào)文。在實(shí)際實(shí)施過程中,步驟S206的具體實(shí)施方法包括:轉(zhuǎn)發(fā)芯片收到CPU的通知之后,從報(bào)文緩沖區(qū)中獲取到MAC地址同步報(bào)文;轉(zhuǎn)發(fā)芯片通過堆疊端口轉(zhuǎn)發(fā)MAC地址同步報(bào)文,即,在所在VLAN內(nèi)的堆疊系統(tǒng)中廣播MAC地址同步報(bào)文,并禁止通過用戶業(yè)務(wù)端口轉(zhuǎn)發(fā)MAC地址同步報(bào)文。其中,用戶業(yè)務(wù)端口是指成員設(shè)備上連接堆疊系統(tǒng)外部的設(shè)備的端口,用戶業(yè)務(wù)端口不是堆疊端口。其中,實(shí)現(xiàn)禁止通過用戶業(yè)務(wù)端口轉(zhuǎn)發(fā)MAC地址同步報(bào)文的方式可以采用以下兩種方式中的任一種:方式一:ACL(訪問控制列表)方式轉(zhuǎn)發(fā)芯片按照預(yù)設(shè)的ACL規(guī)則,判斷要轉(zhuǎn)發(fā)的報(bào)文中的二層協(xié)議號(hào)域的值是否為預(yù)設(shè)二層協(xié)議號(hào)(即同步MAC報(bào)文私有協(xié)議號(hào)),其中,當(dāng)二層協(xié)議號(hào)域的值為預(yù)設(shè)二層協(xié)議號(hào)時(shí),表示本報(bào)文是MAC地址同步報(bào)文;若是,則禁止通過用戶業(yè)務(wù)端口轉(zhuǎn)發(fā)該MAC地址同步報(bào)文。在實(shí)際實(shí)施過程中,可以下發(fā)用戶業(yè)務(wù)端口egress(出方向)DENY(拒絕)MAC地址同步報(bào)文ACL,用于在出方向上阻止通過用戶業(yè)務(wù)端口向外轉(zhuǎn)發(fā)MAC地址同步報(bào)文。方式二:出源過濾方式在本方式二中,MAC地址同步報(bào)文模板的芯片間轉(zhuǎn)發(fā)信息結(jié)構(gòu)中除了包括:源芯片ID域和源端口ID域以外,還包括:源ID域。轉(zhuǎn)發(fā)芯片判斷要轉(zhuǎn)發(fā)的報(bào)文中的源ID域的值是否為預(yù)設(shè)的MAC地址同步報(bào)文專用源ID,其中,當(dāng)源ID域的值為MAC地址同步報(bào)文專用源ID時(shí),表示禁止將本報(bào)文通過用戶業(yè)務(wù)端口轉(zhuǎn)發(fā);若是,則禁止通過用戶業(yè)務(wù)端口轉(zhuǎn)發(fā)該報(bào)文。在方式二中,可以預(yù)先將源ID域的值設(shè)置為一個(gè)特殊的源ID,稱為MAC地址同步報(bào)文專用源ID,該MAC地址同步報(bào)文專用源ID可以是一個(gè)無效的源ID,即,該預(yù)設(shè)源ID是沒有與任何用戶業(yè)務(wù)端口綁定的源ID。轉(zhuǎn)發(fā)芯片要通過用戶業(yè)務(wù)端口發(fā)送一個(gè)報(bào)文時(shí),若判斷出該報(bào)文中的源ID域的值為MAC地址同步報(bào)文專用源ID,則將該報(bào)文過濾掉,不轉(zhuǎn)發(fā)該報(bào)文。本實(shí)施例的技術(shù)方案中,預(yù)先構(gòu)建了一個(gè)MAC地址同步報(bào)文的模板,該模板中包括:源MAC地址域、VLANID域、目的MAC地址域和芯片間轉(zhuǎn)發(fā)信息結(jié)構(gòu),且目的MAC地址域的值固定設(shè)置為廣播地址,當(dāng)需要同步MAC地址信息時(shí),只需將該MAC地址信息中的MAC地址填充到模板的源MAC地址域中,該MAC地址信息中的VLANID填充到模板的VLANID域中,該MAC地址信息中的源端口信息填充到模板的芯片間轉(zhuǎn)發(fā)信息結(jié)構(gòu)中,從而得到一個(gè)MAC地址同步報(bào)文,然后,廣播該MAC地址同步報(bào)文給堆疊系統(tǒng)中的其他成員設(shè)備。這樣,同步發(fā)起端只需構(gòu)建模板和填充模板中的部分信息即可,而不需要每一個(gè)MAC同步數(shù)據(jù)包(即板間IPC消息)都單獨(dú)的組織構(gòu)造;并且,由于需要同步的MAC地址信息中的MAC地址作為MAC地址同步報(bào)文的源MAC地址、MAC地址信息中的VLANID作為MAC地址同步報(bào)文的VLANID,被同步端接收到MAC地址同步報(bào)文后,即可觸發(fā)源MAC地址學(xué)習(xí),CPU無需參與任何操作,從而,在同步發(fā)起端和被同步端都減少了CPU的開銷,實(shí)現(xiàn)了無IPC通信、低CPU開銷的MAC地址信息同步。上述步驟S202-S206描述了本成員設(shè)備作為同步發(fā)起端時(shí)執(zhí)行的MAC地址信息同步方法,另外,本成員設(shè)備還會(huì)接收到其他成員設(shè)備發(fā)來的MAC地址同步報(bào)文,此時(shí),作為被同步端的本成員設(shè)備需要執(zhí)行的MAC地址信息同步方法包括以下步驟:步驟S302,轉(zhuǎn)發(fā)芯片通過堆疊端口接收到MAC地址同步報(bào)文之后,根據(jù)接收的MAC地址同步報(bào)文中的源MAC地址、VLANID和源端口信息,生成對應(yīng)的MAC地址表項(xiàng)并配置到FDB中;由于所有堆疊端口都是所有VLAN的成員端口,因此,MAC地址報(bào)文可到達(dá)所有堆疊端口,并在堆疊端口的Ingress(入方向)觸發(fā)源MAC地址的學(xué)習(xí)。其中,生成的表項(xiàng)中的MAC地址為接收的MAC地址同步報(bào)文中的源MAC地址,VLANID為接收的MAC地址同步報(bào)文中的VLANID。步驟S304,轉(zhuǎn)發(fā)芯片通過除接收到該MAC地址同步報(bào)文以外的其他堆疊端口轉(zhuǎn)發(fā)MAC地址同步報(bào)文,并禁止通過用戶業(yè)務(wù)端口轉(zhuǎn)發(fā)MAC地址同步報(bào)文。對于通過一堆疊端口接收到的MAC地址同步報(bào)文之后,在轉(zhuǎn)發(fā)該MAC地址同步報(bào)文時(shí),應(yīng)該排除該入端口。另外,如果成員設(shè)備中包含有多個(gè)轉(zhuǎn)發(fā)芯片,則在步驟S304中,轉(zhuǎn)發(fā)芯片還會(huì)將接收到的MAC地址同步報(bào)文通過內(nèi)部芯片間連接口廣播給本成員設(shè)備中的其他轉(zhuǎn)發(fā)芯片,其他轉(zhuǎn)發(fā)芯片接收到該MAC地址同步報(bào)文后,會(huì)根據(jù)該MAC地址同步報(bào)文中的源MAC地址、VLANID和源端口信息,生成對應(yīng)的MAC地址表項(xiàng)并配置到FDB中。另外,當(dāng)該堆疊系統(tǒng)是環(huán)形堆疊系統(tǒng)時(shí),為了防止MAC地址同步報(bào)文形成轉(zhuǎn)發(fā)風(fēng)暴,需要將MAC地址同步報(bào)文在某一條鏈路或某一位置點(diǎn)阻斷或切斷。具體方式如下:阻斷方式一:在使用上述方式一的ACL方式實(shí)現(xiàn)禁止通過用戶業(yè)務(wù)端口轉(zhuǎn)發(fā)MAC地址同步報(bào)文時(shí),作為同步端的成員設(shè)備會(huì)將芯片間轉(zhuǎn)發(fā)信息結(jié)構(gòu)中的源ID域的值置為與本成員設(shè)備綁定的源ID;在實(shí)際實(shí)施過程中,每一個(gè)成員設(shè)備具有一個(gè)與本成員設(shè)備綁定的源ID。這樣,在步驟S304中,轉(zhuǎn)發(fā)芯片通過除接收到該MAC地址同步報(bào)文以外的其他堆疊端口轉(zhuǎn)發(fā)MAC地址同步報(bào)文的方法包括:步驟21:根據(jù)該MAC地址同步報(bào)文中的源ID域的值,在本地的多播源過濾表中查找對應(yīng)的堆疊端口標(biāo)識(shí),其中,多播源過濾表中記錄有不同的源ID及其對應(yīng)的堆疊端口標(biāo)識(shí);其中,多播源過濾表是預(yù)先計(jì)算好的,用于記錄源ID域的值為何種值的MAC地址同步報(bào)文不允許從哪個(gè)堆疊端口轉(zhuǎn)發(fā)出去,即,哪個(gè)成員設(shè)備發(fā)出的MAC地址同步報(bào)文在哪個(gè)鏈路阻斷,該鏈路就是不允許轉(zhuǎn)發(fā)的堆疊端口連接的鏈路。通常,可以按照最短轉(zhuǎn)發(fā)路徑的原則,計(jì)算源ID域的值為一種值的MAC地址同步報(bào)文不允許從哪個(gè)堆疊端口轉(zhuǎn)發(fā)出去,例如,如圖1所示,對于Slot1發(fā)出的MAC同步報(bào)文,假設(shè),該MAC同步報(bào)文的源ID域的值為源ID1(即為Slot1綁定的源ID為源ID1),Slot1→Slot2的跳數(shù)是1跳,Slot1→Slot3的跳數(shù)是1跳,而Slot1→Slot2→Slot3的跳數(shù)是2跳,則可以計(jì)算出對于源ID域的值為源ID1的MAC地址同步報(bào)文,需要在Slot2與Slot3之間的鏈路阻斷,不允許轉(zhuǎn)發(fā)的堆疊端口就是Slot2連接至Slot3的堆疊端口。也就是說,一個(gè)成員設(shè)備發(fā)出的MAC地址同步報(bào)文會(huì)在最短轉(zhuǎn)發(fā)路徑的最遠(yuǎn)位置進(jìn)行阻斷。步驟22:若查找到了對應(yīng)的堆疊端口標(biāo)識(shí),則停止轉(zhuǎn)發(fā)該MAC地址同步報(bào)文,即不再將該MAC地址同步報(bào)文轉(zhuǎn)發(fā)出去;步驟23:若沒有查找到對應(yīng)的堆疊端口標(biāo)識(shí),則將該MAC地址同步報(bào)文通過除接收到該MAC地址同步報(bào)文的堆疊端口以外的其他堆疊端口轉(zhuǎn)發(fā)出去。阻斷方式二:在使用上述方式二的出源過濾方式實(shí)現(xiàn)禁止通過用戶業(yè)務(wù)端口轉(zhuǎn)發(fā)MAC地址同步報(bào)文時(shí),作為同步端的成員設(shè)備會(huì)將芯片間轉(zhuǎn)發(fā)信息結(jié)構(gòu)中的源ID域的值置為MAC地址同步報(bào)文專用源ID;此時(shí),各個(gè)成員設(shè)備發(fā)出的MAC地址同步報(bào)文中的源ID域的值是相同的,均是MAC地址同步報(bào)文專用源ID。這樣,在步驟S304中,轉(zhuǎn)發(fā)芯片通過除接收到該MAC地址同步報(bào)文以外的其他堆疊端口轉(zhuǎn)發(fā)MAC地址同步報(bào)文的方法包括:步驟31:當(dāng)要通過其他堆疊端口轉(zhuǎn)發(fā)該MAC地址同步報(bào)文時(shí),判斷該其他堆疊端口是否是預(yù)設(shè)的固定切斷位置點(diǎn),若是,則執(zhí)行步驟32,否則,執(zhí)行步驟33;由于各個(gè)成員設(shè)備發(fā)出的MAC地址同步報(bào)文中的源ID域都是MAC地址同步報(bào)文專用源ID,這樣,需要預(yù)設(shè)固定切斷位置點(diǎn),用于將所有成員設(shè)備發(fā)出的MAC地址同步報(bào)文在該位置點(diǎn)進(jìn)行阻斷。例如,固定切斷位置點(diǎn)可以是主用成員設(shè)備的P2堆疊端口,也可以是標(biāo)識(shí)最小的成員設(shè)備P2堆疊端口。步驟32:禁止通過該其他堆疊端口轉(zhuǎn)發(fā)該MAC地址同步報(bào)文;步驟33:通過該其他堆疊端口轉(zhuǎn)發(fā)該MAC地址同步報(bào)文。實(shí)施例二針對上述實(shí)施例一中的方法,本申請實(shí)施例二提供了一種堆疊系統(tǒng)中的MAC地址信息同步裝置,該裝置位于成員設(shè)備中。如圖5所示,該裝置中包括以下模塊:構(gòu)建模塊10、填充模塊20和發(fā)送模塊30,其中:構(gòu)建模塊10,用于構(gòu)建MAC地址同步報(bào)文模板,其中,MAC地址同步報(bào)文模板中包括:源MAC地址域、VLANID域、目的MAC地址域和芯片間轉(zhuǎn)發(fā)信息結(jié)構(gòu),且目的MAC地址域的值是廣播地址;填充模塊20,用于當(dāng)本成員設(shè)備需要同步MAC地址信息時(shí),觸發(fā)中央處理器CPU將該MAC地址信息中的MAC地址填充到源MAC地址域中,該MAC地址信息中的VLANID填充到VLANID域中,該MAC地址信息中的源端口信息填充到芯片間轉(zhuǎn)發(fā)信息結(jié)構(gòu)中,得到MAC地址同步報(bào)文;發(fā)送模塊30,用于觸發(fā)轉(zhuǎn)發(fā)芯片從本芯片的報(bào)文緩沖區(qū)中獲取到MAC地址同步報(bào)文,通過堆疊端口廣播MAC地址同步報(bào)文給堆疊系統(tǒng)中的其他成員設(shè)備,并禁止通過用戶業(yè)務(wù)端口轉(zhuǎn)發(fā)MAC地址同步報(bào)文。其中,填充模塊包括:填充單元和復(fù)制通知單元,其中:填充單元,用于觸發(fā)CPU將該MAC地址信息中的MAC地址填充到源MAC地址域中,將該MAC地址信息中的VLANID填充到VLANID域中,將該MAC地址信息中的源端口信息填充到芯片間轉(zhuǎn)發(fā)信息結(jié)構(gòu)中,其中,源端口信息包括:源芯片ID和源端口ID;復(fù)制通知單元,用于觸發(fā)CPU將填充后的MAC地址同步報(bào)文模板復(fù)制到轉(zhuǎn)發(fā)芯片的報(bào)文緩沖區(qū)中得到MAC地址同步報(bào)文,并通知轉(zhuǎn)發(fā)芯片發(fā)送MAC地址同步報(bào)文。其中,該裝置中還包括:接收模塊和配置模塊,其中,接收模塊,用于觸發(fā)轉(zhuǎn)發(fā)芯片通過堆疊端口接收MAC地址同步報(bào)文;配置模塊,用于在轉(zhuǎn)發(fā)芯片通過堆疊端口接收到MAC地址同步報(bào)文之后,觸發(fā)轉(zhuǎn)發(fā)芯片根據(jù)接收的MAC地址同步報(bào)文中的源MAC地址、VLANID和源端口信息,生成對應(yīng)的MAC地址表項(xiàng)并配置到轉(zhuǎn)發(fā)數(shù)據(jù)庫FDB中;發(fā)送模塊,還用于觸發(fā)轉(zhuǎn)發(fā)芯片通過除接收到該MAC地址同步報(bào)文以外的其他堆疊端口轉(zhuǎn)發(fā)接收的MAC地址同步報(bào)文,并禁止通過用戶業(yè)務(wù)端口轉(zhuǎn)發(fā)MAC地址同步報(bào)文。根據(jù)本申請的一種實(shí)施例,MAC地址同步報(bào)文模板中還包括:二層協(xié)議號(hào)域,則,發(fā)送模塊包括:判斷單元和禁止轉(zhuǎn)發(fā)單元,其中:判斷單元,用于觸發(fā)轉(zhuǎn)發(fā)芯片按照預(yù)設(shè)的ACL規(guī)則,判斷要發(fā)送的報(bào)文中的二層協(xié)議號(hào)域的值是否為預(yù)設(shè)二層協(xié)議號(hào),其中,當(dāng)二層協(xié)議號(hào)域的值為預(yù)設(shè)二層協(xié)議號(hào)時(shí),表示本報(bào)文是MAC地址同步報(bào)文;禁止轉(zhuǎn)發(fā)單元,用于若轉(zhuǎn)發(fā)芯片的判斷結(jié)果為是,則觸發(fā)轉(zhuǎn)發(fā)芯片禁止通過用戶業(yè)務(wù)端口轉(zhuǎn)發(fā)該MAC地址同步報(bào)文。其中,芯片間轉(zhuǎn)發(fā)信息結(jié)構(gòu)中包括:源ID域,源ID域的值是與發(fā)出本MAC地址同步報(bào)文的成員設(shè)備綁定的源ID;則,發(fā)送模塊還包括:查找單元和轉(zhuǎn)發(fā)單元,其中:查找單元,用于觸發(fā)轉(zhuǎn)發(fā)芯片根據(jù)該MAC地址同步報(bào)文中的源ID域的值,在本地的多播源過濾表中查找對應(yīng)的堆疊端口標(biāo)識(shí),其中,多播源過濾表中記錄有不同的源ID及其對應(yīng)的堆疊端口標(biāo)識(shí);轉(zhuǎn)發(fā)單元,用于若轉(zhuǎn)發(fā)芯片查找到了對應(yīng)的堆疊端口標(biāo)識(shí),則停止轉(zhuǎn)發(fā)該MAC地址同步報(bào)文;還用于若轉(zhuǎn)發(fā)芯片沒有查找到對應(yīng)的堆疊端口標(biāo)識(shí),則觸發(fā)轉(zhuǎn)發(fā)芯片將該MAC地址同步報(bào)文通過除接收到該MAC地址同步報(bào)文的堆疊端口以外的其他堆疊端口轉(zhuǎn)發(fā)出去。根據(jù)本申請的另一種實(shí)施例,芯片間轉(zhuǎn)發(fā)信息結(jié)構(gòu)中包括:源ID域,則,發(fā)送模塊包括:判斷單元和禁止轉(zhuǎn)發(fā)單元,其中:判斷單元,用于觸發(fā)轉(zhuǎn)發(fā)芯片判斷要發(fā)送的報(bào)文中的源ID域的值是否為預(yù)設(shè)的MAC地址同步報(bào)文專用源ID,其中,當(dāng)源ID域的值為MAC地址同步報(bào)文專用源ID時(shí),表示禁止將本報(bào)文通過用戶業(yè)務(wù)端口轉(zhuǎn)發(fā);禁止轉(zhuǎn)發(fā)單元,用于若轉(zhuǎn)發(fā)芯片的判斷結(jié)果為是,則觸發(fā)轉(zhuǎn)發(fā)芯片禁止通過用戶業(yè)務(wù)端口轉(zhuǎn)發(fā)該報(bào)文。其中,發(fā)送模塊還包括:轉(zhuǎn)發(fā)單元,其中,判斷單元,還用于當(dāng)轉(zhuǎn)發(fā)芯片要通過其他堆疊端口轉(zhuǎn)發(fā)該MAC地址同步報(bào)文時(shí),觸發(fā)轉(zhuǎn)發(fā)芯片判斷該其他堆疊端口是否是預(yù)設(shè)的固定切斷位置點(diǎn);禁止轉(zhuǎn)發(fā)單元,還用于若轉(zhuǎn)發(fā)芯片判斷出該其他堆疊端口是固定切斷位置點(diǎn),則觸發(fā)轉(zhuǎn)發(fā)芯片禁止通過該其他堆疊端口轉(zhuǎn)發(fā)該MAC地址同步報(bào)文;轉(zhuǎn)發(fā)單元,用于若轉(zhuǎn)發(fā)芯片判斷出該其他堆疊端口不是固定切斷位置點(diǎn),則觸發(fā)轉(zhuǎn)發(fā)芯片通過該其他堆疊端口轉(zhuǎn)發(fā)該MAC地址同步報(bào)文。綜上,本申請以上實(shí)施例可以達(dá)到以下技術(shù)效果:(1)預(yù)先構(gòu)建了一個(gè)MAC地址同步報(bào)文的模板,該模板中包括:源MAC地址域、VLANID域、目的MAC地址域和芯片間轉(zhuǎn)發(fā)信息結(jié)構(gòu),且目的MAC地址域的值固定設(shè)置為廣播地址,當(dāng)需要同步MAC地址信息時(shí),只需將該MAC地址信息中的MAC地址填充到模板的源MAC地址域中,該MAC地址信息中的VLANID填充到模板的VLANID域中,該MAC地址信息中的源端口信息填充到模板的芯片間轉(zhuǎn)發(fā)信息結(jié)構(gòu)中,從而得到一個(gè)MAC地址同步報(bào)文,然后,廣播該MAC地址同步報(bào)文給堆疊系統(tǒng)中的其他成員設(shè)備。這樣,同步發(fā)起端只需構(gòu)建模板和填充模板中的部分信息即可,而不需要每一個(gè)MAC同步數(shù)據(jù)包(即板間IPC消息)都單獨(dú)的組織構(gòu)造;并且,由于需要同步的MAC地址信息中的MAC地址作為MAC地址同步報(bào)文的源MAC地址、MAC地址信息中的VLANID作為MAC地址同步報(bào)文的VLANID,被同步端接收到MAC地址同步報(bào)文后,即可觸發(fā)源MAC地址學(xué)習(xí),CPU無需參與任何操作,從而,在同步發(fā)起端和被同步端都減少了CPU的開銷,實(shí)現(xiàn)了無IPC通信、低CPU開銷的MAC地址信息同步。(2)當(dāng)需要同步MAC地址信息時(shí),CPU只需將該MAC地址信息中的MAC地址填充到MAC地址同步報(bào)文模板的源MAC地址域中,該MAC地址信息中的VLANID填充到模板的VLANID域中,該MAC地址信息中的源端口信息填充到模板的芯片間轉(zhuǎn)發(fā)信息結(jié)構(gòu)中,從而得到一個(gè)MAC地址同步報(bào)文,然后,CPU將填充后的MAC地址同步報(bào)文模板復(fù)制到轉(zhuǎn)發(fā)芯片的報(bào)文緩沖區(qū)中得到MAC地址同步報(bào)文,由轉(zhuǎn)發(fā)芯片轉(zhuǎn)發(fā)出去;這樣,同步發(fā)起端只需填充模板中的部分信息并復(fù)制到轉(zhuǎn)發(fā)芯片的報(bào)文緩沖區(qū)中即可,而不需要在每一個(gè)MAC同步數(shù)據(jù)包(即板間IPC消息)時(shí)都申請內(nèi)存空間進(jìn)行單獨(dú)的組織構(gòu)造;并且,預(yù)先在MAC地址同步報(bào)文的模板中構(gòu)造了芯片間轉(zhuǎn)發(fā)信息結(jié)構(gòu),可直接向其他芯片發(fā)送,省略了添加芯片間轉(zhuǎn)發(fā)信息結(jié)構(gòu)的處理過程,并且將MAC地址同步報(bào)文模板直接拷貝到轉(zhuǎn)發(fā)芯片的報(bào)文緩沖區(qū)中,由轉(zhuǎn)發(fā)芯片轉(zhuǎn)發(fā)。另外,被同步端的轉(zhuǎn)發(fā)芯片接收到MAC地址同步報(bào)文后,觸發(fā)轉(zhuǎn)發(fā)芯片進(jìn)行源MAC地址的學(xué)習(xí),無需上送CPU。綜上,無論在同步發(fā)起端還是在被同步端都實(shí)現(xiàn)了高速的MAC地址同步。以上所述僅為本申請的較佳實(shí)施例而已,并不用以限制本申請,凡在本申請的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本申請保護(hù)的范圍之內(nèi)。