專利名稱:防止多生成樹(shù)協(xié)議中老信息報(bào)文循環(huán)的方法及交換設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及交換設(shè)備中生成樹(shù)協(xié)議的收斂技術(shù),適用于MSTP (Multi Spanning TreeProtocal,多生成樹(shù)協(xié)議)。
背景技術(shù):
生成樹(shù)協(xié)議是二層交換機(jī)中基本的協(xié)議,也是使用最頻繁的協(xié)議之一。其主要功能是保證網(wǎng)絡(luò)中不會(huì)出現(xiàn)環(huán)路,同時(shí)提供冗余備份鏈路。但是在網(wǎng)絡(luò)環(huán)境和配置交復(fù)雜時(shí), 由于協(xié)議本身的局限性,收斂速度有時(shí)會(huì)很慢,并且隨著環(huán)境的復(fù)雜度越大,拓?fù)渥兓瘯r(shí)網(wǎng) 絡(luò)振蕩時(shí)間也越大。有些環(huán)境中老的根信息會(huì)在拓?fù)渲袣埩?,?dǎo)致各設(shè)備間不能快速收斂 直到老信息失效,而老信息失效的時(shí)間在STP (生成樹(shù)協(xié)議)、RSTP (快速生成樹(shù)協(xié)議)和 MSTP的域間中依靠messageage字段,當(dāng)messageage值大于等于maxage時(shí)報(bào)文被丟棄;在 MSTP域內(nèi)依靠remainhop字段,當(dāng)遞減到O就會(huì)被丟棄。MSTP是IEEE 802. Is中定義的一種新型生成樹(shù)協(xié)議。STP、RSTP是基于端 口的,MSTP是基于實(shí)例的。與STP/RSTP相比,MSTP中引入了“實(shí)例” (Instance)和 “域”(Region) “的概念。所謂“實(shí)例”就是多個(gè)VLAN的一個(gè)集合,這種通過(guò)多個(gè)VLAN捆綁 到一個(gè)實(shí)例中去的方法可以節(jié)省通信開(kāi)銷(xiāo)和資源占用率。MSTP各個(gè)實(shí)例拓?fù)涞挠?jì)算是獨(dú) 立的,在這些實(shí)例上就可以實(shí)現(xiàn)負(fù)載均衡。使用的時(shí)候,可以把多個(gè)相同拓?fù)浣Y(jié)構(gòu)的VLAN 映射到某一個(gè)實(shí)例中,這些VLAN在端口上的轉(zhuǎn)發(fā)狀態(tài)將取決于對(duì)應(yīng)實(shí)例在MSTP里的轉(zhuǎn)發(fā) 狀態(tài)。所謂“域”,由域名(Configuration Name)、修訂級(jí)別(Revision Level)、格式選擇 器(Configuration IdentifierFormat Selector)、VLAN 與實(shí)例的映射關(guān)系(mapping of VIDs to spanning trees),其中域名、格式選擇器和修訂級(jí)別在BPDU (Bridge Protocal Data Unit,網(wǎng)橋協(xié)議數(shù)據(jù)單元)報(bào)文中都有相關(guān)字段,而VLAN與實(shí)例的映射關(guān)系在BPDU 報(bào)文中表現(xiàn)摘要信息(ConfigurationDigest),該摘要是根據(jù)映射關(guān)系計(jì)算得到的一個(gè)16 字節(jié)簽名。只有上述四者都一樣且相互連接的交換機(jī)才認(rèn)為在同一個(gè)域內(nèi)。每個(gè)域內(nèi)所有 交換機(jī)都有相同的MST (多生成樹(shù))域配置。缺省時(shí),域名就是交換機(jī)的橋MAC地址,修訂 級(jí)別等于0,格式選擇器等于0,所有的VLAN都映射到實(shí)例O上。MSTP的實(shí)例O具有特殊 的作用,稱為CIST (Common Internal SpanningTree,公共與內(nèi)部生成樹(shù)),其它的實(shí)例稱為 MSTI (Multiple Spanning Tree Instance,多生成樹(shù)實(shí)例)。CIST 由通過(guò) STP/RSTP 計(jì)算得 到的單生成樹(shù)和MSTP計(jì)算得到的域組成,是為了保證在所有橋接的局域網(wǎng)是簡(jiǎn)單的和全 連接的。與STP和RSTP相比,MSTP中引入了總根和域根的概念。總根是一個(gè)全局概念,對(duì) 于所有互連的運(yùn)行STP/RSTP/MSTP的交換機(jī)只能有一個(gè)總根,也即是CIST的根;而域根是 一個(gè)局部概念,是相對(duì)于某個(gè)域的某個(gè)實(shí)例而言的。所有相連的設(shè)備,總根只有一個(gè),而每 個(gè)域所包含的域根數(shù)目與實(shí)例個(gè)數(shù)相關(guān)。下面就舉一個(gè)MSTP中老信息循環(huán)導(dǎo)致拓?fù)錈o(wú)法快速收斂的典型情況,拓?fù)淙鐖D1 所示。設(shè)備A的端口 0/2和設(shè)備Bl的端口 0/2的速率為1000M,其它端口的速率都是IOOM0設(shè)備A在一個(gè)單獨(dú)的域內(nèi),為總根;設(shè)備Bi、B2、B3在一個(gè)域內(nèi),設(shè)備Bl為域根。穩(wěn)定情況下,域內(nèi)設(shè)備Bl的端口 0/2、設(shè)備B2的端口 0/3和設(shè)備B3的端口 0/1為根端口 (Root Port,圖用R表示),設(shè)備B2的端口 0/1和設(shè)備B3的端口 0/3為替換端口(Alternate Port,圖用A表示),其它端口均為指定端口(Designated Port,圖用D表示)。此處,根端 口為非總根的交換設(shè)備收到最優(yōu)的BPDU配置信息的端口,即為交換設(shè)備轉(zhuǎn)發(fā)信息到總根 時(shí)提供最小路徑開(kāi)銷(xiāo)的端口。指定端口為連接到對(duì)端交換設(shè)備,從該對(duì)端交換設(shè)備轉(zhuǎn)發(fā)來(lái) 自域內(nèi)的信息至總根時(shí),提供最小路徑開(kāi)銷(xiāo)的端口。替換端口為當(dāng)前根端口到總根提供的 一條替代路徑。根端口和指定端口處于轉(zhuǎn)發(fā)(FORWARDING)狀態(tài),替換端口總是處于丟棄 (DISCARDING)狀態(tài)。當(dāng)設(shè)備Bl的端口 0/2斷開(kāi)之后,會(huì)出現(xiàn)這樣的情況設(shè)備Bl以自己為總根和域 根,向設(shè)備B2和設(shè)備B3發(fā)送新的信息,如圖2中的new報(bào)文。設(shè)備B2收到設(shè)備Bl新的信息后,將報(bào)文信息與本地端口 0/1上的信息比較后發(fā)現(xiàn) 0/1端口上的信息更優(yōu)(因?yàn)槎丝?0/1上的總根為設(shè)備A),因此設(shè)備B2的端口 0/1由替換端 口切換為根端口,端口 0/3由根端口切換為指定端口,端口 0/2保持指定端口角色不變。同時(shí) 會(huì)向設(shè)備Bl和設(shè)備B3發(fā)送總根為A,域根為自己的新的BPDU,如圖3中的neW(2)報(bào)文。設(shè)備B3收到設(shè)備Bl新的信息后,將報(bào)文信息與端口 0/2和端口 0/3上的信息重 新比較,發(fā)現(xiàn)端口 0/2上的信息更優(yōu)(此時(shí)端口 0/2上的仍是老信息以A為總根),因此設(shè) 備B3的端口 0/2由替換端口切換為根端口,設(shè)備B3的端口 0/1由根端口切換為指定端口, 端口 0/3保持為替換端口不變,同時(shí)會(huì)向設(shè)備Bl發(fā)送總根為設(shè)備A,域根仍為設(shè)備Bl的老 的BPDU,如圖3所示的old報(bào)文。設(shè)備Bl收到來(lái)自設(shè)備B2和B3的信息后,比較發(fā)現(xiàn)設(shè)備B3的老信息更優(yōu),因此設(shè) 備Bl將端口 0/1由指定端口切換到根端口,端口 0/3保持指定端口不變,同時(shí)向設(shè)備B2發(fā) 送總根為設(shè)備A,域根為自己的老的BPDU,如圖4中old報(bào)文。而同時(shí),由于之前設(shè)備B2發(fā) 出的以設(shè)備A為總根,設(shè)備B2為域根的信息(圖3中的new (2)報(bào)文),設(shè)備B3的根端口 0/2收到后,將本地保存的BPDU信息更新為新的信息,指定端口 0/1會(huì)向設(shè)備Bl發(fā)送新的 以設(shè)備A為總根,設(shè)備B2為域根的BPDU,如圖4中的neW(2)報(bào)文。當(dāng)設(shè)備B2收到設(shè)備Bl發(fā)出的老信息,由于比端口 0/1上的信息更優(yōu)(老信息中 域根為設(shè)備Bi,新信息中域根為設(shè)備B2),端口 0/3由替換端口切換到根端口,端口 0/1由 根端口替換為指定端口。同時(shí)指定端口 0/2會(huì)立即將此老的BPDU發(fā)送給設(shè)備B3,如圖5中 的old報(bào)文。而同時(shí),當(dāng)設(shè)備Bl的根端口 0/1收到來(lái)自設(shè)備B3的新以設(shè)備A為總根,設(shè)備 B2為域根的BPDU,將本地保存的BPDU信息替換為新信息。同時(shí)從指定端口 0/3向設(shè)備B2 發(fā)送此新的信息,如圖5中的new (2)報(bào)文。當(dāng)設(shè)備B2的根端口 0/3收到新的BPDU報(bào)文,由于報(bào)文中總根為設(shè)備A,域根為設(shè) 備B2,但是該報(bào)文由設(shè)備B2本身發(fā)起,并且經(jīng)過(guò)了設(shè)備B3和Bi,域內(nèi)路徑消耗為400000, 即設(shè)備B3上端口 0/2的路徑消耗和設(shè)備Bl上端口 0/1的路徑消耗之和。而設(shè)備B2上端口 0/1端口優(yōu)先級(jí)的域內(nèi)路徑消耗為0,因此重新選擇端口 0/1為根端口,同時(shí)對(duì)于端口 0/3, 其端口優(yōu)先級(jí)和指定優(yōu)先級(jí)的總根都為設(shè)備A,外部路徑消耗都為0,域根也都為設(shè)備B2, 但是端口優(yōu)先級(jí)的域內(nèi)路徑消耗為400000,指定優(yōu)先級(jí)的域內(nèi)路徑消耗為0,比端口優(yōu)先 級(jí)更優(yōu),因此設(shè)備B2的端口 0/3由根端口切換到指定端口,端口 0/2保持為指定端口。同時(shí)向設(shè)備Bl和B3發(fā)送新的以設(shè)備A為總根,設(shè)備B2為路徑消耗且域內(nèi)路徑消耗為O的新 的BPDU,如圖6中的new (3)報(bào)文。而同時(shí),設(shè)備B3的根端口會(huì)收到之前設(shè)備B2發(fā)出的以設(shè)備A為總根,設(shè)備Bl為 域根的老的BPDU信息,將本地保存的BPDU信息替換為老的信息,同時(shí)向設(shè)備Bl發(fā)送改老 BPDU信息,如圖6中的ο 1 d報(bào)文??梢钥吹?,圖6的狀態(tài)與圖3的狀態(tài)完全一致,不同的是設(shè)備B3向設(shè)備Bl發(fā)送的BPDU報(bào)文中,域內(nèi)路徑消耗由于每經(jīng)過(guò)一臺(tái)設(shè)備遞增,remainhop也會(huì)遞增,此時(shí)的old 報(bào)文由于已經(jīng)經(jīng)過(guò)了設(shè)備Bl —設(shè)備B2 —設(shè)備B3 —設(shè)備Bl —設(shè)備B2 —設(shè)備B3的過(guò)程,其 中第一個(gè)設(shè)備Bl發(fā)出時(shí)域內(nèi)路徑消耗為0,remainhop為20,因此此時(shí)Bl重新收到的BPDU 中,域內(nèi)路徑消耗應(yīng)該為100000,即5個(gè)100M端口的路徑消耗之和,remainhop為15。這 幾個(gè)狀態(tài)會(huì)不斷循環(huán),老BPDU信息也會(huì)不斷傳遞,直到報(bào)文中remainhop為0被丟棄,新的 正確的拓?fù)涫諗坎艜?huì)開(kāi)始。在這個(gè)過(guò)程中,由于設(shè)備B1、B2、B3上的根端口不停有新的信息收到,同時(shí)會(huì)收到 來(lái)自對(duì)端指定端口的轉(zhuǎn)發(fā)協(xié)商標(biāo)志(PROPOSING),而根端口收到該標(biāo)志后會(huì)由將本設(shè)備的 指定端口重新設(shè)置為丟棄狀態(tài),同時(shí)會(huì)向下游發(fā)送轉(zhuǎn)發(fā)協(xié)商標(biāo)志,因此導(dǎo)致端口會(huì)不停的 在轉(zhuǎn)發(fā)狀態(tài)和丟棄狀態(tài)之間切換,雖然生成樹(shù)協(xié)議本身的算法不會(huì)導(dǎo)致環(huán)路的產(chǎn)生,但是 網(wǎng)絡(luò)仍會(huì)一直動(dòng)蕩直到無(wú)效的老報(bào)文信息被丟棄。公開(kāi)號(hào)為CN101232508的中國(guó)專利申請(qǐng),公開(kāi)了一種加速多生成樹(shù)協(xié)議網(wǎng)絡(luò)拓?fù)?收斂的方法及設(shè)備,通過(guò)檢測(cè)報(bào)文來(lái)源與總根信息、外部路徑開(kāi)銷(xiāo)、域根信息來(lái)判斷該報(bào)文 是否為無(wú)效的老根信息,丟棄檢測(cè)出的老根信息,以避免了無(wú)效的老根信息在域內(nèi)轉(zhuǎn)發(fā)。上 述方法雖然能加速多域環(huán)境下MSTP網(wǎng)絡(luò)拓?fù)涞氖諗?,但是完全丟棄報(bào)文會(huì)引起報(bào)文中其 它實(shí)例被錯(cuò)誤丟棄等狀況。
發(fā)明內(nèi)容
本發(fā)明需要解決的技術(shù)問(wèn)題是,提供一種在MSTP的復(fù)雜環(huán)境中,當(dāng)網(wǎng)絡(luò)發(fā)生變化 時(shí)既能快速切斷老的失效BPDU報(bào)文在網(wǎng)絡(luò)中的循環(huán)傳遞,又能保證報(bào)文中其它實(shí)例能得 到繼續(xù)處理的方法,以及實(shí)現(xiàn)該方法的交換設(shè)備。本發(fā)明為解決上述技術(shù)問(wèn)題所采用的技術(shù)方案是,防止多生成樹(shù)協(xié)議中老信息報(bào) 文循環(huán)的方法,其特征在于,包括以下步驟a、交換設(shè)備對(duì)當(dāng)前端口接收到的域內(nèi)多生成樹(shù)協(xié)議的BPDU報(bào)文中的各個(gè)實(shí)例進(jìn) 行優(yōu)先級(jí)判斷,是否存在所述BPDU報(bào)文中某個(gè)實(shí)例相比本地更優(yōu),如是,進(jìn)入步驟b ;如否, 進(jìn)入步驟d ;b、交換設(shè)備判斷所述BPDU報(bào)文中攜帶的該實(shí)例的域根是否為所述交換設(shè)備本 身,如是步驟c ;如否,進(jìn)入步驟d ;C、交換設(shè)備設(shè)置當(dāng)前端口不參與該實(shí)例根端口選擇,進(jìn)入步驟d ;d、繼續(xù)對(duì)域內(nèi)多生成樹(shù)協(xié)議的BPDU報(bào)文進(jìn)行接收狀態(tài)機(jī)的處理。通過(guò)對(duì)多生成樹(shù)協(xié)議中老信息報(bào)文循環(huán)的分析,老的報(bào)文信息循環(huán)的根源是設(shè)備 Bl的端口 0/1收到無(wú)效報(bào)文后仍然會(huì)選擇為根端口,從而導(dǎo)致了報(bào)文的后續(xù)循環(huán)。這里的 無(wú)效報(bào)文是針對(duì)單個(gè)實(shí)例來(lái)定義的。從這點(diǎn)出發(fā),本發(fā)明就現(xiàn)有的老信息報(bào)文循環(huán)過(guò)程進(jìn)行改進(jìn),當(dāng)端口接收到的域內(nèi)BPDU報(bào)文中某個(gè)實(shí)例信息更優(yōu),而報(bào)文中攜帶的該實(shí)例的域 根為該交換設(shè)備自己,則交換設(shè)備主動(dòng)設(shè)置該端口不參與該實(shí)例的根端口選擇。從而有效 阻止了失效老報(bào)文的循環(huán)傳遞,又不會(huì)對(duì)循環(huán)報(bào)文進(jìn)行完全丟棄,只是讓報(bào)文中某個(gè)實(shí)例 的信息不參與根端口選擇,避免了因?yàn)橥耆珌G棄而出現(xiàn)的端口狀態(tài)沖突檢測(cè)或其它實(shí)例信 息丟棄等錯(cuò)誤狀態(tài)。具體的,所述BPDU報(bào)文中包括MSTI實(shí)例、CIST實(shí)例。進(jìn)一步的,交換設(shè)備通過(guò)比較BPDU報(bào)文中CIST實(shí)例與本地的總根信 息、外部路徑 消耗、CIST域根、CIST實(shí)例內(nèi)部路徑消耗、CIST實(shí)例指定端口信息來(lái)進(jìn)行對(duì)CIST實(shí)例的優(yōu) 先級(jí)判斷;通過(guò)比較BPDU報(bào)文中MSTI實(shí)例與本地的MSTI實(shí)例域根、MSTI實(shí)例內(nèi)部路徑消 耗、MSTI實(shí)例指定橋優(yōu)先級(jí)和指定端口優(yōu)先級(jí)來(lái)進(jìn)行對(duì)該MSTI實(shí)例的優(yōu)先級(jí)判斷。對(duì)應(yīng)上述方法的防止多生成樹(shù)協(xié)議中老信息報(bào)文循環(huán)的交換設(shè)備,包括實(shí)例優(yōu)先 級(jí)比較模塊、域根比較模塊、端口設(shè)置模塊、接收狀態(tài)機(jī)處理模塊;實(shí)例優(yōu)先級(jí)比較模塊用于,對(duì)當(dāng)前端口接收到的域內(nèi)多生成樹(shù)協(xié)議的BPDU報(bào)文 中的各個(gè)實(shí)例進(jìn)行優(yōu)先級(jí)判斷,是否存在所述BPDU報(bào)文中某個(gè)實(shí)例相比本地更優(yōu),如是, 將BPDU報(bào)文送入域根比較模塊處理;如否,將BPDU報(bào)文送入接收狀態(tài)機(jī)處理模塊;域根比較模塊用于,判斷BPDU報(bào)文中攜帶的該實(shí)例的域根是否為域根比較模塊 所在的交換設(shè)備本身,如是,將BPDU報(bào)文送入端口設(shè)置模塊處理;如否,將BPDU報(bào)文送入接 收狀態(tài)機(jī)處理模塊;端口設(shè)置模塊用于,設(shè)置當(dāng)前端口不參與該實(shí)例根端口選擇后,將BPDU報(bào)文送入 接收狀態(tài)機(jī)處理模塊;接收狀態(tài)機(jī)處理模塊用于,繼續(xù)對(duì)域內(nèi)多生成樹(shù)協(xié)議的BPDU報(bào)文進(jìn)行接收狀態(tài) 機(jī)的處理。具體的,實(shí)例優(yōu)先級(jí)比較模塊包括MSTI實(shí)例優(yōu)先級(jí)比較模塊、CIST實(shí)例優(yōu)先級(jí)比 較模塊。CIST實(shí)例優(yōu)先級(jí)比較模塊用于,通過(guò)比較BPDU報(bào)文中CIST實(shí)例與本地的總根信 息、外部路徑消耗、CIST域根、CIST實(shí)例內(nèi)部路徑消耗、CIST實(shí)例指定端口信息來(lái)進(jìn)行對(duì) CIST實(shí)例的優(yōu)先級(jí)判斷,當(dāng)BPDU報(bào)文中CIST實(shí)例相比本地更優(yōu),則將BPDU報(bào)文送入域根 比較模塊處理;否則,將BPDU報(bào)文送入接收狀態(tài)機(jī)處理模塊。MSTI實(shí)例優(yōu)先級(jí)比較模塊用 于,通過(guò)比較BPDU報(bào)文中MSTI實(shí)例與本地的MSTI實(shí)例域根、MSTI實(shí)例內(nèi)部路徑消耗、MSTI 實(shí)例指定橋優(yōu)先級(jí)和指定端口優(yōu)先級(jí)來(lái)進(jìn)行對(duì)該CIST實(shí)例的優(yōu)先級(jí)判斷,當(dāng)BPDU報(bào)文中 MSTI實(shí)例相比本地更優(yōu),則將BPDU報(bào)文送入域根比較模塊處理;否則,將BPDU報(bào)文送入接 收狀態(tài)機(jī)處理模塊。本發(fā)明的有益效果是,提高網(wǎng)絡(luò)拓?fù)涞氖諗克俣?,同時(shí)不會(huì)完全丟棄報(bào)文中攜帶 的其它實(shí)例信息。在如今廣泛使用生成樹(shù)協(xié)議的交換設(shè)備中,能有效阻止失效老報(bào)文的循 環(huán)傳遞,減少了拓?fù)渥兓瘯r(shí)的振蕩次數(shù),同時(shí)能夠按照正常流程根據(jù)提取報(bào)文中其它實(shí)例 信息等。在測(cè)試環(huán)境中以前40秒左右的收斂時(shí)間能夠快速降低到正常的3到4秒左右。
圖1為現(xiàn)有多生成樹(shù)協(xié)議中老信息報(bào)文循環(huán)示意圖一;
圖2為現(xiàn)有多生成樹(shù)協(xié)議中老信息報(bào)文循環(huán)示意圖二 ;圖3為現(xiàn)有多生成樹(shù)協(xié)議中老信息報(bào)文循環(huán)示意圖三;圖4為現(xiàn)有多生成樹(shù)協(xié)議中老信息報(bào)文循環(huán)示意圖四;圖5為現(xiàn)有多生成樹(shù)協(xié)議中老信息報(bào)文循環(huán)示意圖五;圖6為現(xiàn)有多生成樹(shù)協(xié)議中老信息報(bào)文循環(huán)示意圖六;圖7為實(shí)施例交換設(shè)備結(jié)構(gòu)示意圖;圖8為實(shí)施例流程圖;圖9為實(shí)施例防止多生成樹(shù)協(xié)議中老信息報(bào)文循環(huán)示意圖。
具體實(shí)施例方式BPDU報(bào)文中包括一個(gè)CIST實(shí)例、多個(gè)MSTI實(shí)例。如圖7所示,交換設(shè)備包括實(shí) 例優(yōu)先級(jí)比較模塊、域根比較模塊、端口設(shè)置模塊、接收狀態(tài)機(jī)處理模塊;其中實(shí)例優(yōu)先級(jí) 比較模塊包括MSTI實(shí)例優(yōu)先級(jí)比較模塊、CIST實(shí)例優(yōu)先級(jí)比較模塊。具體處理步驟如圖8 所示步驟701 交換設(shè)備接收到BPDU報(bào)文;步驟702 =CIST實(shí)例優(yōu)先級(jí)比較模塊進(jìn)行CIST實(shí)例的信息處理,判斷BPDU報(bào)文信 息是否更優(yōu),如果更優(yōu)且來(lái)自域內(nèi)進(jìn)入步驟703 ;否則將BPDU報(bào)文送入正常處理流程,進(jìn)入 步驟705;判斷CIST信息是否更優(yōu),主要是與本地比較總根信息、外部路徑消耗、CIST域根、 內(nèi)部路徑消耗、指定端口信息進(jìn)行比較;步驟703 交換設(shè)備的域根比較模塊判斷報(bào)文中攜帶的CIST域根是否為交換設(shè)備 自己,是則認(rèn)為此接收端口不能進(jìn)行根端口選擇,進(jìn)入到步驟704 ;否則走正常處理流程, 進(jìn)入步驟705 ;步驟704 端口設(shè)置模塊設(shè)置該端口不參與CIST根端口角色處理的標(biāo)志,同時(shí)進(jìn) 入步驟705 ;步驟705 接收狀態(tài)機(jī)處理模塊繼續(xù)對(duì)報(bào)文進(jìn)行CIST接收狀態(tài)機(jī)的其它處理;步驟706 =CIST信息處理完成,判斷報(bào)文是否來(lái)自域內(nèi),如果是并且還有其它實(shí)例 信息,進(jìn)入到其它的實(shí)例信息(MSTI實(shí)例)處理過(guò)程,即步驟707 ;否則如果來(lái)自域外,或者 是沒(méi)有其它實(shí)例信息,報(bào)文處理完成;步驟707 =MSTI實(shí)例優(yōu)先級(jí)比較模塊比較報(bào)文中第一個(gè)MSTI實(shí)例信息,如果該實(shí) 例比本地信息更優(yōu),進(jìn)入步驟708 ;否則走正常處理流程,進(jìn)入步驟7010 ;判斷MSTI實(shí)例信 息是否更優(yōu),主要是與本地比較該實(shí)例域根信息、該實(shí)例內(nèi)部路徑消耗、該實(shí)例指定橋優(yōu)先 級(jí)和指定端口優(yōu)先級(jí)進(jìn)行比較;步驟708 交換設(shè)備的域根比較模塊判斷報(bào)文中攜帶的MSTI實(shí)例域根是否為自 己,如果是自己,則認(rèn)為該端口不能參與該實(shí)例根端口選擇,進(jìn)入步驟709 ;否則走正常處 理流程,進(jìn)入步驟7010 ;步驟709 端口設(shè)置模塊設(shè)置該端口不參與該MSTI實(shí)例根端口角色處理的標(biāo)志, 同時(shí)繼續(xù)進(jìn)入步驟7010 ;步驟7010 接收狀態(tài)機(jī)處理模塊繼續(xù)對(duì)報(bào)文進(jìn)行MSTI接收狀態(tài)機(jī)的其它處理;步驟7011 第一個(gè)MSTI實(shí)例處理完成,繼續(xù)處理報(bào)文中攜帶的其它MSTI實(shí)例信息,所有MSTI實(shí)例按照第一個(gè)MSTI實(shí)例的處理方式進(jìn)行,都遍歷完之后該報(bào)文處理流程完 成。 在MSTP的多實(shí)例情況下,各實(shí)例的處理方式都基本一致,在技術(shù)背景中描述的例 子適用于CIST和其它MSTI實(shí)例。因此還是以圖1的拓?fù)錇槔H鐖D9所示,當(dāng)設(shè)備Bl的端口 0/2連接斷了之后,按照現(xiàn)有協(xié)議流程會(huì)進(jìn)行到圖3 所示的情況,即設(shè)備B2以自己為域根向設(shè)備Bl的端口 0/3發(fā)送報(bào)文,而設(shè)備B3仍然向Bl 的端口 0/1發(fā)送老的BPDU報(bào)文。當(dāng)Bl的端口 0/1收到以A為總根、自己為域根的老的BPDU時(shí),按照本發(fā)明所描述 的方法,不會(huì)參與到根端口的選擇中,因此會(huì)選擇端口 0/3為新的根端口,而端口 0/1由指 定端口轉(zhuǎn)換為替換端口,同時(shí)進(jìn)入到阻塞狀態(tài)。如圖8所示。設(shè)備Bl的端口 0/1上有效阻 止了老的無(wú)效報(bào)文的循環(huán),收到第一個(gè)老報(bào)文時(shí)就能穩(wěn)定拓?fù)錉顟B(tài)。
權(quán)利要求
防止多生成樹(shù)協(xié)議中老信息報(bào)文循環(huán)的方法,其特征在于,包括以下步驟a、交換設(shè)備對(duì)當(dāng)前端口接收到的域內(nèi)多生成樹(shù)協(xié)議的BPDU報(bào)文中的各個(gè)實(shí)例進(jìn)行優(yōu)先級(jí)判斷,是否存在所述BPDU報(bào)文中某個(gè)實(shí)例相比本地更優(yōu),如是,進(jìn)入步驟b;如否,進(jìn)入步驟d;b、交換設(shè)備判斷所述BPDU報(bào)文中攜帶的該實(shí)例的域根是否為所述交換設(shè)備本身,如是步驟c;如否,進(jìn)入步驟d;c、交換設(shè)備設(shè)置當(dāng)前端口不參與該實(shí)例根端口選擇,進(jìn)入步驟d;d、繼續(xù)對(duì)域內(nèi)多生成樹(shù)協(xié)議的BPDU報(bào)文進(jìn)行接收狀態(tài)機(jī)的處理。
2.如權(quán)利要求1所述防止生成樹(shù)協(xié)議中老信息報(bào)文循環(huán)的方法,其特征在于,所述 BPDU報(bào)文中包括MSTI實(shí)例、CIST實(shí)例。
3.如權(quán)利要求2所述防止生成樹(shù)協(xié)議中老信息報(bào)文循環(huán)的方法,其特征在于,交換設(shè) 備通過(guò)比較BPDU報(bào)文中CTIS實(shí)例與本地的總根信息、外部路徑消耗、CIST域根、CIST實(shí)例 內(nèi)部路徑消耗、CIST實(shí)例指定端口信息來(lái)進(jìn)行對(duì)CIST實(shí)例的優(yōu)先級(jí)判斷。
4.如權(quán)利要求2所述防止生成樹(shù)協(xié)議中老信息報(bào)文循環(huán)的方法,其特征在于,交換設(shè) 備通過(guò)比較BPDU報(bào)文中MSTI實(shí)例與本地的MSTI實(shí)例域根、MSTI實(shí)例內(nèi)部路徑消耗、MSTI 實(shí)例指定橋優(yōu)先級(jí)和指定端口優(yōu)先級(jí)來(lái)進(jìn)行對(duì)該MSTI實(shí)例的優(yōu)先級(jí)判斷。
5.防止多生成樹(shù)協(xié)議中老信息報(bào)文循環(huán)的交換設(shè)備,其特征在于,包括實(shí)例優(yōu)先級(jí)比 較模塊、域根比較模塊、端口設(shè)置模塊、接收狀態(tài)機(jī)處理模塊;所述實(shí)例優(yōu)先級(jí)比較模塊用于,對(duì)當(dāng)前端口接收到的域內(nèi)多生成樹(shù)協(xié)議的BPDU報(bào)文 中的各個(gè)實(shí)例進(jìn)行優(yōu)先級(jí)判斷,是否存在所述BPDU報(bào)文中某個(gè)實(shí)例相比本地更優(yōu),如是, 將BPDU報(bào)文送入域根比較模塊處理;如否,將BPDU報(bào)文送入接收狀態(tài)機(jī)處理模塊;所述域根比較模塊用于,判斷BPDU報(bào)文中攜帶的該實(shí)例的域根是否為域根比較模塊 所在的交換設(shè)備本身,如是,將BPDU報(bào)文送入端口設(shè)置模塊處理;如否,將BPDU報(bào)文送入接 收狀態(tài)機(jī)處理模塊;所述端口設(shè)置模塊用于,設(shè)置當(dāng)前端口不參與該實(shí)例根端口選擇后,將BPDU報(bào)文送入 接收狀態(tài)機(jī)處理模塊;所述接收狀態(tài)機(jī)處理模塊用于,繼續(xù)對(duì)域內(nèi)多生成樹(shù)協(xié)議的BPDU報(bào)文進(jìn)行接收狀態(tài) 機(jī)的處理。
6.如權(quán)利要求5所述防止多生成樹(shù)協(xié)議中老信息報(bào)文循環(huán)的交換設(shè)備,其特征在于, 所述實(shí)例優(yōu)先級(jí)比較模塊包括MSTI實(shí)例優(yōu)先級(jí)比較模塊、CTIS實(shí)例優(yōu)先級(jí)比較模塊。
7.如權(quán)利要求6所述防止多生成樹(shù)協(xié)議中老信息報(bào)文循環(huán)的交換設(shè)備,其特征在于, 所述CIST實(shí)例優(yōu)先級(jí)比較模塊用于,通過(guò)比較BPDU報(bào)文中CIST實(shí)例與本地的總根信息、 外部路徑消耗、CIST域根、CIST實(shí)例內(nèi)部路徑消耗、CIST實(shí)例指定端口信息來(lái)進(jìn)行對(duì)CIST 實(shí)例的優(yōu)先級(jí)判斷,當(dāng)BPDU報(bào)文中CIST實(shí)例相比本地更優(yōu),則將BPDU報(bào)文送入域根比較 模塊處理;否則,將BPDU報(bào)文送入接收狀態(tài)機(jī)處理模塊;
8.如權(quán)利要求6所述防止多生成樹(shù)協(xié)議中老信息報(bào)文循環(huán)的交換設(shè)備,其特征在于, 所述MSTI實(shí)例優(yōu)先級(jí)比較模塊用于,通過(guò)比較BPDU報(bào)文中MSTI實(shí)例與本地的MSTI實(shí)例 域根、MSTI實(shí)例內(nèi)部路徑消耗、MSTI實(shí)例指定橋優(yōu)先級(jí)和指定端口優(yōu)先級(jí)來(lái)進(jìn)行對(duì)該CIST 實(shí)例的優(yōu)先級(jí)判斷,當(dāng)BPDU報(bào)文中MSTI實(shí)例相比本地更優(yōu),則將BPDU報(bào)文送入域根比較 模塊處理;否則,將BPDU報(bào)文送入接收狀態(tài)機(jī)處理模塊。
全文摘要
本發(fā)明提供一種在MSTP的復(fù)雜環(huán)境中,當(dāng)網(wǎng)絡(luò)發(fā)生變化時(shí)既能快速切斷老的失效BPDU報(bào)文在網(wǎng)絡(luò)中的循環(huán)傳遞,又能保證報(bào)文中其它實(shí)例能得到繼續(xù)處理的方法,以及實(shí)現(xiàn)該方法的交換設(shè)備。本發(fā)明就現(xiàn)有的老信息報(bào)文循環(huán)過(guò)程進(jìn)行改進(jìn),當(dāng)端口接收到的域內(nèi)BPDU報(bào)文中某個(gè)實(shí)例信息更優(yōu),而報(bào)文中攜帶的該實(shí)例的域根為該交換設(shè)備自己,則交換設(shè)備主動(dòng)設(shè)置該端口不參與該實(shí)例的根端口選擇。從而有效阻止了失效老報(bào)文的循環(huán)傳遞,又不會(huì)對(duì)循環(huán)報(bào)文進(jìn)行完全丟棄,只是讓報(bào)文中某個(gè)實(shí)例的信息不參與根端口選擇,避免了因?yàn)橥耆珌G棄而出現(xiàn)的端口狀態(tài)沖突檢測(cè)或其它實(shí)例信息丟棄等錯(cuò)誤狀態(tài)。發(fā)明名稱為防止多生成樹(shù)協(xié)議中老信息報(bào)文循環(huán)的方法及交換設(shè)備。
文檔編號(hào)H04L29/06GK101808045SQ20101015837
公開(kāi)日2010年8月18日 申請(qǐng)日期2010年4月29日 優(yōu)先權(quán)日2010年4月29日
發(fā)明者丁滿義, 陳濤 申請(qǐng)人:邁普通信技術(shù)股份有限公司