国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      生成樹(shù)協(xié)議STP計(jì)算方法及裝置與流程

      文檔序號(hào):11236614閱讀:1448來(lái)源:國(guó)知局
      生成樹(shù)協(xié)議STP計(jì)算方法及裝置與流程

      本發(fā)明涉及通信技術(shù)領(lǐng)域,特別涉及一種生成樹(shù)協(xié)議(英文:spanningtreeprotocol;縮寫(xiě):stp)計(jì)算方法及裝置。



      背景技術(shù):

      跨設(shè)備鏈路聚合組(英文:multi-chassislinkaggregationgroup;縮寫(xiě):m-lag)是一種實(shí)現(xiàn)跨設(shè)備鏈路聚合的機(jī)制,能夠?qū)崿F(xiàn)多臺(tái)設(shè)備間的鏈路聚合,從而把鏈路可靠性從單板級(jí)提高到了設(shè)備級(jí),組成雙活系統(tǒng)。

      m-lag主要應(yīng)用于普通以太網(wǎng)絡(luò)、多鏈接透明互聯(lián)(英文:transparentinterconnectionoflotsoflinks;縮寫(xiě):trill)網(wǎng)絡(luò)、虛擬可擴(kuò)展局域網(wǎng)(英文:virtualextensiblelocalareanetwork;縮寫(xiě):vxlan)和ip(internetprotocol,網(wǎng)絡(luò)協(xié)議)網(wǎng)絡(luò)等網(wǎng)絡(luò)的雙規(guī)接入。一方面可以起到負(fù)載分擔(dān)流量的作用,另一方面可以起到備份保護(hù)的作用。為了提高可靠性,用戶經(jīng)常采用雙規(guī)接入的方式將服務(wù)器接入到網(wǎng)絡(luò)中。如圖1所示,其示出了一種雙規(guī)接入的組網(wǎng)示意圖。服務(wù)器11采用雙規(guī)接入的方式接入到網(wǎng)絡(luò)中。在接入側(cè),采用m-lag保證了設(shè)備級(jí)可靠性和鏈路級(jí)可靠性。在設(shè)備12和設(shè)備13之間部署m-lag,設(shè)備12和設(shè)備13之間通過(guò)peer-link鏈路建立連接。設(shè)備12與服務(wù)器11之間的鏈路以及設(shè)備13與服務(wù)器11之間的鏈路形成鏈路聚合組(英文:linkaggregationgroup;縮寫(xiě):lag)。每個(gè)lag唯一對(duì)應(yīng)著一個(gè)邏輯接口,這個(gè)邏輯接口稱為聚合接口或eth-trunk接口。

      多級(jí)m-lag互聯(lián)(也稱為m-lag級(jí)聯(lián)或者m-lag對(duì)接)是對(duì)普通m-lag進(jìn)行擴(kuò)展對(duì)接的場(chǎng)景,能更好地做到更大帶寬的負(fù)載均衡和備份保護(hù)的作用。如圖2所示,其示出了一種多級(jí)m-lag互聯(lián)的組網(wǎng)示意圖。設(shè)備a和設(shè)備b之間部署m-lag,設(shè)備c和設(shè)備d之間也部署m-lag,且兩個(gè)m-lag進(jìn)行級(jí)聯(lián),這樣不僅可以簡(jiǎn)化組網(wǎng),而且在保證可靠性的同時(shí)擴(kuò)展了接入服務(wù)器的數(shù)量。

      在上述基于m-lag的組網(wǎng)中,為了進(jìn)行鏈路備份以提高網(wǎng)絡(luò)可靠性,使用冗余鏈路。但是,使用冗余鏈路會(huì)在交換網(wǎng)絡(luò)上產(chǎn)生環(huán)路,引發(fā)廣播風(fēng)暴以及介質(zhì)訪問(wèn)控制(英文:mediaaccesscontrol;縮寫(xiě):mac)地址表不穩(wěn)定等故障現(xiàn)象,從而導(dǎo)致用戶通信質(zhì)量較差,甚至通信中斷。為解決交換網(wǎng)絡(luò)中的環(huán)路問(wèn)題,提出了stp。stp是一個(gè)用于局域網(wǎng)中消除環(huán)路的協(xié)議。運(yùn)行該協(xié)議的設(shè)備通過(guò)彼此交互信息而發(fā)現(xiàn)網(wǎng)絡(luò)中的環(huán)路,并適當(dāng)對(duì)某些端口進(jìn)行阻塞以消除環(huán)路。在交換網(wǎng)絡(luò)中部署stp之后,如果網(wǎng)絡(luò)中出現(xiàn)了環(huán)路,stp通過(guò)拓?fù)溆?jì)算,一方面通過(guò)阻塞冗余鏈路消除網(wǎng)絡(luò)中可能存在的網(wǎng)絡(luò)通信環(huán)路,達(dá)到消除環(huán)路的目的,另一方面通過(guò)在當(dāng)前活動(dòng)的路徑發(fā)生故障時(shí),激活冗余備份鏈路,恢復(fù)網(wǎng)絡(luò)連通性,達(dá)到鏈路備份的目的。由于局域網(wǎng)規(guī)模的不斷增長(zhǎng),stp已經(jīng)成為了當(dāng)前最重要的局域網(wǎng)協(xié)議之一。

      然而,針對(duì)上述采用m-lag進(jìn)行組網(wǎng)的場(chǎng)景,如果采用現(xiàn)有的stp算法對(duì)網(wǎng)絡(luò)中的環(huán)路進(jìn)行破壞,會(huì)存在如下問(wèn)題:采用現(xiàn)有的stp算法有可能將peer-link端口或者m-lag端口的成員端口eth-trunk端口置為阻塞狀態(tài),進(jìn)而導(dǎo)致m-lag的功能隨之失效。



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

      為了解決現(xiàn)有技術(shù)中針對(duì)采用m-lag進(jìn)行組網(wǎng)的場(chǎng)景,采用現(xiàn)有的stp算法有可能將peer-link端口或者m-lag端口的成員端口eth-trunk端口置為阻塞狀態(tài),進(jìn)而導(dǎo)致m-lag的功能隨之失效的問(wèn)題,本發(fā)明實(shí)施例提供了一種stp計(jì)算方法及裝置。所述技術(shù)方案如下:

      第一方面,提供了一種stp計(jì)算方法,該方法包括:第一設(shè)備向第二設(shè)備發(fā)送第一設(shè)備的stp配置信息,stp配置信息包括橋mac地址和實(shí)例優(yōu)先級(jí)信息;第一設(shè)備根據(jù)第一設(shè)備的stp配置信息,計(jì)算第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量;其中,第一設(shè)備的內(nèi)部端口是指第一設(shè)備與第二設(shè)備連接的端口,擴(kuò)展優(yōu)先級(jí)向量用于使得第一設(shè)備和第二設(shè)備屬于同一邏輯端口的成員端口的角色計(jì)算結(jié)果相同;第一設(shè)備從第二設(shè)備接收第二設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量;其中,第二設(shè)備的內(nèi)部端口是指第二設(shè)備與第一設(shè)備連接的端口,第二設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量由第二設(shè)備根據(jù)第一設(shè)備的stp配置信息計(jì)算得到;第一設(shè)備根據(jù)第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量和第二設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量的比較結(jié)果,計(jì)算第一設(shè)備的各個(gè)端口的角色。

      通過(guò)上述方式,解決了現(xiàn)有技術(shù)中針對(duì)采用m-lag進(jìn)行組網(wǎng)的場(chǎng)景,采用現(xiàn)有的stp算法有可能將peer-link端口或者m-lag端口的成員端口eth-trunk端口置為阻塞狀態(tài),進(jìn)而導(dǎo)致m-lag的功能隨之失效的問(wèn)題;通過(guò)在第一設(shè)備和第二設(shè)備之間同步stp配置信息和內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量,從而使得兩臺(tái)設(shè)備對(duì)外體現(xiàn)為一臺(tái)設(shè)備進(jìn)行stp計(jì)算,保證兩臺(tái)設(shè)備屬于同一m-lag組的成員端口的角色計(jì)算結(jié)果相同,從而不阻塞peer-link端口和m-lag端口的成員端口eth-trunk端口。

      在第一方面的第一種可能的實(shí)施方式中,第一設(shè)備根據(jù)第一設(shè)備的stp配置信息,計(jì)算第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量,包括:第一設(shè)備根據(jù)第一設(shè)備的stp配置信息,計(jì)算第一設(shè)備除內(nèi)部端口以外的其它端口的優(yōu)先級(jí)向量;第一設(shè)備從其它端口中選取優(yōu)先級(jí)最高的優(yōu)先級(jí)向量,作為第一設(shè)備的根優(yōu)先級(jí)向量;第一設(shè)備將第一設(shè)備的根優(yōu)先級(jí)向量與第一設(shè)備的內(nèi)部端口的優(yōu)先級(jí)向量進(jìn)行比較,并根據(jù)優(yōu)先級(jí)較高的優(yōu)先級(jí)向量確定第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量。

      結(jié)合第一方面的第一種可能的實(shí)施方式,在第一方面的第二種可能的實(shí)施方式中,擴(kuò)展優(yōu)先級(jí)向量包括:根橋id字段、累計(jì)根路徑開(kāi)銷字段、指定橋id字段、指定端口id字段、邏輯端口id字段、接收端口id字段和系統(tǒng)mac地址字段。根橋id字段指示根橋的橋id。累計(jì)根路徑開(kāi)銷字段指示端口累計(jì)到根橋的路徑開(kāi)銷。指定橋id字段指示發(fā)送根優(yōu)先級(jí)向量的設(shè)備的橋id。指定端口id字段指示發(fā)送根優(yōu)先級(jí)向量的端口的端口id。邏輯端口id字段指示本設(shè)備接收根優(yōu)先級(jí)向量的端口對(duì)應(yīng)的邏輯端口的端口id。接收端口id字段指示本設(shè)備接收根優(yōu)先級(jí)向量的端口的端口id。系統(tǒng)mac地址字段指示本設(shè)備的mac地址。

      通過(guò)上述方式,對(duì)stp標(biāo)準(zhǔn)協(xié)議所規(guī)定的端口優(yōu)先級(jí)向量進(jìn)行了擴(kuò)展,以保證第一設(shè)備和第二設(shè)備加入同一m-lag組的eth-trunk端口的角色計(jì)算結(jié)果相同。

      結(jié)合第一方面或者第一方面的任意一種可能的實(shí)施方式,在第一方面的第三種可能的實(shí)施方式中,第一設(shè)備根據(jù)第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量和第二設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量,計(jì)算第一設(shè)備的各個(gè)端口的角色,包括:第一設(shè)備將第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量和第二設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量進(jìn)行比較,選取優(yōu)先級(jí)較高的優(yōu)先級(jí)向量作為第一設(shè)備最終的根優(yōu)先級(jí)向量;第一設(shè)備根據(jù)第一設(shè)備最終的根優(yōu)先級(jí)向量,計(jì)算第一設(shè)備的各個(gè)端口的角色。

      結(jié)合第一方面或者第一方面的任意一種可能的實(shí)施方式,在第一方面的第四種可能的實(shí)施方式中,第一設(shè)備根據(jù)第一設(shè)備的stp配置信息,計(jì)算第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量之后,還包括:第一設(shè)備向第二設(shè)備發(fā)送第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量,以使得第二設(shè)備根據(jù)第二設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量和第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量的比較結(jié)果,計(jì)算第二設(shè)備的各個(gè)端口的角色。

      結(jié)合第一方面或者第一方面的任意一種可能的實(shí)施方式,在第一方面的第五種可能的實(shí)施方式中,第一設(shè)備根據(jù)第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量和第二設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量,計(jì)算第一設(shè)備的各個(gè)端口的角色之后,還包括:第一設(shè)備設(shè)置第一設(shè)備的內(nèi)部端口由阻塞狀態(tài)變?yōu)檗D(zhuǎn)發(fā)狀態(tài)。

      通過(guò)上述方式,保證第一設(shè)備和第二設(shè)備的內(nèi)部端口在完成stp拓?fù)溆?jì)算之后,能夠轉(zhuǎn)發(fā)用戶流量。

      結(jié)合第一方面或者第一方面的任意一種可能的實(shí)施方式,在第一方面的第六種可能的實(shí)施方式中,第一設(shè)備和第二設(shè)備屬于同一邏輯端口的成員端口發(fā)出的報(bào)文所攜帶的指定端口id相同。

      通過(guò)上述方式,保證其它設(shè)備從同一m-lag端口的不同成員端口接收到的bpdu報(bào)文中的指定端口id字段相同,避免引起下游設(shè)備震蕩,提高網(wǎng)絡(luò)穩(wěn)定性。

      第二方面,提供了一種stp計(jì)算方法,該方法包括:第二設(shè)備從第一設(shè)備接收第一設(shè)備的stp配置信息,stp配置信息包括橋mac地址和實(shí)例優(yōu)先級(jí)信息;第二設(shè)備根據(jù)第一設(shè)備的stp配置信息,計(jì)算第二設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量;其中,第二設(shè)備的內(nèi)部端口是指第二設(shè)備與第一設(shè)備連接的端口,擴(kuò)展優(yōu)先級(jí)向量用于使得第二設(shè)備和第一設(shè)備屬于同一邏輯端口的成員端口的角色計(jì)算結(jié)果相同;第二設(shè)備從第一設(shè)備接收第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量;其中,第一設(shè)備的內(nèi)部端口是指第一設(shè)備與第二設(shè)備連接的端口,第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量由第一設(shè)備根據(jù)第一設(shè)備的stp配置信息計(jì)算得到;第二設(shè)備根據(jù)第二設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量和第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量的比較結(jié)果,計(jì)算第二設(shè)備的各個(gè)端口的角色。

      在第二方面的第一種可能的實(shí)施方式中,第二設(shè)備根據(jù)第一設(shè)備的stp配置信息,計(jì)算第二設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量,包括:第二設(shè)備根據(jù)第一設(shè)備的stp配置信息,計(jì)算第二設(shè)備除內(nèi)部端口以外的其它端口的優(yōu)先級(jí)向量;第二設(shè)備從其它端口中選取優(yōu)先級(jí)最高的優(yōu)先級(jí)向量,作為第二設(shè)備的根優(yōu)先級(jí)向量;第二設(shè)備將第二設(shè)備的根優(yōu)先級(jí)向量與第二設(shè)備的內(nèi)部端口的優(yōu)先級(jí)向量進(jìn)行比較,并根據(jù)優(yōu)先級(jí)較高的優(yōu)先級(jí)向量確定第二設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量。

      結(jié)合第二方面的第一種可能的實(shí)施方式,在第二方面的第二種可能的實(shí)施方式中,擴(kuò)展優(yōu)先級(jí)向量包括:根橋id字段、累計(jì)根路徑開(kāi)銷字段、指定橋id字段、指定端口id字段、邏輯端口id字段、接收端口id字段和系統(tǒng)mac地址字段。根橋id字段指示根橋的橋id。累計(jì)根路徑開(kāi)銷字段指示端口累計(jì)到根橋的路徑開(kāi)銷。指定橋id字段指示發(fā)送根優(yōu)先級(jí)向量的設(shè)備的橋id。指定端口id字段指示發(fā)送根優(yōu)先級(jí)向量的端口的端口id。邏輯端口id字段指示本設(shè)備接收根優(yōu)先級(jí)向量的端口對(duì)應(yīng)的邏輯端口的端口id。接收端口id字段指示本設(shè)備接收根優(yōu)先級(jí)向量的端口的端口id。系統(tǒng)mac地址字段指示本設(shè)備的mac地址。

      結(jié)合第二方面或者第二方面的任意一種可能的實(shí)施方式,在第二方面的第三種可能的實(shí)施方式中,第二設(shè)備根據(jù)第二設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量和第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量,計(jì)算第二設(shè)備的各個(gè)端口的角色,包括:第二設(shè)備將第二設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量和第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量進(jìn)行比較,選取優(yōu)先級(jí)較高的優(yōu)先級(jí)向量作為第二設(shè)備最終的根優(yōu)先級(jí)向量;第二設(shè)備根據(jù)第二設(shè)備最終的根優(yōu)先級(jí)向量,計(jì)算第二設(shè)備的各個(gè)端口的角色。

      結(jié)合第二方面或者第二方面的任意一種可能的實(shí)施方式,在第二方面的第四種可能的實(shí)施方式中,第二設(shè)備根據(jù)第一設(shè)備的stp配置信息,計(jì)算第二設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量之后,還包括:第二設(shè)備向第一設(shè)備發(fā)送第二設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量,以使得第一設(shè)備根據(jù)第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量和第二設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量的比較結(jié)果,計(jì)算第一設(shè)備的各個(gè)端口的角色。

      結(jié)合第二方面或者第二方面的任意一種可能的實(shí)施方式,在第二方面的第五種可能的實(shí)施方式中,第二設(shè)備根據(jù)第二設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量和第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量,計(jì)算第二設(shè)備的各個(gè)端口的角色之后,還包括:第二設(shè)備設(shè)置第二設(shè)備的內(nèi)部端口由阻塞狀態(tài)變?yōu)檗D(zhuǎn)發(fā)狀態(tài)。

      結(jié)合第二方面或者第二方面的任意一種可能的實(shí)施方式,在第二方面的第六種可能的實(shí)施方式中,第二設(shè)備和第一設(shè)備屬于同一邏輯端口的成員端口發(fā)出的報(bào)文所攜帶的指定端口id相同。

      第三方面,提供了一種stp計(jì)算裝置,該裝置包括至少一個(gè)單元,該至少一個(gè)單元用于實(shí)現(xiàn)上述第一方面或者第一方面中任意一種可能的實(shí)施方式所提供的stp計(jì)算方法。

      第四方面,提供了一種stp計(jì)算裝置,該裝置包括至少一個(gè)單元,該至少一個(gè)單元用于實(shí)現(xiàn)上述第二方面或者第二方面中任意一種可能的實(shí)施方式所提供的stp計(jì)算方法。

      第五方面,提供了一種網(wǎng)絡(luò)設(shè)備,該網(wǎng)絡(luò)設(shè)備包括:處理器、存儲(chǔ)器和收發(fā)器,存儲(chǔ)器用于存儲(chǔ)一個(gè)或者一個(gè)以上的指令,該指令被配置成由處理器執(zhí)行,該指令用于實(shí)現(xiàn)上述第一方面、或者第一方面中任意一種可能的實(shí)施方式、或者第二方面、或者第二方面中任意一種可能的實(shí)施方式所提供的stp計(jì)算方法。

      附圖說(shuō)明

      為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。

      圖1是一種雙規(guī)接入的組網(wǎng)示意圖;

      圖2是一種多級(jí)m-lag互聯(lián)的組網(wǎng)示意圖;

      圖3是一種現(xiàn)有的stp算法計(jì)算前后的網(wǎng)絡(luò)拓?fù)鋱D;

      圖4是本發(fā)明一個(gè)實(shí)施例提供的網(wǎng)絡(luò)設(shè)備的框圖;

      圖5是本發(fā)明一個(gè)實(shí)施例提供的stp計(jì)算方法的流程圖;

      圖6是本發(fā)明另一實(shí)施例提供的stp計(jì)算方法的流程圖;

      圖7是本發(fā)明再一實(shí)施例提供的stp計(jì)算方法的流程圖;

      圖8a是本發(fā)明一個(gè)實(shí)施例提供的stp計(jì)算裝置的框圖;

      圖8b是本發(fā)明另一實(shí)施例提供的stp計(jì)算裝置的框圖;

      圖9a是本發(fā)明另一實(shí)施例提供的stp計(jì)算裝置的框圖;

      圖9b是本發(fā)明另一實(shí)施例提供的stp計(jì)算裝置的框圖。

      具體實(shí)施方式

      為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施方式作進(jìn)一步地詳細(xì)描述。

      在本文中提及的“模塊”是指存儲(chǔ)在存儲(chǔ)器中的能夠?qū)崿F(xiàn)某些功能的程序或指令;在本文中提及的“單元”是指按照邏輯劃分的功能性結(jié)構(gòu),該“單元”可以由純硬件實(shí)現(xiàn),或者由軟硬件的結(jié)合實(shí)現(xiàn)。

      在本文中提及的“多個(gè)”是指兩個(gè)或兩個(gè)以上?!昂?或”,描述關(guān)聯(lián)對(duì)象的關(guān)聯(lián)關(guān)系,表示可以存在三種關(guān)系,例如,a和/或b,可以表示:?jiǎn)为?dú)存在a,同時(shí)存在a和b,單獨(dú)存在b這三種情況。字符“/”一般表示前后關(guān)聯(lián)對(duì)象是一種“或”的關(guān)系。

      在本文中提及的“接口”和“端口”為同一概念。

      在對(duì)本發(fā)明實(shí)施例進(jìn)行介紹和說(shuō)明之前,首先對(duì)現(xiàn)有的stp算法進(jìn)行介紹。

      樹(shù)形網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)必須有樹(shù)根,于是stp引入了根橋(英文:rootbridge;縮寫(xiě):rb)的概念。對(duì)于一個(gè)stp網(wǎng)絡(luò),根橋在整個(gè)網(wǎng)絡(luò)中只有一個(gè),它是整個(gè)網(wǎng)絡(luò)的邏輯中心,但不一定是物理中心。根橋會(huì)根據(jù)網(wǎng)絡(luò)拓?fù)涞淖兓鴦?dòng)態(tài)變化。

      stp算法的兩大基本度量依據(jù)是id(英文:identity)和路徑開(kāi)銷(英文:pathcost)。id分為橋id(英文:bridgeid;縮寫(xiě):bid)和端口id(英文:portid;縮寫(xiě):pid)。bid由橋優(yōu)先級(jí)(英文:bridgepriority)和橋mac地址構(gòu)成。在stp網(wǎng)絡(luò)中,bid最小的設(shè)備會(huì)被選舉為根橋。pid由端口優(yōu)先級(jí)(英文:portpriority)和端口號(hào)構(gòu)成。pid只在某些情況下對(duì)選擇指定端口有作用。路徑開(kāi)銷是一個(gè)端口變量,是stp用于選擇鏈路的參考值。stp通過(guò)計(jì)算路徑開(kāi)銷,選擇較為“強(qiáng)壯”的鏈路,阻塞多余的鏈路,將網(wǎng)絡(luò)修剪成無(wú)環(huán)路的樹(shù)形網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。在一個(gè)stp網(wǎng)絡(luò)中,某端口到根橋的路徑開(kāi)銷就是由所經(jīng)過(guò)的各個(gè)橋上的各端口的路徑開(kāi)銷累加而成,這個(gè)值叫做根路徑開(kāi)銷(英文:rootpathcost)。

      stp算法將環(huán)形網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)變?yōu)闃?shù)形網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),總體來(lái)說(shuō)考慮如下三個(gè)要素:根橋、根端口(英文:rootport;縮寫(xiě):rp)和指定端口(英文:designatedport;縮寫(xiě):dp)。

      根橋是指網(wǎng)絡(luò)中bid最小的設(shè)備。通過(guò)交互網(wǎng)橋協(xié)議數(shù)據(jù)單元(英文:bridgeprotocoldataunit;縮寫(xiě):bpdu)報(bào)文,從網(wǎng)絡(luò)中選出最小的bid。

      根端口是指去往根橋路徑開(kāi)銷最小的端口。根端口負(fù)責(zé)向根橋方向轉(zhuǎn)發(fā)數(shù)據(jù),根端口的選擇標(biāo)準(zhǔn)是依據(jù)根路徑開(kāi)銷判定的。在一臺(tái)設(shè)備上所有使能stp的端口中,根路徑開(kāi)銷最小的端口即為根端口。很顯然,在一個(gè)運(yùn)行stp的設(shè)備上,根端口有且只有一個(gè),且根橋上沒(méi)有根端口。

      對(duì)于一臺(tái)設(shè)備而言,指定橋(英文:designatedbridge;縮寫(xiě):db)是指與本機(jī)直接相連并且負(fù)責(zé)向本機(jī)轉(zhuǎn)發(fā)配置消息的設(shè)備,指定端口即為指定橋向本機(jī)轉(zhuǎn)發(fā)配置消息的端口。對(duì)于一個(gè)局域網(wǎng)而言,指定橋是指負(fù)責(zé)向本網(wǎng)段轉(zhuǎn)發(fā)配置消息的設(shè)備,指定端口即為指定橋向本網(wǎng)段轉(zhuǎn)發(fā)配置消息的端口。

      一旦根橋、根端口、指定端口選舉成功,則整個(gè)樹(shù)形網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)建立完畢。在拓?fù)浞€(wěn)定后,只有根端口和指定端口轉(zhuǎn)發(fā)用戶流量,其它的非根端口和非指定端口處于阻塞(英文:blocking)狀態(tài),處于阻塞狀態(tài)的端口只接收stp報(bào)文而不轉(zhuǎn)發(fā)用戶流量。

      此外,網(wǎng)絡(luò)中各設(shè)備通過(guò)交互bpdu報(bào)文,選舉確定根橋、根端口和指定端口。bpdu報(bào)文中攜帶有端口的配置消息(也即優(yōu)先級(jí)向量)。其中,優(yōu)先級(jí)向量包括:根橋id字段、累計(jì)根路徑開(kāi)銷字段、指定橋id字段和指定端口id字段。根橋id字段(即rootbridgeid字段)指示根橋的橋id。累計(jì)根路徑開(kāi)銷字段(即rootpathcost字段)指示端口累計(jì)到根橋的路徑開(kāi)銷。指定橋id字段(即designatedbridgeid字段)指示發(fā)送bpdu報(bào)文的設(shè)備的橋id,指定橋id字段也稱為發(fā)送設(shè)備的橋id字段。指定端口id字段(designatedportid字段)指示發(fā)送bpdu報(bào)文的端口的端口id,指定端口id字段也稱為發(fā)送端口的端口id字段。此外,設(shè)備接收到bpdu報(bào)文之后,會(huì)在上述優(yōu)先級(jí)向量中添加接收端口id字段。接收端口id字段(即bridgeportid字段)指示本設(shè)備用于接收bpdu報(bào)文的端口的端口id。bpdu報(bào)文會(huì)按照規(guī)定的時(shí)間間隔進(jìn)行發(fā)送。上述bpdu報(bào)文通常為配置bpdu報(bào)文。

      下面,對(duì)stp算法的流程進(jìn)行介紹和說(shuō)明。stp算法的流程主要包括如下三個(gè)階段:

      第一,初始狀態(tài)

      在初始狀態(tài)下,網(wǎng)絡(luò)中的每臺(tái)設(shè)備都認(rèn)為自己是根橋,所以在每個(gè)端口所發(fā)出的bpdu報(bào)文中,根橋id字段是設(shè)備自己的bid,累計(jì)根路徑開(kāi)銷字段是累計(jì)到根橋的路徑開(kāi)銷,指定橋id字段是設(shè)備自己的bid,指定端口id字段是發(fā)送該bpdu報(bào)文的端口的pid。

      第二,選擇根橋

      網(wǎng)絡(luò)中的設(shè)備通過(guò)交換bpdu報(bào)文,比較根橋id,選擇網(wǎng)絡(luò)中根橋id最小的設(shè)備為根橋。

      第三,選擇根端口和指定端口

      1、非根橋設(shè)備將接收到最優(yōu)配置消息的端口確定為根端口。

      其中,最優(yōu)配置消息是指優(yōu)先級(jí)最高的配置消息。最優(yōu)配置消息的選擇過(guò)程包括如下步驟:

      a)對(duì)于每一個(gè)端口,將收到的配置消息與自己的配置消息進(jìn)行比較;如果收到的配置消息的優(yōu)先級(jí)較低,則將收到的配置消息直接丟棄,對(duì)自己的配置消息不進(jìn)行任何處理;如果收到的配置消息的優(yōu)先級(jí)較高,則用收到的配置消息的內(nèi)容將自己的配置消息的內(nèi)容替換掉;

      b)非根橋設(shè)備將所有端口的配置消息進(jìn)行比較,選出最優(yōu)配置消息。

      2、非根橋設(shè)備根據(jù)根端口的配置消息和根端口的路徑開(kāi)銷,為每一個(gè)端口分別計(jì)算一個(gè)指定端口的配置消息。

      指定端口的配置消息(也即優(yōu)先級(jí)向量)同樣包括:根橋id字段、累計(jì)根路徑開(kāi)銷字段、指定橋id字段和指定端口id字段。

      指定端口的配置消息的計(jì)算過(guò)程包括如下步驟:

      a)根橋id替換為根端口的配置消息的根橋id;

      b)根路徑開(kāi)銷替換為根端口的配置消息的根路徑開(kāi)銷加上根端口對(duì)應(yīng)的路徑開(kāi)銷;

      c)發(fā)送端設(shè)備的bid替換為自身設(shè)備的bid;

      d)發(fā)送端口的pid替換為自身端口的pid。

      3、非根橋設(shè)備將計(jì)算出的指定端口配置消息與角色待定端口自己的配置消息進(jìn)行比較,并根據(jù)比較結(jié)果確定指定端口。

      a)對(duì)于每一個(gè)端口,如果計(jì)算出的指定端口配置消息的優(yōu)先級(jí)較高,則確定該端口為指定端口,其配置消息也被計(jì)算出的指定端口配置消息替換,并周期性地向外發(fā)送;

      b)對(duì)于每一個(gè)端口,如果該端口自己的配置消息的優(yōu)先級(jí)較高,則不更新該端口的配置消息并將該端口阻塞。該端口將不再轉(zhuǎn)發(fā)數(shù)據(jù),且只接收不發(fā)送配置消息。

      一旦根橋、根端口和指定端口選舉成功,整個(gè)樹(shù)形網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)就建立完畢了。

      下面,結(jié)合一個(gè)例子說(shuō)明stp算法的流程。結(jié)合參考圖3,其示出了stp算法計(jì)算前后的網(wǎng)絡(luò)拓?fù)鋱D。左側(cè)圖示為計(jì)算前的環(huán)形網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),右側(cè)圖示為計(jì)算后的樹(shù)形網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。假設(shè)設(shè)備a、設(shè)備b和設(shè)備c的優(yōu)先級(jí)分別為0、1和2,設(shè)備a與設(shè)備b之間、設(shè)備a與設(shè)備c之間以及設(shè)備b與設(shè)備c之間鏈路的路徑開(kāi)銷分別為5、10和4。

      各設(shè)備的初始狀態(tài)如下表-1所示:

      表-1

      各設(shè)備的比較過(guò)程及結(jié)果如下表-2所示:

      表-2

      拓?fù)浞€(wěn)定后,根橋仍然按照規(guī)定的時(shí)間間隔發(fā)送bpdu報(bào)文;非根橋設(shè)備從根端口接收bpdu報(bào)文,通過(guò)指定端口轉(zhuǎn)發(fā)該bpdu報(bào)文。如果接收到優(yōu)先級(jí)比自己高的bpdu報(bào)文,則非根橋設(shè)備會(huì)根據(jù)接收到的bpdu報(bào)文中攜帶的配置信息更新自己相應(yīng)端口的配置信息。

      本發(fā)明實(shí)施例提供的技術(shù)方案,可應(yīng)用于m-lag組網(wǎng)的應(yīng)用場(chǎng)景中,也可應(yīng)用于普通兩臺(tái)設(shè)備虛擬成一臺(tái)設(shè)備進(jìn)行stp計(jì)算的應(yīng)用場(chǎng)景中。其中,m-lag組網(wǎng)可以是如圖1所示的普通m-lag組網(wǎng),也可以是如圖2所示的多級(jí)m-lag互聯(lián)的組網(wǎng)。具體來(lái)講,m-lag組網(wǎng)包括至少一組m-lag設(shè)備,每一組m-lag設(shè)備包括第一設(shè)備和第二設(shè)備(如圖1所示的普通m-lag組網(wǎng)中的設(shè)備12和設(shè)備13,或者如圖2所示的多級(jí)m-lag互聯(lián)的組網(wǎng)中的設(shè)備a和設(shè)備b,或者如圖2所示的多級(jí)m-lag互聯(lián)的組網(wǎng)中的設(shè)備c和設(shè)備d)。第一設(shè)備和第二設(shè)備之間采用peer-link鏈路建立連接。第一設(shè)備的eth-trunk端口和第二設(shè)備的eth-trunk端口加入同一m-lag組,屬于同一m-lag端口的成員端口。

      第一設(shè)備和第二設(shè)備通常是交換機(jī)。在一種可能的實(shí)施方式中,第一設(shè)備和第二設(shè)備分別包括:m-lag功能實(shí)體和stp功能實(shí)體。m-lag功能實(shí)體主要用于實(shí)現(xiàn)跨設(shè)備鏈路聚合的功能,包括協(xié)商m-lag主備設(shè)備。stp功能實(shí)體主要用于實(shí)現(xiàn)stp的功能,以消除網(wǎng)絡(luò)中的環(huán)路。

      本發(fā)明實(shí)施例提供的技術(shù)方案,通過(guò)將m-lag兩端設(shè)備虛擬為一臺(tái)設(shè)備,m-lag端口相當(dāng)于該虛擬出的設(shè)備的eth-trunk端口。本發(fā)明實(shí)施例提供的技術(shù)方案,在m-lag兩端設(shè)備完成主備協(xié)商之后,通過(guò)在m-lag主備設(shè)備上運(yùn)行虛擬生成樹(shù)協(xié)議(英文:virtualspanningtreeprotocol;縮寫(xiě):v-stp),以支持跨設(shè)備的xstp計(jì)算,使得兩臺(tái)設(shè)備對(duì)外體現(xiàn)為一臺(tái)設(shè)備進(jìn)行stp計(jì)算,保證屬于同一m-lag組的成員端口的角色計(jì)算結(jié)果相同,從而不阻塞peer-link端口和m-lag端口的成員端口eth-trunk端口。

      下面,對(duì)本文中涉及的一些名詞進(jìn)行解釋:

      鏈路聚合是將若干條物理鏈路捆綁在一起形成一條邏輯鏈路,也即將若干個(gè)物理接口捆綁在一起形成一個(gè)邏輯接口。通過(guò)配置鏈路聚合,可以實(shí)現(xiàn)增加帶寬、提高可靠性以及負(fù)載分擔(dān)的目的。鏈路聚合技術(shù)在以太網(wǎng)中得到了廣泛應(yīng)用,以太網(wǎng)鏈路聚合通過(guò)將若干條以太網(wǎng)物理鏈路捆綁在一起形成一條邏輯鏈路,從而實(shí)現(xiàn)增加鏈路帶寬的目的。同時(shí),這些捆綁在一起的鏈路通過(guò)互相間的動(dòng)態(tài)備份,可以有效地提高鏈路的可靠性。以太網(wǎng)鏈路聚合稱為eth-trunk。

      lag是指將若干條物理鏈路捆綁在一起所形成的邏輯鏈路。每個(gè)lag唯一對(duì)應(yīng)著一個(gè)邏輯接口,這個(gè)邏輯接口稱為聚合接口或eth-trunk接口。

      peer-link鏈路是指部署m-lag的兩臺(tái)設(shè)備之間所建立的直連鏈路。peer-link鏈路是一條保護(hù)鏈路,用于交互主備協(xié)商報(bào)文及傳輸部分流量。

      下面,通過(guò)幾個(gè)實(shí)施例對(duì)本發(fā)明提供的技術(shù)方案進(jìn)行介紹和說(shuō)明。

      請(qǐng)參考圖4,其示出了本發(fā)明一個(gè)實(shí)施例提供的網(wǎng)絡(luò)設(shè)備的框圖。該網(wǎng)絡(luò)設(shè)備可以是上文介紹的第一設(shè)備或者第二設(shè)備。該網(wǎng)絡(luò)設(shè)備400可以包括:處理器410、存儲(chǔ)器420、收發(fā)器430以及總線440。存儲(chǔ)器420和收發(fā)器430通過(guò)總線440與處理器410相連。

      處理器410包括一個(gè)或者一個(gè)以上處理核心。處理器410通過(guò)運(yùn)行軟件程序以及模塊,從而執(zhí)行各種功能應(yīng)用以及數(shù)據(jù)處理。處理器410包括運(yùn)算邏輯部件、寄存器部件以及控制部件等,其可以是獨(dú)立的中央處理器,或者也可以是嵌入式處理器,比如微處理器(英文:microprocessorunit;縮寫(xiě):mpu)、微控制器(英文:microcontrollerunit;縮寫(xiě):mcu)或者數(shù)字信號(hào)處理器(英文:embeddeddigitalsignalprocessor;縮寫(xiě):edsp)等。

      存儲(chǔ)器420可以由任何類型的易失性或非易失性存儲(chǔ)設(shè)備或者它們的組合實(shí)現(xiàn),如靜態(tài)隨機(jī)存取存儲(chǔ)器(英文:staticrandomaccessmemory;縮寫(xiě):sram),電可擦除可編程只讀存儲(chǔ)器(英文:electricallyerasableprogrammableread-onlymemory;縮寫(xiě):eeprom),可擦除可編程只讀存儲(chǔ)器(英文:erasableprogrammablereadonlymemory;縮寫(xiě):eprom),可編程只讀存儲(chǔ)器(英文:programmableread-onlymemory;縮寫(xiě):prom),只讀存儲(chǔ)器(英文:readonlymemory;縮寫(xiě):rom),磁存儲(chǔ)器,快閃存儲(chǔ)器,磁盤(pán)或光盤(pán)。存儲(chǔ)器420可用于存儲(chǔ)軟件程序以及模塊等可執(zhí)行的指令。

      處理器410被配置為執(zhí)行存儲(chǔ)器420中存儲(chǔ)的指令。當(dāng)該網(wǎng)絡(luò)設(shè)備400實(shí)現(xiàn)成為第一設(shè)備時(shí),處理器410通過(guò)執(zhí)行該指令來(lái)實(shí)現(xiàn)下述方法:控制收發(fā)器430向第二設(shè)備發(fā)送第一設(shè)備的stp配置信息,stp配置信息包括橋mac地址和實(shí)例優(yōu)先級(jí)信息;根據(jù)第一設(shè)備的stp配置信息,計(jì)算第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量;其中,第一設(shè)備的內(nèi)部端口是指第一設(shè)備與第二設(shè)備連接的端口,擴(kuò)展優(yōu)先級(jí)向量用于使得第一設(shè)備和第二設(shè)備屬于同一邏輯端口的成員端口的角色計(jì)算結(jié)果相同;控制收發(fā)器430從第二設(shè)備接收第二設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量;其中,第二設(shè)備的內(nèi)部端口是指第二設(shè)備與第一設(shè)備連接的端口,第二設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量由第二設(shè)備根據(jù)第一設(shè)備的stp配置信息計(jì)算得到;根據(jù)第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量和第二設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量的比較結(jié)果,計(jì)算第一設(shè)備的各個(gè)端口的角色。當(dāng)該網(wǎng)絡(luò)設(shè)備400實(shí)現(xiàn)成為第二設(shè)備時(shí),處理器410通過(guò)執(zhí)行該指令來(lái)實(shí)現(xiàn)下述方法:控制收發(fā)器430從第一設(shè)備接收第一設(shè)備的stp配置信息,stp配置信息包括橋mac地址和實(shí)例優(yōu)先級(jí)信息;根據(jù)第一設(shè)備的stp配置信息,計(jì)算第二設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量;其中,第二設(shè)備的內(nèi)部端口是指第二設(shè)備與第一設(shè)備連接的端口,擴(kuò)展優(yōu)先級(jí)向量用于使得第二設(shè)備和第一設(shè)備屬于同一邏輯端口的成員端口的角色計(jì)算結(jié)果相同;控制收發(fā)器430從第一設(shè)備接收第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量;其中,第一設(shè)備的內(nèi)部端口是指第一設(shè)備與第二設(shè)備連接的端口,第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量由第一設(shè)備根據(jù)第一設(shè)備的stp配置信息計(jì)算得到;根據(jù)第二設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量和第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量的比較結(jié)果,計(jì)算第二設(shè)備的各個(gè)端口的角色。

      收發(fā)器430用于對(duì)外通信,其可以包括多種類型接口。

      可選地,存儲(chǔ)器420可存儲(chǔ)操作系統(tǒng)422以及至少一個(gè)功能所需的應(yīng)用程序模塊424。操作系統(tǒng)422可以是實(shí)時(shí)操作系統(tǒng)(英文:realtimeexecutive;縮寫(xiě):rtx)、linux、unix、windows或osx之類的操作系統(tǒng)。如圖4所示,以該網(wǎng)絡(luò)設(shè)備400實(shí)現(xiàn)成為第一設(shè)備為例,應(yīng)用程序模塊424可以包括:第一發(fā)送模塊424a、第一計(jì)算模塊424b、第一接收模塊424c和第二計(jì)算模塊424d。

      第一發(fā)送模塊424a用于向第二設(shè)備發(fā)送第一設(shè)備的stp配置信息,stp配置信息包括橋mac地址和實(shí)例優(yōu)先級(jí)信息。第一計(jì)算模塊424b用于根據(jù)第一設(shè)備的stp配置信息,計(jì)算第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量;其中,第一設(shè)備的內(nèi)部端口是指第一設(shè)備與第二設(shè)備連接的端口,擴(kuò)展優(yōu)先級(jí)向量用于使得第一設(shè)備和第二設(shè)備屬于同一邏輯端口的成員端口的角色計(jì)算結(jié)果相同。第一接收模塊424c用于從第二設(shè)備接收第二設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量;其中,第二設(shè)備的內(nèi)部端口是指第二設(shè)備與第一設(shè)備連接的端口,第二設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量由第二設(shè)備根據(jù)第一設(shè)備的stp配置信息計(jì)算得到。第二計(jì)算模塊424d,用于根據(jù)第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量和第二設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量的比較結(jié)果,計(jì)算第一設(shè)備的各個(gè)端口的角色。

      可選地,當(dāng)該網(wǎng)絡(luò)設(shè)備400實(shí)現(xiàn)成為第二設(shè)備時(shí),應(yīng)用程序模塊424可以包括:第二接收模塊、第三計(jì)算模塊和第四計(jì)算模塊(圖中未示出)。第二接收模塊用于從第一設(shè)備接收第一設(shè)備的stp配置信息,stp配置信息包括橋mac地址和實(shí)例優(yōu)先級(jí)信息。第三計(jì)算模塊用于根據(jù)第一設(shè)備的stp配置信息,計(jì)算第二設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量;其中,第二設(shè)備的內(nèi)部端口是指第二設(shè)備與第一設(shè)備連接的端口,擴(kuò)展優(yōu)先級(jí)向量用于使得第二設(shè)備和第一設(shè)備屬于同一邏輯端口的成員端口的角色計(jì)算結(jié)果相同。第二接收模塊還用于從第一設(shè)備接收第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量;其中,第一設(shè)備的內(nèi)部端口是指第一設(shè)備與第二設(shè)備連接的端口,第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量由第一設(shè)備根據(jù)第一設(shè)備的stp配置信息計(jì)算得到。第四計(jì)算模塊用于根據(jù)第二設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量和第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量的比較結(jié)果,計(jì)算第二設(shè)備的各個(gè)端口的角色。

      請(qǐng)參考圖5,其示出了本發(fā)明一個(gè)實(shí)施例提供的stp計(jì)算方法的流程圖。該方法可以包括如下幾個(gè)步驟:

      步驟502,第一設(shè)備向第二設(shè)備發(fā)送第一設(shè)備的stp配置信息,stp配置信息包括橋mac地址和實(shí)例優(yōu)先級(jí)信息。

      步驟504,第一設(shè)備根據(jù)第一設(shè)備的stp配置信息,計(jì)算第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量。

      第一設(shè)備的內(nèi)部端口是指第一設(shè)備與第二設(shè)備連接的端口。擴(kuò)展優(yōu)先級(jí)向量用于使得第一設(shè)備和第二設(shè)備屬于同一邏輯端口的成員端口的角色計(jì)算結(jié)果相同。

      步驟506,第一設(shè)備從第二設(shè)備接收第二設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量。

      第二設(shè)備的內(nèi)部端口是指第二設(shè)備與第一設(shè)備連接的端口。第二設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量由第二設(shè)備根據(jù)第一設(shè)備的stp配置信息計(jì)算得到。

      步驟508,第一設(shè)備根據(jù)第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量和第二設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量的比較結(jié)果,計(jì)算第一設(shè)備的各個(gè)端口的角色。

      綜上所述,本實(shí)施例提供的方法,解決了現(xiàn)有技術(shù)中針對(duì)采用m-lag進(jìn)行組網(wǎng)的場(chǎng)景,采用現(xiàn)有的stp算法有可能將peer-link端口或者m-lag端口的成員端口eth-trunk端口置為阻塞狀態(tài),進(jìn)而導(dǎo)致m-lag的功能隨之失效的問(wèn)題;通過(guò)在第一設(shè)備和第二設(shè)備之間同步stp配置信息和內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量,從而使得兩臺(tái)設(shè)備對(duì)外體現(xiàn)為一臺(tái)設(shè)備進(jìn)行stp計(jì)算,保證屬于同一m-lag組的成員端口的角色計(jì)算結(jié)果相同,從而不阻塞peer-link端口和m-lag端口的成員端口eth-trunk端口。

      請(qǐng)參考圖6,其示出了本發(fā)明另一實(shí)施例提供的stp計(jì)算方法的流程圖。該方法可以包括如下幾個(gè)步驟:

      步驟602,第二設(shè)備從第一設(shè)備接收第一設(shè)備的stp配置信息,stp配置信息包括橋mac地址和實(shí)例優(yōu)先級(jí)信息。

      步驟604,第二設(shè)備根據(jù)第一設(shè)備的stp配置信息,計(jì)算第二設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量。

      第二設(shè)備的內(nèi)部端口是指第二設(shè)備與第一設(shè)備連接的端口。擴(kuò)展優(yōu)先級(jí)向量用于使得第二設(shè)備和第一設(shè)備屬于同一邏輯端口的成員端口的角色計(jì)算結(jié)果相同。

      步驟606,第二設(shè)備從第一設(shè)備接收第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量。

      第一設(shè)備的內(nèi)部端口是指第一設(shè)備與第二設(shè)備連接的端口。第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量由第一設(shè)備根據(jù)第一設(shè)備的stp配置信息計(jì)算得到。

      步驟608,第二設(shè)備根據(jù)第二設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量和第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量的比較結(jié)果,計(jì)算第二設(shè)備的各個(gè)端口的角色。

      綜上所述,本實(shí)施例提供的方法,解決了現(xiàn)有技術(shù)中針對(duì)采用m-lag進(jìn)行組網(wǎng)的場(chǎng)景,采用現(xiàn)有的stp算法有可能將peer-link端口或者m-lag端口的成員端口eth-trunk端口置為阻塞狀態(tài),進(jìn)而導(dǎo)致m-lag的功能隨之失效的問(wèn)題;通過(guò)在第一設(shè)備和第二設(shè)備之間同步stp配置信息和內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量,從而使得兩臺(tái)設(shè)備對(duì)外體現(xiàn)為一臺(tái)設(shè)備進(jìn)行stp計(jì)算,保證屬于同一m-lag組的成員端口的角色計(jì)算結(jié)果相同,從而不阻塞peer-link端口和m-lag端口的成員端口eth-trunk端口。

      請(qǐng)參考圖7,其示出了本發(fā)明再一實(shí)施例提供的stp計(jì)算方法的流程圖。在本實(shí)施例中,以第一設(shè)備和第二設(shè)備為m-lag兩端設(shè)備為例進(jìn)行介紹說(shuō)明。該方法可以包括如下幾個(gè)步驟。

      步驟701,第一設(shè)備和第二設(shè)備在完成初始化配置之后,進(jìn)行主備協(xié)商。

      初始化配置包括配置eth-trunk端口、m-lag配置和主備配置。m-lag配置包括配置第一設(shè)備的eth-trunk端口和第二設(shè)備的eth-trunk端口加入同一m-lag組,屬于同一m-lag端口的成員端口。主備配置是指根據(jù)第一設(shè)備和第二設(shè)備的優(yōu)先級(jí),確定m-lag主設(shè)備和m-lag備設(shè)備。第一設(shè)備和第二設(shè)備在完成初始化配置之后,進(jìn)行主備協(xié)商。在本實(shí)施例中,假設(shè)協(xié)商確定第一設(shè)備為m-lag主設(shè)備,第二設(shè)備為m-lag備設(shè)備。

      此外,第一設(shè)備和第二設(shè)備在主備協(xié)商完成之前,所有端口可按現(xiàn)有的stp算法進(jìn)行拓?fù)溆?jì)算,并且將peer-link端口初始化設(shè)置為阻塞狀態(tài)。通過(guò)將peer-link端口初始化設(shè)置為阻塞狀態(tài),以保證網(wǎng)絡(luò)在主備協(xié)商完成之前即沒(méi)有環(huán)路,確保網(wǎng)絡(luò)的可用性。

      在主備協(xié)商完成之后,第一設(shè)備和第二設(shè)備進(jìn)入v-stp模式。v-stp模式是指將兩臺(tái)設(shè)備虛擬成一臺(tái)設(shè)備進(jìn)行stp計(jì)算。在進(jìn)入v-stp模式之后,第一設(shè)備和第二設(shè)備分別將peer-link端口設(shè)置為內(nèi)部端口。內(nèi)部端口是指在采用v-stp進(jìn)行拓?fù)溆?jì)算的過(guò)程中,第一設(shè)備和第二設(shè)備之間用于傳輸內(nèi)部報(bào)文的端口。

      步驟702,第一設(shè)備向第二設(shè)備發(fā)送第一設(shè)備的stp配置信息。

      stp配置信息包括橋mac地址和實(shí)例優(yōu)先級(jí)信息。實(shí)例優(yōu)先級(jí)信息記錄有橋優(yōu)先級(jí)。第一設(shè)備通過(guò)peer-link鏈路向第二設(shè)備發(fā)送第一設(shè)備的stp配置信息。

      相應(yīng)地,第二設(shè)備從第一設(shè)備接收第一設(shè)備的stp配置信息。

      步驟703,第一設(shè)備根據(jù)第一設(shè)備的stp配置信息,計(jì)算第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量。

      第一設(shè)備的內(nèi)部端口是指第一設(shè)備與第二設(shè)備連接的端口,即peer-link端口。擴(kuò)展優(yōu)先級(jí)向量用于使得第一設(shè)備和第二設(shè)備屬于同一邏輯端口的成員端口的角色計(jì)算結(jié)果相同。也即,擴(kuò)展優(yōu)先級(jí)向量用于使得第一設(shè)備和第二設(shè)備加入同一m-lag組的eth-trunk端口的角色計(jì)算結(jié)果相同。eth-trunk端口作為計(jì)算單元參與拓?fù)溆?jì)算。

      可選地,步驟703包括如下幾個(gè)子步驟:

      1、第一設(shè)備根據(jù)第一設(shè)備的stp配置信息,計(jì)算第一設(shè)備除內(nèi)部端口以外的其它端口的優(yōu)先級(jí)向量;

      2、第一設(shè)備從其它端口中選取優(yōu)先級(jí)最高的優(yōu)先級(jí)向量,作為第一設(shè)備的根優(yōu)先級(jí)向量;

      3、第一設(shè)備將第一設(shè)備的根優(yōu)先級(jí)向量與第一設(shè)備的內(nèi)部端口的優(yōu)先級(jí)向量進(jìn)行比較,并根據(jù)優(yōu)先級(jí)較高的優(yōu)先級(jí)向量確定第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量。

      在本發(fā)明實(shí)施例中,對(duì)stp標(biāo)準(zhǔn)協(xié)議所規(guī)定的端口優(yōu)先級(jí)向量進(jìn)行了擴(kuò)展,以保證第一設(shè)備和第二設(shè)備加入同一m-lag組的eth-trunk端口的角色計(jì)算結(jié)果相同。擴(kuò)展優(yōu)先級(jí)向量包括:根橋id字段、累計(jì)根路徑開(kāi)銷字段、指定橋id字段、指定端口id字段、邏輯端口id字段、接收端口id字段和系統(tǒng)mac地址字段。根橋id字段指示根橋的橋id。累計(jì)根路徑開(kāi)銷字段指示端口累計(jì)到根橋的路徑開(kāi)銷。指定橋id字段指示發(fā)送根優(yōu)先級(jí)向量的設(shè)備的橋id。指定端口id字段指示發(fā)送根優(yōu)先級(jí)向量的端口的端口id。邏輯端口id字段指示本設(shè)備接收根優(yōu)先級(jí)向量的端口對(duì)應(yīng)的邏輯端口的端口id。接收端口id字段指示本設(shè)備接收根優(yōu)先級(jí)向量的端口的端口id。系統(tǒng)mac地址字段指示本設(shè)備的mac地址。

      stp標(biāo)準(zhǔn)協(xié)議所規(guī)定的端口優(yōu)先級(jí)向量可以表示為:portpriorityvector={rootbridgeid:rootpathcost:designatedbridgeid:designatedportid:bridgeportid}。在本發(fā)明實(shí)施例中,v-stp所規(guī)定的端口的擴(kuò)展優(yōu)先級(jí)向量可以表示為:portpriorityvector={rootbridgeid:rootpathcost:designatedbridgeid:designatedportid:mlagportid:bridgeportid:sysmac}。擴(kuò)展優(yōu)先級(jí)向量的向量比較順序依次為:rootbridgeid→rootpathcost→designatedbridgeid→designatedportid→mlagportid→bridgeportid→sysmac。

      當(dāng)本設(shè)備接收根優(yōu)先級(jí)向量的端口加入m-lag組時(shí),mlagportid字段有效。如果兩臺(tái)設(shè)備的mlagportid字段有效且相同,則表示兩臺(tái)設(shè)備接收根優(yōu)先級(jí)向量的端口加入同一m-lag組,此時(shí)認(rèn)為兩臺(tái)設(shè)備的根優(yōu)先級(jí)向量相同,該算法可以保證兩臺(tái)設(shè)備加入同一m-lag組的eth-trunk端口的角色計(jì)算結(jié)果相同。當(dāng)本設(shè)備接收根優(yōu)先級(jí)向量的端口未加入m-lag組時(shí),mlagportid字段無(wú)效。在比較兩臺(tái)設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量時(shí),如果其中一個(gè)或兩個(gè)內(nèi)部端口的mlagportid字段無(wú)效,則比較bridgeportid字段。此外,在比較兩臺(tái)設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量時(shí),由于兩臺(tái)設(shè)備的bridgeportid是各自獨(dú)立分配的,兩臺(tái)設(shè)備的bridgeportid字段可能相同,如果兩臺(tái)設(shè)備的bridgeportid字段相同,則比較sysmac字段。

      由于第一設(shè)備除內(nèi)部端口以外的其它端口的優(yōu)先級(jí)向量采用stp標(biāo)準(zhǔn)協(xié)議規(guī)定,由五元組表示;而第一設(shè)備的內(nèi)部端口的優(yōu)先級(jí)向量采用v-stp規(guī)定,由七元組表示。因此,在一種可能的實(shí)施方式中,第一設(shè)備從其它端口中選取優(yōu)先級(jí)最高的優(yōu)先級(jí)向量(也即確定第一設(shè)備的根優(yōu)先級(jí)向量)之后,按照擴(kuò)展優(yōu)先級(jí)向量的格式,將該第一設(shè)備的根優(yōu)先級(jí)向量由五元組轉(zhuǎn)換為七元組,而后與第一設(shè)備的內(nèi)部端口的優(yōu)先級(jí)向量進(jìn)行比較。如果第一設(shè)備的根優(yōu)先級(jí)向量劣于第一設(shè)備的內(nèi)部端口的優(yōu)先級(jí)向量,則保持第一設(shè)備的內(nèi)部端口的優(yōu)先級(jí)向量不變,并使用第一設(shè)備的內(nèi)部端口的優(yōu)先級(jí)向量覆蓋第一設(shè)備的根優(yōu)先級(jí)向量;如果第一設(shè)備的根優(yōu)先級(jí)向量?jī)?yōu)于或等于第一設(shè)備的內(nèi)部端口的優(yōu)先級(jí)向量,則使用第一設(shè)備的根優(yōu)先級(jí)向量覆蓋第一設(shè)備的內(nèi)部端口的優(yōu)先級(jí)向量,并保持第一設(shè)備的根優(yōu)先級(jí)向量不變。

      步驟704,第二設(shè)備根據(jù)第一設(shè)備的stp配置信息,計(jì)算第二設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量。

      與上述步驟703類似,步驟704可以包括如下幾個(gè)子步驟:

      1、第二設(shè)備根據(jù)第一設(shè)備的stp配置信息,計(jì)算第二設(shè)備除內(nèi)部端口以外的其它端口的優(yōu)先級(jí)向量;

      2、第二設(shè)備從其它端口中選取優(yōu)先級(jí)最高的優(yōu)先級(jí)向量,作為第二設(shè)備的根優(yōu)先級(jí)向量;

      3、第二設(shè)備將第二設(shè)備的根優(yōu)先級(jí)向量與第二設(shè)備的內(nèi)部端口的優(yōu)先級(jí)向量進(jìn)行比較,并根據(jù)優(yōu)先級(jí)較高的優(yōu)先級(jí)向量確定第二設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量。

      步驟704與步驟703相類似,具體參見(jiàn)步驟703中的介紹和說(shuō)明,此處不再贅述。

      步驟705,第一設(shè)備向第二設(shè)備發(fā)送第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量。

      第一設(shè)備通過(guò)peer-link鏈路向第二設(shè)備發(fā)送內(nèi)部報(bào)文,該內(nèi)部報(bào)文中攜帶第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量。

      相應(yīng)地,第二設(shè)備從第一設(shè)備接收第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量。

      步驟706,第二設(shè)備向第一設(shè)備發(fā)送第二設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量。

      第二設(shè)備通過(guò)peer-link鏈路向第一設(shè)備發(fā)送內(nèi)部報(bào)文,該內(nèi)部報(bào)文中攜帶第二設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量。

      相應(yīng)地,第一設(shè)備從第二設(shè)備接收第二設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量。

      步驟707,第一設(shè)備根據(jù)第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量和第二設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量的比較結(jié)果,計(jì)算第一設(shè)備的各個(gè)端口的角色。

      具體來(lái)講,第一設(shè)備將第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量和第二設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量進(jìn)行比較,選取優(yōu)先級(jí)較高的優(yōu)先級(jí)向量作為第一設(shè)備最終的根優(yōu)先級(jí)向量;第一設(shè)備根據(jù)第一設(shè)備最終的根優(yōu)先級(jí)向量,計(jì)算第一設(shè)備的各個(gè)端口的角色。如果第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量劣于第二設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量,則第一設(shè)備使用第二設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量覆蓋第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量,也即第一設(shè)備選取第二設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量作為第一設(shè)備最終的根優(yōu)先級(jí)向量;如果第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量?jī)?yōu)于或者等于第二設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量,則第一設(shè)備保持第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量不變,也即第一設(shè)備選取第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量作為第一設(shè)備最終的根優(yōu)先級(jí)向量。在確定第一設(shè)備最終的根優(yōu)先級(jí)向量之后,第一設(shè)備從除內(nèi)部端口以外的其它端口中選取根端口,而后計(jì)算指定端口和阻塞端口。其中,確定根端口、指定端口和阻塞端口的方式與現(xiàn)有的stp算法相同,此處不再贅述。

      步驟708,第二設(shè)備根據(jù)第二設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量和第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量的比較結(jié)果,計(jì)算第二設(shè)備的各個(gè)端口的角色。

      與上述步驟707類似,步驟708可以包括如下幾個(gè)子步驟:

      1、第二設(shè)備將第二設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量和第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量進(jìn)行比較,選取優(yōu)先級(jí)較高的優(yōu)先級(jí)向量作為第二設(shè)備最終的根優(yōu)先級(jí)向量;

      2、第二設(shè)備根據(jù)第二設(shè)備最終的根優(yōu)先級(jí)向量,計(jì)算第二設(shè)備的各個(gè)端口的角色。

      步驟708與步驟707相類似,具體參見(jiàn)步驟707中的介紹和說(shuō)明,此處不再贅述。

      此外,第一設(shè)備在完成端口角色計(jì)算之后,設(shè)置第一設(shè)備的內(nèi)部端口由阻塞狀態(tài)變?yōu)檗D(zhuǎn)發(fā)狀態(tài)。同樣地,第二設(shè)備在完成端口角色計(jì)算之后,設(shè)置第二設(shè)備的內(nèi)部端口由阻塞狀態(tài)變?yōu)檗D(zhuǎn)發(fā)狀態(tài)。通過(guò)上述方式,保證第一設(shè)備和第二設(shè)備的內(nèi)部端口在完成stp拓?fù)溆?jì)算之后,能夠轉(zhuǎn)發(fā)用戶流量。

      此外,第一設(shè)備和第二設(shè)備屬于同一邏輯端口的成員端口發(fā)出的報(bào)文所攜帶的指定端口id相同。通過(guò)上述方式,保證其它設(shè)備從同一m-lag端口的不同成員端口接收到的bpdu報(bào)文中的指定端口id字段相同,避免引起下游設(shè)備震蕩,提高網(wǎng)絡(luò)穩(wěn)定性。

      綜上所述,本實(shí)施例提供的方法,解決了現(xiàn)有技術(shù)中針對(duì)采用m-lag進(jìn)行組網(wǎng)的場(chǎng)景,采用現(xiàn)有的stp算法有可能將peer-link端口或者m-lag端口的成員端口eth-trunk端口置為阻塞狀態(tài),進(jìn)而導(dǎo)致m-lag的功能隨之失效的問(wèn)題;通過(guò)在第一設(shè)備和第二設(shè)備之間同步stp配置信息和內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量,從而使得兩臺(tái)設(shè)備對(duì)外體現(xiàn)為一臺(tái)設(shè)備進(jìn)行stp計(jì)算,保證屬于同一m-lag組的成員端口的角色計(jì)算結(jié)果相同,從而不阻塞peer-link端口和m-lag端口的成員端口eth-trunk端口。

      需要說(shuō)明的一點(diǎn)是,在本實(shí)施例中,僅以第一設(shè)備為m-lag主設(shè)備,第二設(shè)備為m-lag備設(shè)備,且m-lag主設(shè)備向m-lag備設(shè)備同步stp配置信息為例,在其它可能的實(shí)施方式中,也可由m-lag備設(shè)備向m-lag主設(shè)備同步stp配置信息。

      還需要說(shuō)明的一點(diǎn)是,在本實(shí)施例中,僅以該stp計(jì)算方法應(yīng)用于m-lag組網(wǎng)的應(yīng)用場(chǎng)景中進(jìn)行了說(shuō)明和介紹,該stp計(jì)算方法同樣適用于普通兩臺(tái)設(shè)備虛擬成一臺(tái)設(shè)備進(jìn)行stp計(jì)算的應(yīng)用場(chǎng)景,具有通用性。

      下述為本發(fā)明裝置實(shí)施例,可以用于執(zhí)行本發(fā)明方法實(shí)施例。對(duì)于本發(fā)明裝置實(shí)施例中未披露的細(xì)節(jié),請(qǐng)參照本發(fā)明方法實(shí)施例。

      請(qǐng)參考圖8a,其示出了本發(fā)明一個(gè)實(shí)施例提供的stp計(jì)算裝置的框圖。該裝置可以通過(guò)軟件、硬件或者兩者的結(jié)合實(shí)現(xiàn)成為第一設(shè)備的部分或者全部。該裝置可以包括:第一發(fā)送單元810、第一計(jì)算單元820、第一接收單元830和第二計(jì)算單元840。

      第一發(fā)送單元810,用于向第二設(shè)備發(fā)送第一設(shè)備的stp配置信息,stp配置信息包括橋mac地址和實(shí)例優(yōu)先級(jí)信息。

      第一計(jì)算單元820,用于根據(jù)第一設(shè)備的stp配置信息,計(jì)算第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量。其中,第一設(shè)備的內(nèi)部端口是指第一設(shè)備與第二設(shè)備連接的端口。擴(kuò)展優(yōu)先級(jí)向量用于使得第一設(shè)備和第二設(shè)備屬于同一邏輯端口的成員端口的角色計(jì)算結(jié)果相同。

      第一接收單元830,用于從第二設(shè)備接收第二設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量。其中,第二設(shè)備的內(nèi)部端口是指第二設(shè)備與第一設(shè)備連接的端口。第二設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量由第二設(shè)備根據(jù)第一發(fā)送單元810發(fā)送的第一設(shè)備的stp配置信息計(jì)算得到。

      第二計(jì)算單元840,用于根據(jù)第一計(jì)算單元820計(jì)算得到的第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量和第一接收單元830接收的第二設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量的比較結(jié)果,計(jì)算第一設(shè)備的各個(gè)端口的角色。

      綜上所述,本實(shí)施例提供的裝置,解決了現(xiàn)有技術(shù)中針對(duì)采用m-lag進(jìn)行組網(wǎng)的場(chǎng)景,采用現(xiàn)有的stp算法有可能將peer-link端口或者m-lag端口的成員端口eth-trunk端口置為阻塞狀態(tài),進(jìn)而導(dǎo)致m-lag的功能隨之失效的問(wèn)題;通過(guò)在第一設(shè)備和第二設(shè)備之間同步stp配置信息和內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量,從而使得兩臺(tái)設(shè)備對(duì)外體現(xiàn)為一臺(tái)設(shè)備進(jìn)行stp計(jì)算,保證屬于同一m-lag組的成員端口的角色計(jì)算結(jié)果相同,從而不阻塞peer-link端口和m-lag端口的成員端口eth-trunk端口。

      在基于圖8a所示實(shí)施例提供的一個(gè)可選實(shí)施例中,第一計(jì)算單元820,具體用于:根據(jù)第一設(shè)備的stp配置信息,計(jì)算第一設(shè)備除內(nèi)部端口以外的其它端口的優(yōu)先級(jí)向量;從其它端口中選取優(yōu)先級(jí)最高的優(yōu)先級(jí)向量,作為第一設(shè)備的根優(yōu)先級(jí)向量;將第一設(shè)備的根優(yōu)先級(jí)向量與第一設(shè)備的內(nèi)部端口的優(yōu)先級(jí)向量進(jìn)行比較,并根據(jù)優(yōu)先級(jí)較高的優(yōu)先級(jí)向量確定第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量。

      可選地,擴(kuò)展優(yōu)先級(jí)向量包括:根橋id字段、累計(jì)根路徑開(kāi)銷字段、指定橋id字段、指定端口id字段、邏輯端口id字段、接收端口id字段和系統(tǒng)mac地址字段。根橋id字段指示根橋的橋id。累計(jì)根路徑開(kāi)銷字段指示端口累計(jì)到根橋的路徑開(kāi)銷。指定橋id字段指示發(fā)送根優(yōu)先級(jí)向量的設(shè)備的橋id。指定端口id字段指示發(fā)送根優(yōu)先級(jí)向量的端口的端口id。邏輯端口id字段指示本設(shè)備接收根優(yōu)先級(jí)向量的端口對(duì)應(yīng)的邏輯端口的端口id。接收端口id字段指示本設(shè)備接收根優(yōu)先級(jí)向量的端口的端口id。系統(tǒng)mac地址字段指示本設(shè)備的mac地址。

      在基于圖8a所示實(shí)施例提供的另一可選實(shí)施例中,第二計(jì)算單元840,具體用于:將第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量和第二設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量進(jìn)行比較,選取優(yōu)先級(jí)較高的優(yōu)先級(jí)向量作為第一設(shè)備最終的根優(yōu)先級(jí)向量;根據(jù)第一設(shè)備最終的根優(yōu)先級(jí)向量,計(jì)算第一設(shè)備的各個(gè)端口的角色。

      在基于圖8a所示實(shí)施例提供的另一可選實(shí)施例中,第一發(fā)送單元810,還用于向第二設(shè)備發(fā)送第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量,以使得第二設(shè)備根據(jù)第二設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量和第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量的比較結(jié)果,計(jì)算第二設(shè)備的各個(gè)端口的角色。

      在基于圖8a所示實(shí)施例提供的另一可選實(shí)施例中,如圖8b所示,該裝置還包括:第一設(shè)置單元850。第一設(shè)置單元850,用于設(shè)置第一設(shè)備的內(nèi)部端口由阻塞狀態(tài)變?yōu)檗D(zhuǎn)發(fā)狀態(tài)。

      在基于圖8a所示實(shí)施例提供的另一可選實(shí)施例中,第一設(shè)備和第二設(shè)備屬于同一邏輯端口的成員端口發(fā)出的報(bào)文所攜帶的指定端口id相同。

      請(qǐng)參考圖9a,其示出了本發(fā)明另一實(shí)施例提供的stp計(jì)算裝置的框圖。該裝置可以通過(guò)軟件、硬件或者兩者的結(jié)合實(shí)現(xiàn)成為第二設(shè)備的部分或者全部。該裝置可以包括:第二接收單元910、第三計(jì)算單元920和第四計(jì)算單元930。

      第二接收單元910,用于從第一設(shè)備接收第一設(shè)備的stp配置信息,stp配置信息包括橋mac地址和實(shí)例優(yōu)先級(jí)信息。

      第三計(jì)算單元920,用于根據(jù)第二接收單元910接收的第一設(shè)備的stp配置信息,計(jì)算第二設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量。其中,第二設(shè)備的內(nèi)部端口是指第二設(shè)備與第一設(shè)備連接的端口。擴(kuò)展優(yōu)先級(jí)向量用于使得第二設(shè)備和第一設(shè)備屬于同一邏輯端口的成員端口的角色計(jì)算結(jié)果相同。

      第二接收單元910,還用于從第一設(shè)備接收第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量。其中,第一設(shè)備的內(nèi)部端口是指第一設(shè)備與第二設(shè)備連接的端口。第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量由第一設(shè)備根據(jù)第一設(shè)備的stp配置信息計(jì)算得到。

      第四計(jì)算單元930,用于根據(jù)第三計(jì)算單元920計(jì)算得到的第二設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量和第二接收單元910接收到的第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量的比較結(jié)果,計(jì)算第二設(shè)備的各個(gè)端口的角色。

      綜上所述,本實(shí)施例提供的裝置,解決了現(xiàn)有技術(shù)中針對(duì)采用m-lag進(jìn)行組網(wǎng)的場(chǎng)景,采用現(xiàn)有的stp算法有可能將peer-link端口或者m-lag端口的成員端口eth-trunk端口置為阻塞狀態(tài),進(jìn)而導(dǎo)致m-lag的功能隨之失效的問(wèn)題;通過(guò)在第一設(shè)備和第二設(shè)備之間同步stp配置信息和內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量,從而使得兩臺(tái)設(shè)備對(duì)外體現(xiàn)為一臺(tái)設(shè)備進(jìn)行stp計(jì)算,保證屬于同一m-lag組的成員端口的角色計(jì)算結(jié)果相同,從而不阻塞peer-link端口和m-lag端口的成員端口eth-trunk端口。

      在基于圖9a所示實(shí)施例提供的一個(gè)可選實(shí)施例中,第三計(jì)算單元920,具體用于:根據(jù)第一設(shè)備的stp配置信息,計(jì)算第二設(shè)備除內(nèi)部端口以外的其它端口的優(yōu)先級(jí)向量;從其它端口中選取優(yōu)先級(jí)最高的優(yōu)先級(jí)向量,作為第二設(shè)備的根優(yōu)先級(jí)向量;將第二設(shè)備的根優(yōu)先級(jí)向量與第二設(shè)備的內(nèi)部端口的優(yōu)先級(jí)向量進(jìn)行比較,并根據(jù)優(yōu)先級(jí)較高的優(yōu)先級(jí)向量確定第二設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量。

      可選地,擴(kuò)展優(yōu)先級(jí)向量包括:根橋id字段、累計(jì)根路徑開(kāi)銷字段、指定橋id字段、指定端口id字段、邏輯端口id字段、接收端口id字段和系統(tǒng)mac地址字段。根橋id字段指示根橋的橋id。累計(jì)根路徑開(kāi)銷字段指示端口累計(jì)到根橋的路徑開(kāi)銷。指定橋id字段指示發(fā)送根優(yōu)先級(jí)向量的設(shè)備的橋id。指定端口id字段指示發(fā)送根優(yōu)先級(jí)向量的端口的端口id。邏輯端口id字段指示本設(shè)備接收根優(yōu)先級(jí)向量的端口對(duì)應(yīng)的邏輯端口的端口id。接收端口id字段指示本設(shè)備接收根優(yōu)先級(jí)向量的端口的端口id。系統(tǒng)mac地址字段指示本設(shè)備的mac地址。

      在基于圖9a所示實(shí)施例提供的另一可選實(shí)施例中,第四計(jì)算單元930,具體用于:將第二設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量和第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量進(jìn)行比較,選取優(yōu)先級(jí)較高的優(yōu)先級(jí)向量作為第二設(shè)備最終的根優(yōu)先級(jí)向量;根據(jù)第二設(shè)備最終的根優(yōu)先級(jí)向量,計(jì)算第二設(shè)備的各個(gè)端口的角色。

      在基于圖9a所示實(shí)施例提供的另一可選實(shí)施例中,如圖9b所示,該裝置還包括:第二發(fā)送單元940。第二發(fā)送單元940,用于向第一設(shè)備發(fā)送第二設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量,以使得第一設(shè)備根據(jù)第一設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量和第二設(shè)備的內(nèi)部端口的擴(kuò)展優(yōu)先級(jí)向量的比較結(jié)果,計(jì)算第一設(shè)備的各個(gè)端口的角色。

      在基于圖9a所示實(shí)施例提供的另一可選實(shí)施例中,如圖9b所示,該裝置還包括:第二設(shè)置單元950。第二設(shè)置單元950,用于設(shè)置第二設(shè)備的內(nèi)部端口由阻塞狀態(tài)變?yōu)檗D(zhuǎn)發(fā)狀態(tài)。

      在基于圖9a所示實(shí)施例提供的另一可選實(shí)施例中,第二設(shè)備和第一設(shè)備屬于同一邏輯端口的成員端口發(fā)出的報(bào)文所攜帶的指定端口id相同。

      需要說(shuō)明的是:上述實(shí)施例提供的裝置在實(shí)現(xiàn)其功能時(shí),僅以上述各功能模塊的劃分進(jìn)行舉例說(shuō)明,實(shí)際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將設(shè)備的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。另外,上述實(shí)施例提供的裝置與方法實(shí)施例屬于同一構(gòu)思,其具體實(shí)現(xiàn)過(guò)程詳見(jiàn)方法實(shí)施例,這里不再贅述。

      上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。

      本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例的全部或部分步驟可以通過(guò)硬件來(lái)完成,也可以通過(guò)程序來(lái)指令相關(guān)的硬件完成,所述的程序可以存儲(chǔ)于一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,上述提到的存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,磁盤(pán)或光盤(pán)等。

      以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。

      當(dāng)前第1頁(yè)1 2 
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1