專利名稱:一種環(huán)路檢測報文封裝方法、環(huán)路檢測方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種環(huán)路檢測報文封裝方法、環(huán)路檢測方法及裝置。
背景技術(shù):
隨著網(wǎng)絡(luò)技術(shù)的日新月異以及用戶需求的不斷增加,使用端口聚合以獲得更高的帶寬的技術(shù)得到了廣泛應(yīng)用。端口聚合技術(shù)允許兩個交換機(jī)之間通過多個端口并行連接同時傳輸數(shù)據(jù)以提供更高的帶寬。端口聚合主要用于交換機(jī)之間的連接,交換機(jī)將一組物理端口聯(lián)合起來構(gòu)成一個聚合組,作為一個邏輯通道,并將這個邏輯通道視為一個聚合端口。使用聚合端口具有以下優(yōu)點(diǎn)1、帶寬增加,帶寬相當(dāng)于聚合組內(nèi)的所有物理端口的帶寬總和;2、增加冗余,只要聚合組內(nèi)不是所有的物理端口都down掉,兩個交換機(jī)之間仍然可以繼續(xù)通信;3、負(fù)載均衡,可以在聚合組內(nèi)的物理端口上靈活配置,使流量可以在這些物理端口上自動進(jìn)行負(fù)載均衡。如果在聚合端口上存在環(huán)路將會導(dǎo)致MAC (Media Access Control,介質(zhì)訪問控制)地址學(xué)習(xí)錯誤,甚至造成廣播風(fēng)暴,嚴(yán)重的還會導(dǎo)致網(wǎng)絡(luò)及交換機(jī)癱瘓,因此需要對聚合端口進(jìn)行環(huán)路檢測?,F(xiàn)有的環(huán)路檢測技術(shù)都是基于物理端口的檢測,但是這種基于物理端口的檢測技術(shù)無法應(yīng)用于聚合端口的環(huán)路檢測。圖1示出了當(dāng)幾個物理端口加入到一個聚合組內(nèi)的拓?fù)涫疽鈭D。其中,端口 4屬于聚合組1,端口 6和端口 8屬于聚合組2。如果環(huán)路檢測技術(shù)僅支持基于物理端口的檢測, 則在圖1所示的端口聚合情況下是無法檢測到環(huán)路的,甚至?xí)霈F(xiàn)檢測錯誤。其具體原因如下如果從端口 4和端口 6判斷,端口 6收到端口 4發(fā)送的環(huán)路檢測報文時,將報文中的源MAC地址與自身的MAC地址進(jìn)行比較后,發(fā)現(xiàn)兩者相同,則會判定聚合組1和聚合組2之間是存在環(huán)路的;而如果從端口 4和端口 8判斷,由于端口 8無法收到從端口 4發(fā)送的環(huán)路檢測報文,因而無法檢測到環(huán)路,從而判定聚合組1和聚合組2之間是不存在環(huán)路的,但實(shí)際上環(huán)路確實(shí)是存在的??梢姡@種互相矛盾的檢測結(jié)果,將會導(dǎo)致環(huán)路檢測出現(xiàn)錯誤。綜上所述,現(xiàn)有環(huán)路檢測技術(shù)存在如下缺陷現(xiàn)有的環(huán)路檢測技術(shù)都是基于物理端口的檢測,當(dāng)幾個物理端口加入到一個聚合組內(nèi)時,如果不能夠在聚合端口上準(zhǔn)確地檢測出環(huán)路,則當(dāng)存在環(huán)路時會占用大量的網(wǎng)絡(luò)帶寬,甚至造成廣播風(fēng)暴,嚴(yán)重的還會導(dǎo)致網(wǎng)絡(luò)及交換機(jī)癱瘓。大大降低了網(wǎng)絡(luò)帶寬的利用率。
發(fā)明內(nèi)容
本發(fā)明解決的技術(shù)問題是提供一種環(huán)路檢測報文封裝方法、環(huán)路檢測方法及裝置,能夠在聚合端口上正確檢測出環(huán)路并可做進(jìn)一步的處理。
為解決上述技術(shù)問題,本發(fā)明提供了一種環(huán)路檢測方法,所述方法包括從聚合組發(fā)送環(huán)路檢測報文時,在所述環(huán)路檢測報文的源端口字段中填充所述聚合組的端口號;將所述環(huán)路檢測報文廣播發(fā)送至與所述聚合組相連接的所有端口 ;接收到所述環(huán)路檢測報文的接收端口,根據(jù)所述環(huán)路檢測報文判斷是否存在環(huán)路。進(jìn)一步地,所述接收端口根據(jù)所述環(huán)路檢測報文判斷是否存在環(huán)路,具體包括所述接收端口根據(jù)所述環(huán)路檢測報文中的源端口字段識別出所述環(huán)路檢測報文的發(fā)送端口屬于聚合組時,則判斷所述發(fā)送端口與本接收端口是否屬于同一個聚合組,如果不屬于同一個聚合組,則所述接收端口通過比較所述環(huán)路檢測報文中的源介質(zhì)訪問控制 (MAC)地址是否與本接收端口的MAC地址一致,判斷是否存在環(huán)路。進(jìn)一步地,所述接收端口在識別出所述環(huán)路檢測報文的發(fā)送端口屬于聚合組后, 如果判斷出所述發(fā)送端口與本接收端口屬于同一個聚合組,則判定不存在環(huán)路。進(jìn)一步地,所述接收端口在識別出所述環(huán)路檢測報文的發(fā)送端口屬于聚合組后, 按照以下方式判斷所述發(fā)送端口與本接收端口是否屬于同一個聚合組如果本接收端口不屬于聚合組,則直接判定所述發(fā)送端口與本接收端口不屬于同一個聚合組; 如果本接收端口屬于聚合組,則比較所述源端口字段中的聚合組的端口號與本接收端口所屬的聚合組的端口號是否一致,如果一致,則判定所述發(fā)送端口與本接收端口屬于同一個聚合組;如果不一致,則判定所述發(fā)送端口與本接收端口不屬于同一個聚合組。進(jìn)一步地,從聚合組發(fā)送所述環(huán)路檢測報文之前,還包括獲取所述聚合組內(nèi)的公共激活虛擬局域網(wǎng)(vlan)列表,其中所述公共激活vlan 列表中包含所述聚合組內(nèi)各物理端口下激活的vlan的交集;為所述公共激活vlan列表中的每個激活的vlan分別構(gòu)造對應(yīng)的環(huán)路檢測報文, 并在對應(yīng)的環(huán)路檢測報文中攜帶相應(yīng)的激活的vlan。進(jìn)一步地,所述方法還包括如果所述接收端口屬于聚合組,且所述接收端口根據(jù)接收到的所述環(huán)路檢測報文判定本接收端口所屬的聚合組內(nèi)激活的vlan存在環(huán)路時,則對存在環(huán)路的所述vlan進(jìn)行阻塞處理或者進(jìn)行記錄。進(jìn)一步地,所述方法還包括從所述聚合組發(fā)送所述環(huán)路檢測報文時,查看本聚合組內(nèi)各物理端口下激活的 vlan是否已經(jīng)被阻塞或者存在于環(huán)路記錄中,對于已經(jīng)被阻塞的或者存在于環(huán)路記錄中的 vlan,則不再發(fā)送與所述vlan對應(yīng)的環(huán)路檢測報文。進(jìn)一步地,所述方法還包括所述接收端口接收到所述環(huán)路檢測報文時,首先對接收到的所述環(huán)路檢測報文的有效性進(jìn)行判斷,在判定所述環(huán)路檢測報文有效之后,再根據(jù)所述環(huán)路檢測報文判斷是否存在環(huán)路。此外,本發(fā)明還提供了一種環(huán)路檢測報文封裝方法,從聚合組發(fā)送環(huán)路檢測報文時,在所述環(huán)路檢測報文的源端口字段中填充所述聚合組的端口號。
進(jìn)一步地,所述環(huán)路檢測報文的二層報文頭中封裝以下內(nèi)容目的MAC地址、源 MAC地址、標(biāo)簽Oltag)和報文類型;在所述環(huán)路檢測報文的數(shù)據(jù)中封裝以下字段長度、橋MAC、源端口。此外,本發(fā)明還提供了一種環(huán)路檢測裝置,所述裝置包括報文發(fā)送模塊,以及環(huán)路檢測模塊,其中,所述報文發(fā)送模塊用于,從聚合組發(fā)送環(huán)路檢測報文時,在所述環(huán)路檢測報文的源端口字段中填充所述聚合組的端口號,并將所述環(huán)路檢測報文廣播發(fā)送至與所述聚合組相連接的所有端口;所述環(huán)路檢測模塊用于,從本接收端口接收到環(huán)路檢測報文時,根據(jù)接收到的所述環(huán)路檢測報文判斷是否存在環(huán)路。進(jìn)一步地,所述環(huán)路檢測模塊用于,按照以下方式判斷是否存在環(huán)路根據(jù)所述環(huán)路檢測報文中的源端口字段識別出所述環(huán)路檢測報文的發(fā)送端口屬于聚合組時,則判斷所述發(fā)送端口與本接收端口是否屬于同一個聚合組,如果不屬于同一個聚合組,則所述接收端口通過比較所述環(huán)路檢測報文中的源MAC地址是否與本接收端口的MAC地址一致,判斷是否存在環(huán)路。進(jìn)一步地,所述環(huán)路檢測模塊還用于,在識別出所述環(huán)路檢測報文的發(fā)送端口屬于聚合組后,如果判斷出所述發(fā)送端口與本接收端口屬于同一個聚合組,則判定不存在環(huán)路。進(jìn)一步地,所述環(huán)路檢測模塊用于,在識別出所述環(huán)路檢測報文的發(fā)送端口屬于聚合組后,按照以下方式判斷所述發(fā)送端口與本接收端口是否屬于同一個聚合組如果本接收端口不屬于聚合組,則直接判定所述發(fā)送端口與本接收端口不屬于同一個聚合組;如果本接收端口屬于聚合組,則比較所述源端口字段中的聚合組的端口號與本接收端口所屬的聚合組的端口號是否一致,如果一致,則判定所述發(fā)送端口與本接收端口屬于同一個聚合組;如果不一致,則判定所述發(fā)送端口與本接收端口不屬于同一個聚合組。進(jìn)一步地,所述報文發(fā)送模塊還用于,從聚合組發(fā)送所述環(huán)路檢測報文之前,獲取所述聚合組內(nèi)的公共激活虛擬局域網(wǎng)(vlan)列表,其中所述公共激活vlan列表中包含所述聚合組內(nèi)各物理端口下激活的vlan的交集;以及,為所述公共激活vlan列表中的每個激活的vlan分別構(gòu)造對應(yīng)的環(huán)路檢測報文, 并在對應(yīng)的環(huán)路檢測報文中攜帶相應(yīng)的激活的vlan。進(jìn)一步地,所述環(huán)路檢測模塊還用于,如果本接收端口屬于聚合組,且根據(jù)接收到的所述環(huán)路檢測報文判定本接收端口所屬的聚合組內(nèi)激活的vlan存在環(huán)路時,則對存在環(huán)路的所述vlan進(jìn)行阻塞處理或者進(jìn)行記錄。進(jìn)一步地,所述報文發(fā)送模塊還用于,從所述聚合組發(fā)送所述環(huán)路檢測報文時,查看本聚合組內(nèi)各物理端口下激活的vlan是否已經(jīng)被阻塞或者存在于環(huán)路記錄中,對于已經(jīng)被阻塞的或者存在于環(huán)路記錄中的vlan,則不再發(fā)送與所述vlan對應(yīng)的環(huán)路檢測報文。進(jìn)一步地,所述裝置還包括有效性檢驗?zāi)K,所述有效性檢驗?zāi)K用于,從本接收端口接收到所述環(huán)路檢測報文時,首先對接收到的所述環(huán)路檢測報文的有效性進(jìn)行判斷,在判定所述環(huán)路檢測報文有效之后,再發(fā)送給所述環(huán)路檢測模塊。此外,本發(fā)明還提供了一種環(huán)路檢測報文封裝裝置,所述裝置包括報文構(gòu)造模塊,所述報文構(gòu)造模塊用于,從聚合組發(fā)送環(huán)路檢測報文時,在所述環(huán)路檢測報文的源端口字段中填充所述聚合組的端口號。進(jìn)一步地,所述報文構(gòu)造模塊用于,在所述環(huán)路檢測報文的二層報文頭中封裝以下內(nèi)容目的MAC地址、源MAC地址、標(biāo)簽Oltag)和報文類型;在所述環(huán)路檢測報文的數(shù)據(jù)中封裝以下字段長度、橋MAC、源端口。與現(xiàn)有技術(shù)相比較,本發(fā)明至少具有如下有益效果1、本發(fā)明方案不僅可以支持基于物理端口的環(huán)路檢測,也可以支持基于聚合端口的環(huán)路檢測,從而避免了由于存在環(huán)路而產(chǎn)生的一系列問題,提高網(wǎng)絡(luò)帶寬的利用率;2、當(dāng)端口已經(jīng)發(fā)現(xiàn)環(huán)路(物理端口和聚合端口都適用)時,將不再繼續(xù)發(fā)送環(huán)路檢測報文,從而減少了環(huán)路檢測報文的重復(fù)和冗余發(fā)送;3、當(dāng)兩個物理端口之間出現(xiàn)環(huán)路,且這兩個端口是屬于一個聚合組時,則不認(rèn)為是環(huán)路,避免出現(xiàn)一個聚合組內(nèi)出現(xiàn)環(huán)路的情況發(fā)生。
此處所說明的附圖用來提供對本發(fā)明的進(jìn)一步理解,構(gòu)成本申請的一部分,本發(fā)明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中圖1示出了端口聚合的拓?fù)涫疽鈭D;圖2為本發(fā)明實(shí)施例的環(huán)路檢測報文的發(fā)送流程示意圖;
圖3為本發(fā)明實(shí)施例的環(huán)路檢測的流程示意圖;圖4為本發(fā)明實(shí)施例的環(huán)路檢測裝置的示意框圖。
具體實(shí)施例方式本實(shí)施方式提供了一種環(huán)路檢測方法,具體采用如下技術(shù)方案從聚合組發(fā)送環(huán)路檢測報文時,在所述環(huán)路檢測報文的源端口字段中填充聚合組的端口號;將所述環(huán)路檢測報文廣播發(fā)送至與所述聚合組相連接的所有端口 ;接收到所述環(huán)路檢測報文的接收端口,根據(jù)所述環(huán)路檢測報文判斷是否存在環(huán)路。進(jìn)一步地,所述接收端口接收到所述環(huán)路檢測報文時,首先對接收到的所述環(huán)路檢測報文的有效性進(jìn)行判斷,在判定所述環(huán)路檢測報文有效之后,再根據(jù)所述環(huán)路檢測報文判斷是否存在環(huán)路。進(jìn)一步地,所述接收端口根據(jù)所述環(huán)路檢測報文判斷是否存在環(huán)路,具體包括所述接收端口根據(jù)所述環(huán)路檢測報文中的源端口字段識別出所述環(huán)路檢測報文的發(fā)送端口屬于聚合組時,則再判斷所述發(fā)送端口與本接收端口是否屬于同一個聚合組, 如果不屬于同一個聚合組,則所述接收端口通過比較所述環(huán)路檢測報文中的源MAC地址是否與本接收端口的MAC地址一致,判斷是否存在環(huán)路。此外,所述接收端口在識別出所述環(huán)路檢測報文的發(fā)送端口屬于聚合組后,如果判斷出所述發(fā)送端口與本接收端口屬于同一個聚合組,則判定不存在環(huán)路。進(jìn)一步地,所述接收端口按照以下方式識別所述環(huán)路檢測報文的發(fā)送端口是否屬于聚合組如果所述環(huán)路檢測報文的源端口字段中填充的是聚合組的端口號,則所述接收端口識別出所述發(fā)送端口屬于聚合組;如果所述環(huán)路檢測報文的源端口字段中填充的是物理端口的端口號,則所述接收端口識別出所述發(fā)送端口不屬于聚合組。進(jìn)一步地,所述接收端口在識別出所述環(huán)路檢測報文的發(fā)送端口屬于聚合組后, 按照以下方式判斷所述發(fā)送端口與本接收端口是否屬于同一個聚合組如果所述接收端口不屬于聚合組,則直接判定所述發(fā)送端口與本接收端口不屬于同一個聚合組;如果所述接收端口屬于聚合組,則比較所述源端口字段中的聚合組的端口號與本接收端口所屬的聚合組的端口號是否一致,如果一致,則判定所述發(fā)送端口與本接收端口屬于同一個聚合組;如果不一致,則判定所述發(fā)送端口與本接收端口不屬于同一個聚合組。進(jìn)一步地,所述環(huán)路檢測報文的封裝方式如下所述環(huán)路檢測報文的二層報文頭中封裝以下內(nèi)容目的MAC地址、源MAC地址、 Qtag和報文類型;所述環(huán)路檢測報文的數(shù)據(jù)中封裝以下字段長度、橋MAC、源端口。進(jìn)一步地,從聚合組發(fā)送所述環(huán)路檢測報文之前,還包括獲取所述聚合組內(nèi)的公共激活vlan列表;其中所述公共激活vlan列表中包括所述聚合組內(nèi)各物理端口下激活的 vlan的交集;對于所述公共激活vlan列表中的每個激活的vlan,分別構(gòu)造對應(yīng)的環(huán)路檢測報文,并在對應(yīng)的環(huán)路檢測報文中攜帶相應(yīng)的vlan。進(jìn)一步地,如果所述接收端口屬于聚合組,且所述接收端口根據(jù)接收到的所述環(huán)路檢測報文判定本接收端口所屬的聚合下激活的vlan存在環(huán)路時,則對存在環(huán)路的vlan進(jìn)行阻塞處理或者進(jìn)行記錄。進(jìn)一步地,從所述聚合組發(fā)送所述環(huán)路檢測報文時,查看本聚合組內(nèi)各物理端口下激活的vlan是否存在于環(huán)路記錄中或者已經(jīng)被阻塞,對于已經(jīng)存在于環(huán)路記錄中或者已經(jīng)被阻塞的vlan,則不再發(fā)送與該vlan對應(yīng)的環(huán)路檢測報文。為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,下文中將結(jié)合附圖對本發(fā)明的實(shí)施例進(jìn)行詳細(xì)說明。需要說明的是,在不沖突的情況下,本申請中的實(shí)施例及實(shí)施例中的特征可以相互任意組合。實(shí)施例一圖2為本實(shí)施例的基于聚合端口構(gòu)造并發(fā)送環(huán)路檢測報文的流程示意圖。如圖2 所示,該流程的主要步驟描述如下步驟SlOl 獲取聚合組下已經(jīng)激活的vlan列表;環(huán)路檢測需要對每一個已經(jīng)激活的vlan都要進(jìn)行檢測,且針對每個激活的vlan 都會發(fā)送一個對應(yīng)的環(huán)路檢測報文。一個聚合組中包含多個物理端口,每個物理端口下激活的vlan有可能不同,而只有當(dāng)這些物理端口下激活的vlan有交集時,才表明該聚合組構(gòu)成的邏輯通道是有效的,進(jìn)而再對該聚合組進(jìn)行環(huán)路檢測。根據(jù)本步驟獲取到激活的公共vlan列表后,就可以確定發(fā)送環(huán)路檢測報文的個數(shù)以及報文中需要攜帶哪些vlan。步驟S102 查看vlan是否已經(jīng)存在過環(huán)路,例如該vlan已經(jīng)被阻塞,或者已經(jīng)存在環(huán)路記錄;如果是,則結(jié)束本次流程,否則,繼續(xù)執(zhí)行下一步驟S103 ;如果聚合組內(nèi)的某個vlan已經(jīng)被阻塞或者已經(jīng)存在環(huán)路記錄,說明之前已經(jīng)檢測出環(huán)路,則該聚合組不再發(fā)送該vlan對應(yīng)的環(huán)路檢測報文,即不再發(fā)送攜帶這個vlan的環(huán)路檢測報文。通過采用這樣的處理方法,一方面可以減少環(huán)路檢測報文對網(wǎng)絡(luò)性能造成的影響,另一方面可以減少環(huán)路檢測技術(shù)對重復(fù)報文的處理。步驟S103 為環(huán)路檢測報文分配內(nèi)存;具體地,可以根據(jù)環(huán)路檢測報文的長度大小分配內(nèi)存的大小。步驟S104 構(gòu)造環(huán)路檢測報文;環(huán)路檢測報文中應(yīng)包含目的MAC地址、源MAC地址、Qtag (標(biāo)簽)和報文類型等二層報文頭的內(nèi)容,同時也要包含長度、橋MAC、源端口等環(huán)路檢測報文特有的數(shù)據(jù)內(nèi)容,其中源端口部分應(yīng)填充為聚合組的端口號(該聚合組的端口號應(yīng)設(shè)置得與普通物理端口的端口號有區(qū)別)。例如,每一款設(shè)備都有最大物理端口號。例如某款設(shè)備共有6個物理端口,那么這款設(shè)備的最大物理端口號為6。而聚合組的端口號可定義為最大物理端口號與聚合組號之和。如,聚合組1的端口號為7,聚合組2的端口號為8,依此類推。因此,在收到環(huán)路檢測報文之后,通過判斷源端口的端口號是否大于最大物理端口號即可判斷是否屬于聚合組, 如果大于,則為聚合組,否則,即為物理端口。步驟S105 發(fā)送環(huán)路檢測報文;環(huán)路檢測報文構(gòu)造完成之后,將廣播發(fā)送環(huán)路檢測報文,以探測是否存在環(huán)路。步驟S106:釋放內(nèi)存;環(huán)路檢測報文發(fā)送完成之后,需要釋放為環(huán)路檢測報文申請的內(nèi)存空間,具體釋放方式可以是如果報文發(fā)送成功則由驅(qū)動釋放內(nèi)存;否則,由環(huán)路檢測模塊自行釋放內(nèi)存。至此,環(huán)路檢測報文發(fā)送完成。實(shí)施例二圖3為本實(shí)施例的根據(jù)接收到的環(huán)路檢測報文進(jìn)行環(huán)路檢測的處理流程示意圖。 如圖3所示,該流程的主要步驟描述如下步驟S201 判斷報文的有效性,如果有效,則繼續(xù)執(zhí)行下一步驟S202,否則,結(jié)束本次流程;收到環(huán)路檢測報文之后,首先要檢測報文的有效性,有效性檢測主要包括以下幾個方面收到報文的端口號是否是有效的端口號、端口是否處于link-up的狀態(tài)、報文長度是否合法、報文的類型是否合法、報文的校驗和是否合法等。步驟S202 判斷發(fā)送報文的物理端口和接收報文的物理端口是否屬于一個聚合組內(nèi),如果是,則結(jié)束本次流程,否則,繼續(xù)執(zhí)行下一步驟S203 ;此處,如果發(fā)送報文和接收報文的兩個物理端口屬于一個聚合組,即使這兩個端口之間真的有環(huán)路出現(xiàn),也不認(rèn)為這是一個環(huán)路,因為從實(shí)際應(yīng)用的角度來講,這兩個端口可以看成一個端口,而同一個端口上是不可能出現(xiàn)環(huán)路的。步驟S203 判斷是否存在環(huán)路,如果存在,則按照下述步驟S204和S205繼續(xù)進(jìn)行環(huán)路處理;如果不存在,則結(jié)束本次流程;具體地,可以根據(jù)接收到的環(huán)路檢測報文中的源MAC地址與報文接收端口的MAC 地址是否一致,判斷是否存在環(huán)路,即,如果報文中的源MAC地址與端口自身的MAC地址一致,則檢測出存在環(huán)路。步驟S204 將聚合端口轉(zhuǎn)換為實(shí)際的物理端口 ;由于現(xiàn)有的環(huán)路處理方式都是針對物理端口進(jìn)行處理的,因此,在檢測出聚合組內(nèi)存在環(huán)路時,首先獲取該聚合組內(nèi)包含的所有物理端口,再對每個物理端口分別進(jìn)行環(huán)路處理。步驟S205 對每個物理端口進(jìn)行環(huán)路處理;具體的環(huán)路處理可以分為trap-only (環(huán)路通知模式)和discarding (阻塞模式) 兩種模式。trap-only模式下,僅通知用戶有環(huán)路出現(xiàn)了,并不做阻塞處理;Discarding模式下又分為兩種不同的模式,端口模式和vlan模式。在端口模式下,若在某個vlan發(fā)現(xiàn)環(huán)路,則down掉端口 ;在vlan模式下,若發(fā)現(xiàn)某個或某幾個vlan出現(xiàn)環(huán)路,則阻塞出現(xiàn)環(huán)路 ^ vlan。此外,為了避免同時阻塞多個端口,按照如下阻塞規(guī)則進(jìn)行阻塞處理阻塞大的。 即,如果MAC地址不相同,則阻塞MAC地址大的;如果MAC地址相同,則阻塞端口號大的;如果端口號相同,則阻塞自己。至此,環(huán)路檢測的處理流程完成。實(shí)施例三本實(shí)施例提供了一種環(huán)路檢測裝置,參見圖4,該裝置主要包括報文發(fā)送模塊, 以及環(huán)路檢測模塊,其中,報文發(fā)送模塊用于,從聚合組發(fā)送環(huán)路檢測報文時,在所述環(huán)路檢測報文的源端口字段中填充所述聚合組的端口號,并將所述環(huán)路檢測報文廣播發(fā)送至與所述聚合組相連接的所有端口;環(huán)路檢測模塊用于,從本接收端口接收到環(huán)路檢測報文時,根據(jù)接收到的所述環(huán)路檢測報文判斷是否存在環(huán)路。進(jìn)一步地,上述的環(huán)路檢測模塊用于,按照以下方式判斷是否存在環(huán)路根據(jù)所述環(huán)路檢測報文中的源端口字段識別出所述環(huán)路檢測報文的發(fā)送端口屬于聚合組時,則判斷所述發(fā)送端口與本接收端口是否屬于同一個聚合組,如果不屬于同一個聚合組,則所述接收端口通過比較所述環(huán)路檢測報文中的源MAC地址是否與本接收端口的MAC地址一致,判斷是否存在環(huán)路。進(jìn)一步地,上述的環(huán)路檢測模塊還用于,在識別出所述環(huán)路檢測報文的發(fā)送端口屬于聚合組后,如果判斷出所述發(fā)送端口與本接收端口屬于同一個聚合組,則判定不存在環(huán)路。進(jìn)一步地,上述的環(huán)路檢測模塊用于,在識別出所述環(huán)路檢測報文的發(fā)送端口屬于聚合組后,按照以下方式判斷所述發(fā)送端口與本接收端口是否屬于同一個聚合組
如果本接收端口不屬于聚合組,則直接判定所述發(fā)送端口與本接收端口不屬于同一個聚合組;如果本接收端口屬于聚合組,則比較所述源端口字段中的聚合組的端口號與本接收端口所屬的聚合組的端口號是否一致,如果一致,則判定所述發(fā)送端口與本接收端口屬于同一個聚合組;如果不一致,則判定所述發(fā)送端口與本接收端口不屬于同一個聚合組。進(jìn)一步地,上述的報文發(fā)送模塊還用于,從聚合組發(fā)送所述環(huán)路檢測報文之前,獲取所述聚合組內(nèi)的公共vlan列表,其中所述公共激活vlan列表中包含所述聚合組內(nèi)各物理端口下激活的vlan的交集;以及,為所述公共激活vlan列表中的每個激活的vlan分別構(gòu)造對應(yīng)的環(huán)路檢測報文, 并在對應(yīng)的環(huán)路檢測報文中攜帶相應(yīng)的激活的vlan。進(jìn)一步地,上述的環(huán)路檢測模塊還用于,如果本接收端口屬于聚合組,且根據(jù)接收到的所述環(huán)路檢測報文判定本接收端口所屬的聚合組內(nèi)激活的vlan存在環(huán)路時,則對存在環(huán)路的所述vlan進(jìn)行阻塞處理或者進(jìn)行記錄。進(jìn)一步地,上述的報文發(fā)送模塊還用于,從所述聚合組發(fā)送所述環(huán)路檢測報文時, 查看本聚合組內(nèi)各物理端口下激活的vlan是否已經(jīng)被阻塞或者存在于環(huán)路記錄中,對于已經(jīng)被阻塞的或者存在于環(huán)路記錄中的vlan,則不再發(fā)送與所述vlan對應(yīng)的環(huán)路檢測報文。如圖4所示,可選地,本實(shí)施例裝置中還包括有效性檢驗?zāi)K,該有效性檢驗?zāi)K用于,從本接收端口接收到環(huán)路檢測報文時,首先對接收到的環(huán)路檢測報文的有效性進(jìn)行判斷,在判定所述環(huán)路檢測報文有效之后,再發(fā)送給所述環(huán)路檢測模塊。此外,本發(fā)明實(shí)施例中還提供了一種環(huán)路檢測報文封裝裝置(未圖示),該裝置主要包括報文構(gòu)造模塊,該報文構(gòu)造模塊用于,從聚合組發(fā)送環(huán)路檢測報文時,在所述環(huán)路檢測報文的源端口字段中填充所述聚合組的端口號。進(jìn)一步地,上述的報文構(gòu)造模塊用于,在環(huán)路檢測報文的二層報文頭中封裝以下內(nèi)容目的MAC地址、源MAC地址、Qtag和報文類型;在環(huán)路檢測報文的數(shù)據(jù)中封裝以下字段長度、橋MAC、源端口。根據(jù)以上描述,本發(fā)明具有如下特點(diǎn)1)本發(fā)明的不僅可以支持基于物理端口的環(huán)路檢測,而且可以支持基于聚合端口的環(huán)路檢測,進(jìn)一步避免了由于存在環(huán)路而產(chǎn)生的一系列問題,從而提高的網(wǎng)絡(luò)帶寬的利用率。2)由于將幾個物理端口視作一個聚合端口,而且是基于聚合端口構(gòu)造環(huán)路檢測報文,因此不會增加環(huán)路檢測報文的數(shù)量。3)當(dāng)端口已經(jīng)發(fā)現(xiàn)環(huán)路(物理端口和聚合端口都適用),就不會繼續(xù)發(fā)送環(huán)路檢測報文,從而減少了環(huán)路檢測報文的重復(fù),冗余發(fā)送。4)支持多個vlan的環(huán)路檢測,在默認(rèn)情況下,支持所有已經(jīng)激活的vlan的環(huán)路檢測,激活vlan中任何一個vlan出現(xiàn)了環(huán)路都可以檢測出來,并可按照阻塞規(guī)則進(jìn)行阻塞。5)在檢測出環(huán)路時可以有多種環(huán)路處理方式,用戶可以根據(jù)需要靈活選擇。以上僅為本發(fā)明的優(yōu)選實(shí)施案例而已,并不用于限制本發(fā)明,本發(fā)明還可有其他多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員可根據(jù)本發(fā)
1明做出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍。 顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計算裝置來實(shí)現(xiàn),它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計算裝置可執(zhí)行的程序代碼來實(shí)現(xiàn),從而,可以將它們存儲在存儲裝置中由計算裝置來執(zhí)行,并且在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟,或者將它們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實(shí)現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。
權(quán)利要求
1.一種環(huán)路檢測方法,其特征在于,所述方法包括從聚合組發(fā)送環(huán)路檢測報文時,在所述環(huán)路檢測報文的源端口字段中填充所述聚合組的端口號;將所述環(huán)路檢測報文廣播發(fā)送至與所述聚合組相連接的所有端口 ;接收到所述環(huán)路檢測報文的接收端口,根據(jù)所述環(huán)路檢測報文判斷是否存在環(huán)路。
2.如權(quán)利要求1所述的方法,其特征在于,所述接收端口根據(jù)所述環(huán)路檢測報文判斷是否存在環(huán)路,具體包括所述接收端口根據(jù)所述環(huán)路檢測報文中的源端口字段識別出所述環(huán)路檢測報文的發(fā)送端口屬于聚合組時,則判斷所述發(fā)送端口與本接收端口是否屬于同一個聚合組,如果不屬于同一個聚合組,則所述接收端口通過比較所述環(huán)路檢測報文中的源介質(zhì)訪問控制 (MAC)地址是否與本接收端口的MAC地址一致,判斷是否存在環(huán)路。
3.如權(quán)利要求2所述的方法,其特征在于,所述接收端口在識別出所述環(huán)路檢測報文的發(fā)送端口屬于聚合組后,如果判斷出所述發(fā)送端口與本接收端口屬于同一個聚合組,則判定不存在環(huán)路。
4.如權(quán)利要求2或3所述的方法,其特征在于,所述接收端口在識別出所述環(huán)路檢測報文的發(fā)送端口屬于聚合組后,按照以下方式判斷所述發(fā)送端口與本接收端口是否屬于同一個聚合組如果本接收端口不屬于聚合組,則直接判定所述發(fā)送端口與本接收端口不屬于同一個聚合組;如果本接收端口屬于聚合組,則比較所述源端口字段中的聚合組的端口號與本接收端口所屬的聚合組的端口號是否一致,如果一致,則判定所述發(fā)送端口與本接收端口屬于同一個聚合組;如果不一致,則判定所述發(fā)送端口與本接收端口不屬于同一個聚合組。
5.如權(quán)利要求1、2或3所述的方法,其特征在于,從聚合組發(fā)送所述環(huán)路檢測報文之前,還包括獲取所述聚合組內(nèi)的公共激活虛擬局域網(wǎng)(vlan)列表,其中所述公共激活vlan列表中包含所述聚合組內(nèi)各物理端口下激活的vlan的交集;為所述公共激活vlan列表中的每個激活的vlan分別構(gòu)造對應(yīng)的環(huán)路檢測報文,并在對應(yīng)的環(huán)路檢測報文中攜帶相應(yīng)的激活的vlan。
6.如權(quán)利要求5所述的方法,其特征在于,所述方法還包括如果所述接收端口屬于聚合組,且所述接收端口根據(jù)接收到的所述環(huán)路檢測報文判定本接收端口所屬的聚合組內(nèi)激活的vlan存在環(huán)路時,則對存在環(huán)路的所述vlan進(jìn)行阻塞處理或者進(jìn)行記錄。
7.如權(quán)利要求6所述的方法,其特征在于,所述方法還包括從所述聚合組發(fā)送所述環(huán)路檢測報文時,查看本聚合組內(nèi)各物理端口下激活的vlan 是否已經(jīng)被阻塞或者存在于環(huán)路記錄中,對于已經(jīng)被阻塞的或者存在于環(huán)路記錄中的 vlan,則不再發(fā)送與所述vlan對應(yīng)的環(huán)路檢測報文。
8.如權(quán)利要求1、2或3所述的方法,其特征在于,所述方法還包括所述接收端口接收到所述環(huán)路檢測報文時,首先對接收到的所述環(huán)路檢測報文的有效性進(jìn)行判斷,在判定所述環(huán)路檢測報文有效之后,再根據(jù)所述環(huán)路檢測報文判斷是否存在環(huán)路。
9.一種環(huán)路檢測報文封裝方法,其特征在于,從聚合組發(fā)送環(huán)路檢測報文時,在所述環(huán)路檢測報文的源端口字段中填充所述聚合組的端口號。
10.如權(quán)利要求9所述的方法,其特征在于,所述環(huán)路檢測報文的二層報文頭中封裝以下內(nèi)容目的MAC地址、源MAC地址、標(biāo)簽 (Qtag)和報文類型;在所述環(huán)路檢測報文的數(shù)據(jù)中封裝以下字段長度、橋MAC、源端口。
11.一種環(huán)路檢測裝置,其特征在于,所述裝置包括報文發(fā)送模塊,以及環(huán)路檢測模塊,其中,所述報文發(fā)送模塊用于,從聚合組發(fā)送環(huán)路檢測報文時,在所述環(huán)路檢測報文的源端口字段中填充所述聚合組的端口號,并將所述環(huán)路檢測報文廣播發(fā)送至與所述聚合組相連接的所有端口;所述環(huán)路檢測模塊用于,從本接收端口接收到環(huán)路檢測報文時,根據(jù)接收到的所述環(huán)路檢測報文判斷是否存在環(huán)路。
12.如權(quán)利要求11所述的裝置,其特征在于,所述環(huán)路檢測模塊用于,按照以下方式判斷是否存在環(huán)路根據(jù)所述環(huán)路檢測報文中的源端口字段識別出所述環(huán)路檢測報文的發(fā)送端口屬于聚合組時,則判斷所述發(fā)送端口與本接收端口是否屬于同一個聚合組,如果不屬于同一個聚合組,則所述接收端口通過比較所述環(huán)路檢測報文中的源MAC地址是否與本接收端口的 MAC地址一致,判斷是否存在環(huán)路。
13.如權(quán)利要求12所述的裝置,其特征在于,所述環(huán)路檢測模塊還用于,在識別出所述環(huán)路檢測報文的發(fā)送端口屬于聚合組后,如果判斷出所述發(fā)送端口與本接收端口屬于同一個聚合組,則判定不存在環(huán)路。
14.如權(quán)利要求12或13所述的裝置,其特征在于,所述環(huán)路檢測模塊用于,在識別出所述環(huán)路檢測報文的發(fā)送端口屬于聚合組后,按照以下方式判斷所述發(fā)送端口與本接收端口是否屬于同一個聚合組如果本接收端口不屬于聚合組,則直接判定所述發(fā)送端口與本接收端口不屬于同一個聚合組;如果本接收端口屬于聚合組,則比較所述源端口字段中的聚合組的端口號與本接收端口所屬的聚合組的端口號是否一致,如果一致,則判定所述發(fā)送端口與本接收端口屬于同一個聚合組;如果不一致,則判定所述發(fā)送端口與本接收端口不屬于同一個聚合組。
15.如權(quán)利要求11、12或13所述的裝置,其特征在于,所述報文發(fā)送模塊還用于,從聚合組發(fā)送所述環(huán)路檢測報文之前,獲取所述聚合組內(nèi)的公共激活虛擬局域網(wǎng)(vlan)列表,其中所述公共激活vlan列表中包含所述聚合組內(nèi)各物理端口下激活的vlan的交集;以及,為所述公共激活vlan列表中的每個激活的vlan分別構(gòu)造對應(yīng)的環(huán)路檢測報文,并在對應(yīng)的環(huán)路檢測報文中攜帶相應(yīng)的激活的vlan。
16.如權(quán)利要求15所述的裝置,其特征在于,所述環(huán)路檢測模塊還用于,如果本接收端口屬于聚合組,且根據(jù)接收到的所述環(huán)路檢測報文判定本接收端口所屬的聚合組內(nèi)激活的vlan存在環(huán)路時,則對存在環(huán)路的所述 vlan進(jìn)行阻塞處理或者進(jìn)行記錄。
17.如權(quán)利要求16所述的裝置,其特征在于,所述報文發(fā)送模塊還用于,從所述聚合組發(fā)送所述環(huán)路檢測報文時,查看本聚合組內(nèi)各物理端口下激活的vlan是否已經(jīng)被阻塞或者存在于環(huán)路記錄中,對于已經(jīng)被阻塞的或者存在于環(huán)路記錄中的vlan,則不再發(fā)送與所述vlan對應(yīng)的環(huán)路檢測報文。
18.如權(quán)利要求11、12或13所述的裝置,其特征在于,所述裝置還包括有效性檢驗?zāi)K,所述有效性檢驗?zāi)K用于,從本接收端口接收到所述環(huán)路檢測報文時,首先對接收到的所述環(huán)路檢測報文的有效性進(jìn)行判斷,在判定所述環(huán)路檢測報文有效之后,再發(fā)送給所述環(huán)路檢測模塊。
19.一種環(huán)路檢測報文封裝裝置,其特征在于,所述裝置包括報文構(gòu)造模塊,所述報文構(gòu)造模塊用于,從聚合組發(fā)送環(huán)路檢測報文時,在所述環(huán)路檢測報文的源端口字段中填充所述聚合組的端口號。
20.如權(quán)利要求19所述的裝置,其特征在于,所述報文構(gòu)造模塊用于,在所述環(huán)路檢測報文的二層報文頭中封裝以下內(nèi)容目的 MAC地址、源MAC地址、標(biāo)簽Oltag)和報文類型;在所述環(huán)路檢測報文的數(shù)據(jù)中封裝以下字段長度、橋MAC、源端口。
全文摘要
本發(fā)明公開了一種環(huán)路檢測報文封裝方法、環(huán)路檢測方法及裝置,其中環(huán)路檢測方法包括從聚合組發(fā)送環(huán)路檢測報文時,在環(huán)路檢測報文的源端口字段中填充聚合組的端口號;將環(huán)路檢測報文廣播發(fā)送至與聚合組相連接的所有端口;接收到環(huán)路檢測報文的接收端口,根據(jù)環(huán)路檢測報文判斷是否存在環(huán)路。本發(fā)明能夠在聚合端口上正確檢測出環(huán)路,從而避免了由于存在環(huán)路而產(chǎn)生的一系列問題,進(jìn)而能夠提高網(wǎng)絡(luò)帶寬的利用率。
文檔編號H04L12/56GK102420721SQ20111039116
公開日2012年4月18日 申請日期2011年11月30日 優(yōu)先權(quán)日2011年11月30日
發(fā)明者石鳳 申請人:瑞斯康達(dá)科技發(fā)展股份有限公司