專利名稱:選擇多協(xié)議標簽交換流量工程旁路隧道的方法及節(jié)點的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及多協(xié)議標簽交換(MPLS, Mult1-Protocol Label Switching)技術(shù)領(lǐng)域,具體涉及選擇MPLS流量工程(TE, Traffic Engineering)旁路隧道的方法及本地修復(fù)節(jié)點(PLR, Point of Local Repair)、頭節(jié)點。
背景技術(shù):
MPLS是目前應(yīng)用比較廣泛的一種骨干網(wǎng)技術(shù)。MPLS在無連接的因特網(wǎng)協(xié)議(IP,Internet Protocol)網(wǎng)絡(luò)上引入面向連接的標簽交換概念,將三層路由技術(shù)和二層交換技術(shù)相結(jié)合,充分發(fā)揮了 IP路由的靈活性和二層交換的簡潔性。網(wǎng)絡(luò)擁塞是影響骨干網(wǎng)絡(luò)性能的主要問題,擁塞的原因可能是網(wǎng)絡(luò)資源不足,也可能是網(wǎng)絡(luò)資源負載不均衡導(dǎo)致的局部擁塞。TE可以用來解決負載不均衡導(dǎo)致的擁塞問題。MPLS TE結(jié)合了 MPLS技術(shù)與流量工程,通過建立沿著指定路徑的標簽交換路徑(LSP,Label Switched Path)隧道進行資源預(yù)留,使網(wǎng)絡(luò)流量繞開擁塞節(jié)點,達到平衡網(wǎng)絡(luò)流量的目的。LSP是一條單向報文轉(zhuǎn)發(fā)路徑。屬于同一個轉(zhuǎn)發(fā)等價類(FEC, ForwardingEquivalence Class)的報文在MPLS網(wǎng)絡(luò)中經(jīng)過的路徑稱為LSP。在一條LSP上,沿數(shù)據(jù)傳送的方向,相鄰的標簽交換路由器(LSR,Label Switching Router)分別稱為上游LSR和下游LSR。圖1給出了現(xiàn)有的MPLS網(wǎng)絡(luò)中的LSP的示例圖,如圖1所示,LSR B為LSR A的下游 LSR,LSR A 為 LSR B 的上游 LSR。MPLS TE是一種可擴展性好、簡單的流量工程解決方案,受到了服務(wù)提供商的青睞。通過MPLS TE技術(shù),服務(wù)提供商能夠在已有的MPLS骨干網(wǎng)上簡單地部署流量工程,充分利用現(xiàn)有的網(wǎng)絡(luò)資源提供多樣化的服務(wù),同時可以優(yōu)化網(wǎng)絡(luò)資源,并進行科學(xué)的網(wǎng)絡(luò)管理。MPLS TE中主要涉及如下概念:a、基于約束路由的 LSP (CRLSP, Constraint-based Routed Label SwitchedPaths)CRLSP是基于一定約束條件建立的LSP。與普通LSP不同,CRLSP的建立不僅依賴路由信息,還需要滿足其他一些條件,比如帶寬需求、顯式路徑等。b、MPLS TE 隧道在部署CRLSP備份、快速重路由或需要將流量通過多條路徑傳輸時,需要為同一種流量建立多條CRLSP,這樣的一組CRLSP稱為MPLS TE隧道。C、MPLS TE隧道的建立機制資源預(yù)留協(xié)議(RSVP,Resource Reservation Protocol )_TE 是 RSVP 擴展而來,圖2給出了現(xiàn)有的MPLS網(wǎng)絡(luò)中的RSVP-TE工作機制示例圖,如圖2所示,通過讓路徑(Path)消息攜帶標簽請求,預(yù)留(Resv)消息返回標簽的方式來完成隧道的建立和標簽的分發(fā)。d、MPLS TE 數(shù)據(jù)庫除了網(wǎng)絡(luò)的拓撲信息外,MPLS TE還需要了解每條鏈路的TE相關(guān)屬性,這可以通過對現(xiàn)有的使用鏈路狀態(tài)算法的內(nèi)部網(wǎng)關(guān)協(xié)議(IGP, Interior Gateway Protocol),如:開放式最短路徑優(yōu)先(OSPF, Open Shortest Path First)、中間系統(tǒng)到中間系統(tǒng)的域內(nèi)路由信息交換協(xié)議(IS-1S, Intermediate System-to-1ntermediate System intra-domainrouting information exchange protocol)進行擴展來實現(xiàn)。擴展后的OSPF和IS-1S協(xié)議在鏈路狀態(tài)信息中增加了鏈路的最大帶寬、鏈路的最大可預(yù)留帶寬、每個優(yōu)先級的未被預(yù)留帶寬、鏈路屬性等TE相關(guān)信息。這些信息通過IGP在網(wǎng)絡(luò)上泛洪。每臺設(shè)備收集本區(qū)域或本級別所有設(shè)備上每條鏈路的TE相關(guān)信息,生成流量工程數(shù)據(jù)庫(TEDB,TE DataBase)??焖僦芈酚?FRR,F(xiàn)ast ReRoute)是MPLS TE中實現(xiàn)網(wǎng)絡(luò)局部保護的技術(shù)。FRR的切換速度可以達到50ms,能夠最大程度減少網(wǎng)絡(luò)故障時數(shù)據(jù)的丟失。開啟隧道的FRR功能后,當主CRLSP上的某條鏈路或某個節(jié)點失效時,流量會被切換到保護鏈路上。同時隧道的入(Ingress)節(jié)點嘗試建立新的CRLSP,新的CRLSP建立成功后,流量將切換到新的CRLSP。FRR中主要涉及如下概念:a、基本概念主CRLSP:被保護的 CRLSP。旁路(Bypass)CRLSP:旁路隧道,保護主 CRLSP 的 CRLSP。PLR =Bypass CRLSP的Ingress節(jié)點,必須在主CRLSP的路徑上,并且不能是主CRLSP 的出(Egress)節(jié)點。匯聚點(MP,MergePoint):Bypass CRLSP 的 Egress 節(jié)點,必須在主 CRLSP 的路徑上,并且不能是主CRLSP的Ingress節(jié)點。b、FRR 保護圖3-1給出了現(xiàn)有的MPLS網(wǎng)絡(luò)中的FRR保護的鏈路保護的示例圖,圖3_2給出了現(xiàn)有的MPLS網(wǎng)絡(luò)中的FRR保護的節(jié)點保護的示例圖,如圖3-1、3-2所示,根據(jù)保護對象的不同,F(xiàn)RR保護分為兩類:第一類:鏈路保護如圖3-1所示,PLR和MP之間有直接鏈路連接,主CRLSP經(jīng)過這條鏈路。當這條鏈路失效時,流量可以切換到Bypass CRLSP上。第二類:節(jié)點保護如圖3-2所示,PLR和MP之間通過一臺設(shè)備連接,主CRLSP經(jīng)過這臺設(shè)備。當這臺設(shè)備失效時,流量可以切換到Bypass CRLSP上。C、FRR優(yōu)選原則當存在多條可用的備份隧道時,PLR只會選擇一條備份隧道作為Bypass隧道,這多條備份隧道之間的優(yōu)選原則如下:1、備份隧道的帶寬充足而且保護帶寬的類型要與主隧道的帶寬類型一致。2、節(jié)點保護優(yōu)于鏈路保護。在FRR組網(wǎng)中,目前TE隧道能夠控制Bypass隧道的參數(shù)有:節(jié)點個數(shù)、建立和保持優(yōu)先級、親和屬性、帶寬。具體地,可通過Path消息中的FAST_RER0UTE對象來控制。圖4給出了現(xiàn)有的MPLS網(wǎng)絡(luò)中的Path消息中的快速重路由(FAST_RER0UTE )對象的結(jié)構(gòu)示意圖,如圖4所示,Setup Prio、Hold Prio這兩個字段分別表示Bypass隧道的建立優(yōu)先級和保持優(yōu)先級,Bandwidth字段表示Bypass隧道的帶寬保證,Exclude_any、Include-any、Include-all這三個字段一起表示Bypass隧道的親和屬性,Hop-1imit字段表示Bypass隧道中最多的節(jié)點個數(shù)(除PLR、MP)。如上所述,在當前技術(shù)背景下,TE主隧道只能夠機械地控制Bypass隧道的帶寬、優(yōu)先級、親和屬性、節(jié)點個數(shù)這些基本的屬性,因而存在如下缺點:主隧道無法創(chuàng)建或優(yōu)選時延更低的Bypass隧道;主隧道無法創(chuàng)建或優(yōu)選更加可靠的Bypass隧道;主隧道無法創(chuàng)建或優(yōu)選指定路徑的Bypass隧道;主隧道無法創(chuàng)建或優(yōu)選帶寬服務(wù)類型(CT, Class Type)為指定類型的Bypass隧道。
發(fā)明內(nèi)容
本發(fā)明提供選擇MPLS TE Bypass隧道的方法及PLR、頭節(jié)點,以實現(xiàn)主隧道可以根據(jù)時延、可靠性、CT、需要經(jīng)過的節(jié)點之一或者任意組合來選擇Bypass隧道。本發(fā)明的技術(shù)方案是這樣實現(xiàn)的:一種選擇多協(xié)議標簽交換MPLS流量工程TE旁路Bypass隧道的方法,該方法包括:本地修復(fù)節(jié)點PLR接收TE主隧道的頭節(jié)點發(fā)來的路徑Path消息,根據(jù)該消息攜帶的選擇Bypass隧道的策略,在已有的快速重路由FRR備份隧道中選擇滿足該策略的Bypass隧道,或者創(chuàng)建滿足該策略的Bypass隧道,所述策略指示對Bypass隧道的時延、可靠性、帶寬服務(wù)類型CT、需要經(jīng)過的節(jié)點四者之一或任意組合有要求。當所述選擇Bypass隧道的策略指示對Bypass隧道的時延有要求時,所述PLR在已有的FRR備份隧道中選擇滿足該策略的Bypass隧道包括:針對以本節(jié)點作為PLR的任一條FRR備份隧道,PLR按照預(yù)設(shè)時間間隔檢測該條隧道的時延,當檢測次數(shù)達到預(yù)設(shè)次數(shù)時,對檢測到的該條隧道的時延求平均值,將該平均值作為該條隧道的最終時延;PLR根據(jù)每條隧道的最終時延,選擇滿足所述策略的隧道作為Bypass隧道,所述對Bypass隧道的時延有要求為:要求具有最小時延的FRR備份隧道作為Bypass隧道,或者要求Bypass隧道的時延小于或等于預(yù)設(shè)閾值。當所述選擇Bypass隧道的策略指示對Bypass隧道的可靠性有要求時,所述PLR在已有的FRR備份隧道中選擇滿足該策略的Bypass隧道包括:針對以本節(jié)點作為PLR的任一條FRR備份隧道,PLR按照預(yù)設(shè)時間間隔檢測該條隧道的連通性,當檢測次數(shù)達到預(yù)設(shè)次數(shù)時,計算該條隧道的連通次數(shù);PLR根據(jù)每條隧道的連通次數(shù),確定各隧道的可靠性,選擇滿足所述策略的隧道作為Bypass隧道,其中,隧道的連通次數(shù)越高表示隧道的可靠性越高。當所述選擇Bypass隧道的策略指示對Bypass隧道需要經(jīng)過的節(jié)點有要求時,所述Path消息攜帶Bypass隧道需要經(jīng)過的各節(jié)點的IP地址;所述PLR在已有的FRR備份隧道中選擇滿足該策略的Bypass隧道包括:
步驟Al、PLR從Path消息中順序讀取Bypass隧道需要經(jīng)過的一個FRR域的第一個節(jié)點的IP地址,在本地記錄的已創(chuàng)建的各FRR備份隧道的路徑信息中查找該節(jié)點的IP地址,判斷是否查找到,若是,執(zhí)行步驟BI ;否則,執(zhí)行步驟Cl ;步驟B1、PLR確定自身屬于當前FRR域,將當前FRR域的所有節(jié)點信息從Path消息中剝離出來,將本PLR與當前FRR域的所有節(jié)點形成一條路徑片段,若該路徑片段位于本地記錄的已創(chuàng)建的一條FRR備份隧道上,則將該隧道作為Bypass隧道,繼續(xù)向下游傳送該Path消息;否則,根據(jù)流量工程數(shù)據(jù)庫TEDB中記錄的MPLS網(wǎng)絡(luò)信息,計算出一條通過該路徑片段的路徑,創(chuàng)建通過該路徑的FRR備份隧道,并將該FRR備份隧道作為Bypass隧道,繼續(xù)向下游傳送該Path消息;步驟C1、PLR根據(jù)TEDB中記錄的MPLS網(wǎng)絡(luò)信息,計算一條通過當前FRR域的第一個節(jié)點的路徑,若計算出,則確定本PLR屬于當前FRR域,將當前FRR域的所有節(jié)點信息從Path消息中剝離出來,將本PLR與當前FRR域的所有節(jié)點形成一條路徑片段,計算出一條通過該路徑片段的路徑,創(chuàng)建通過該路徑的FRR備份隧道,并將該隧道作為Bypass隧道,繼續(xù)向下游傳送該Path消息;若未計算出,則確定本PLR不屬于當前FRR域,返回步驟Al。所述選擇Bypass隧道的策略指示對Bypass隧道需要經(jīng)過的節(jié)點有要求的同時,進一步包括:所述選擇Bypass隧道的策略指示對Bypass隧道的時延和/或可靠性有要求,步驟BI所述若該路徑片段位于本地記錄的已創(chuàng)建的一條FRR備份隧道上之后、將該隧道作為Bypass隧道之前進一步包括:檢測該隧道的時延和/或連通性,若該隧道的時延和/或連通性滿足所述策略指示的時延和/或可靠性要求,則確定將該隧道作為Bypass隧道;否則,不將該隧道作為Bypass隧道,繼續(xù)向下游傳送該Path消息;步驟BI所述創(chuàng)建通過該路徑的FRR備份隧道之后、將該隧道作為Bypass隧道之前進一步包括:檢測該隧道的時延和/或連通性,若該隧道的時延和/或連通性滿足所述策略指示的時延和/或可靠性要求,則確定將該隧道作為Bypass隧道;否則,刪除該隧道,繼續(xù)向下游傳送該Path消息;步驟Cl所述創(chuàng)建通過該路徑的FRR備份隧道之后、將該隧道作為Bypass隧道之前進一步包括:檢測該隧道的時延和/或連通性,若該隧道的時延和/或連通性滿足所述策略指示的時延和/或可靠性要求,則確定將該隧道作為Bypass隧道;否則,刪除該隧道,繼續(xù)向下游傳送該Path消息。一種MPLS TE隧道的PLR,包括:Bypass隧道選擇模塊:接收TE主隧道的頭節(jié)點發(fā)來的Path消息,根據(jù)該消息攜帶的選擇Bypass隧道的策略,在已有的FRR備份隧道中選擇滿足該策略的Bypass隧道,所述策略指示對Bypass隧道的時延、可靠性、帶寬服務(wù)類型CT、需要經(jīng)過的節(jié)點四者之一或任意組合有要求。當所述選擇Bypass隧道的策略指示對Bypass隧道的時延有要求時,所述Bypass隧道選擇模塊進一步用于,針對以本節(jié)點作為PLR的任一條FRR備份隧道,PLR按照預(yù)設(shè)時間間隔檢測該條隧道的時延,當檢測次數(shù)達到預(yù)設(shè)次數(shù)時,對檢測到的該條條隧道的時延求平均值,將該平均值作為該條隧道的最終時延;PLR根據(jù)每條隧道的最終時延,選擇滿足所述策略的隧道作為Bypass隧道,所述對Bypass隧道的時延有要求為:要求具有最小時延的FRR備份隧道作為Bypass隧道,或者要求Bypass隧道的時延小于或等于預(yù)設(shè)閾值。當所述選擇Bypass隧道的策略指示對Bypass隧道的連通性有要求時,所述Bypass隧道選擇模塊進一步用于,針對以本節(jié)點作為PLR的任一條FRR備份隧道,PLR按照預(yù)設(shè)時間間隔檢測該條隧道的連通性,當檢測次數(shù)達到預(yù)設(shè)次數(shù)時,計算該條隧道的連通次數(shù);PLR根據(jù)每條隧道的連通次數(shù),確定各隧道的可靠性,選擇滿足所述策略的隧道作為Bypass隧道,其中,隧道的連通次數(shù)越高表示隧道的可靠性越高。當所述選擇Bypass隧道的策略指示對Bypass隧道需要經(jīng)過的節(jié)點有要求時,所述Bypass隧道選擇模塊進一步用于,發(fā)現(xiàn)接收到的Path消息攜帶Bypass隧道需要經(jīng)過的各節(jié)點的IP地址,則執(zhí)行如下步驟:步驟Al、PLR從Path消息中順序讀取Bypass隧道需要經(jīng)過的一個FRR域的第一個節(jié)點的IP地址,在本地記錄的已創(chuàng)建的各FRR備份隧道的路徑信息中查找該節(jié)點的IP地址,判斷是否查找到,若是,執(zhí)行步驟BI ;否則,執(zhí)行步驟Cl ;步驟B1、PLR確定自身屬于當前FRR域,將當前FRR域的所有節(jié)點信息從Path消息中剝離出來,將本PLR與當前FRR域的所有節(jié)點形成一條路徑片段,若該路徑片段位于本地記錄的已創(chuàng)建的一條FRR備份隧道上,則將該隧道作為Bypass隧道,繼續(xù)向下游傳送該Path消息;否則,根據(jù)TEDB中記錄的MPLS網(wǎng)絡(luò)信息,計算出一條通過該路徑片段的路徑,創(chuàng)建通過該路徑的FRR備份隧道,將該隧道作為Bypass隧道,繼續(xù)向下游傳送該Path消息;步驟C1、PLR根據(jù)TEDB中記錄的MPLS網(wǎng)絡(luò)信息,計算一條通過當前FRR域的第一個節(jié)點的路徑,若計算出,則確定本PLR屬于當前FRR域,將當前FRR域的所有節(jié)點信息從Path消息中剝離出來,將本PLR與當前FRR域的所有節(jié)點形成一條路徑片段,計算出一條通過該路徑片段的路徑,創(chuàng)建通過該路徑的FRR備份隧道,將該隧道作為Bypass隧道,繼續(xù)向下游傳送該Path消息;若未計算出,則確定本PLR不屬于當前FRR域,返回步驟Al。當所述選擇Bypass隧道的策略指示對Bypass隧道的時延和/或可靠性有要求時,所述Bypass隧道選擇模塊進一步用于,步驟BI所述若該路徑片段位于本地記錄的已創(chuàng)建的一條FRR備份隧道上之后、將該隧道作為Bypass隧道之前進一步檢測該隧道的時延和/或連通性,若該隧道的時延和/或連通性滿足所述策略指示的時延和/或可靠性要求,則確定將該隧道作為Bypass隧道;否則,不將該隧道作為Bypass隧道,繼續(xù)向下游傳送該Path消息;步驟BI所述創(chuàng)建通過該路徑的FRR備份隧道之后、將該隧道作為Bypass隧道之前進一步檢測該隧道的時延和/或連通性,若該隧道的時延和/或連通性滿足所述策略指示的時延和/或可靠性要求,則確定將該隧道作為Bypass隧道;否則,刪除該隧道,繼續(xù)向下游傳送該Path消息;
步驟Cl所述創(chuàng)建通過該路徑的FRR備份隧道之后、將該隧道作為Bypass隧道之前進一步檢測該隧道的時延和/或連通性,若該隧道的時延和/或連通性滿足所述策略指示的時延和/或可靠性要求,則確定將該隧道作為Bypass隧道;否則,刪除該隧道,繼續(xù)向下游傳送該Path消息。一種MPLS TE主隧道的頭節(jié)點,包括:Bypass隧道選擇策略配置模塊:確定選擇Bypass隧道的策略,該策略指示對Bypass隧道的時延、可靠性、CT、需要經(jīng)過的節(jié)點四者之一或任意組合有要求,則在Path消息中攜帶該策略,將該Path消息發(fā)送出去,以便:PLR根據(jù)該Path消息攜帶的選擇Bypass隧道的策略,在已有的FRR備份隧道中選擇滿足該策略的Bypass隧道,或者創(chuàng)建滿足該策略的Bypass隧道。與現(xiàn)有技術(shù)相比,本發(fā)明可以根據(jù)時延、可靠性、CT、需要經(jīng)過的節(jié)點之一或者任意組合來選擇Bypass隧道。
圖1為現(xiàn)有的MPLS網(wǎng)絡(luò)中的LSP的示例圖;圖2為現(xiàn)有的MPLS網(wǎng)絡(luò)中的RSVP-TE工作機制示例圖;圖3-1為現(xiàn)有的MPLS網(wǎng)絡(luò)中的FRR保護的鏈路保護的示例圖;圖3-2為現(xiàn)有的MPLS網(wǎng)絡(luò)中的FRR保護的節(jié)點保護的示例圖;圖4為現(xiàn)有的MPLS網(wǎng)絡(luò)中的Path消息中的FAST_RER0UTE對象的結(jié)構(gòu)示意圖;圖5為本發(fā)明實施例一提供的選擇MPLS TE Bypass隧道的方法流程圖;圖6為本發(fā)明實施例提供的Path消息中新增的FACILITY_BACKUP_C0NTR0L對象的結(jié)構(gòu)示例圖;圖7為圖6所示的FACILITY_BACKUP_C0NTR0L對象中的Subobjects的結(jié)構(gòu)示意圖;圖8為本發(fā)明實施例二提供的當主隧道的頭節(jié)點對Bypass隧道的時延、可靠性和CT有要求時,選擇Bypass隧道的方法流程圖;圖9為本發(fā)明實施例中計算FRR備份隧道的時延和連通次數(shù)的示例圖;圖10為本發(fā)明實施例中的MPLS ECHO報文的格式示意圖;圖11為本發(fā)明實施例三提供的當主隧道的頭節(jié)點對Bypass隧道經(jīng)過的節(jié)點有要求時,倉Il建或選擇Bypass隧道的方法流程圖;圖12為本發(fā)明實施例四提供的當主隧道的頭節(jié)點對Bypass隧道的時延、需要經(jīng)過的節(jié)點都有要求時,創(chuàng)建或選擇Bypass隧道的方法流程圖;圖13為本發(fā)明應(yīng)用示例一的MPLS TE組網(wǎng)圖;圖14為本發(fā)明應(yīng)用示例一中的Path消息的FACILITY_BACKUP_C0NTR0L對象的結(jié)構(gòu)示例圖;圖15為本發(fā)明應(yīng)用示例二的MPLS TE組網(wǎng)圖;圖16為本發(fā)明應(yīng)用示例二的Path消息的FACILITY_BACKUP_C0NTR0L對象中的Subobjects字段的結(jié)構(gòu)示例圖;圖17為本發(fā)明實施例提供的MPLS TE隧道中的PLR的結(jié)構(gòu)示意圖。
具體實施例方式下面結(jié)合附圖及具體實施例對本發(fā)明再作進一步詳細的說明。圖5為本發(fā)明實施例一提供的選擇MPLS TE Bypass隧道的方法流程圖,如圖5所示,其具體步驟如下:步驟501:TE主隧道的頭節(jié)點確定創(chuàng)建或選擇Bypass隧道的策略,該策略指示對Bypass隧道的時延、可靠性、CT、需要經(jīng)過的節(jié)點四者之一或任意組合有要求,則在Path消息中增加靈活備份控制(FACILITY_BACKUP_C0NTR0L)對象,該對象包含創(chuàng)建或優(yōu)選Bypass隧道的策略,具體包括:時延要求、可靠性要求、CT要求、需要經(jīng)過的節(jié)點要求之一或任意組合,將該Path消息發(fā)送出去。圖6為本發(fā)明實施例提供的Path消息中新增的FACILITY_BACKUP_C0NTR0L對象的結(jié)構(gòu)示例圖,如圖6所示,各字段及其含義如下:I) Class-Num:對象類型號。由于FACILITY_BACKUP_C0NTR0L對象是新創(chuàng)建的對象,因此,其Class-Num的值要與已有對象的Class-Num值不同,本發(fā)明實施例中,Class-Num值可為206。若中間節(jié)點收到的Path消息中包含無法識別的對象且該對象值的二進制形式符合Ilbbbbbb格式,則中間節(jié)點需要將該對象原封不動地向下游傳送。這樣即使PLR無法識別該對象,也不會對TE主隧道造成任何影響。2) C-Type:C 類型。由于FACILITY_BACKUP_C0NTR0L對象是新創(chuàng)建的對象,目前只有一種類型,因此,本發(fā)明實施例中,C-Type的值可為I。3) Flags:FRR備份隧道的創(chuàng)建方式標志。當前存在的創(chuàng)建FRR備份隧道的方式有兩種:一對一備份(0ne-to-0ne Backup)和Facility Backup,目前大多數(shù)廠商支持且較為流行的方式為靈活備份(FacilityBackup)。Flags值為I表示TE主隧道期望的FRR備份隧道的方式為0ne-to-0ne Backup ;Flags值為2表示TE主隧道期望的FRR備份隧道的方式為Facility Backup ;Flags值為O則表示PLR將依據(jù)自己的策略創(chuàng)建FRR備份隧道。4) TOS:服務(wù)類型(Type of Service)該字段包括3比特(bit)的優(yōu)先級子字段、4bit的TOS子字段和Ibit的未用位但必須置O。其中3bit的優(yōu)先級子字段預(yù)留給服務(wù)質(zhì)量(QOS, Quality of Service), TOS子字段分別代表:時延、最大吞吐量、高可靠性、最小費用。在本發(fā)明實施例中僅使用時延、高可靠性這兩個bit位。5) Interval:對于每條FRR備份隧道,PLR每隔Interval時長獲取一組該隧道的數(shù)據(jù)。本發(fā)明實施例中,Interval取值范圍可為O 65535,單位為秒。O則表示不獲取FRR備份隧道數(shù)據(jù)。6) Delay:Bypass隧道的時延要求。本發(fā)明實施例中,Delay的取值范圍可為O 65535,單位為毫秒。O則表示主隧道要求具有最小時延的FRR備份隧道作為Bypass隧道;若為其他值,則表示主隧道要求Bypass隧道的時延要小于或等于該值。7) Number:對于每條FRR備份隧道,PLR獲取一組該隧道的數(shù)據(jù)時的檢測次數(shù)。本發(fā)明實施例中,Number的取值范圍為I 255。為了保證獲取到的數(shù)據(jù)的準確性,對于每組數(shù)據(jù),PLR會在獲取數(shù)據(jù)前檢測多次,然后對獲取到的各數(shù)據(jù)值求平均值或求和值,將該平均值或該和值作為該數(shù)據(jù)的最終值。8) Multiple:對于每條FRR備份隧道,PLR獲取Multiple組該隧道的數(shù)據(jù)。對于每條FRR備份隧道,PLR獲取Multiple組數(shù)據(jù),然后進行Bypass隧道的計算和優(yōu)選,取值范圍為O 255。由于網(wǎng)絡(luò)狀況的變化性,若PLR在獲取每組備份隧道數(shù)據(jù)后都進行Bypass隧道的計算和優(yōu)選,一旦主隧道或者備份隧道較多,則會對PLR造成一定的負擔(dān)。若Multiple為0,表示主隧道在獲取備份隧道的數(shù)據(jù)后立即進行Bypass隧道的計算和優(yōu)選;若為其它值,表示主隧道優(yōu)選Bypass隧道的時間間隔為MultipleX Interval,這里的 interval 即 5)中的 interval。9) CT:服務(wù)類型。本發(fā)明實施例中,CT占4個bit位,若第一個bit位被設(shè)置,則表示TE主隧道對備份隧道的CT類型有要求,后三個bit位的值則表示主隧道對備份隧道的CT要求為該值。10) Subobjects:子對象。表示Bypass隧道需要經(jīng)過的節(jié)點,內(nèi)容是路徑上的節(jié)點IP地址。一個FACILITY_BACKUP_C0NTR0L對象中可能包含多個子對象,子對象的個數(shù)可由FACILITY_BACKUP_CONTROL對象的Length字段、一個子對象的標準長度算出。圖7為FACILITY_BACKUP_C0NTR0L對象中的Subobjects的結(jié)構(gòu)示意圖,如圖7所示,各字段及其含義如下:101) L:子對象節(jié)點的類型。子對象節(jié)點的類型有兩種:嚴格或者松散。本發(fā)明實施例中,若L位被設(shè)置,則為松散節(jié)點,表示當前處理該對象的節(jié)點(即收到包含Subobjects的Path消息的節(jié)點,可能是PLR或者備份隧道路徑上的節(jié)點)與下一跳節(jié)點(即該Path消息中的該子對象節(jié)點)不一定直連,但路由可達;若L位被清除,則為嚴格節(jié)點,表示當前處理該對象的節(jié)點與下一跳節(jié)點直連,而且路由可達。102) Type:Bypass隧道需要經(jīng)過的節(jié)點類型。Bypass隧道需要經(jīng)過的節(jié)點類型有3種,具體如下:本發(fā)明實施例中,Type值為I表示IPv4節(jié)點;Type值為2表示IPv6節(jié)點;Type值為3表示自治系統(tǒng)號。其中,若為自治系統(tǒng)號,則表示Bypass隧道需要經(jīng)過的節(jié)點為一個域,即Bypass隧道需要跨域。103) Length:子對象的長度。單位為字節(jié)。若子對象類型為IPv4則Length值為8字節(jié),若子對象類型為IPv6則為20字節(jié),若子對象類型為自治系統(tǒng)號則為4字節(jié)。104) FRR Field:FRR 域。從PLR到MP,稱為一個FRR域。若子對象列表中多個節(jié)點的FRR域值相同,則表示Bypass隧道需要經(jīng)過這些節(jié)點。主隧道上可能會有多個FRR域,這取決于整個網(wǎng)絡(luò)的部署情況。
105) Subobject contents:子對象內(nèi)容。其長度可根據(jù)節(jié)點類型確定。例如:當節(jié)點為IPv4節(jié)點時,Subobject contents值為4個字節(jié)的IP地址、I個字節(jié)的前綴長度(即子網(wǎng)掩碼)、I個字節(jié)的預(yù)留字段。步驟502:當PLR收到攜帶FACILITY_BACKUP_C0NTR0L對象的Path消息時,根據(jù)該對象指示的創(chuàng)建或優(yōu)選Bypass隧道的策略,來選擇或創(chuàng)建滿足該策略的Bypass隧道。FACILITY_BACKUP_C0NTR0L對象中可能包含時延要求、可靠性要求、CT要求、需要經(jīng)過的節(jié)點要求中的一個或任意組合,以下給出具體實施例:圖8為本發(fā)明實施例二提供的當主隧道的頭節(jié)點對Bypass隧道的時延、可靠性和CT有要求時,選擇Bypass隧道的方法流程圖,如圖8所示,其具體步驟如下:步驟801:TE主隧道的頭節(jié)點確定選擇Bypass隧道的策略,該策略指示對Bypass隧道的時延、可靠性和CT有要求,則在Path消息中增加FACILITY_BACKUP_C0NTR0L對象,并根據(jù)時延要求填充該對象的TOS字段和Delay字段,根據(jù)可靠性要求填充該對象的TOS字段,根據(jù)CT要求填充該對象的CT字段,同時填充該對象的Interval、Number、Multiple字段值,將該Path消息發(fā)送出去。步驟802 =PLR接收Path消息,從該消息中讀取FACILITY_BACKUP_C0NTR0L對象的T0S>Delay> CT> Intervals Number>Multiple字段的值,得知:主隧道的頭節(jié)點對Bypass隧道的時延、可靠性和CT要求,則建立MPLS Ping數(shù)據(jù)庫。若PLR之前已經(jīng)建立了 MPLS Ping數(shù)據(jù)庫,則本步驟無需再建立。MPLS Ping數(shù)據(jù)庫初始建立時內(nèi)容為空。步驟803:該PLR根據(jù)Interval和Multiple字段值,針對以本節(jié)點作為PLR的每條FRR備份隧道,每隔Interval時長獲取一組該隧道的時延值、連通次數(shù)值,直至獲取到Multiple組該隧道的時延值、連通次數(shù)值為止。其中,在獲取每組該隧道的時延值、連通次數(shù)值時,連續(xù)進行Number次獲取,對獲取到的Number個時延值求平均,得到本組數(shù)據(jù)中該隧道的時延值,計算該Number次獲取過程中該隧道的總連通次數(shù),將該總連通次數(shù)作為本組數(shù)據(jù)中該隧道的連通次數(shù)值。具體地,對于每條FRR備份隧道,PLR可通過在該條隧道上傳送MPLS ECHO報文來得知該隧道的時延。圖9給出了本發(fā)明實施例中計算FRR備份隧道的時延和連通次數(shù)的示例圖,在圖9中,存在一條FRR備份隧道:B->C->D,則該備份隧道的時延和連通次數(shù)可通過如下步驟得到:步驟01 =PLR B向MP D發(fā)送MPLS ECHO報文,其中,報文的發(fā)送時間戳(TimeStampSent)字段值為節(jié)點B發(fā)出MPLS ECHO報文的時刻。圖10給出了MPLS ECHO報文的格式示意圖,其中,TimeStamp Sent字段由發(fā)送端填寫,即發(fā)送端發(fā)送MPLS ECHO報文的時刻;接收時間戳(TimeStamp Received)字段由接收端填寫,即接收端接收到該MPLS ECHO報文的時刻,這樣,發(fā)送端接收到接收端返回的MPLS ECHO報文后,就可得到FRR備份隧道的時延值=TimeStamp Received-TimeStampSent。步驟02:節(jié)點D接收到MPLS ECHO報文,將報文的接收時刻填充到該報文的TimeStamp Received字段,將該報文返回給節(jié)點B。
步驟03:節(jié)點B接收該MPLS ECHO報文,讀取報文的TimeStamp Sent和TimeStampReceived 字段值,得到 FRR 備份隧道的時延值=TimeStamp Received-TimeStamp Sent。對于每條FRR備份隧道,PLR可通過在該條隧道上發(fā)出MPLS Request報文、并通過是否接收到MP返回的MPLS Reply報文來確定該隧道的連通性。步驟804:針對以本節(jié)點作為PLR的每條FRR備份隧道,PLR對該隧道的Multiple個時延值求平均,得到該隧道的最終時延值,對該隧道的Multiple個連通次數(shù)值求和,得到該隧道的最終連通次數(shù)值,將各條隧道的隧道標識、時延值、連通次數(shù)值寫入MPLS Ping數(shù)據(jù)庫。步驟805:PLR根據(jù)計算得到的各隧道的最終時延值和連通次數(shù)值,以及FACILITY_BACKUP_C0NTR0L對象指示的時延、可靠性要求,判斷是否有隧道滿足該要求,若是,執(zhí)行步驟806 ;否則,執(zhí)行步驟807。隧道的可靠性由隧道的連通次數(shù)值來衡量。一條隧道的連通次數(shù)值越高,表明該隧道的可靠性越高。步驟806 =PLR將滿足要求的隧道作為Bypass隧道,繼續(xù)向下游傳送該Path消息,本流程結(jié)束。步驟807:PLR保持當前狀態(tài)不變,繼續(xù)向下游傳送該Path消息。對于本步驟807,若PLR自身已經(jīng)綁定了一條Bypass隧道,則仍然保持該Bypass隧道不變;若PLR未綁定Bypass隧道,也仍然保持該狀態(tài)不變。圖11為本發(fā)明實施例三提供的當主隧道的頭節(jié)點對Bypass隧道經(jīng)過的節(jié)點有要求時,創(chuàng)建或選擇Bypass隧道的方法流程圖,如圖11所示,其具體步驟如下:步驟1101:TE主隧道的頭節(jié)點確定創(chuàng)建或選擇Bypass隧道的策略,該策略指示了Bypass隧道需要經(jīng)過的節(jié)點,則在Path消息中增加FACILITY_BACKUP_C0NTR0L對象,并將Bypass隧道需要經(jīng)過的各節(jié)點的類型L、類型Type、FRR域標識、IP地址等填充到該對象的Subobjects字段,將該Path消息發(fā)送出去。例如:如果一個節(jié)點具備流量統(tǒng)計功能,且TE主隧道期望Bypass隧道經(jīng)過該節(jié)點,從而能夠進行流量統(tǒng)計等相關(guān)操作,這樣就會將該節(jié)點作為Bypass隧道需要經(jīng)過的節(jié)點。步驟1102 =PLR接收該Path消息,發(fā)現(xiàn)該消息中的FACILITY_BACKUP_C0NTR0L對象的Subobjects字段不為空,則建立LSP數(shù)據(jù)庫(LSPDB)。若PLR之前已經(jīng)建立了 LSTOB,則本步驟無需再建立。LSPDB數(shù)據(jù)庫初始建立時內(nèi)容為空。LSPDB記錄了每條備份隧道的路徑信息,例如Tunnell:R1->R2_>R3。通過RSVP-TE報文中的record對象(該對象會記錄報文沿途經(jīng)過的節(jié)點IP地址),LSPDB能夠知道TE隧道經(jīng)過的節(jié)點的IP地址,從而知道隧道的具體路徑。步驟1103:該PLR從Path消息的Subobjects字段順序讀取一個FRR域的第一個子對象節(jié)點的IP地址,在本地LSPDB中查找當前FRR域的第一個子對象節(jié)點的IP地址,判斷是否查找到,若是,執(zhí)行步驟1104 ;否則,執(zhí)行步驟1109。步驟1104:該PLR確定自身屬于當前FRR域,將當前FRR域的所有子對象節(jié)點信息從Path消息的Subobjects字段剝離出來,將本PLR與當前FRR域的所有子對象節(jié)點形成一條路徑片段,在本地LSTOB中查找是否存在經(jīng)過該路徑片段的FRR備份隧道,若是,執(zhí)行步驟1105 ;否則,執(zhí)行步驟1106。例如:設(shè)PLR從Path消息的Subobjects字段讀取的是FRR域a的第一個子對象節(jié)點的IP地址,且發(fā)現(xiàn)該子對象節(jié)點位于本地LSTOB中的一條FRR備份隧道上,則可確定本PLR屬于FRR域a。PLR的本地LSPDB中記錄的每條備份隧道的路徑上的節(jié)點都屬于同一 FRR域,該FRR域即PLR所在FRR域,因此若一個子對象節(jié)點的IP地址在該LSPDB中,則說明PLR與該子對象節(jié)點位于同一 FRR域。步驟1105:該PLR將該FRR備份隧道作為Bypass隧道,繼續(xù)向下游傳送該Path消息,本流程結(jié)束。步驟1106:該PLR根據(jù)TEDB中記錄的MPLS網(wǎng)絡(luò)信息,計算一條通過該路徑片段的路徑,判斷是否計算成功,若是,執(zhí)行步驟1107 ;否則,執(zhí)行步驟1108。TEDB保存了整個MPLS網(wǎng)絡(luò)中的節(jié)點、鏈路帶寬、鏈路權(quán)值、著色等信息。當TE主隧道或者備份隧道需要滿足某些條件(如帶寬)來創(chuàng)建時,則PLR會依據(jù)TEDB計算符合條件的TE隧道,所以在本發(fā)明中,不會對TEDB進行修改,僅僅只是利用該數(shù)據(jù)庫中的信息計算路徑。步驟1107:該PLR創(chuàng)建通過該路徑的FRR備份隧道,將該FRR備份隧道作為Bypass隧道,繼續(xù)向下游傳送該Path消息,本流程結(jié)束。本步驟中,PLR在新建FRR備份隧道時,需要根據(jù)FACILITY_BACKUP_C0NTR0L對象中的Flags、CT字段值等來創(chuàng)建。PLR需要將新建的FRR備份隧道的路徑信息寫入LSTOB。步驟1108:該PLR繼續(xù)向下游傳送該Path消息,本流程結(jié)束。步驟1109:該PLR根據(jù)TEDB中記錄的MPLS網(wǎng)絡(luò)信息,計算一條通過當前FRR域的第一個子對象節(jié)點的路徑,判斷是否計算成功,若是,執(zhí)行步驟1110 ;否則,執(zhí)行步驟1113。步驟1110:該PLR確定自身屬于當前FRR域,將當前FRR域的所有子對象節(jié)點信息從Subobjects字段剝離出來,將本PLR與當前FRR域的所有子對象節(jié)點形成一條路徑片段,根據(jù)TEDB中記錄的MPLS網(wǎng)絡(luò)信息,計算一條通過該路徑片段的路徑,判斷是否計算成功,若是,執(zhí)行步驟1111 ;否則,執(zhí)行步驟1112。步驟1111:該PLR創(chuàng)建通過該路徑的FRR備份隧道,將該FRR備份隧道作為Bypass隧道,繼續(xù)向下游傳送該Path消息,本流程結(jié)束。PLR需要將新建的FRR備份隧道的路徑信息寫入LSTOB。步驟1112:該PLR繼續(xù)向下游傳送該Path消息,本流程結(jié)束。步驟1113:該PLR確定自身不屬于當前FRR域,轉(zhuǎn)至Subobjects字段的下一個FRR域,返回步驟1103。對于步驟1113,若當前FRR域已經(jīng)是Subobjects字段的最后一個FRR域,則直接結(jié)束本流程即可。需要說明的是,若Subobjects字段中的所有子對象節(jié)點的IP地址都被剝離出來,則PLR會將Subobjects字段剝離出來。若Path消息中的FACILITY_BACKUP_C0NTR0L對象的所有字段都已被處理完畢,如=TE隧道頭節(jié)點只對Bypass隧道需要經(jīng)過的節(jié)點有要求,且Subobjects字段中的所有子對象節(jié)點都已被處理完畢,則PLR會將FACILITY_BACKUP_CONTROL對象從Path消息中剝離,此時的Path消息與現(xiàn)有的Path消息相同。圖12為本發(fā)明實施例四提供的當主隧道的頭節(jié)點對Bypass隧道的時延、需要經(jīng)過的節(jié)點都有要求時,創(chuàng)建或選擇Bypass隧道的方法流程圖,如圖12所示,其具體步驟如下:步驟1201:TE主隧道的頭節(jié)點確定創(chuàng)建或選擇Bypass隧道的策略,該策略指示了對Bypass隧道的時延、需要經(jīng)過的節(jié)點有要求,則根據(jù)時延要求填充該對象的TOS字段和Delay字段,同時填充該對象的Interval、Number、Multiple字段值,將Bypass隧道需要經(jīng)過的各節(jié)點的類型L、類型Type、FRR域標識、IP地址等填充到該對象的Subobjects字段,將該Path消息發(fā)送出去。步驟1202 =PLR接收Path消息,從該消息中讀取FACILITY_BACKUP_C0NTR0L對象的T0S、Delay、Interval、Number、Multiple字段的值,得到:對Bypass隧道的時延要求,建立MPLS Ping數(shù)據(jù)庫,發(fā)現(xiàn)FACILITY_BACKUP_C0NTR0L對象的Subobject字段內(nèi)容不為空,則建立LSPDB。若PLR已建立MPLS Ping數(shù)據(jù)庫,則無需再建立;同樣,若已建立LSTOB,也無需再建立。MPLS Ping數(shù)據(jù)庫和LSPDB數(shù)據(jù)庫初始建立時,內(nèi)容都為空。步驟1203:該PLR從Path消息的Subobjects字段順序讀取一個FRR域的第一個子對象節(jié)點的IP地址,在本地LSPDB中查找當前FRR域的第一個子對象節(jié)點的IP地址,判斷是否查找到,若是,執(zhí)行步驟1204 ;否則,執(zhí)行步驟1209。步驟1204:該PLR確定自身屬于當前FRR域,將當前FRR域的所有子對象節(jié)點信息從Path消息的Subobjects字段剝離出來,將本PLR與當前FRR域的所有子對象節(jié)點形成一條路徑片段,在本地LSPDB中查找是否存在經(jīng)過該路徑片段的FRR備份隧道,若是,執(zhí)行步驟1205 ;否則,執(zhí)行步驟1206。步驟1205:該PLR根據(jù)Interval、Number和Multiple字段值,檢測該FRR備份隧道的時延值,若該時延值滿足Path消息的FACILITY_BACKUP_C0NTR0L對象指示的時延要求,則將該FRR備份隧道作為Bypass隧道,繼續(xù)向下游傳送該Path消息,本流程結(jié)束;否貝U,繼續(xù)向下游傳送該Path消息,本流程結(jié)束。步驟1206:該PLR根據(jù)TEDB中記錄的MPLS網(wǎng)絡(luò)信息,計算一條通過該路徑片段的路徑,判斷是否計算成功,若是,執(zhí)行步驟1207 ;否則,執(zhí)行步驟1208。步驟1207:該PLR創(chuàng)建通過該路徑的FRR備份隧道,根據(jù)Interval、Number和Multiple字段值,檢測該FRR備份隧道的時延值,若該時延值滿足Path消息的FACILITY_BACKUP_C0NTR0L對象指示的時延要求,則將該FRR備份隧道作為Bypass隧道,繼續(xù)向下游傳送該Path消息,本流程結(jié)束;否則,刪除該FRR備份隧道,繼續(xù)向下游傳送該Path消息,本流程結(jié)束。若新建的FRR備份隧道被保留,即被作為Bypass隧道,則PLR需要將該隧道的路徑信息寫入LSTOB。步驟1208:該PLR繼續(xù)向下游傳送該Path消息,本流程結(jié)束。步驟1209:該PLR根據(jù)TEDB中記錄的MPLS網(wǎng)絡(luò)信息,計算一條通過當前FRR域的第一個子對象節(jié)點的路徑,判斷是否計算成功,若是,執(zhí)行步驟1210 ;否則,執(zhí)行步驟1213。
步驟1210:該PLR確定自身屬于當前FRR域,將當前FRR域的所有子對象節(jié)點信息從Subobjects字段剝離出來,將本PLR與當前FRR域的所有子對象節(jié)點形成一條路徑片段,根據(jù)TEDB中記錄的MPLS網(wǎng)絡(luò)信息,計算一條通過該路徑片段的路徑,判斷是否計算成功,若是,執(zhí)行步驟1211 ;否則,執(zhí)行步驟1212。步驟1211:該PLR創(chuàng)建通過該路徑的FRR備份隧道,根據(jù)Interval、Number和Multiple字段值,檢測該FRR備份隧道的時延值,若該時延值滿足Path消息的FACILITY_BACKUP_C0NTR0L對象指示的時延要求,則將該FRR備份隧道作為Bypass隧道,繼續(xù)向下游傳送該Path消息,本流程結(jié)束;否則,刪除該FRR備份隧道,繼續(xù)向下游傳送該Path消息,本流程結(jié)束。若新建的FRR備份隧道被保留,即被作為Bypass隧道,則PLR需要將該隧道的路徑信息寫入LSTOB。步驟1212:該PLR繼續(xù)向下游傳送該Path消息,本流程結(jié)束。步驟1213:該PLR轉(zhuǎn)至Subobjects字段的下一個FRR域,返回步驟1203。對于步驟1213,若當前FRR域已經(jīng)是Subobjects字段的最后一個FRR域,則直接結(jié)束本流程即可。以下給出本發(fā)明應(yīng)用示例一:如圖13所示,其中TE主隧道為TunnelUMSS H->A->B_>C。一條FRR備份隧道為Tunnel2,路徑為A->E_>C ;另外一條FRR備份隧道為Tunnel3,路徑為A->D_>C。當前TE主隧道Tunnell的Bypass隧道為Tunnel2。若配置主隧道選擇Bypass隧道的策略為:Bypass隧道的時延不能超過150ms、高可靠性。這時Tunnel I隧道的頭節(jié)點H會發(fā)出攜帶FACILITY_BACKUP_C0NTR0L對象的Path消息,該對象內(nèi)容如圖14所示。各字段解析如下:TOS:0xa,創(chuàng)建或優(yōu)選Bypass隧道的策略為時延和高可靠性。Delay:0x96, Bypass 隧道的時延要小于 150ms。Number:PLR在獲取每條FRR備份隧道的每組數(shù)據(jù)時需要檢測三次。Interval:PLR獲取每條FRR備份隧道的每相鄰兩組數(shù)據(jù)的間隔時間為30s。Multiple:對于每條FRR備份隧道,PLR需要獲取三組數(shù)據(jù)來得到最終的數(shù)據(jù)。PLRA在收到攜帶FACILITY_BACKUP_C0NTR0L對象的Path消息后,進行如下處理:步驟01:在本地創(chuàng)建一個MPLS Ping數(shù)據(jù)庫,該數(shù)據(jù)庫記錄每條FRR備份隧道的時延及連通次數(shù),初始值都為O。步驟02:由于 FACILITY_BACKUP_C0NTR0L 對象的 Interval 字段為 30s 且 Number字段為3,則節(jié)點A在等待30s后對Tunnel2、Tunne13獲取第一組數(shù)據(jù)。在獲取數(shù)據(jù)前會連續(xù)MPLS Ping三次,然后將這三次檢測到的時延求平均值,連通次數(shù)累加。這樣,得到的第一組數(shù)據(jù)(隧道標識,時延,連通次數(shù))為:(Tunnel2,160ms, 3)和(Tunnel3,152ms, 3)。步驟03:由于 FACILITY_BACKUP_C0NTR0L 對象的 Multiple 字段為 3,則節(jié)點A需要獲取三組備份隧道數(shù)據(jù),即重復(fù)步驟02三次,這樣,節(jié)點A獲取到的第二組數(shù)據(jù)為(Tunnel2,149ms, 3)和(Tunnel3,137ms,3),第三組數(shù)據(jù)為(Tunnel2,157ms, 3)和(Tunnel3,144ms,3)。步驟04:對獲取到的三組數(shù)據(jù)進行計算,得到的最終結(jié)果為(Tunnel2,155mS,9)和(Tunnel3,144ms, 9),該最終結(jié)果將會被寫到MPLS Ping數(shù)據(jù)庫中并維護。節(jié)點A根據(jù)此結(jié)果,優(yōu)選Tunnel3作為主隧道Tunnell的Bypass隧道。以下給出本發(fā)明應(yīng)用示例二:如圖15 所示,被保護的 LSP (Protected LSP)為:R1 - >R2 - >R3 - >R4 - >R5 ->R10,主隧道存在三條FRR備份隧道,若配置主隧道創(chuàng)建或選擇Bypass隧道的策略為:Bypass隧道需要經(jīng)過R9、Rll節(jié)點,這樣,頭節(jié)點Rl將節(jié)點R9、Rll的FRR域標識及IP地址放入Path消息的FACILITY_BACKUP_C0NTR0L對象的Subobjects字段中,將Path消息發(fā)送出去。Subobjects 字段如圖 16 所示。當PLR R2收到Path消息后,進行如下處理:步驟01:R2 從 Path 消息的 FACILITY_BACKUP_C0NTR0L 對象的 Subobject 字段中讀取第一個子對象節(jié)點R9的IP地址,然后到本地LSPDB中查找R9節(jié)點,發(fā)現(xiàn)R9節(jié)點與自身在同一 FRR域內(nèi),則PLR R2將屬于該FRR域的所有子對象節(jié)點的IP地址從Path消息的Subobjects字段中剝離出來形成顯示路徑,并繼續(xù)向下游傳送Path消息。該顯示路徑中,R9節(jié)點為松散節(jié)點,與R2節(jié)點路由可達,則Tunnel I的路徑將變?yōu)镽2 - >R8 - >R9 - >R4。由于R9所在FRR域的子對象節(jié)點的IP地址被全部剝離,則Path消息中的第一個子對象節(jié)點的IP地址變?yōu)榱?Rll的IP地址。步驟02:當 PLR R4 收到 Path 消息后,從 FACILITY_BACKUP_C0NTR0L 對象的Subobjects字段中讀取第一個子對象節(jié)點Rll的IP地址,然后到本地LSPDB中查找Rl I節(jié)點,未查找到,則再到TEDB中查找Rll節(jié)點,發(fā)現(xiàn)Rll節(jié)點與自身不在同一 FRR域內(nèi),則不作進一步處理,繼續(xù)向下游傳送該Path消息。步驟03:當 PLR R5 收到 Path 消息后,從 FACILITY_BACKUP_C0NTR0L 對象的Subobjects字段中讀取第一個子對象節(jié)點Rll的IP地址,然后到本地LSPDB中查找Rll節(jié)點,發(fā)現(xiàn)Rl I節(jié)點與自身在同一 FRR域內(nèi),則將屬于該FRR域的所有子對象節(jié)點的IP地址從FACILITY_BACKUP_C0NTR0L對象的Subobjects字段中剝離出來形成顯示路徑,并繼續(xù)向下游傳送Path消息。該顯示路徑中,Rll節(jié)點為嚴格節(jié)點,與R5節(jié)點直連,則Tunnel3的路徑將變?yōu)镽5 - >R11 - >R10。同時,由于 FACILITY_BACKUP_C0NTR0L 對象的 Subobjects 字段中的子對象節(jié)點的IP地址被全部剝離了,Subobjects字段會被從FACILITY_BACKUP_CONTROL對象中剝離。圖17為本發(fā)明實施例提供的MPLS TE隧道的PLR,如圖17所示,其主要包括:Bypass隧道選擇模塊171、MPLS Ping數(shù)據(jù)庫172、LSPDB173,其中:Bypass隧道選擇模塊171:接收TE主隧道的頭節(jié)點發(fā)來的Path消息,讀取該消息攜帶的選擇Bypass隧道的策略,該策略指示對Bypass隧道的時延、可靠性、帶寬CT、需要經(jīng)過的節(jié)點四者之一或任意組合有要求。若發(fā)現(xiàn)該消息指示對Bypass隧道的時延和/或可靠性有要求,則檢測各FRR備份隧道的時延和/或連通次數(shù),將各隧道的標識及時延和/或連通次數(shù)寫入MPLSPing數(shù)據(jù)庫172,并在各隧道中選擇滿足該策略指示的時延和/或連通次數(shù)要求的隧道;若發(fā)現(xiàn)該消息指示對Bypass隧道需要經(jīng)過的節(jié)點有要求,則在LSTOB173中查找滿足該要求的隧道,若查找到,將該隧道作為Bypass隧道,否則,根據(jù)TEDB建立滿足該要求的隧道,若建立成功,將該隧道標識及路徑信息寫入LSPDB173中,并將該隧道作為Bypass隧道;若發(fā)現(xiàn)該策略指示對Bypass隧道的CT有要求,則在建立FRR備份隧道時根據(jù)該CT值建立,并將建立的隧道的標識及路徑信息寫入LSTOB173。MPLS Ping數(shù)據(jù)庫172:保存各FRR備份隧道的時延和/或連通次數(shù)。LSPDB173:保存各FRR備份隧道的路徑信息。其中,對于Bypass隧道選擇模塊171,當發(fā)現(xiàn)選擇Bypass隧道的策略指示對Bypass隧道需要經(jīng)過的節(jié)點有要求時,具體執(zhí)行如下步驟:Al、從Path消息中順序讀取Bypass隧道需要經(jīng)過的一個FRR域的第一個子對象節(jié)點的IP地址,在LSTOB173記錄的已創(chuàng)建的各FRR備份隧道的路徑信息中查找該節(jié)點的IP地址,判斷是否查找到,若是,執(zhí)行步驟BI ;否則,執(zhí)行步驟Cl ;B1、確定本PLR屬于當前FRR域,將當前FRR域的所有子對象節(jié)點信息從Path消息中剝離出來,將本PLR與當前FRR域的所有子對象節(jié)點形成一條路徑片段,若該路徑片段位于LSTOB173記錄的已創(chuàng)建的一條FRR備份隧道上,則將該FRR備份隧道作為Bypass隧道,繼續(xù)向下游傳送該Path消息;否則,根據(jù)TEDB中記錄的MPLS網(wǎng)絡(luò)信息,計算出一條通過該路徑片段的路徑,創(chuàng)建通過該路徑的FRR備份隧道,將該FRR備份隧道作為Bypass隧道,繼續(xù)向下游傳送該Path消息;Cl、根據(jù)TEDB中記錄的MPLS網(wǎng)絡(luò)信息,計算一條通過當前FRR域的第一個子對象節(jié)點的路徑,若計算出,則確定本PLR屬于當前FRR域,將當前FRR域的所有子對象節(jié)點信息從Path消息中剝離出來,將本PLR與當前FRR域的所有子對象節(jié)點形成一條路徑片段,根據(jù)TEDB中記錄的MPLS網(wǎng)絡(luò)信息,計算出一條通過該路徑片段的路徑,創(chuàng)建通過該路徑的FRR備份隧道,將該FRR備份隧道作為Bypass隧道,繼續(xù)向下游傳送該Path消息;若未計算出,則確定本PLR不屬于當前FRR域,返回步驟Al開始處理Path消息中Bypass隧道需要經(jīng)過的下一個FRR域的第一個子對象節(jié)點的IP地址。當選擇Bypass隧道的策略指示同時對Bypass隧道的時延和/或可靠性、需要經(jīng)過的節(jié)點有要求時,Bypass隧道選擇模塊171進一步用于,步驟BI所述若該路徑片段位于LSTOB173記錄的已創(chuàng)建的一條FRR備份隧道上之后、將該FRR備份隧道作為Bypass隧道之前進一步檢測該隧道的時延和/或連通性,若該隧道的時延和/或連通性滿足所述策略指示的時延和/或可靠性要求,則確定將該隧道作為Bypass隧道;否則,不將該隧道作為Bypass隧道,繼續(xù)向下游傳送該Path消息;步驟BI所述創(chuàng)建通過該路徑的FRR備份隧道之后、將該FRR備份隧道作為Bypass隧道之前進一步檢測該隧道的時延和/或連通性,若該隧道的時延和/或連通性滿足所述策略指示的時延和/或可靠性要求,則確定將該隧道作為Bypass隧道;否則,刪除該隧道,繼續(xù)向下游傳送該Path消息;步驟Cl所述創(chuàng)建通過該路徑的FRR備份隧道之后、將該FRR備份隧道作為Bypass隧道之前進一步檢測該隧道的時延和/或連通性,若該隧道的時延和/或連通性滿足所述策略指示的時延和/或可靠性要求,則確定將該隧道作為Bypass隧道;否則,刪除該隧道,繼續(xù)向下游傳送該Path消息。以下給出本發(fā)明實施例提供的MPLS TE主隧道的頭節(jié)點的組成,其主要包括:Bypass隧道選擇策略配置模塊,用于確定選擇Bypass隧道的策略,該策略指示對Bypass隧道的時延、可靠性、CT、需要經(jīng)過的節(jié)點四者之一或任意組合有要求,在Path消息中攜帶該策略,將該Path消息發(fā)送出去。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明保護的范圍之內(nèi)。
權(quán)利要求
1.一種選擇多協(xié)議標簽交換MPLS流量工程TE旁路Bypass隧道的方法,其特征在于,該方法包括: 本地修復(fù)節(jié)點PLR接收TE主隧道的頭節(jié)點發(fā)來的路徑Path消息,根據(jù)該消息攜帶的選擇Bypass隧道的策略,在已有的快速重路由FRR備份隧道中選擇滿足該策略的Bypass隧道,或者創(chuàng)建滿足該策略的Bypass隧道,所述策略指示對Bypass隧道的時延、可靠性、帶寬服務(wù)類型CT、需要經(jīng)過的節(jié)點四者之一或任意組合有要求。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,當所述選擇Bypass隧道的策略指示對Bypass隧道的時延有要求時, 所述PLR在已有的FRR備份隧道中選擇滿足該策略的Bypass隧道包括: 針對以本節(jié)點作為PLR的任一條FRR備份隧道,PLR按照預(yù)設(shè)時間間隔檢測該條隧道的時延,當檢測次數(shù)達到 預(yù)設(shè)次數(shù)時,對檢測到的該條隧道的時延求平均值,將該平均值作為該條隧道的最終時延;PLR根據(jù)每條隧道的最終時延,選擇滿足所述策略的隧道作為Bypass 隧道, 所述對Bypass隧道的時延有要求為: 要求具有最小時延的FRR備份隧道作為Bypass隧道,或者要求Bypass隧道的時延小于或等于預(yù)設(shè)閾值。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,當所述選擇Bypass隧道的策略指示對Bypass隧道的可靠性有要求時, 所述PLR在已有的FRR備份隧道中選擇滿足該策略的Bypass隧道包括: 針對以本節(jié)點作為PLR的任一條FRR備份隧道,PLR按照預(yù)設(shè)時間間隔檢測該條隧道的連通性,當檢測次數(shù)達到預(yù)設(shè)次數(shù)時,計算該條隧道的連通次數(shù);PLR根據(jù)每條隧道的連通次數(shù),確定各隧道的可靠性,選擇滿足所述策略的隧道作為Bypass隧道, 其中,隧道的連通次數(shù)越高表示隧道的可靠性越高。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,當所述選擇Bypass隧道的策略指示對Bypass隧道需要經(jīng)過的節(jié)點有要求時, 所述Path消息攜帶Bypass隧道需要經(jīng)過的各節(jié)點的IP地址; 所述PLR在已有的FRR備份隧道中選擇滿足該策略的Bypass隧道包括: 步驟Al、PLR從Path消息中順序讀取Bypass隧道需要經(jīng)過的一個FRR域的第一個節(jié)點的IP地址,在本地記錄的已創(chuàng)建的各FRR備份隧道的路徑信息中查找該節(jié)點的IP地址,判斷是否查找到,若是,執(zhí)行步驟BI ;否則,執(zhí)行步驟Cl ; 步驟B1、PLR確定自身屬于當前FRR域,將當前FRR域的所有節(jié)點信息從Path消息中剝離出來,將本PLR與當前FRR域的所有節(jié)點形成一條路徑片段,若該路徑片段位于本地記錄的已創(chuàng)建的一條FRR備份隧道上,則將該隧道作為Bypass隧道,繼續(xù)向下游傳送該Path消息;否則,根據(jù)流量工程數(shù)據(jù)庫TEDB中記錄的MPLS網(wǎng)絡(luò)信息,計算出一條通過該路徑片段的路徑,創(chuàng)建通過該路徑的FRR備份隧道,并將該FRR備份隧道作為Bypass隧道,繼續(xù)向下游傳送該Path消息; 步驟C1、PLR根據(jù)TEDB中記錄的MPLS網(wǎng)絡(luò)信息,計算一條通過當前FRR域的第一個節(jié)點的路徑,若計算出,則確定本PLR屬于當前FRR域,將當前FRR域的所有節(jié)點信息從Path消息中剝離出來,將本PLR與當前FRR域的所有節(jié)點形成一條路徑片段,計算出一條通過該路徑片段的路徑,創(chuàng)建通過該路徑的FRR備份隧道,并將該隧道作為Bypass隧道,繼續(xù)向下游傳送該Path消息;若未計算出,則確定本PLR不屬于當前FRR域,返回步驟Al。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述選擇Bypass隧道的策略指示對Bypass隧道需要經(jīng)過的節(jié)點有要求的同時,進一步包括:所述選擇Bypass隧道的策略指示對Bypass隧道的時延和/或可靠性有要求, 步驟BI所述若該路徑片段位于本地記錄的已創(chuàng)建的一條FRR備份隧道上之后、將該隧道作為Bypass隧道之前進一步包括: 檢測該隧道的時延和/或連通性,若該隧道的時延和/或連通性滿足所述策略指示的時延和/或可靠性要求,則確定將該隧道作為Bypass隧道;否則,不將該隧道作為Bypass隧道,繼續(xù)向下游傳送該Path消息; 步驟BI所述創(chuàng)建通過該路徑的FRR備份隧道之后、將該隧道作為Bypass隧道之前進一步包括: 檢測該隧道的時延和/或連通性,若該隧道的時延和/或連通性滿足所述策略指示的時延和/或可靠性要求,則確定將該隧道作為Bypass隧道;否則,刪除該隧道,繼續(xù)向下游傳送該Path消息; 步驟Cl所述創(chuàng)建通過該路徑的FRR備份隧道之后、將該隧道作為Bypass隧道之前進一步包括: 檢測該隧道的時延和/或連通性,若該隧道的時延和/或連通性滿足所述策略指示的時延和/或可靠性要求,則確定將該隧道作為Bypass隧道;否則,刪除該隧道,繼續(xù)向下游傳送該Path消息。
6.一種MPLS TE隧 道的PLR,其特征在于,包括: Bypass隧道選擇模塊:接收TE主隧道的頭節(jié)點發(fā)來的Path消息,根據(jù)該消息攜帶的選擇Bypass隧道的策略,在已有的FRR備份隧道中選擇滿足該策略的Bypass隧道,所述策略指示對Bypass隧道的時延、可靠性、帶寬服務(wù)類型CT、需要經(jīng)過的節(jié)點四者之一或任意組合有要求。
7.根據(jù)權(quán)利要求6所述的PLR,其特征在于,當所述選擇Bypass隧道的策略指示對Bypass隧道的時延有要求時, 所述Bypass隧道選擇模塊進一步用于,針對以本節(jié)點作為PLR的任一條FRR備份隧道,PLR按照預(yù)設(shè)時間間隔檢測該條隧道的時延,當檢測次數(shù)達到預(yù)設(shè)次數(shù)時,對檢測到的該條條隧道的時延求平均值,將該平均值作為該條隧道的最終時延;PLR根據(jù)每條隧道的最終時延,選擇滿足所述策略的隧道作為Bypass隧道, 所述對Bypass隧道的時延有要求為: 要求具有最小時延的FRR備份隧道作為Bypass隧道,或者要求Bypass隧道的時延小于或等于預(yù)設(shè)閾值。
8.根據(jù)權(quán)利要求6所述的PLR,其特征在于,當所述選擇Bypass隧道的策略指示對Bypass隧道的連通性有要求時, 所述Bypass隧道選擇模塊進一步用于,針對以本節(jié)點作為PLR的任一條FRR備份隧道,PLR按照預(yù)設(shè)時間間隔檢測該條隧道的連通性,當檢測次數(shù)達到預(yù)設(shè)次數(shù)時,計算該條隧道的連通次數(shù);PLR根據(jù)每條隧道的連通次數(shù),確定各隧道的可靠性,選擇滿足所述策略的隧道作為Bypass隧道, 其中,隧道的連通次數(shù)越高表示隧道的可靠性越高。
9.根據(jù)權(quán)利要求6所述的PLR,其特征在于,當所述選擇Bypass隧道的策略指示對Bypass隧道需要經(jīng)過的節(jié)點有要求時, 所述Bypass隧道選擇模塊進一步用于,發(fā)現(xiàn)接收到的Path消息攜帶Bypass隧道需要經(jīng)過的各節(jié)點的IP地址,則執(zhí)行如下步驟: 步驟Al、PLR從Path消息中順序讀取Bypass隧道需要經(jīng)過的一個FRR域的第一個節(jié)點的IP地址,在本地記錄的已創(chuàng)建的各FRR備份隧道的路徑信息中查找該節(jié)點的IP地址,判斷是否查找到,若是,執(zhí)行步驟BI ;否則,執(zhí)行步驟Cl ; 步驟B1、PLR確定自身屬于當前FRR域,將當前FRR域的所有節(jié)點信息從Path消息中剝離出來,將本PLR與當前FRR域的所有節(jié)點形成一條路徑片段,若該路徑片段位于本地記錄的已創(chuàng)建的一條FRR備份隧道上,則將該隧道作為Bypass隧道,繼續(xù)向下游傳送該Path消息;否則,根據(jù)TEDB中記錄的MPLS網(wǎng)絡(luò)信息,計算出一條通過該路徑片段的路徑,創(chuàng)建通過該路徑的FRR備份隧道,將該隧道作為Bypass隧道,繼續(xù)向下游傳送該Path消息; 步驟C1、PLR根據(jù)TEDB中記錄的MPLS網(wǎng)絡(luò)信息,計算一條通過當前FRR域的第一個節(jié)點的路徑,若計算出,則確定本PLR屬于當前FRR域,將當前FRR域的所有節(jié)點信息從Path消息中剝離出來,將本PLR與當前FRR域的所有節(jié)點形成一條路徑片段,計算出一條通過該路徑片段的路徑,創(chuàng)建通過該路徑的FRR備份隧道,將該隧道作為Bypass隧道,繼續(xù)向下游傳送該Path消息;若未計算出,則確定本PLR不屬于當前FRR域,返回步驟Al。
10.根據(jù)權(quán)利要求6所述的PLR,其特征在于,當所述選擇Bypass隧道的策略指示對Bypass隧道的時延和/或可靠性有要求時, 所述Bypass隧道選擇模塊進一步用于,步驟BI所述若該路徑片段位于本地記錄的已創(chuàng)建的一條FRR備份隧道上之后、將該隧道作為Bypass隧道之前進一步檢測該隧道的時延和/或連通性,若該隧道的時延和/或連通性滿足所述策略指示的時延和/或可靠性要求,則確定將該隧道作為Bypass隧道;否則,不將該隧道作為Bypass隧道,繼續(xù)向下游傳送該Path消息; 步驟BI所述創(chuàng)建通過該路徑的FRR備份隧道之后、將該隧道作為Bypass隧道之前進一步檢測該隧道的時延和/或連通性,若該隧道的時延和/或連通性滿足所述策略指示的時延和/或可靠性要求,則確定將該隧道作為Bypass隧道;否則,刪除該隧道,繼續(xù)向下游傳送該Path消息; 步驟Cl所述創(chuàng)建通過該路徑的FRR備份隧道之后、將該隧道作為Bypass隧道之前進一步檢測該隧道的時延和/或連通性,若該隧道的時延和/或連通性滿足所述策略指示的時延和/或可靠性要求,則確定將該隧道作為Bypass隧道;否則,刪除該隧道,繼續(xù)向下游傳送該Path消息。
11.一種MPLS TE主隧道的頭節(jié)點,其特征在于,包括: Bypass隧道選擇策略配置模塊:確定選擇Bypass隧道的策略,該策略指示對Bypass隧道的時延、可靠性、CT、需要經(jīng)過的節(jié)點四者之一或任意組合有要求,則在Path消息中攜帶該策略,將該Path消息發(fā)送出去,以便:PLR根據(jù)該Path消息攜帶的選擇Bypass隧道的策略,在已有的FRR備份隧道中選擇滿足該策略的Bypass隧道,或者創(chuàng)建滿足該策略的O ThV Tr>CJ ο ο ri rT Γ η
全文摘要
本發(fā)明公開了選擇多協(xié)議標簽交換流量工程旁路隧道的方法及節(jié)點。方法包括PLR接收TE主隧道的頭節(jié)點發(fā)來的Path消息,根據(jù)該消息攜帶的選擇Bypass隧道的策略,在已有的FRR備份隧道中選擇滿足該策略的Bypass隧道,所述策略指示對Bypass隧道的時延、可靠性、帶寬CT、需要經(jīng)過的節(jié)點四者之一或任意組合有要求。本發(fā)明可以根據(jù)時延、可靠性、CT、需要經(jīng)過的節(jié)點之一或者任意組合來選擇Bypass隧道。
文檔編號H04L12/46GK103166848SQ201310072728
公開日2013年6月19日 申請日期2013年3月7日 優(yōu)先權(quán)日2013年3月7日
發(fā)明者趙昌峰 申請人:杭州華三通信技術(shù)有限公司