組播故障恢復方法和組播路由器的製作方法
2023-05-06 03:13:06 2
專利名稱:組播故障恢復方法和組播路由器的製作方法
技術領域:
本發明涉及組播技術領域,具體涉及組播故障恢復方法和組播路由器。
背景技術:
在組播分發網絡中,若有兩臺或兩臺以上的組播路由器連接到同一共享網段,為了保證網絡中不出現組播報文重複複製的情況,需要通過協商選舉機制在該多臺組播路由器之間選舉出一臺組播路由器作為指定路由器(DR,Designated Router),剩餘的組播路由器作為備份DR。DR向上遊方向的組播源發送協議無關組播(PIM,Protocol Independent Multicast)加入(Join)消息,以申請從上遊的組播源牽引組播數據流。
DR的選舉機制是基於PIM探測(hello)報文來進行的。圖1是現有的DR選舉的流程圖,如圖1所示,其具體步驟如下步驟101共享同一網段的各組播路由器上電,各組播路由器建立自身與組播源之間的最短上行反向路徑(RP,Reverse Path)。
步驟102各組播路由器每隔一個預定周期向與自身共享同一網段的其它組播路由器發送PIM hello報文,該報文中攜帶發送者的IP位址。
步驟103各組播路由器收到用戶發來的IGMP報告(Report),根據該IGMP報告,建立IGMP組播組(Group)。
步驟104各組播路由器根據與自身共享同一網段的其它組播路由器的IP位址以及自身的IP位址,選舉IP位址最大的組播路由器作為DR,剩餘組播路由器作為備份DR。
步驟105選舉為DR的組播路由器將IGMP Group的出埠同步到自身的出埠,並通過自身建立的最短上行RP向組播源發送PIM加入(Join)消息,以申請從組播源牽引組播流。
當組播路由器上電後,組播路由器會每隔一個周期向與自身共享同一網段的其它組播路由器發送一次PIM hello報文。PIM hello報文的默認周期為30秒,備份DR若在3.5倍的hello周期內沒收到DR發來的hello報文,則自己升級為DR。PIM hello報文的最短周期可以設置為1秒,因此,當DR發生故障或者DR與備份DR之間的共享鏈路發生故障時,備份DR切換為DR所需的最短時間為3.5秒。
另外,由於PIM路由協議規定DR需要每隔5秒進行一次反向路徑轉發(RPF,Reverse Path Forwarding)埠的選舉,因此,若DR的最短上行RP發生故障,則要等到DR進行最新一次的RPF埠選舉以後,新的最短上行RP才能選舉出來,然後DR重新通過新的最短上行PR向組播源發送PIM加入消息,以恢復組播流的牽引。可看出DR的上行鏈路故障會造成DR的下遊用戶在5秒左右收不到組播流。
綜上所述,現有技術中在組播路由器上電後,共享同一網段的組播路由器之間通過PIM hello報文進行通信,由於PIM hello報文的周期較長,導致當DR發生故障或者DR與備份DR之間的共享鏈路發生故障時,備份DR切換為DR的最短時長為3.5秒,這無法滿足IP電視(IPTV)等實時業務的實時性要求;另外,當DR的上行RP發生故障時,最長會導致組播業務中斷5秒以上,同樣無法滿足實時業務的需求。
發明內容
有鑑於此,本發明提供一種組播故障恢復方法,以提高發現組播網絡故障的速度,從而提高組播流恢復速度,有效滿足實時業務需求;本發明同時提供一種組播路由器,以提高組播流恢復速度。
為達到上述目的,本發明的技術方案是這樣實現的一種組播網絡故障恢復方法,應用在至少包括共享同一網段的一臺DR及一臺備份DR的組播網絡中,在共享同一網段的組播路由器之間建立雙向轉發檢測(BFD)會話通道,該方法包括備份DR根據BFD會話檢測到組播網絡發生故障,將自身升級為DR。
所述備份DR根據BFD會話檢測到組播網絡發生故障包括備份DR在預定BFD報文周期來臨時,未收到DR發來的BFD報文。
所述備份DR將自身升級為DR之後進一步包括原DR檢測到自身故障恢復,將自身由DR變為備份DR。
所述組播網絡故障為DR和備份DR之間的共享鏈路發生故障,所述備份DR將自身升級為DR之後進一步包括原DR和原備份DR之間的共享鏈路故障恢復,原DR和原備份DR通過BFD報文協商出新DR。
所述備份DR檢測到組播網絡發生故障之前進一步包括DR收到自身上行RP埠發來的RP故障指示,停止向備份DR發送BFD報文。
所述備份DR根據BFD會話檢測到組播網絡發生故障包括DR收到自身上行RP埠發來的RP故障指示,向備份DR發送攜帶RP故障指示的BFD報文,同時將自身由DR變為備份DR,備份DR收到DR發來的RP故障指示,判定組播網絡發生故障。
所述備份DR檢測到組播網絡發生故障之前進一步包括各組播路由器上電,向與自身共享同一網段的其它組播路由器發送攜帶DR選舉信息的BFD會話,各組播路由器根據與自身共享同一網段的其它組播路由器發來的DR選舉信息以及自身的DR選舉信息,選舉一個組播路由器作為DR。
一種組播路由器,該組播路由器包括BFD會話模塊和DR選舉模塊,其中,BFD會話模塊,用於在上電後,與自身共享同一網段的其它組播路由器建立BFD會話,在自身為備份DR時,若根據BFD會話檢測到組播網絡發生故障,則向DR選舉模塊發送組播網絡故障指示;DR選舉模塊,在收到BFD會話模塊發來的組播網絡故障指示後,選舉自身為DR。
所述BFD會話模塊進一步用於,在自身為DR時,若檢測到組播網絡發生故障,則停止與備份DR間的BFD會話或向備份DR發送攜帶組播網絡故障指示的BFD會話。
所述BFD會話模塊包括BFD會話收發模塊和故障檢測模塊,其中BFD會話收發模塊,用於在上電後,與自身共享同一網段的其它組播路由器間建立BFD會話,當自身為DR時,若收到故障檢測模塊發來的故障指示,則停止與其它組播路由器間的BFD會話或將組播網絡故障指示通過BFD會話轉發給與自身共享同一網段的其它組播路由器;當自身為備份DR時,若在預定BFD會話周期來臨時,未收到DR發來的BFD會話或收到組播網絡故障指示,則向DR選舉模塊發送組播網絡故障指示;故障檢測模塊,用於在自身DR時,若檢測到自身發生故障或收到自身的上行RP埠發來的故障指示,則向BFD會話收發模塊發送故障指示。
所述BFD會話模塊進一步用於,將自身的DR選舉信息通過BFD會話發送給與自身共享同一網段的組播路由器,並將其它組播路由器通過BFD會話發來的DR選舉信息發送給DR選舉模塊;且,所述DR選舉模塊進一步用於,根據自身的DR選舉信息和BFD會話模塊發來的與自身共享同一網段的其它組播路由器的DR選舉信息,選舉一個組播路由器作為DR。
與現有技術相比,本發明在共享同一網段的組播路由器之間建立BFD會話,備份DR若在預定BFD報文周期來臨時未收到DR發來的BFD報文,或收到DR發來的攜帶RP故障指示的BFD報文,則將自身升級為DR。由於BFD報文的發送周期可達到毫秒級,所以當DR自身或DR的上行RP發生故障時,或DR與備份DR之間的共享鏈路發生故障時,備份DR會在較短時間內檢測到組播網絡發生故障,立即將自身升級為DR,大大降低了組播流的中斷時間,提高了組播流恢復速度,滿足了實時業務的實行性需求。
圖1為現有的DR選舉流程圖;
圖2為本發明實施例提供的DR選舉流程圖;圖3為本發明實施例提供的RP故障處理流程圖;圖4為本發明實施例提供的組播路由器的結構示意圖;圖5為本發明實施例提供的BFD會話模塊的組成示意圖。
具體實施例方式
由於雙向轉發檢測(BFD,Bidirectional Forwarding Detection)協議是通過定期發送基於用戶數據報協議(UDP,User Datagram Protocol)層的故障檢測數據包,不但可以檢測和判斷傳輸鏈路、光接口和設備埠的中斷故障,還可檢測和判斷傳輸層、鏈路層、IP層和應用層存在的誤碼、丟包等軟故障。目前BFD的預設檢測周期為10ms,若連續3次檢測到故障就判定發生故障,即可在30ms內檢測和確定故障。因此,本發明的核心思想是共享同一網段的組播路由器之間建立BFD會話,若備份DR檢測到與DR的BFD會話中斷,則將自身升級為DR。
下面結合附圖及具體實施例對本發明再作進一步詳細的說明。
圖2是本發明實施例提供的DR選舉流程圖,如圖2所示,其具體步驟如下步驟201在共享同一網段的各組播路由器之間建立BFD會話通道。
步驟202共享同一網段的各組播路由器上電,每個組播路由器建立一條自身到組播源的最短上行RP,以用於從組播源牽引組播流。
步驟203共享同一網段的各組播路由器之間通過BFD會話通道建立BFD會話。
組播路由器上電後,會周期性地向與自身共享同一網段的其它組播路由器發送BFD報文,BFD報文攜帶發送該報文的組播路由器的IP位址,BFD報文的周期在10ms與幾百ms之間。
步驟203各組播路由器根據用戶發來的IGMP報告(Report),建立IGMP組播組(Group)。
步驟204各組播路由器根據與自身共享同一網段的其它組播路由器發來的BFD報文中包含的IP位址,選舉IP位址最大的組播路由器為DR,則IP位址非最大的組播路由器為備份DR。
步驟205選舉為DR的組播路由器將IGMP Group的出埠同步到自身的出埠,並通過自身建立的最短上行RP向組播源發送PIM加入消息,以申請從組播源牽引組播流。
在本發明中,各組播路由器之間也可通過PIM hello報文通知與自身共享同一網段的其它組播路由器自身的IP位址,即本發明可採用與現有技術同樣的方法選舉DR。
需要指出的是,在實際應用中,共享同一網段的組播路由器通常只有兩個,因此,以下給出的實施例都以兩個組播路由器共享同一網段為例。
以下給出本發明實施例提供的DR故障或共享鏈路故障的處理過程,其具體步驟如下步驟01備份DR在預定BFD報文周期來臨時,未收到DR發來的BFD報文,則確定組播網絡發生故障。
當DR發生故障時,DR將停止向備份DR發送BFD報文;當DR與備份DR之間的共享鏈路發生故障時,DR發送的BFD報文將無法到達備份DR,因此,這兩種故障都會導致備份DR在預定BFD報文周期來臨時,沒有收到DR發來的BFD報文。
步驟02備份DR將自身升級為DR,並通過自身建立的最短上行RP向組播源發送PIM加入消息,以申請從組播源牽引組播流。
這裡,當DR與備份DR之間的共享鏈路未發生故障時,DR與備份DR共享同一物理網段;當DR與備份DR之間的共享鏈路發生故障時,DR與備份DR分屬不同的物理網段,此時DR將只能向屬於自身物理網段的用戶分發組播流,而無法向屬於備份DR的物理網段的用戶分發組播流。因此,當DR與備份DR之間的共享鏈路發生故障後,備份DR升級為DR,可使得與原備份DR同屬一個物理網段的用戶可從原備份DR獲取組播流,避免了該部分用戶的組播流中斷,可以看出此時,原DR與原備份DR都充當了DR的角色。
進一步地,原DR在故障恢復後,會恢復向當前DR發送BFD報文,此時,為了保證組播流的連續分發,原DR可以充當備份DR的角色,由原備份DR繼續充當DR的角色;當然,也可與現有技術一樣,原DR繼續充當DR的角色,而原備份DR收到原DR發來的BFD報文後,將自身恢復為備份DR。原DR與原備份DR之間的共享鏈路故障恢復後,原DR發送的BFD報文會到達原備份DR,原備份DR收到該BFD報文後,將自身由DR恢復為備份DR;或者,原DR與原備份DR之間的共享鏈路故障恢復後,原DR和原備份DR通過BFD報文協商出是由原DR繼續作DR,還是由原備份DR繼續作DR。
圖3為本發明實施例提供的DR的上行RP發生故障的處理流程圖,如圖3所示,其具體步驟如下步驟301DR的上行RP發生故障,RP埠向DR發送RP故障指示。
步驟302DR收到該RP故障指示後,停止向備份DR發送BFD報文。
步驟303備份DR在預定BFD報文周期來臨時,未收到DR發來的BFD報文,則確定組播網絡發生故障。
在步驟302中,DR收到RP故障指示後,也可以不停止向備份DR發送BFD報文,而將RP故障指示攜帶在BFD報文中轉發給備份DR,同時將自身由DR變為備份DR;同時,步驟303變為原備份DR接收原DR發來的攜帶RP故障指示的BFD報文,然後轉至步驟304。
步驟304備份DR將自身升級為DR,並通過自身建立的最短上行RP向組播源發送PIM加入消息,以申請從組播源牽引組播流。
同樣,原DR在自身的上行RP重新建立後,會恢復向當前DR發送BFD報文,當前DR收到該BFD報文後,根據預先約定,可以將自身恢復為備份DR,也可以繼續充當DR,直至自身發生故障,再由原DR恢復充當DR。
圖4是本發明實施例提供的組播路由器的結構示意圖,如圖4所示,其主要包括BFD會話模塊41用於在上電後,每隔一個預定BFD報文周期向與自身共享同一網段的其它組播路由器發送BFD報文,在自身為備份DR時,若檢測到在預定BFD報文周期來臨時未收到DR發來的BFD報文或收到DR發來的攜帶RP故障指示的BFD報文,向DR選舉模塊42發送組播網絡故障指示;在自身為DR時,若檢測到自身故障,則停止向與自身共享同一網段的其它組播路由器發送BFD報文,若收到自身的上行RP埠發來的RP故障指示,則停止向與自身共享同一網段的其它組播路由器發送BFD報文或向與自身共享同一網段的其它組播路由器發送攜帶組播網絡故障指示的BFD報文。
進一步地,BFD會話模塊41用於,將自身的IP位址攜帶在BFD報文中,並將其它組播路由器發來的BFD報文中攜帶的IP位址發送給DR選舉模塊42。
DR選舉模塊42在收到BFD會話模塊41發來的組播網絡故障指示後,選舉自身為DR。
進一步地,DR選舉模塊42用於,根據自身的IP位址和BFD會話模塊41發來的與自身共享同一網段的其它組播路由器的IP位址,選舉IP位址最大的組播路由器作為DR,將該DR信息發送給BFD會話模塊41。
如圖5所示,BFD會話模塊41包括BFD會話收發模塊411和故障檢測模塊412,其中BFD會話收發模塊411用於在上電後,每隔一個預定BFD報文周期向與自身共享同一網段的其它組播路由器發送BFD報文,在自身為DR時,若收到故障檢測模塊412發來的DR故障指示,則停止向與自身共享同一網段的其它組播路由器發送BFD報文,若收到故障檢測模塊412發來的RP故障指示,則停止向與自身共享同一網段的其它組播路由器發送BFD報文或將組播網絡故障指示攜帶在BFD報文中發送給與自身共享同一網段的其它組播路由器;當自身為備份DR時,若在預定BFD報文周期來臨時,未收到DR發來的BFD報文或收到攜帶RP故障指示的BFD報文,則向DR選舉模塊42發送組播網絡故障指示;故障檢測模塊412,用於在自身為DR時,若檢測到自身發生故障,則向BFD會話收發模塊411發送DR故障指示,若收到自身的上行RP埠發來的故障指示,則向BFD會話收發模塊411發送RP故障指示。
需要指出的是,在本發明給出的實施例中,在選舉DR時,是將IP位址最大的組播路由器選為DR,在實際應用中,也可將IP位址最小的組播路由器選為DR,或者,也可以根據其它預先設定的DR選舉規則來選舉DR。
以上所述僅為本發明的過程及方法實施例,並不用以限制本發明,凡在本發明的精神和原則之內所做的任何修改、等同替換、改進等,均應包含在本發明的保護範圍之內。
權利要求
1.一種組播網絡故障恢復方法,應用在至少包括一臺指定路由器DR及一臺備份DR的組播網絡中,其特徵在於,在共享同一網段的組播路由器之間建立雙向轉發檢測BFD會話通道,該方法包括備份DR根據BFD會話檢測到組播網絡發生故障,將自身升級為DR。
2.如權利要求1所述的方法,其特徵在於,所述備份DR根據BFD會話檢測到組播網絡發生故障包括備份DR在預定BFD會話周期來臨時,未收到DR發來的BFD報文。
3.如權利要求2所述的方法,其特徵在於,所述備份DR將自身升級為DR之後進一步包括原DR檢測到自身故障恢復,將自身由DR變為備份DR。
4.如權利要求2所述的方法,其特徵在於,所述組播網絡故障為DR和備份DR之間的共享鏈路發生故障,所述備份DR將自身升級為DR之後進一步包括原DR和原備份DR之間的共享鏈路故障恢復,原DR和原備份DR通過BFD報文協商出新DR。
5.如權利要求2所述的方法,其特徵在於,所述備份DR檢測到組播網絡發生故障之前進一步包括DR收到自身上行RP埠發來的上行反向路徑RP故障指示,停止向備份DR發送BFD報文。
6.如權利要求1所述的方法,其特徵在於,所述備份DR根據BFD會話檢測到組播網絡發生故障包括DR收到自身上行RP埠發來的RP故障指示,向備份DR發送攜帶RP故障指示的BFD報文,同時將自身由DR變為備份DR,備份DR收到DR發來的RP故障指示,判定組播網絡發生故障。
7.如權利要求1所述的方法,其特徵在於,所述備份DR檢測到組播網絡發生故障之前進一步包括各組播路由器根據其它組播路由器通過BFD會話發來的DR選舉信息以及自身的DR選舉信息,選舉一個組播路由器作為DR。
8.一種組播路由器,其特徵在於,該組播路由器包括BFD會話模塊和DR選舉模塊,其中,BFD會話模塊,用於在上電後,與自身共享同一網段的其它組播路由器建立BFD會話,在自身為備份DR時,若根據BFD會話檢測到組播網絡發生故障,則向DR選舉模塊發送組播網絡故障指示;DR選舉模塊,在收到BFD會話模塊發來的組播網絡故障指示後,選舉自身為DR。
9.如權利要求8所述的組播路由器,其特徵在於,所述BFD會話模塊進一步用於,在自身為DR時,若檢測到組播網絡發生故障,則停止與備份DR間的BFD會話或向備份DR發送攜帶組播網絡故障指示的BFD會話。
10.如權利要求9所述的組播路由器,其特徵在於,所述BFD會話模塊包括BFD會話收發模塊和故障檢測模塊,其中BFD會話收發模塊,用於在上電後,與自身共享同一網段的其它組播路由器間建立BFD會話,當自身為DR時,若收到故障檢測模塊發來的故障指示,則停止與其它組播路由器間的BFD會話或將組播網絡故障指示通過BFD會話轉發給與自身共享同一網段的其它組播路由器;當自身為備份DR時,若在預定BFD會話周期來臨時,未收到DR發來的BFD會話或收到組播網絡故障指示,則向DR選舉模塊發送組播網絡故障指示;故障檢測模塊,用於在自身DR時,若檢測到自身發生故障或收到自身的上行RP埠發來的故障指示,則向BFD會話收發模塊發送故障指示。
11.如權利要求8所述的組播路由器,其特徵在於,所述BFD會話模塊進一步用於,將自身的DR選舉信息通過BFD會話發送給與自身共享同一網段的組播路由器,並將其它組播路由器通過BFD會話發來的DR選舉信息發送給DR選舉模塊;且,所述DR選舉模塊進一步用於,根據自身的DR選舉信息和BFD會話模塊發來的與自身共享同一網段的其它組播路由器的DR選舉信息,選舉一個組播路由器作為DR。
全文摘要
本發明公開了一種組播故障恢復方法,包括在共享同一網段的組播路由器間建立BFD會話通道,備份DR根據BFD會話檢測到組播網絡發生故障,將自身升級為DR;本發明同時公開了一種組播路由器,包括BFD會話模塊和DR選舉模塊。由於BFD報文的發送周期可達到毫秒級,所以當DR自身或DR的上行RP發生故障時,或DR與備份DR之間的共享鏈路發生故障時,備份DR會在較短時間內升級為DR,大大降低了組播流的中斷時間,提高了組播流恢復速度,滿足了實時業務需求。
文檔編號H04L12/66GK1874315SQ20061008645
公開日2006年12月6日 申請日期2006年6月21日 優先權日2006年6月21日
發明者劉建鋒, 寧軍, 姚民 申請人:杭州華為三康技術有限公司