專利名稱:一種建立pim鄰居、組播加入的方法、組播網(wǎng)絡(luò)及路由器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域,特別涉及一種建立協(xié)議無關(guān)組播鄰居的方法、 一種組播加入的方 法、 一種組播網(wǎng)絡(luò)及路由器。
背景技術(shù):
目前,RFC (Request For Comments,請求注解)定義的PIM (Protocol Independent Multicast, 協(xié)議無關(guān)組播)協(xié)議中,路由器間都是通過單跳直連物理鏈路建立鄰居關(guān)系,PIM協(xié)議組播 組的加入/剪枝都是通過單跳直連PIM鄰居進行協(xié)議報文交互,報文的源地址用物理鏈路接口 地址,目的地址采用組播地址。在現(xiàn)行的IP核心網(wǎng)中經(jīng)常使用隧道技術(shù),這里所謂的隧道技術(shù)泛指RSVP(資源保留協(xié)議, Resource Reservation Protocol)MPLS(Multiprotocol Label Switch,多協(xié)議標(biāo)簽交換) LSP(Multiprotocol Label Switch Path,標(biāo)簽交換路徑)、GRE (Generic Routing Encapsulation, 通用路由封裝)等可跨越一跳至多跳,將報文封裝在隧道協(xié)議內(nèi)部,通過隧道協(xié)議將報文從 隧道頭節(jié)點轉(zhuǎn)發(fā)至隧道尾節(jié)點的技術(shù)。隧道常常被作為一條邏輯鏈路參與到IGP (Interior Gateway Protocol,內(nèi)部網(wǎng)關(guān)協(xié)議)的運算中,相應(yīng)的技術(shù)有IGP Shortcut (IGP捷徑)、FA (ForwardingAdjacency,轉(zhuǎn)發(fā)鄰接)等。PIM需要參考IGP決定RPF(Reverse Path Forwarding,反向路徑轉(zhuǎn)發(fā))鄰居,但當(dāng)前標(biāo)準(zhǔn)的 PIM沒有考慮IGP將隧道作為邏輯鏈路看待的場景,由于該邏輯鏈路可以跨越多個物理鏈路和 設(shè)備,超出了現(xiàn)有PIM定義的單跳直連物理鏈路上建鄰居的規(guī)范。即如果網(wǎng)絡(luò)同時存在隧道 (邏輯鏈路)和組播PIM協(xié)議,PIM路由器參考IGP生成的下一跳指向隧道接口的路由無法獲 得直連的PIMRPF鄰居。如圖1所示,如果網(wǎng)絡(luò)同時存在隧道(該隧道可以是雙向的,也可以 是單向的,對于單向的隧道,例如起點為R2,終點為R4)和組播PIM協(xié)議,PIM路由器通 過參考IGP生成,R4的去往圖中組播源的RPF鄰居為R2,但由于R2和R4之間不存在直連的PIM 鄰居關(guān)系,也就無法發(fā)起組播樹加入。這造成了組播和隧道技術(shù)互斥,不能同時布署。針對上述問題,現(xiàn)有技術(shù)采取的解決方案是1.采用組播靜態(tài)路由方案。在PIM路由器上配置專門為組播PIM協(xié)議RPF計算參考的路 由,其下一跳地址指向直連網(wǎng)段上的PIM鄰居,此時組播加入的建立方向可以避開隧道,從樹。該方案需要在PIM路由器上進行大量的手工配置,維護操作復(fù)雜,難以實施;另外,當(dāng) 網(wǎng)絡(luò)上增刪節(jié)點、發(fā)生物理鏈路故障時,網(wǎng)絡(luò)拓?fù)浒l(fā)生變化,手工配置的路由可能失效,甚 至可能變成錯誤路徑,組播業(yè)務(wù)會隨之中斷。2. 通過配置使隧道頭尾節(jié)點的PIM路由器不參考經(jīng)由隧道的路由。即通過配置讓PIM路 由器參考路由時跳過經(jīng)由隧道的路由,從而找到直連PIM RPF鄰居。該方案的主要缺點是即便隧道頭尾的路由器回避了對通過隧道路由的參考,由于隧道常常被看待成邏輯鏈路被IGP發(fā)布,其他非隧道頭尾的PIM路由器依然可能參考通過IGP擴散出來的經(jīng)由隧道的路由,且隧道頭尾以外的其他路由器無法分辨哪些是通過直連鏈路的路由,哪些是通過隧道的路由,這時PIM協(xié)議的組播樹建立會發(fā)生混亂,無法正常工作。3. 通過IGP多拓?fù)浼夹g(shù)建立獨立路由表供PIM路由器參考。網(wǎng)絡(luò)中所有路由器專門運行 一個IGP實例,或者建立與單播業(yè)務(wù)完全無關(guān)的不包含隧道的另一套專為組播工作的路由平 面,生成專門為組播參考的路由表,為整個網(wǎng)絡(luò)提供了完全隔離、有充分靈活性的組播拓?fù)洹T摲桨傅闹饕秉c是需要全網(wǎng)的路由器都支持IGP多拓?fù)浼夹g(shù);IGP多拓?fù)湓斐陕酚?器的計算量加大,控制平面任務(wù)復(fù)雜、繁重;回避了通過隧道的路由,也就放棄了利用隧道提供豐富特性的機會。發(fā)明人發(fā)現(xiàn),現(xiàn)有技術(shù)中至少存在如下問題,即現(xiàn)有的技術(shù)都沒有打破PIM路由器建立 單跳直連鄰居的方案,當(dāng)遇至ljPIM和RSVPMPLSLSP等隧道同時部署時,PIM路由器無法找 到單跳直連RPF鄰居。發(fā)明內(nèi)容為了在跨越多跳的一對路由器間建立協(xié)議無關(guān)組播鄰居,本發(fā)明實施例提供了一種建立 協(xié)議無關(guān)組播鄰居的方法、 一種組播加入的方法、 一種組播網(wǎng)絡(luò)及路由器。所述技術(shù)方案如下一種建立協(xié)議無關(guān)組播鄰居的方法,所述方法包括 第一路由器向第二路由器發(fā)送單播報文;所述第二路由器收到所述單播報文后,將所述第一路由器作為所述第二路由器的協(xié)議無 關(guān)組播多跳鄰居。一種組播加入的方法,所述方法包括 第二路由器接收第一路由器發(fā)送的加入請求;所述第二路由器尋找一個從所述第二路由器到所述第一路由器的隧道,并將所述隧道作
為組播轉(zhuǎn)發(fā)出接口,建立組播轉(zhuǎn)發(fā)表。 一種組播網(wǎng)絡(luò),所述網(wǎng)絡(luò)包括 第一路由器,用于發(fā)送單播報文;第二路由器,用于在接收到所述單播報文后,將所述第一路由器作為本路由器的協(xié)議無 關(guān)組播多跳鄰居。一種路由器,所述路由器包括-報文發(fā)送模塊,用于發(fā)送單播報文。 一種路由器,所述路由器包括報文接收模塊,用于接收其它路由器發(fā)送的單播報文;多跳鄰居設(shè)置模塊,用于在接收到其它路由器發(fā)送的單播報文后,將所述發(fā)送單播報文 的路由器作為本路由器的協(xié)議無關(guān)組播多跳鄰居。本發(fā)明實施例通過路由器之間發(fā)送單播報文,使收到單播報文的路由器將發(fā)送單播報文 的路由器作為其協(xié)議無關(guān)組播多跳鄰居,打破了現(xiàn)有PIM建立單跳直連鄰居的規(guī)范,對現(xiàn)有 PIM擴展建立多跳PIM鄰居,多跳PIM鄰居可以看作是在邏輯鏈路上運行的PIM鄰居。
圖1是現(xiàn)有技術(shù)中隧道與組播共同部署示意圖; 圖2是本發(fā)明實施例1提供的建立協(xié)議無關(guān)組播鄰居示意圖; 圖3是本發(fā)明實施例1提供的建立協(xié)議無關(guān)組播鄰居流程圖; 圖4是本發(fā)明實施例2提供的組播網(wǎng)絡(luò)的示意圖。
具體實施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明實施方式作進 一步地詳細(xì)描述。 實施例l本發(fā)明實施例提供了一種建立協(xié)議無關(guān)組播鄰居的方法。如圖2所示,路由器R2、 R4間 通過單播報文自動建立多跳PIM鄰居,該多跳PIM鄰居綁定R2和R4間的隧道。當(dāng)R4需要向組 播源方向發(fā)送PIM加入請求消息時,能通過R2和R4間的隧道直接到達R2,進而建立起組播樹, 相應(yīng)地組播流量沿R2和R4間的隧道轉(zhuǎn)發(fā)。如圖3所示,本發(fā)明實施例的具體步驟如下-步驟101: R4根據(jù)本路由器保留的隧道狀態(tài)檢查是否有從遠(yuǎn)端建立過來的、目的地址為自己的、處于建立狀態(tài)的隧道,如果沒有,則不進行操作;如果有,執(zhí)行步驟102。隧道可以是雙向的,也可以是單向的。在本發(fā)明實施例中,以單向隧道為例,可以看出R2和R4之間存在隧道,隧道起點為R2,終點為R4。R2和R4間的PIM鄰居關(guān)系也可以通過手動配置地址,然后發(fā)送報文建立。R4在配置時人工指定對端R2的Loopback (環(huán)回)地址為目的地址,也同時指定本端的Loopback地址作為源地址。步驟102: R4以自己為源,以隧道起點R2的地址為IP目的地址發(fā)送PIM Hello報文。與現(xiàn) 有PIM報文不同,這個PIMHello報文是個單播報文,且可以跨越多跳。上述報文可以周期性地向R2發(fā)送,其中,第一個周期的報文用于建立R2與R4之間的多跳 鄰居關(guān)系,后續(xù)周期的報文用于維護R2與R4之間的多跳鄰居關(guān)系。步驟103: R2將R4加入到鄰居列表,作為多跳PIM鄰居。R2收到PIM Hello報文,由于該PIM Hello報文是單播報文,與單跳直連鄰居的組播報文 不同,因而R2認(rèn)為R4是自己的多跳PIM鄰居,采用同樣的方法,R4也可以將R2加入到鄰居列 表,作為多跳PM鄰居。由于R2與R4不是直連,這樣在R2與R4之間建立的PIM鄰居即多瑕fePIM 鄰居,且該多跳PIM鄰居可以單向建立。步驟104:維護R2和R4間的多跳PIM鄰居關(guān)系。R2與R4間維護多跳PIM鄰居關(guān)系所采用的是R4可以周期性地向?qū)Χ薘2發(fā)送PIM Hello 報文的方法。因為根據(jù)現(xiàn)有PIM協(xié)議規(guī)定,本端應(yīng)在使能PIM的接口上周期性地向?qū)Χ税l(fā)送 PMHello報文,對端接到PIMHello報文后了解到該接口上有一PIM鄰居,如果在規(guī)定的若干 周期內(nèi),對端沒有收到PIMHdlo報文也應(yīng)刪除該PIM鄰居。PIM路由器在發(fā)送加入/剪枝消息 前如還沒有發(fā)送過PIM Hello報文,可以根據(jù)現(xiàn)有的PIM協(xié)議立即發(fā)送,對端在沒有收到PIM Hello報文的情況下收到加入/剪枝消息也應(yīng)丟棄。至此,多跳PIM鄰居關(guān)系就已經(jīng)建立了,當(dāng)有節(jié)點請求加入組播時,就可以利用上述多 跳PIM鄰居關(guān)系進行組播樹的建立。步驟105: R4收到從R5發(fā)送的PIM加入請求消息后,通過路由協(xié)議,如內(nèi)部網(wǎng)關(guān)協(xié)議路由 判斷其RPF鄰居是R2,直接向R2發(fā)送PIM加入請求消息。R4發(fā)送該PIM加入請求信息的源地 址是R4的地址,目的地址是R2的地址,這兩個地址分別是隧道的目的地址和源地址。步驟106: R2收到R4發(fā)來的PIM加入請求消息后,判斷能否建立組播轉(zhuǎn)發(fā)表。如果可以, 則通過綁定將組播轉(zhuǎn)發(fā)表出接口設(shè)為隧道,并繼續(xù)組播樹的建立過程。R2由于先前收到過R4發(fā)送的PIMHello報文,知道R4是本端的多跳PIM鄰居,認(rèn)為該PIM
加入請求消息有效,并使用R4的地址去迭代隧道,也就是尋找一個從R2到R4的隧道,并把它 作為組播轉(zhuǎn)發(fā)的出接口。如果該隧道存在,R2建立正常的組播轉(zhuǎn)發(fā)表,并繼續(xù)組播樹的建立 過程,向R1發(fā)送PIM加入請求信息。至此,組播樹就建立完畢了,可以通過該組播樹進行組播轉(zhuǎn)發(fā)。步驟107:當(dāng)R2收到從組播源發(fā)來的組播報文后,查詢組播轉(zhuǎn)發(fā)表,使組播流量在R2到 R4的隧道上轉(zhuǎn)發(fā)?,F(xiàn)有PIM鄰居建立在路由器的直連鏈路上,協(xié)議報文源地址用發(fā)送PIM報文的接口地址, 加入請求信息等PIM協(xié)議報文的目的地址采用用ALL-PIM-ROUTERS組地址224.0.0.13 , TTL (TimeToLive,生存時間)初始值為l。本發(fā)明實施例也不限于在隧道之間建立多跳PIM鄰居關(guān)系,網(wǎng)絡(luò)中的多跳路由器之間通 過單播報文都可以建立這種多跳PIM鄰居關(guān)系。實施例2如圖4所示,本發(fā)明實施例提供了一種組播網(wǎng)絡(luò),該組播網(wǎng)絡(luò)包括, 第一路由器,用于發(fā)送單播報文;第二路由器,用于在接收到該單播報文后,將該第一路由器作為本路由器的協(xié)議無關(guān)組 播多跳鄰居。其中,第一路由器包括 報文發(fā)送模塊,用于發(fā)送單播報文。周期性報文發(fā)送模塊,用于周期性向該第二路由器發(fā)送單播報文。加入請求發(fā)送模塊,用于發(fā)送加入請求。第二路由器包括報文接收模塊,用于接收其它路由器發(fā)送的單播報文;多跳鄰居設(shè)置模塊,用于在接收到其它路由器發(fā)送的單播報文后,將該發(fā)送單播報文的 路由器作為本路由器的協(xié)議無關(guān)組播多跳鄰居。維護模塊,用于接收其它路由器發(fā)送的周期性單播報文,如果在規(guī)定的周期內(nèi)沒有接收 到該單播報文,則從鄰居列表中刪除該其它路由器。加入請求接收模塊,用于接收其它路由器的加入請求;判斷模塊,用于判斷該發(fā)送加入請求的路由器是否為本路由器的多跳鄰居,并將判斷結(jié) 果發(fā)送到該迭代模塊。迭代模塊,用于尋找一個從本路由器到該發(fā)送加入請求的路由器的隧道,并將該隧道作
為組播轉(zhuǎn)發(fā)出接口,建立組播轉(zhuǎn)發(fā)表。同時,作為一種優(yōu)選的方案,該組播網(wǎng)絡(luò)還包括 兩個路由器之間存在的隧道;該第一路由器為隧道的終點路由器,該第二路由器為隧道的起點路由器。 實施例3木發(fā)明實施例提供了一種路由器,該路由器包括 報文發(fā)送模塊,用于發(fā)送單播報文。 作為一種優(yōu)選的方案,該路由器還包括 周期性報文發(fā)送模塊,用于周期性發(fā)送單播報文。 該路由器除包括上述模塊以外,還可以包括 加入請求發(fā)送模塊,用于發(fā)送加入請求。 實施例4本發(fā)明實施例提供了一種路由器,該路由器包括 報文接收模塊,用于接收其它路由器發(fā)送的單播報文。多跳鄰居設(shè)置模塊,用于在接收到其它路由器發(fā)送的單播報文后,將該發(fā)送單播報文的 路由器作為本路由器的協(xié)議無關(guān)組播多跳鄰居。 作為另一種優(yōu)選的方案,該路由器還包括維護模塊,用于接收其它路由器發(fā)送的周期性單播報文,如果在規(guī)定的周期內(nèi)沒有接收 到該單播報文,則從鄰居列表中刪除該其它路由器。 進一步,該路由器還包括加入請求接收模塊,用于接收其它路由器的加入請求。迭代模塊,用于尋找一個從本路由器到該發(fā)送加入請求的路由器的隧道,并將該隧道作 為組播轉(zhuǎn)發(fā)出接口,建立組播轉(zhuǎn)發(fā)表。 再進一步,該路由器還包括判斷模塊,用于判斷該發(fā)送加入請求的路由器是否為本路由器的多跳鄰居,并將判斷結(jié) 果發(fā)送到該迭代模塊。本發(fā)明實施例通過路由器之間發(fā)送單播報文,使收到單播報文的路由器將發(fā)送單播報文 的路由器作為其協(xié)議無關(guān)組播多跳鄰居,打破了現(xiàn)有PIM建立單跳直連鄰居的規(guī)范,對現(xiàn)有 PIM擴展建立多跳PIM鄰居,使多跳PIM鄰居可以看作是在邏輯鏈路上運行的PIM鄰居。 同時,本發(fā)明實施例通過把多跳PIM鄰居看作是在邏輯鏈路上運行的PIM鄰居,這樣PIM
參考IGP時就能夠適應(yīng)有隧道的場景,PIM路由器仍能向RPF鄰居發(fā)送加入請求消息和建立 組播樹,解決了隧道與組播的同時布署問題。此外,轉(zhuǎn)發(fā)平面根據(jù)組播樹將組播報文承載到 隧道上,隧道技術(shù)帶來的優(yōu)越特性,如利用MPLS FRR( Fast ReRoute,快速重路由)提高組播 可靠性、利用隧道的QOS (Quality of Service,服務(wù)質(zhì)量)帶寬保證等都可以得到應(yīng)用。以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之 內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種建立協(xié)議無關(guān)組播鄰居的方法,其特征在于,所述方法包括第一路由器向第二路由器發(fā)送單播報文;所述第二路由器收到所述單播報文后,將所述第一路由器作為所述第二路由器的協(xié)議無關(guān)組播多跳鄰居。
2. 如權(quán)利要求1所述的建立協(xié)議無關(guān)組播鄰居的方法,其特征在于,所述方法還包括 所述第一路由器周期性向所述第二路由器發(fā)送單播報文;如果所述第二路由器在規(guī)定的周期內(nèi)沒有接收到所述單播報文,則所述第二路由器從鄰 居列表中刪除所述第一路由器。
3. 如權(quán)利要求1或2所述的建立協(xié)議無關(guān)組播鄰居的方法,其特征在于, 所述第一路由器為隧道的終點路由器,所述第二路由器為隧道的起點路由器。
4. 一種組播加入的方法,其特征在于,所述方法包括 第二路由器接收第一路由器發(fā)送的加入請求;所述第二路由器尋找一個從所述第二路由器到所述第一路由器的隧道,并將所述隧道作 為組播轉(zhuǎn)發(fā)出接口,建立組播轉(zhuǎn)發(fā)表。
5. 如權(quán)利要求4所述的組播加入的方法,其特征在于,所述方法還包括判斷所述第一 路由器是否為所述第二路由器的多跳鄰居的步驟;相應(yīng)地,如果所述第一路由器是所述第二路由器的多跳鄰居,則執(zhí)行所述第二路由器尋 找一個從所述第二路由器到所述第一路由器的隧道,并將所述隧道作為組播轉(zhuǎn)發(fā)出接口,建 立組播轉(zhuǎn)發(fā)表的步驟。
6. —種組播網(wǎng)絡(luò),其特征在于,所述網(wǎng)絡(luò)包括 第一路由器,用于發(fā)送單播報文;第二路由器,用于在接收到所述單播報文后,將所述第一路由器作為本路由器的協(xié)議無 關(guān)組播多跳鄰居。
7. 如權(quán)利要求6所述的組播網(wǎng)絡(luò),其特征在于,所述第一路由器還包括 周期性報文發(fā)送模塊,用于周期性向所述第二路由器發(fā)送單播報文; 所述第二路由器還包括維護模塊,用于接收所述周期性報文發(fā)送模塊發(fā)送的單播報文,如果在規(guī)定的周期內(nèi)沒 有接收到所述單播報文,則從鄰居列表中刪除所述第一路由器。
8. 如權(quán)利要求6或7所述的組播網(wǎng)絡(luò),其特征在于,所述網(wǎng)絡(luò)還包括 兩個路由器之間存在的隧道;所述第一路由器為隧道的終點路由器,所述第二路由器為隧道的起點路由器。
9. 如權(quán)利要求6所述的組播網(wǎng)絡(luò),其特征在于,所述第二路由器還包括 加入請求接收模塊,用于接收第一路由器的加入請求;迭代模塊,用于尋找一個從所述第二路由器到所述第一路由器的隧道,并將所述隧道作 為組播轉(zhuǎn)發(fā)出接口,建立組播轉(zhuǎn)發(fā)表。
10. 如權(quán)利要求9所述的組播網(wǎng)絡(luò),其特征在于,所述第二路由器還包括 判斷模塊,用于判斷所述第一路由器是否為本路由器的多跳鄰居,并將判斷結(jié)果發(fā)送到所述迭代模塊。
11. 一種路由器,其特征在于,所述路由器包括報文發(fā)送模塊,用于發(fā)送單播報文。
12. 如權(quán)利要求ll所述的路由器,其特征在于,所述路由器還包括周期性報文發(fā)送模塊,用于周期性發(fā)送單播報文。
13. 如權(quán)利要求11或12所述的路由器,其特征在于,所述路由器還包括加入請求發(fā)送模塊,用于發(fā)送加入請求。
14. 一種路由器,其特征在于,所述路由器包括 報文接收模塊,用于接收其它路由器發(fā)送的單播報文;多跳鄰居設(shè)置模塊,用于在接收到其它路由器發(fā)送的單播報文后,將所述發(fā)送單播報文 的路由器作為本路由器的協(xié)議無關(guān)組播多跳鄰居。
15. 如權(quán)利要求14所述的路由器,其特征在于,所述路由器還包括維護模塊,用于接收其它路由器發(fā)送的周期性單播報文,如果在規(guī)定的周期內(nèi)沒有接收 到所述單播報文,則從鄰居列表中刪除所述其它路由器。
16. 如權(quán)利要求14或15所述的路由器,其特征在于,所述路由器還包括 加入請求接收模塊,用于接收其它路由器的加入請求;迭代模塊,用于尋找一個從本路由器到所述發(fā)送加入請求的路由器的隧道,并將所述隧 道作為組播轉(zhuǎn)發(fā)出接口,建立組播轉(zhuǎn)發(fā)表。
17. 如權(quán)利要求16所述的路由器,其特征在于,所述路由器還包括判斷模塊,用于判斷所述發(fā)送加入請求的路由器是否為本路由器的多跳鄰居,并將判斷 結(jié)果發(fā)送到所述迭代模塊。
全文摘要
本發(fā)明公開了一種建立協(xié)議無關(guān)組播鄰居的方法、組播加入的方法、組播網(wǎng)絡(luò)以及路由器,屬于通信領(lǐng)域。所述方法包括第一路由器向第二路由器發(fā)送單播報文;所述第二路由器收到所述單播報文后,將所述第一路由器作為所述第二路由器的協(xié)議無關(guān)組播多跳鄰居。所述組播加入的方法包括第二路由器接收第一路由器發(fā)送的加入請求;所述第二路由器尋找一個從所述第二路由器到所述第一路由器的隧道,并將所述隧道作為組播轉(zhuǎn)發(fā)出接口,建立組播轉(zhuǎn)發(fā)表。所述組播網(wǎng)絡(luò)包括第一路由器和第二路由器。所述路由器包括報文發(fā)送模塊。本發(fā)明打破了現(xiàn)有PIM建立單跳直連鄰居的規(guī)范,對現(xiàn)有PIM擴展建立多跳PIM鄰居。
文檔編號H04L12/18GK101150423SQ200710176649
公開日2008年3月26日 申請日期2007年10月31日 優(yōu)先權(quán)日2007年10月31日
發(fā)明者梁旭東 申請人:華為技術(shù)有限公司