組播快速保護倒換的方法與裝置制造方法
【專利摘要】本發(fā)明提供一種組播快速保護倒換的方法與裝置,該方法包括:確定到源節(jié)點的主路徑和備路徑,所述備路徑與所述主路徑具有最小尾重合;通過所述主路徑和所述備路徑同時接收上游鄰節(jié)點復制的組播流量,并將所述主路徑接收的組播流量復制給下游鄰節(jié)點;若所述主路徑發(fā)生故障,將所述備路徑接收的組播流量復制給下游鄰節(jié)點。本發(fā)明通過主備路徑可以最小尾重合,克服了組播網(wǎng)絡(luò)中故障保護倒換需要路由節(jié)點到組播源存在的主備路徑物理拓撲完全分離的問題,擴大了組播網(wǎng)絡(luò)中故障保護倒換可覆蓋的范圍。
【專利說明】組播快速保護倒換的方法與裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種通信技術(shù),尤其涉及一種組播快速保護倒換的方法與裝置。
【背景技術(shù)】
[0002]交互式網(wǎng)絡(luò)電視(Internet Protocol Television,簡稱:IPTV)和增強型廣播多播服務(wù)(Evolved Multimedia Broadcast Multicast Service,簡稱:eMBMS)通常米用組播技術(shù)來有效降低對設(shè)備、帶寬的壓力。在IPTV和eMBMS中,運營商中心,組播源(source)將流量通過組播方式發(fā)送到與用戶側(cè)連接的運營商邊緣路由器(Provider Edge,簡稱:PE),使得PE可以將流量進一步轉(zhuǎn)發(fā)到用戶側(cè)。
[0003]IP組播協(xié)議主要有用于主機注冊的互聯(lián)網(wǎng)組管理協(xié)議(Internet GroupManagement Protocol,簡稱:IGMP),用于用戶側(cè)主機向PE發(fā)送IGMP加入報文注冊,和用于組播選路轉(zhuǎn)發(fā)的組播路由協(xié)議。組播路由協(xié)議通常使用協(xié)議無關(guān)組播(ProtocolIndependent Multicast,簡稱:PIM)。PIM協(xié)議和單播路由協(xié)議無關(guān),只要單播路由協(xié)議能產(chǎn)生路由表項即可。
[0004]現(xiàn)有技術(shù)中,通常采用組播快速重路由(multicast only fast reroute,簡稱:MoFRR)實現(xiàn)故障保護倒換,以減少承載組播流量的網(wǎng)際協(xié)議(Internet Protocol,簡稱:IP)網(wǎng)絡(luò)故障造成的服務(wù)中斷。MoFRR在PE節(jié)點中應(yīng)用,要求PE到組播源存在兩條物理拓撲(topo)完全分離路徑。PE分別向主路徑(primary)和備路徑(secondary)的上游節(jié)點發(fā)送PM加入報文(join)加入到組播路由網(wǎng)絡(luò),之后通過兩條路徑同時接收組播源發(fā)送的組播流量。正常情況下,PE接收到流量后,根據(jù)主路徑進行逆向路徑轉(zhuǎn)發(fā)(Reverse PathForwarding,簡稱:RPF)檢查,主路徑接收到的流量RPF匹配,將主路徑接收的流量轉(zhuǎn)發(fā)給用戶側(cè)(Receiver),備份路徑接收到的流量,RPF不匹配,則直接丟棄。當主路徑出現(xiàn)故障時,PE根據(jù)備路徑進行RPF檢查,使得PE從備路徑接收到的流量能夠通過RPF檢查而不會被丟棄,保證用戶側(cè)能正常接收到流量。
[0005]然而,一旦PE不存在到組播源的兩條物理topo完全分離的主備路徑,則不能采用上述方案進行故障保護倒換的要求。
【發(fā)明內(nèi)容】
[0006]本發(fā)明提供一種組播快速保護倒換的方法與裝置,以克服現(xiàn)有技術(shù)中組播故障保護倒換需要路由節(jié)點到組播源存在的主備路徑物理拓撲完全分離的問題。
[0007]第一方面,本發(fā)明實施例提供一種組播快速保護倒換的方法,包括:
[0008]確定到源節(jié)點的主路徑和備路徑,所述備路徑與所述主路徑具有最小尾重合;
[0009]通過所述主路徑和所述備路徑同時接收上游鄰節(jié)點復制的組播流量,并將所述主路徑接收的組播流量復制給下游鄰節(jié)點;
[0010]若所述主路徑發(fā)生故障,將所述備路徑接收的組播流量復制給下游鄰節(jié)點。
[0011]在第一方面的第一種可能的實現(xiàn)方式中,所述確定到源節(jié)點的主路徑和備路徑,所述備路徑與所述主路徑具有最小尾重合,包括:
[0012]確定到所述源節(jié)點的最短路徑為所述主路徑;
[0013]排除所述主路徑,確定到所述源節(jié)點是否存在路徑;
[0014]若排除所述主路徑存在到所述源節(jié)點的路徑,采用所述路徑中的最短路徑作為所述備路徑;
[0015]若排除所述主路徑不存在到所述源節(jié)點的路徑,將所述主路徑的最后一跳作為所述備路徑的最后一跳,并執(zhí)行確定到所述源節(jié)點的備路徑的步驟。
[0016]根據(jù)第一方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,還包括:
[0017]若將所述主路徑的最后一跳Nx作為所述備路徑的最后一跳不存在到所述源節(jié)點的備路徑,則將所述主路徑的最后兩跳作為所述備路徑的最后兩跳,并執(zhí)行確定所述備路徑的步驟;
[0018]若將所述主路徑的最后兩跳作為所述備路徑的最后兩跳不存在到所述源節(jié)點的備路徑,則依此類推,直到確定到所述源節(jié)點的備路徑。
[0019]根據(jù)第一方面的第一或第二種可能的實現(xiàn)方式,在第一方面的第三種可能的實現(xiàn)方式中,所述確定到所述源節(jié)點的備路徑之后,還包括:
[0020]將所述備路徑上的所有節(jié)點組成第一集合;
[0021]以所述主路徑的最后一跳Nx為根,確定以所述主路徑最后一跳Nx為根的逆向最短路徑樹RSPT上的所有子樹,將所述所有子樹上的節(jié)點組成第二集合;
[0022]若所述第二集合與所述第一集合的交集不為空,確定所述交集中在所述備路徑上距離最遠的節(jié)點Nj ;
[0023]采用所述逆向最短路徑樹RSPT上到所述節(jié)點Nj的子樹上的所有節(jié)點和所述備路徑上所述節(jié)點Nj到所述源節(jié)點上的所有節(jié)點組成的路徑替換所述備路徑,作為到所述源節(jié)點的最終備路徑。
[0024]在第一方面的第四種可能的實現(xiàn)方式中,所述通過所述主路徑和所述備路徑同時接收上游鄰節(jié)點復制的組播流量,并將所述主路徑接收的組播流量復制給下游鄰節(jié)點,包括:
[0025]將所述主路徑與上游鄰節(jié)點的接口作為主入口,所述備路徑與上游鄰節(jié)點的接口作為備入口;
[0026]通過所述主入口接收上游鄰節(jié)點復制的組播流量,通過所述備入口接收上游鄰節(jié)點復制的組播流量,并將所述主入口接收的組播流量復制給下游鄰節(jié)點;
[0027]若所述主路徑發(fā)生故障,將所述備路徑接收的組播流量復制給下游鄰節(jié)點,包括:
[0028]若所述主入口發(fā)生故障,將所述備入口接收的組播流量復制給下游鄰節(jié)點。
[0029]根據(jù)第一方面的第四種可能的實現(xiàn)方式,在第一方面的第五種可能的實現(xiàn)方式中,所述將所述主路徑與上游鄰節(jié)點的接口作為主入口,所述備路徑與上游鄰節(jié)點的接口作為備入口之后,還包括:
[0030]接收P頂加入報文;
[0031]判斷接收所述PM加入報文的接口是否為主入口 ;
[0032]若接收所述PM加入報文的接口不為主入口,則標記所述接口為主出口 ;[0033]所述將所述主入口接收的組播流量復制給下游鄰節(jié)點,包括:將所述主入口接收的組播流量通過所述主出口復制給下游鄰節(jié)點;
[0034]所述若所述主入口發(fā)生故障,將所述備入口接收的組播流量復制給下游鄰節(jié)點,包括:
[0035]切換所述備入口為主入口,并將切換前的所述備入口接收的組播流量通過所述主出口復制給下游鄰節(jié)點。
[0036]根據(jù)第一方面的第五種可能的實現(xiàn)方式,在第一方面的第六種可能的實現(xiàn)方式中,若接收所述P頂加入報文的接口為主入口,則標記所述接口為備出口;
[0037]所述通過所述備入口接收上游鄰節(jié)點復制的組播流量之后,還包括:
[0038]若所述主入口未發(fā)生故障,將所述備入口接收的組播流量通過所述備出口復制給下游鄰節(jié)點。
[0039]根據(jù)第一方面的第六種可能的實現(xiàn)方式,在第一方面的第七種可能的實現(xiàn)方式中,所述接收P頂加入報文之后,還包括:
[0040]判斷是否存在主出口和/或備出口 ;
[0041]若存在主出口,則通過所述主入口向上游鄰節(jié)點發(fā)送PM加入報文;和/或,若存在備出口,則通過所述備入口向上游鄰節(jié)點發(fā)送PM加入報文。
[0042]根據(jù)第一方面的第五至第七種任一可能的實現(xiàn)方式,在第一方面的第八種可能的實現(xiàn)方式中,還包括:
[0043]接收PIM離開消息;
[0044]刪除收到所述PIM離開消息的出接口,所述收到所述PIM離開消息的出接口為主出口或備出口;
[0045]判斷是否存在主出口和/或備出口 ;
[0046]若不存在主出口,則通過所述主入口向上游節(jié)點發(fā)送PM離開消息,和/或,若不存在備出口,則通過所述備入口向上游鄰節(jié)點發(fā)送PM離開消息。
[0047]根據(jù)第一方面的第四種至第八種任一可能的實現(xiàn)方式,在第一方面的第九種可能的實現(xiàn)方式中,所述通過所述主入口接收上游鄰節(jié)點復制的組播流量,通過所述備入口接收上游鄰節(jié)點復制的組播流量之后,并將所述主入口接收的組播流量復制給下游鄰節(jié)點之前,還包括:
[0048]根據(jù)所述主路徑對所述主入口接收的上游鄰節(jié)點復制的組播流量進行逆向路徑轉(zhuǎn)發(fā)RPF檢查;
[0049]根據(jù)所述備路徑對所述備入口接收的上游鄰節(jié)點復制的組播流量進行逆向路徑轉(zhuǎn)發(fā)RPF檢查。
[0050]根據(jù)第一方面的第六至第九種任一可能的實現(xiàn)方式,在第一方面的第十種可能的實現(xiàn)方式中,所述若所述主入口未發(fā)生故障,將所述備入口接收的組播流量通過所述備出口復制給下游鄰節(jié)點之前,還包括:
[0051]判斷是否存在備出口;
[0052]若不存在備出口,則將所述備入口接收的組播流量丟棄。
[0053]根據(jù)第一方面的第六至第十種任一可能的實現(xiàn)方式,在第一方面的第十一種可能的實現(xiàn)方式中,還包括:[0054]若所述主入口發(fā)生變化,將新的主入口接收到的組播流量通過主出口復制給下游鄰節(jié)點;
[0055]判斷舊的主入口是否是新的備入口 ;
[0056]若所述舊的主入口是新的備入口,則將所述舊的主入口切換成所述備入口,并且將切換前所述舊的主入口接收到的組播流量通過備出口復制給下游鄰節(jié)點;
[0057]若所述舊的主入口不是新的備入口,則向所述舊的主入口發(fā)送PM離開消息,刪除所述舊的主入口,并且丟棄所述舊的主入口接收到的組播流量。
[0058]根據(jù)第一方面的第六至第十一種任一可能的實現(xiàn)方式,在第一方面的第十二種可能的實現(xiàn)方式中,還包括:
[0059]若需要切換備出口為主出口,則立即切換所述備出口為所述主出口 ;
[0060]若需要切換主出口為備出口,則延時切換所述主出口為所述備出口。
[0061]第二方面,本發(fā)明實施例提供一種組播快速保護倒換的裝置,包括:
[0062]路徑確定模塊,用于確定到源節(jié)點的主路徑和備路徑,所述備路徑與所述主路徑具有最小尾重合;
[0063]組播處理模塊,用于通過所述主路徑和所述備路徑同時接收上游鄰節(jié)點復制的組播流量,并將所述主路徑接收的組播流量復制給下游鄰節(jié)點;
[0064]故障處理模塊,用于若所述主路徑發(fā)生故障,將所述備路徑接收的組播流量復制給下游鄰節(jié)點。
[0065]在第二方面的第一種可能的實現(xiàn)方式中,所述路徑確定模塊,具體用于:
[0066]確定到所述源節(jié)點的最短路徑為所述主路徑;
[0067]排除所述主路徑,確定到所述源節(jié)點是否存在路徑;
[0068]若排除所述主路徑存在到所述源節(jié)點的路徑,采用所述路徑中的最短路徑作為所述備路徑;
[0069]若排除所述主路徑不存在到所述源節(jié)點的路徑,將所述主路徑的最后一跳作為所述備路徑的最后一跳,并執(zhí)行確定到所述源節(jié)點的備路徑的步驟。
[0070]根據(jù)第二方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述路徑確定模塊,還用于:
[0071]若將所述主路徑的最后一跳Nx作為所述備路徑的最后一跳不存在到所述源節(jié)點的備路徑,則將所述主路徑的最后兩跳作為所述備路徑的最后兩跳,并執(zhí)行確定所述備路徑的步驟;
[0072]若將所述主路徑的最后兩跳作為所述備路徑的最后兩跳不存在到所述源節(jié)點的備路徑,則依此類推,直到確定到所述源節(jié)點的備路徑。
[0073]根據(jù)第二方面的第一或第二種可能的實現(xiàn)方式,在第二方面的第三種可能的實現(xiàn)方式中,所述路徑確定模塊,在確定到所述源節(jié)點的備路徑之后,還用于:
[0074]將所述備路徑上的所有節(jié)點組成第一集合;
[0075]以所述主路徑的最后一跳Nx為根,確定以所述主路徑最后一跳Nx為根的逆向最短路徑樹RSPT上的所有子樹,將所述所有子樹上的節(jié)點組成第二集合;
[0076]若所述第二集合與所述第一集合的交集不為空,確定所述交集中在所述備路徑上距離最遠的節(jié)點Nj ;[0077]采用所述逆向最短路徑樹RSPT上到所述節(jié)點Nj的子樹上的所有節(jié)點和所述備路徑上所述節(jié)點Nj到所述源節(jié)點上的所有節(jié)點組成的路徑替換所述備路徑,作為到所述源節(jié)點的最終備路徑。
[0078]在第二方面的第四種可能的實現(xiàn)方式中,所述組播處理模塊,包括:
[0079]接口處理單元,用于將所述主路徑與上游鄰節(jié)點的接口作為主入口,所述備路徑與上游鄰節(jié)點的接口作為備入口;
[0080]流量處理單元,用于通過所述主入口接收上游鄰節(jié)點復制的組播流量,通過所述備入口接收上游鄰節(jié)點復制的組播流量,并將所述主入口接收的組播流量復制給下游鄰節(jié)
占.[0081]所述故障處理模塊,具體用于:
[0082]若所述主入口發(fā)生故障,將所述備入口接收的組播流量復制給下游鄰節(jié)點。
[0083]根據(jù)第二方面的第四種可能的實現(xiàn)方式,在第二方面的第五種可能的實現(xiàn)方式中,所述接口處理單元,在將所述主路徑與上游鄰節(jié)點的接口作為主入口,所述備路徑與上游鄰節(jié)點的接口作為備入口之后,還用于:
[0084]接收P頂加入報文;
[0085]判斷接收所述PM加入報文的接口是否為主入口 ;
[0086]若接收所述PM加入報文的接口不為主入口,則標記所述接口為主出口 ;
[0087]所述流量處理單元,具體用于:
[0088]將所述主入口接收的組播流量通過所述主出口復制給下游鄰節(jié)點;
[0089]所述故障處理模塊,具體用于:
[0090]切換所述備入口為主入口,并將切換前的所述備入口接收的組播流量通過所述主出口復制給下游鄰節(jié)點。
[0091]根據(jù)第二方面的第五種可能的實現(xiàn)方式,在第二方面的第六種可能的實現(xiàn)方式中,所述接口處理單元,還用于:
[0092]若接收所述PM加入報文的接口為主入口,則標記所述接口為備出口 ;
[0093]所述流量處理單元在通過所述備入口接收上游鄰節(jié)點復制的組播流量之后,還用于:
[0094]若所述主入口未發(fā)生故障,將所述備入口接收的組播流量通過所述備出口復制給下游鄰節(jié)點。
[0095]根據(jù)第二方面的第六種可能的實現(xiàn)方式,在第二方面的第七種可能的實現(xiàn)方式中,所述接口處理單元在接收PM加入報文之后,還用于:
[0096]判斷是否存在主出口和/或備出口 ;
[0097]若存在主出口,則通過所述主入口向上游鄰節(jié)點發(fā)送PM加入報文;和/或,若存在備出口,則通過所述備入口向上游鄰節(jié)點發(fā)送PM加入報文。
[0098]根據(jù)第二方面的第五至第七種任一可能的實現(xiàn)方式,在第二方面的第八種可能的實現(xiàn)方式中,所述接口處理單元,還用于:
[0099]接收PM離開消息;
[0100]刪除收到所述PIM離開消息的出接口,所述收到所述PIM離開消息的出接口為主出口或備出口;[0101]判斷是否存在主出口和/或備出口 ;
[0102]若不存在主出口,則通過所述主入口向上游節(jié)點發(fā)送PM離開消息,和/或,若不存在備出口,則通過所述備入口向上游鄰節(jié)點發(fā)送PM離開消息。
[0103]根據(jù)第二方面的第四種至第八種任一可能的實現(xiàn)方式,在第二方面的第九種可能的實現(xiàn)方式中,所述流量處理單元在通過所述主入口接收上游鄰節(jié)點復制的組播流量,通過所述備入口接收上游鄰節(jié)點復制的組播流量之后,并在將所述主入口接收的組播流量復制給下游鄰節(jié)點之前,還用于:
[0104]根據(jù)所述主路徑對所述主入口接收的上游鄰節(jié)點復制的組播流量進行逆向路徑轉(zhuǎn)發(fā)RPF檢查;
[0105]根據(jù)所述備路徑對所述備入口接收的上游鄰節(jié)點復制的組播流量進行逆向路徑轉(zhuǎn)發(fā)RPF檢查。
[0106]根據(jù)第二方面的第六至第九種任一可能的實現(xiàn)方式,在第二方面的第十種可能的實現(xiàn)方式中,所述流量處理單元,在若所述主入口未發(fā)生故障,將所述備入口接收的組播流量通過所述備出口復制給下游鄰節(jié)點之前,還用于:
[0107]判斷是否存在備出口;
[0108]若不存在備出口,則將所述備入口接收的組播流量丟棄。
[0109]根據(jù)第二方面的第六至第十種任一可能的實現(xiàn)方式,在第二方面的第十一種可能的實現(xiàn)方式中,所述接口處理單元,還用于:
[0110]若所述主入口發(fā)生變化,將新的主入口接收到的組播流量通過主出口復制給下游鄰節(jié)點;
[0111]判斷舊主入口是否是新的備入口 ;
[0112]若所述舊主入口是新的備入口,則將所述舊主入口切換成所述備入口,并且,所述流量處理單元,還用于:
[0113]將切換前所述舊主入口接收到的組播流量通過備出口復制給下游鄰節(jié)點;
[0114]若所述舊主入口不是新的備入口,向所述舊主入口發(fā)送PM離開消息,刪除所述舊主入口,并且,所述流量處理單元,還用于:
[0115]丟棄所述舊主入口接收到的組播流量。
[0116]根據(jù)第二方面的第六至第十一種任一可能的實現(xiàn)方式,在第二方面的第十二種可能的實現(xiàn)方式中,所述接口處理單元,還用于:
[0117]若需要切換備出口為主出口,則立即切換所述備出口為所述主出口 ;
[0118]若需要切換主出口為備出口,則延時切換所述主出口為所述備出口。
[0119]第三方面,本發(fā)明實施例提供一種網(wǎng)絡(luò)設(shè)備,包括如第二方面以及第二方面的第一至第十二種任一可能的實現(xiàn)方式中所述的組播快速保護倒換的裝置。
[0120]基于上述方案,本發(fā)明通過主備路徑可以最小尾重合,克服了組播網(wǎng)絡(luò)中故障保護倒換需要路由節(jié)點到組播源存在的主備路徑物理拓撲完全分離的問題,擴大了組播網(wǎng)絡(luò)中故障保護倒換可覆蓋的范圍。
【專利附圖】
【附圖說明】
[0121]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0122]圖1為本發(fā)明提供的組播快速保護倒換的方法實施例一的流程圖;
[0123]圖1a為圖1所示方法實施例可適用的一種網(wǎng)絡(luò)拓撲圖;
[0124]圖2為本發(fā)明提供的組播快速保護倒換的方法實施例二的流程圖;
[0125]圖2a為圖2所示方法實施例可適用的一種網(wǎng)絡(luò)拓撲圖;
[0126]圖2b為圖2所示方法實施例中確定逆向最短路徑樹RSTP的示意圖;
[0127]圖3為本發(fā)明提供的組播快速保護倒換的方法實施例三的流程圖;
[0128]圖3a為圖1a所示網(wǎng)絡(luò)拓撲圖中各節(jié)點的接口角色示意圖;
[0129]圖3b為圖1a所示網(wǎng)絡(luò)拓撲圖中任一節(jié)點的接口角色示意圖;
[0130]圖3c為圖3所示方法實施例中主入口發(fā)生故障的網(wǎng)絡(luò)拓撲示意圖;
[0131]圖4為本發(fā)明提供的組播快速保護倒換的裝置實施例一的結(jié)構(gòu)示意圖;
[0132]圖5為本發(fā)明提供的組播快速保護倒換的裝置實施例二的結(jié)構(gòu)示意圖。
【具體實施方式】
[0133]為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0134]圖1為本發(fā)明提供的組播快速保護倒換的方法實施例一的流程圖,如圖1所示,該方法實施例,包括:
[0135]步驟101、確定到源節(jié)點的主路徑和備路徑,備路徑與主路徑具有最小尾重合;
[0136]其中,所述最小尾重合,指主路徑尾端的節(jié)點和備路徑的尾端節(jié)點有重合,并且該重合的節(jié)點數(shù)最小。
[0137]步驟102、通過主路徑和備路徑同時接收上游鄰節(jié)點復制的組播流量,并將主路徑接收的組播流量復制給下游鄰節(jié)點;
[0138]步驟103、若主路徑發(fā)生故障,將備路徑接收的組播流量復制給下游鄰節(jié)點。
[0139]其中,步驟102中,在接收組播流量之前,需向主路徑上游鄰節(jié)點和備路徑的上游鄰節(jié)點發(fā)送協(xié)議無關(guān)組播PIM加入報文,以加入到組播路由網(wǎng)路,使得上游鄰節(jié)點向自身復制組播流量;同時接收下游鄰節(jié)點發(fā)送的PM加入報文或者IGMP加入報文,從而將接收到的組播流量,向下游鄰節(jié)點發(fā)送。
[0140]進一步地,步驟101中,確定到源節(jié)點的主路徑和備路徑,備路徑與主路徑具有最小尾重合,包括:
[0141]確定到源節(jié)點的最短路徑為主路徑;
[0142]排除主路徑,確定到源節(jié)點是否存在路徑;
[0143]若排除主路徑存在到源節(jié)點的路徑,采用路徑中的最短路徑作為備路徑;
[0144]其中,該最短路徑為具有最小鏈路開銷(cost)的路徑。
[0145]若排除主路徑不存在到源節(jié)點的路徑,將主路徑的最后一跳作為備路徑的最后一跳,并執(zhí)行確定到源節(jié)點的備路徑的步驟;
[0146]若將主路徑的最后一跳Nx作為備路徑的最后一跳不存在到源節(jié)點的備路徑,則將主路徑的最后兩跳作為備路徑的最后兩跳,并執(zhí)行確定備路徑的步驟;
[0147]若將主路徑的最后兩跳作為備路徑的最后兩跳不存在到源節(jié)點的備路徑,則依此類推,直到確定到源節(jié)點的備路徑。
[0148]圖1a為圖1所示方法實施例可適用的一種網(wǎng)絡(luò)拓撲圖,該種網(wǎng)絡(luò)拓撲中不存在往返鏈路開銷不一致的場景,以該圖1a為例來說明該方法實施例,如圖1a所示,該網(wǎng)絡(luò)拓撲圖包含源節(jié)點S,該源節(jié)點可以為組播源,也可以為組播網(wǎng)絡(luò)中的匯聚點(RendezvousPoint,簡稱:RP),路由節(jié)點Rl?R5,和每個路由節(jié)點的接收者(Receiver,簡稱:Rer),本發(fā)明中以R表示路由節(jié)點,S表示源節(jié)點,Rer表示R上連接的接收者,不再贅述。如圖1a所示,路由節(jié)點之間往返鏈路開銷(cost)相同,比如說均為10,其中Rl與S直接相連,不存在備路徑,對于不存在備路徑的路由節(jié)點不在本發(fā)明的限定范圍內(nèi)。值得注意的是本發(fā)明實施例也適用于其他路由節(jié)點鏈路開銷不同但往返鏈路開銷一致的復雜網(wǎng)絡(luò)拓撲,其實現(xiàn)原理是類似的,具體不再贅述。
[0149]具體來說,該方法實施例的執(zhí)行主體可以為組播路由網(wǎng)絡(luò)中的任意路由節(jié)點包括邊緣路由節(jié)點,以路由節(jié)點R4為例,R4在確定主路徑為R3-R1之后,排除主路徑上的所有節(jié)點,確定是否存在到源節(jié)點S的路徑:若存在,則采用其中最短的路徑為R3到源節(jié)點S的備路徑,若不存在,則將主路徑的最后一跳Rl作為備路徑的最后一跳,確定經(jīng)過所述最后一跳到源節(jié)點S是否存在路徑,若存在,采用其中最短的路徑作為R3到源節(jié)點的備路徑,此時為R5-R2-R1,若不存在,則繼續(xù)將主路徑的最后兩跳作為所述備路徑的最后兩跳,以此類推,直到確定出到源節(jié)點S的備路徑。對于R2?R5中的其他節(jié)點,也可以類似確定其到源節(jié)點S的主備路徑,不再贅述,其主備路徑上的節(jié)點如下表一所示。
[0150]確定主備路徑之后,每個節(jié)點分別向主備路徑的上游鄰節(jié)點發(fā)送PM加入報文,以使主備路徑的上游鄰節(jié)點在接收到組播流量后,將該組播流量復制給主備路徑的下游鄰節(jié)點,保證每個節(jié)點均可以從主備路徑上同時接收到兩份相同的組播流量,其中,主備路徑接收的組播流量如圖1a中的帶箭頭直線表示,箭頭表示流量的接收方向,實線箭頭表示從主路徑接收的組播流量,虛線箭頭表示從備路徑接收的組播流量。在主路徑未發(fā)生故障的情況下,將從主路徑接收的組播流量發(fā)送給接收者Rer和主路徑的下游鄰節(jié)點,若主路徑發(fā)生故障,則與故障最近的節(jié)點,也可稱為故障點,直接快速感知到故障發(fā)生,立即切換備路徑為主路徑,并將切換前備路徑接收的組播流量發(fā)送給接收者Rer和主路徑的下游鄰節(jié)點,使得接收者Rer和主路徑上的下游鄰節(jié)點不需要感知故障的發(fā)生,仍可從主路徑接收到組播流量,不會造成組播業(yè)務(wù)中斷,從而實現(xiàn)組播快速保護倒換。
[0151]需說明的是,該方法實施例也適用于存在完全物理拓撲分離的主備路徑的路由節(jié)點,并且對于本發(fā)明中的路由節(jié)點在通過主備路徑接收到兩份相同的組播流量之后,不觸發(fā)斷言機制(assert)選舉,不再贅述。
[0152]表一、圖1所示方法實施例確定的圖1a中R2?R5的主備路徑節(jié)點列表
[0153]
【權(quán)利要求】
1.一種組播快速保護倒換的方法,其特征在于,包括: 確定到源節(jié)點的主路徑和備路徑,所述備路徑與所述主路徑具有最小尾重合; 通過所述主路徑和所述備路徑同時接收上游鄰節(jié)點復制的組播流量,并將所述主路徑接收的組播流量復制給下游鄰節(jié)點; 若所述主路徑發(fā)生故障,將所述備路徑接收的組播流量復制給下游鄰節(jié)點。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述確定到源節(jié)點的主路徑和備路徑,所述備路徑與所述主路徑具有最小尾重合,包括: 確定到所述源節(jié)點的最短路徑為所述主路徑; 排除所述主路徑,確定到所述源節(jié)點是否存在路徑; 若排除所述主路徑存在到所述源節(jié)點的路徑,采用所述路徑中的最短路徑作為所述備路徑; 若排除所述主路徑不存在到所述源節(jié)點的路徑,將所述主路徑的最后一跳作為所述備路徑的最后一跳,并執(zhí)行確定到所述源節(jié)點的備路徑的步驟。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,還包括: 若將所述主路徑的最后一跳Nx作為所述備路徑的最后一跳不存在到所述源節(jié)點的備路徑,則將所述主路徑的 最后兩跳作為所述備路徑的最后兩跳,并執(zhí)行確定所述備路徑的步驟; 若將所述主路徑的最后兩跳作為所述備路徑的最后兩跳不存在到所述源節(jié)點的備路徑,則依此類推,直到確定到所述源節(jié)點的備路徑。
4.根據(jù)權(quán)利要求2或3所述的方法,其特征在于,所述確定到所述源節(jié)點的備路徑之后,還包括: 將所述備路徑上的所有節(jié)點組成第一集合; 以所述主路徑的最后一跳Nx為根,確定以所述主路徑最后一跳Nx為根的逆向最短路徑樹RSPT上的所有子樹,將所述所有子樹上的節(jié)點組成第二集合; 若所述第二集合與所述第一集合的交集不為空,確定所述交集中在所述備路徑上距離最遠的節(jié)點Nj ; 采用所述逆向最短路徑樹RSPT上到所述節(jié)點Nj的子樹上的所有節(jié)點和所述備路徑上所述節(jié)點Nj到所述源節(jié)點上的所有節(jié)點組成的路徑替換所述備路徑,作為到所述源節(jié)點的最終備路徑。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述通過所述主路徑和所述備路徑同時接收上游鄰節(jié)點復制的組播流量,并將所述主路徑接收的組播流量復制給下游鄰節(jié)點,包括: 將所述主路徑與上游鄰節(jié)點的接口作為主入口,所述備路徑與上游鄰節(jié)點的接口作為備入口 ; 通過所述主入口接收上游鄰節(jié)點復制的組播流量,通過所述備入口接收上游鄰節(jié)點復制的組播流量,并將所述主入口接收的組播流量復制給下游鄰節(jié)點; 若所述主路徑發(fā)生故障,將所述備路徑接收的組播流量復制給下游鄰節(jié)點,包括: 若所述主入口發(fā)生故障,將所述備入口接收的組播流量復制給下游鄰節(jié)點。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述將所述主路徑與上游鄰節(jié)點的接口作為主入口,所述備路徑與上游鄰節(jié)點的接口作為備入口之后,還包括: 接收P頂加入報文; 判斷接收所述P頂加入報文的接口是否為主入口; 若接收所述P頂加入報文的接口不為主入口,則標記所述接口為主出口; 所述將所述主入口接收的組播流量復制給下游鄰節(jié)點,包括:將所述主入口接收的組播流量通過所述主出口復制給下游鄰節(jié)點; 所述若所述主入口發(fā)生故障,將所述備入口接收的組播流量復制給下游鄰節(jié)點,包括: 切換所述備入口為主入口,并將切換前的所述備入口接收的組播流量通過所述主出口復制給下游鄰節(jié)點。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,還包括: 若接收所述P頂加入報文的接口為主入口,則標記所述接口為備出口; 所述通過所述備入口接收上游鄰節(jié)點復制的組播流量之后,還包括: 若所述主入口未發(fā)生故障,將所述備入口接收的組播流量通過所述備出口復制給下游鄰節(jié)點。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述接收PM加入報文之后,還包括: 判斷是否存在主出口和/或備出口; 若存在主出口,則通過所述主入口向上游鄰節(jié)點發(fā)送PM加入報文;和/或,若存在備出口,則通過所述備入口向上游鄰節(jié)點發(fā)送PM加入報文。
9.根據(jù)權(quán)利要求6~8任一項所述的方法,其特征在于,還包括: 接收PIM尚開消息; 刪除收到所述PM離開消息的出接口,所述收到所述PM離開消息的出接口為主出口或備出口 ; 判斷是否存在主出口和/或備出口; 若不存在主出口,則通過所述主入口向上游節(jié)點發(fā)送PM離開消息,和/或,若不存在備出口,則通過所述備入口向上游鄰節(jié)點發(fā)送PM離開消息。
10.根據(jù)權(quán)利要求5~9任一項所述的方法,其特征在于,所述通過所述主入口接收上游鄰節(jié)點復制的組播流量,通過所述備入口接收上游鄰節(jié)點復制的組播流量之后,并將所述主入口接收的組播流量復制給下游鄰節(jié)點之前,還包括: 根據(jù)所述主路徑對所述主入口接收的上游鄰節(jié)點復制的組播流量進行逆向路徑轉(zhuǎn)發(fā)RPF檢查; 根據(jù)所述備路徑對所述備入口接收的上游鄰節(jié)點復制的組播流量進行逆向路徑轉(zhuǎn)發(fā)RPF檢查。
11.根據(jù)權(quán)利要求7~10任一項所述的方法,其特征在于,所述若所述主入口未發(fā)生故障,將所述備入口接收的組播流量通過所述備出口復制給下游鄰節(jié)點之前,還包括: 判斷是否存在備出口; 若不存在備出口,則將所述備入口接收的組播流量丟棄。
12.根據(jù)權(quán)利要求7~11任一項所述的方法,其特征在于,還包括: 若所述主入口發(fā)生變化,將新的主入口接收到的組播流量通過主出口復制給下游鄰節(jié)點。 判斷舊的主入口是否是新的備入口; 若所述舊的主入口是新的備入口,則將所述舊的主入口切換成所述備入口,并且將切換前所述舊的主入口接收到的組播流量通過備出口復制給下游鄰節(jié)點; 若所述舊的主入口不是新的備入口,則向所述舊的主入口發(fā)送PM離開消息,刪除所述舊的主入口,并且丟棄所述舊的主入口接收到的組播流量。
13.根據(jù)權(quán)利要求7~12任一項所述的方法,其特征在于,還包括: 若需要切換備出口為主出口,則立即切換所述備出口為所述主出口 ; 若需要切換主出口為備出口,則延時切換所述主出口為所述備出口。
14.一種組播快速保護倒換的裝置,其特征在于,包括: 路徑確定模塊,用于確定到源節(jié)點的主路徑和備路徑,所述備路徑與所述主路徑具有最小尾重合; 組播處理模塊,用于通過所述主路徑和所述備路徑同時接收上游鄰節(jié)點復制的組播流量,并將所述主路徑接收的組播流量復制給下游鄰節(jié)點; 故障處理模塊,用于若所述主路徑發(fā)生故障,將所述備路徑接收的組播流量復制給下游鄰節(jié)點。
15.根據(jù)權(quán)利要求14所述的裝置,其特征在于,所述路徑確定模塊,具體用于: 確定到所述源節(jié)點的最短路徑為所述主路徑; 排除所述主路徑,確定到所述源節(jié)點是否存在路徑; 若排除所述主路徑存在到所述源節(jié)點的路徑,采用所述路徑中的最短路徑作為所述備路徑; 若排除所述主路徑不存在到所述源節(jié)點的路徑,將所述主路徑的最后一跳作為所述備路徑的最后一跳,并執(zhí)行確定到所述源節(jié)點的備路徑的步驟。
16.根據(jù)權(quán)利要求15所述的裝置,其特征在于,所述路徑確定模塊,還用于: 若將所述主路徑的最后一跳Nx作為所述備路徑的最后一跳不存在到所述源節(jié)點的備路徑,則將所述主路徑的最后兩跳作為所述備路徑的最后兩跳,并執(zhí)行確定所述備路徑的步驟; 若將所述主路徑的最后兩跳作為所述備路徑的最后兩跳不存在到所述源節(jié)點的備路徑,則依此類推,直到確定到所述源節(jié)點的備路徑。
17.根據(jù)權(quán)利要求15或16所述的裝置,其特征在于,所述路徑確定模塊,在確定到所述源節(jié)點的備路徑之后,還用于: 將所述備路徑上的所有節(jié)點組成第一集合; 以所述主路徑的最后一跳Nx為根,確定以所述主路徑最后一跳Nx為根的逆向最短路徑樹RSPT上的所有子樹,將所述所有子樹上的節(jié)點組成第二集合; 若所述第二集合與所述第一集合的交集不為空,確定所述交集中在所述備路徑上距離最遠的節(jié)點Nj ; 采用所述逆向最短路徑樹RSPT上到所述節(jié)點Nj的子樹上的所有節(jié)點和所述備路徑上所述節(jié)點Nj到所述源節(jié)點上的所有節(jié)點組成的路徑替換所述備路徑,作為到所述源節(jié)點的最終備路徑。
18.根據(jù)權(quán)利要求14所述的裝置,其特征在于,所述組播處理模塊,包括: 接口處理單元,用于將所述主路徑與上游鄰節(jié)點的接口作為主入口,所述備路徑與上游鄰節(jié)點的接口作為備入口; 流量處理單元,用于通過所述主入口接收上游鄰節(jié)點復制的組播流量,通過所述備入口接收上游鄰節(jié)點復制的組播流量,并將所述主入口接收的組播流量復制給下游鄰節(jié)點;所述故障處理模塊,具體用于: 若所述主入口發(fā)生故障,將所述備入口接收的組播流量復制給下游鄰節(jié)點。
19.根據(jù)權(quán)利要求18所述的裝置,其特征在于,所述接口處理單元,在將所述主路徑與上游鄰節(jié)點的接口作為主入口,所述備路徑與上游鄰節(jié)點的接口作為備入口之后,還用于: 接收PM加入報文; 判斷接收所述P頂加入報文的接口是否為主入口 ; 若接收所述P頂加入報文的接口不為主入口,則標記所述接口為主出口; 所述流量處理單元,具體用于: 將所述主入口接收 的組播流量通過所述主出口復制給下游鄰節(jié)點; 所述故障處理模塊,具體用于: 切換所述備入口為主入口,并將切換前的所述備入口接收的組播流量通過所述主出口復制給下游鄰節(jié)點。
20.根據(jù)權(quán)利要求19所述的裝置,其特征在于,所述接口處理單元,還用于: 若接收所述P頂加入報文的接口為主入口,則標記所述接口為備出口; 所述流量處理單元在通過所述備入口接收上游鄰節(jié)點復制的組播流量之后,還用于:若所述主入口未發(fā)生故障,將所述備入口接收的組播流量通過所述備出口復制給下游鄰節(jié)點。
21.根據(jù)權(quán)利要求20所述的裝置,其特征在于,所述接口處理單元在接收PM加入報文之后,還用于: 判斷是否存在主出口和/或備出口; 若存在主出口,則通過所述主入口向上游鄰節(jié)點發(fā)送PM加入報文;和/或,若存在備出口,則通過所述備入口向上游鄰節(jié)點發(fā)送PM加入報文。
22.根據(jù)權(quán)利要求19~21任一項所述的裝置,其特征在于,所述接口處理單元,還用于: 接收PIM尚開消息; 刪除收到所述PM離開消息的出接口,所述收到所述PM離開消息的出接口為主出口或備出口 ; 判斷是否存在主出口和/或備出口; 若不存在主出口,則通過所述主入口向上游節(jié)點發(fā)送PM離開消息,和/或,若不存在備出口,則通過所述備入口向上游鄰節(jié)點發(fā)送PM離開消息。
23.根據(jù)權(quán)利要求18~22任一項所述的裝置,其特征在于,所述流量處理單元在通過所述主入口接收上游鄰節(jié)點復制的組播流量,通過所述備入口接收上游鄰節(jié)點復制的組播流量之后,并在將所述主入口接收的組播流量復制給下游鄰節(jié)點之前,還用于:根據(jù)所述主路徑對所述主入口接收的上游鄰節(jié)點復制的組播流量進行逆向路徑轉(zhuǎn)發(fā)RPF檢查; 根據(jù)所述備路徑對所述備入口接收的上游鄰節(jié)點復制的組播流量進行逆向路徑轉(zhuǎn)發(fā)RPF檢查。
24.根據(jù)權(quán)利要求20~23任一項所述的裝置,其特征在于,所述流量處理單元,在若所述主入口未發(fā)生故障,將所述備入口接收的組播流量通過所述備出口復制給下游鄰節(jié)點之前,還用于: 判斷是否存在備出口; 若不存在備出口,則將所述備入口接收的組播流量丟棄。
25.根據(jù)權(quán)利要求20~24任一項所述的裝置,其特征在于,所述接口處理單元,還用于: 若所述主入口發(fā)生變化,將新的主入口接收到的組播流量通過主出口復制給下游鄰節(jié)占.判斷舊主入口是否是新的備入口; 若所述舊主入口是新的備入口,則將所述舊主入口切換成所述備入口,并且,所述流量處理單元,還用于: 將切換前所述舊主入口 接收到的組播流量通過備出口復制給下游鄰節(jié)點; 若所述舊主入口不是新的備入口,向所述舊主入口發(fā)送PM離開消息,刪除所述舊主入口,并且,所述流量處理單元,還用于: 丟棄所述舊主入口接收到的組播流量。
26.根據(jù)權(quán)利要求20~25任一項所述的裝置,其特征在于,所述接口處理單元,還用于: 若需要切換備出口為主出口,則立即切換所述備出口為所述主出口 ; 若需要切換主出口為備出口,則延時切換所述主出口為所述備出口。
27.—種網(wǎng)絡(luò)設(shè)備,其特征在于,包括如權(quán)利要求14~26任一項所述的組播快速保護倒換的裝置。
【文檔編號】H04L12/761GK103795626SQ201410056363
【公開日】2014年5月14日 申請日期:2014年2月19日 優(yōu)先權(quán)日:2014年2月19日
【發(fā)明者】樊帆, 梁旭東 申請人:華為技術(shù)有限公司