用信號告知雙向分組te隧道的合作路由和非合作路由lsp的製作方法
2023-05-17 14:13:51
用信號告知雙向分組te隧道的合作路由和非合作路由lsp的製作方法
【專利摘要】特定實施例可以使得能夠以相對於標籤交換路徑(LSP)/隧道的配設清楚的方式來建立雙向分組流量工程(TE)隧道的合作路由LSP和非合作路由LSP並對其用信號進行告知。頭端節點可以通過計算前向(可能是反向)LSP來建立雙向分組TE隧道,然後使用例如對相關聯的資源預留協議(RSVP)信令方法的擴展來用信號告知雙向TE隧道。對相關聯的RSVP信令方法的擴展包括RSVP路徑消息中所運載的擴展關聯對象的多個附加關聯類型,該RSVP路徑消息由頭端節點通過前向LSP發送至末端節點,其中,附加關聯類型明確標識前向LSP和反向LSP的配設是合作路由還是非合作路由。
【專利說明】用信號告知雙向分組TE隧道的合作路由和非合作路由LSP
【技術領域】
[0001]本公開總體涉及計算機網絡,更具體地,涉及在計算機網絡中配設雙向分組流量工程(TE)隧道。
【背景技術】
[0002]在2003年I月發布的題為「通用多協議標籤交換(GMPLS)信令資源預留協議 _ 流量工程(RSVP-TE)擴展(Generalized Mult1-Protocol Label Switching(GMPLS)Signaling Resourse Reservat1n Protocol-Traffic Engineering (RSVP-TE)Extens1ns)」的徵求意見(RFC) 3473中所描述的擴展通用多協議標籤交換(GMPLS)信令擴展可以被用來建立合作路由雙向分組流量工程(TE)隧道並用信號告知雙向分組TE隧道。雙向分組TE隧道的示例為兩個多協議標籤交換(MPLS) TE標籤交換路徑(LSP),其中,MPLS TE LSP之一是前向LSP (例如,從TE隧道的頭端節點延伸至該隧道的末端節點),而另一 MPLS TE LSP為反向LSP(例如,從末端節點延伸至頭端節點)。可替代地,相關聯的資源預留協議(RSVP)信令方法(在2012年3月的網際網路草案中張等人的「相關聯的雙向LSP 的 RSVP-TE 擴展 (RSVP-TE Extens1ns for Associated Bidirect1nal LSPs) 」中所描述的)能被用來建立合作路由或非合作路由的雙向分組TE隧道並用信號告知該隧道。按照本文所使用的,合作路由雙向分組TE隧道表示前向LSP和反向LSP均使用相同路徑(例如,(一個或多個)相同節點和(一個或多個)相同鏈路)的雙向隧道。相反地,非合作路由雙向分組TE隧道表示使用兩個不同路徑(即,前向LSP路徑與反向LSP路徑不同)的雙向隧道。
[0003]頭端節點向例如雙向分組TE隧道的一個或多個節點指示LSP的配設以確保對例如反向LSP進行合適的信號發送、處理和控制,這可能是有益的。按照本文所使用的,配設表示例如將LSP配置為合作路由的或非合作路由的;即,雙向TE隧道的LSP是合作路由的還是非合作路由的。儘管系統管理器可以使用RSVP信令消息和對象來構建用於(一個或多個)節點的一組規則來確定LSP是合作路由的(或者不是),但是這樣的構建可能導致歧義和互操作性問題,因為不同的管理器可以構建不同的規則來推斷LSP是合作路由的(或者不是)。
【專利附圖】
【附圖說明】
[0004]本文的實施例可以通過結合附圖參照下文描述來更好的理解,在這些附圖中,相同的標號指示相同或功能類似的元件,其中:
[0005]圖1示出示例計算機網絡;
[0006]圖2示出示例節點/路由器;
[0007]圖3示出示例信令消息的各部分;
[0008]圖4示出示例擴展關聯對象的各部分;以及
[0009]圖5示出用於建立並用信號告知雙向分組TE隧道的合作路由LSP和非合作路由LSP的示例簡化程序。
[0010]示例實施例
[0011]
[0012]特定實施例可以使得能夠以相對於標籤交換路徑(LSP)/隧道的配設清楚的方式來建立並用信號告知雙向分組流量工程(TE)隧道的合作路由LSP和非合作路由LSP。頭端節點可以通過計算用於前向(可能是反向)LSP的(一個或多個)路徑來建立雙向TE隧道,然後使用例如對相關聯的資源預留協議(RSVP)信令方法的擴展來用信號告知雙向TE隧道。在一個實施例中,對相關聯的RSVP信令方法的擴展包括被運載在RSVP路徑消息中的多個附加關聯類型的擴展關聯對象,該RSVP路徑消息由頭端節點通過前向LSP發送至末端節點,其中,附加關聯類型明確標識雙向TE隧道的前向LSP和反向LSP的配設是合作路由還是非合作路由。
[0013]在接收到RSVP路徑消息後,末端節點可以檢查該消息的對象(包括擴展關聯對象),並且可以使用合作路由或非合作路由LSP的附加關聯類型來建立合適的反向LSP並用信號告知該反向LSP,以產生雙向TE隧道。例如,如果顯式路由對象(ERO) ( S卩,反向ER0)存在於RSVP路徑消息中,則末端節點可以使用該ERO來用信號告知反向LSP,而不管關聯類型。然而,如果ERO不存在於RSVP路徑消息中並且關聯類型是非合作路由,則末端節點可以計算反向LSP並且用信號告知該反向LSP。另外,如果ERO不存在於RSVP路徑消息中並且關聯類型為合作路由,則末端節點可以檢查該路徑消息來確定記錄路由對象(RRO)(即,路徑RR0)是否存在於該消息中。如果RRO存在,則末端節點可以使用RRO來用信號告知合作路由反向LSP。另一方面,如果RRO不存在於RSVP路由消息中,則末端節點可以嘗試計算反向LSP (並且之後用信號告知該反向LSP)。如果不能計算反向LSP (或之後用信號告知該反向LSP),則末端節點可以向頭端節點發送RSVP信令錯誤。
【具體實施方式】
[0014]計算機網絡是通過在端節點(例如,個人計算機和工作站)之間傳輸數據的通信鏈路和分段進行互連的節點的地理分布式集合。許多類型的網絡是可用的,類型範圍從區域網(LAN)至廣域網(WAN)。LAN—般通過位於相同的一般物理位置(例如,建築物或校園)的專用私有通信鏈路來連接節點。另一方面,WAN—般通過長距離通信鏈路(例如,公共載波電話線、光學光路、無線鏈路、同步光學網絡(SONET)或同步數字架構(SDH)鏈路)來連接地理上分散的節點。網際網路是連接全世界不同網絡的WAN的示例,網際網路提供各種網絡上的節點之間的全球通信。這些節點一般根據預定協議(例如,傳輸控制協議/網際網路協議(TCP/IP))通過網絡交換數據的離散幀或分組進行通信。在該上下文中,協議由定義節點如何相互交互的一組規則組成。計算機網絡還可以通過中間網絡節點(例如,路由器)進行互連以擴展每個網絡的有效「大小」。
[0015]由於互連的計算機網絡管理是繁重的,因此,可以將較小的計算機網絡群組作為路由域或自治系統進行維護。自治系統(AS)內的網絡一般通過域內路由器被耦合在一起,並且AS—般受制於共同權限,其中,域內路由器被配置為運行域內路由協議。然而,增加能夠交換數據的節點數目是可取的;在該情形中,運行域間路由協議的域間路由器被用來互連各個AS的節點。而且,將在不同的管理域下進行操作的各個AS互連是可取的。按照本文所使用的,AS、區域或等級一般被稱為「域」,並且互連不同域的路由器一般被稱為「邊界路由器」。
[0016]圖1示出示例計算機網絡100,該示例計算機網絡100示意性地包括由如圖所示的鏈路互連的節點(例如,路由器)A-E。按照本文所描述的,一個或多個隧道可以(例如,通過一個或多個中間節點(例如,節點B、C和D))遍歷頭端節點(例如,節點A)和末端節點(例如,節點D)之間的鏈路,這將被本領域技術人員所理解。本領域技術人員還將理解該計算機網絡中可以使用任意數目的節點、路由器、鏈路(例如,具有任意帶寬值),並且此處所示的視圖出於簡化的目的。而且,本領域技術人員還將理解,儘管本公開被一般地描述,但是本公開可以應用於例如客戶網絡和提供商核心網,這些客戶網絡和提供商核心網具有提供商和提供商邊緣路由器、單個AS或域內的任何網絡配置、或貫穿多個AS或域的任何網絡配置。
[0017]可以使用預定網絡協議(例如,傳輸控制協議/網際網路協議(TCP/IP)、用戶數據報協議(m)P)、異步傳送模式(ATM)協議、幀中繼協議和/或網際網路分組交換(IPX)協議)在計算機網絡100的節點之間交換數據分組。
[0018]圖2示出可以與本文所描述的一個或多個實施例一起使用的示例節點/路由器200,例如,頭端節點、末端節點或中間節點(標籤交換路由器,「LSR」)。該節點可以包括通過系統總線250進行互連的一個或多個網絡接口 210、一個或多個處理器220以及存儲器240。( 一個或多個)網絡接口 210包含用於通過被耦合至網絡100的物理鏈路和/或無線鏈路來傳輸數據的機械電路、電子電路和信令電路。(一個或多個)網絡接口可以被配置為使用各種不同的通信協議(尤其包括TCP/IP、UDP、ATM、同步光學網絡(SONET)、無線協議、幀中繼、乙太網和/或光纖分布式數據接口(FDDI))來發送和/或接收數據。應當注意,物理網絡接口 210還可以被用來實現一個或多個虛擬網絡接口,例如,用於本領域技術人員所熟知的虛擬專用網絡(VPN)訪問。
[0019]存儲器240包括用於存儲與本文所描述的實施例相關聯的軟體程序和數據結構的多個存儲位置,這些存儲位置可由(一個或多個)處理器220和(一個或多個)網絡接口210來尋址。(一個或多個)處理器220可以包括必要的元件或邏輯,這些元件或邏輯適於運行軟體程序並操作數據結構(例如,路由/轉發表格245和流量工程資料庫(TED) 247的路由或標籤)。作業系統242尤其通過調用支持在節點上運行的軟體過程和/或服務的操作來功能上組織節點,作業系統242的各部分一般駐留在存儲器240中,並且由(一個或多個)處理器運行。這些軟體過程和/或服務可以包括路由服務244、資源預留協議(RSVP)服務246以及流量工程(TE)/隧道服務248。可以使用其他處理器和存儲器類型(包括各種計算機可讀介質)來存儲並運行涉及本文所描述的實施例的程序指令,這對於本領域技術人員而言是顯而易見的。另外,儘管本文的描述說明各種過程/服務,但是應當明確考慮,各種過程/服務可以被具體化為模塊,這些模塊被配置為根據本文所描述的各實施例(例如,根據類似的過程/服務的功能)進行操作。
[0020]路由服務244包含計算機可執行指令,這些計算機可執行指令由(一個或多個)處理器220運行以執行諸如內部網關協議(IGP)(例如,本領域技術人員將理解的,開放最短路徑優先(OSPF)和中間系統到中間系統(IS-1S)和/或邊界網關協議(BGP))之類的一個或多個路由協議所提供的功能。這些功能可以被配置為管理路由和轉發表格245(包含例如用於做出路由和轉發決定的數據)。應當注意,路由服務244還可以執行與虛擬路由協議有關的功能,例如,本領域技術人員將理解的維護VRF實例(未示出)。
[0021]多協議標籤交換(MPLS)流量工程(TE)已被開發為滿足諸如保證可用帶寬或快速恢復之類的數據聯網要求。MPLS TE通過標籤交換路由器(LSR)的IP/MPLS網絡基於一系列約束利用現代標籤交換技術建立端到端隧道。這些隧道是一種標籤交換路徑(LSP),因此一般被稱為MPLSTE-LSP。MPLS-TE的示例可以在2001年12的題為「RSVP-TE =LSP隧道的RSVP 的擴展(RSVP-TE Extens1ns to RSVP for LSP TunnelsVIARFC 3209 中找到。
[0022]一般地,隧道是將一個協議的分組(頭部和數據)封裝在具有新的頭部的另一協議分組的數據欄位中的邏輯結構。以這種方式,所封裝的數據可以通過以其他方式不能穿過的網絡來發送。更重要地,隧道在兩個網絡節點之間創建透明的虛擬網絡鏈路,該鏈路一般不會受到物理網絡鏈路或設備的影響(即,物理網絡鏈路或設備僅基於新的頭部轉發所封裝的分組)。儘管隧道的一個示例是MPLS TE-LSP,但其他已知的隧道建立方法尤其包括二層隧道協議(L2TP)、點到點隧道協議(PPTP)以及IP隧道。
[0023]一些應用可以合併單向數據流,這些單向數據流被配置為根據某些「服務質量」(QoS)從計算機網絡中的源(發送器)向該網絡中的目的地(接收器)傳遞時間敏感流量。此處,網絡資源可以針對單向流進行預留,以確保與該數據流相關聯的QoS被維護。資源預留協議(RSVP)是使得應用能夠預留資源以獲得其數據流的特殊QoS的網絡控制協議。RSVP與路由協議協同工作,以便例如為計算機網絡中的數據流預留資源,從而建立該數據流所要求的QoS等級。RSVP在1997年九月由R.Braden等發表的RFC 2205 「資源預留協議(RSVP) (Resource ReSerVat1n Protocol (RSVP) 」中被定義。在流量工程應用的情形中,RSVP信令被用來建立TE-LSP (隧道),並且被用來服從一組所要求的約束沿著TE-LSP向路由器(例如,邊界路由器)傳達各種TE-LSP屬性,該TE-LSP的路徑可能已經通過各種方式被計算。
[0024]具體地,RSVP服務246包含用於根據本文所描述的實施例來實現RSVP並處RSVP消息的計算機可執行指令。而且,TE/隧道服務248包含用於根據本文所描述的實施例來實現TE功能的計算機可執行指令。流量工程的示例被描述在如上所述的RFC 3209中,以及日期為2003年I月、題為「通用多協議標籤交換(GMPLS)信令資源預留協議-流量工程(RSVP-TE)擴展(Generalized Mult1-Protocol Label Switching (GMPLS) SignalingResource ReSerVat1n Protocol-Traffic Engineering (RSVP-TE) Extens1ns),,的 RFC3473和題為「通用多協議標籤交換(GMPLS)信令功能描述(Generalized Mult1-ProtocolLabel Switching(GMPLS) Signaling Funct1nal Descript1n)」的 RFC 3471 中。TED 247可以被用來存儲路由協議(例如,IGP、BGP和/或RSVP (例如,具有本文所描述的TE擴展))提供的TE信息。TED可以示例性地由TE/隧道服務248進行維護和管理。
[0025]建立隧道(例如,MPLS ΤΕ-LSP)示例性地涉及:計算頭端節點(LSR)至末端節點之間的路徑;沿著該路徑發送信號;以及沿著該路徑在節點(包括中間節點(LSR))處修改轉發表格和/或資料庫。最佳地,按照一些度量(成本、長度等)進行測量,所計算的路徑是滿足所有相關LSP TE約束或屬性(例如,所要求的帶寬、偏好(避免或包括某些鏈路的管理約束)、優先級和/或類型)的「最短」路徑。按照本文進一步所描述的,路徑計算能由頭端節點或由末端節點來執行。各種路徑計算方法是可用的,包括本領域技術人員將理解的約束最短路徑優先(CSPF)。
[0026]隧道可以被配置在單個域(例如,區域、等級或AS)中或者還可以跨多個域(例如,區域、等級或AS),並且在某些條件下可以具有保證帶寬。說明性地,可以通過使用RSVP協議(具有流量工程擴展)(具體地,RSVP TE信令消息)來用信號告知該隧道。應當理解,使用RSVP只是作為示例,並且可以根據本文所描述的實施例使用其他通信協議。
[0027]根據RSVP,為了在發送器(頭端節點)和接收器(末端節點)之間請求數據流(隧道),發送器可以將RSVP路徑請求(路徑)消息沿著路徑(例如,單播路由)向下行發送至接收器,以標識發送器並且隨同隧道的其他屬性一起指示例如適合數據流的所需帶寬。路徑消息可以包含關於數據流的各種信息,例如包括數據流的流量特徵。還根據RSVP,接收器可以通過用預留請求(Resv)消息響應發送器的路徑消息來在發送器和接收器之間建立隧道。該Resv消息沿著流一跳接一跳地(即,沿著中間節點)從接收器向上行行進至發送器。該Resv消息可以包含用於中間節點沿著流來為發送器與接收器之間的數據流預留資源、確認隧道屬性以及提供隧道標籤的信息。如果發送器與接收器之間的路徑中的中間節點獲得了針對新的預留(隧道)或已建立的預留(隧道)的路徑消息或該Resv消息,並且遇到錯誤(例如,資源不足、故障網絡元件等),則中間節點生成路徑錯誤或預留錯誤(PathErr或ResvErr,下文稱為錯誤)消息並將這些錯誤消息分別轉發至發送器或接收器。
[0028]圖3示出可以與本文所描述的一個或多個實施例一起使用的示例信令消息300 (例如,諸如路徑、Resv或錯誤之類的RSVP消息)的各部分。按照本文所描述的,消息300尤其包含通用頭部310和一個或多個信令協議(RSVP)特定對象320,還包括一個或多個TE LSP屬性對象330以及擴展關聯對象400。通用頭部310可以包括源地址312和目的地地址314,表示消息300的起源和所請求的終止。協議特定對象320包含每種消息300 (例如,路徑、Resv、錯誤等)所需的對象。例如,路徑消息可以具有發送機模板對象、Tspec對象、前一跳對象等。另一方面,Resv消息可以具有用於標籤對象、會話對象、過濾器spec對象等的特定對象320。另外,錯誤消息300 (例如,PathErr或ResvErr)還可以具有諸如用於定義錯誤類型之類的特定對象320。
[0029]TE LSP屬性對象330可以包括顯式路由對象(ERO) 332、記錄路由對象(RRO) 334以及上行標籤對象336。當ERO 332被合併進RSVP路徑消息中時,ERO 332封裝節點(即,「跳」)的級聯,這構成顯式路由路徑。使用ER0,標籤交換RSVP-MPLS分組流量所採用的路徑能被預先確定,這些路徑獨立於常規的IP路徑。通過將RRO 334添加至路徑消息中,發送機節點能接收關於LSP隧道遍歷的實際路由的信息。也就是說,沿著路由/路徑的每個節點可以將路由信息(例如,下一跳的IP位址)記錄到RRO對象中。兩個方向的路由信息可以被收集到RRO子對象中(例如,路徑消息的路徑RRO和Resv消息的預留RR0),並且這些子對象共同地構成路徑RRO和預留RR0。發送機節點還能夠使用RRO 334來從網絡請求關於路由路徑變化的通知。上行標籤對象336可以被添加至路徑消息中來支持雙向LSP,如本文所描述的。本領域技術人員所理解的各種方法可以被用來產生被包含在隧道的信令消息中的ERO 332、RRO 334以及上行標籤對象336。
[0030]儘管對於一些應用而言單向隧道足夠了,但是其他應用可以使用被配置為通過計算機網絡從發送機向接收機傳遞某些QoS流量的雙向隧道。雙向分組TE隧道的示例為兩個MPLS TE LSP,其中,MPLS TE LSP之一為前向LSP(例如,從TE隧道的頭端節點延伸至該隧道的末端節點),而另一 MPLS TE LSP為反向LSP (例如,從末端節點延伸至頭端節點)。在實施例中,TE頭端節點可以通常通過首先針對前向LSP和反向LSP兩者執行CSPF計算來用信號告知該雙向隧道(兩個LSP)並且控制雙向隧道。說明性地,CSPF計算的約束可以針對帶寬,即,確保例如滿足一個或多個鏈路的最小帶寬要求。在允許處理(admiss1nprocess)(例如,呼叫允許控制(CAC)處理)期間,可以對帶寬約束方面執行檢查以確保路徑一旦被以信號告知,則所請求的帶寬是可用的。一旦CSPF計算已確定一個或多個路徑具有可能滿足雙向帶寬要求的可用性,則頭端節點然後可以使用例如具有路徑(和Resv)消息的RSVP協議來用信號告知該雙向隧道。
[0031]如本文所使用的,用於前向LSP的RSVP信令通常涉及通過所計算的前向LSP路徑從頭端節點向末端節點發送RSVP路徑消息,然後末端節點通過該路徑向頭端節點返回RSVP Resv消息。類似地,反向LSP的信令通常涉及通過所計算的反向LSP路徑從末端節點向頭端節點發送路徑消息,然後頭端節點通過該路徑返回Resv消息,該Resv消息最終到達末端節點。應當注意,如果TE頭端節點不提供針對反向LSP的ER0,則末端節點可以針對反向LSP執行CSPF計算。
[0032]在實施例中,頭端節點可以在路徑消息300中包括ERO 332,其中,ERO 332指定分組通過反向LSP進行遍歷的路徑(B卩,顯示(優選)路由)。通常,TE頭端節點(例如,向末端節點)傳達所計算的反向LSP的方式是通過ERO 332進行的。一旦建立TE隧道,頭端節點可以安排其本地轉發(例如,更新其路由/轉發表格245和/或TED 247)以在前向上運載分組流量。也就是說,一旦TE隧道已(例如通過CSPF)被計算並且(例如,通過RSVP路徑和Resv消息交換)被以信號告知,則本地轉發的安排被執行以通過前向LSP運載流量。
[0033]在接收到路徑消息後,TE末端節點可以在反向上創建隧道(S卩,反向LSP),並且用信號告知該反向LSP。如果ERO 332在路徑消息300中被提供,則TE末端節點使用ERO332的內容來創建反向LSP ;否則,TE末端節點可以通過執行CSPF計算確定反向LSP來創建LSP。之後,末端節點例如使用RSVP協議消息發送來用信號告知所計算的反向LSP。在實施例中,末端節點根據路徑/Resv消息交換通過經由所計算的路徑向末端節點發送RSVP路徑消息300來用信號告知該反向LSP。TE末端節點然後可以安排/更新其本地路由/轉發表格245和/或TED 247以在反向上運載分組流量。結果,雙向隧道的LSP (前向LSP和反向LSP)被創建、被以信號告知並被安排。
[0034]說明性地,再次參照圖1,頭端節點A可以沿著至末端節點D的所示路徑建立LSP(隧道)T1 (由實線表示),並且末端節點D可以沿著至頭端節點A的所示路徑建立LSP (隧道)T2 (由虛線表示),其中,Tl和T2共同形成雙向TE隧道。具體地,LSP/隧道Tl可以在節點A、B、C和D之間遍歷網絡100中的鏈路的路徑,而LSP/隧道T2可以在節點D、C、E、B和A之間遍歷網絡100中的鏈路的路徑。
[0035]在2003年I月發表的題為「通用多協議標籤交換(GMPLS)信令資源預留協議 _ 流量工程(RSVP-TE)擴展(Generalized Mult1-Protocol Label Switching(GMPLS)Signaling Resourse Reservat1n Protocol-Traffic Engineering(RSVP-TE)Extens1nsVI^RFC 3473中所描述的擴展通用多協議標籤交換(GMPLS)信令擴展可以被用來建立合作路由雙向分組TE隧道。如本文所使用的,合作路由雙向分組TE隧道表示雙向隧道,其中,前向LSP和反向LSP共享相同路徑(例如,(一個或多個)相同節點和(一個或多個)相同鏈路)。RFC 3473(和RFC 3471)使得能夠使用信令消息的信號集合來建立雙向隧道的下行(前向)和上行(反向)數據路徑(LSP)兩者,例如,一個RSVP路徑消息針對前向LSP和反向LSP兩者被發送,並且一個RSVP Resv消息針對前向LSP和反向LSP兩者被發送。在一個或多個實施例中,如本領域技術人員所理解的,雙向隧道的建立可以通過在合適的信令消息(例如,RSVP路徑消息)中出現的上行標籤對象336被指示。
[0036]可替代地,相關聯的資源預留協議(RSVP)信令方法(在2012年3月的網際網路草案中張等人的「相關聯的雙向LSP的RSVP-TE擴展〈draft-1etf-ccamp-mpls-tp-rsvpte-ext-associated_lsp-03>(RSVP-TE Extens1ns for Associated Bidirect1nal LSPs) 」 中所描述的)能被用來建立合作路由或非合作路由的雙向分組TE隧道。如上所述,合作路由雙向TE隧道針對其前向LSP和反向LSP兩者使用相同路徑。相反地,非合作路由雙向分組TE隧道表示使用兩個不同路徑(即,前向LSP路徑與反向LSP路徑不同)的雙向隧道。說明性地,如本文先前所描述的,相關聯的RSVP信令方法使得能夠使用針對前向LSP和反向LSP中的每個LSP的RSVP信令(即,路徑/Resv消息交換)來建立雙向隧道。具體地,相關聯的RSVP信令方法可以被用來(例如,通過使用擴展關聯對象400的關聯類型來綁定或關聯兩個獨立的單向LSP)建立合作路由(或非合作路由)雙向分組TE隧道。
[0037]圖4示出可以與本文所描述的一個或多個實施例一起使用的示例擴展關聯對象400的各部分。對象400尤其包括關聯類型欄位410、關聯標識符(ID)欄位420、關聯源欄位430、全局關聯源欄位440,並且可選地包括擴展關聯ID欄位450。如本文進一步所描述的,關聯類型欄位410包含指示被標識的關聯類型的值。關聯ID欄位420包含由發起該關聯的節點所指派的值,當該欄位與對象400中運載的其他欄位被組合時,該欄位唯一標識關聯。關聯源欄位430分別包含IPv4或IPv6地址,該地址被關聯至發起該關聯的節點。全局關聯源欄位440包含這樣的值,該值為唯一全局標識符,並且擴展關聯ID欄位450包含這樣的數據,該數據是支持唯一標識的附加信息。
[0038]為了將兩個反向單向LSP綁定為相關聯的雙向LSP/隧道,〈draft-1etf-ccamp-mpls-tp-rsvpte-ext-associated-lsp-03>針對擴展關聯對象400的欄位410列出以下關聯類型:
[0039](I)雙側關聯雙向LSP(D);和
[0040](2)單側關聯雙向LSP(A)。
[0041]廣泛地說,單側配設表示雙向隧道在該隧道一端(例如,頭端節點)的配置,包括指定所計算的路徑的類型的屬性和路徑選項。也就是說,頭端節點可以在計算前向LSP和反向LSP兩者之前配設隧道,並且說明性地,頭端節點可以例如通過使用路徑消息300中的ERO 332來傳達反向LSP。該隧道的另一端(例如,末端節點)可以接收路徑消息,並且作為響應,可以動態創建隧道並用信號告知該隧道。
[0042]雙側配設表示在隧道的兩端均存在配置;然而,配置的量可能變化。此處,頭端節點可以使用其配置來配設隧道,並且針對前向LSP和反向LSP兩者執行路徑計算,並且為反向LSP提供ER0。如果頭端節點通過ERO指示反向LSP的路徑,則末端節點可以使用所計算的路徑。然而,如果頭端節點不通過ERO指示反向LSP的路徑,則末端節點可以例如使用消息的一個或多個其他對象來利用所計算的路徑,或者可以利用其配置來配設隧道,並且執行CSPF計算來創建反向LSP的路徑。
[0043]說明性地,再次參照圖1,頭端節點A可以根據例如〈draft-1etf-ccamp-mpls-tp-rsvpte-ext-associated-lsp-03>所提供的單側關聯雙向配設來將LSP/隧道Tl (由實線表示)和LSP/隧道T2(由虛線表示)分別作為雙向隧道的前向LSP和反向LSP進行配設、計算和以信號告知。可替代地,例如根據相關聯的RSVP信令方法所提供的雙面關聯雙側配設,頭端節點A可以將LSP/隧道Tl作為前向LSP進行配設、計算和以信號告知,末端節點D可以將LSP/隧道Τ2作為雙向隧道的反向LSP進行配設、計算和以信號告知。
[0044]然而, 不提供LSP的合作路由或非合作路由配設的顯式指示(例如,通過其提供的關聯類型),這可能導致不同管理器之間的互操作問題,並且導致這些管理器關於建立合作路由或非合作路由LSP的意圖。例如,假設由頭端節點發送至末端節點的RSVP路徑消息300包括擴展關聯對象400和RRO 334,但不包括ERO 332。路徑300中沒有ERO 332可以向末端節點指示其應當只計算反向LSP作為非合作路由LSP。而使用路徑消息300中的RRO信息來建立合作路由LSP可能是管理器的意圖。可替代地,RRO 334的意圖可能出於管理目的來僅記錄路徑而不配設合作路由LSP。這樣的情況可能導致模糊性並且不能明確確定LSP應該是合作路由還是非合作路由。
[0045]結果,向雙向TE隧道的一個或多個節點指示LSP是作為合作路由還是作為非合作路由進行配設以確保對例如反向LSP進行恰當信號告知、處理以及控制,這是有益的。儘管系統管理器可以使用RSVP信令消息和對象針對(一個或多個)節點構建一組規則來確定LSP是否為合作路由,但是這樣的構建還可能導致互操作問題,因為不同的管理器可能構建不同的規則來推斷LSP是否為合作路由。如另一示例,假設RSVP信令消息和對象包括具有擴展關聯對象400、ER0 332和RRO 334的RSVP路徑消息300,其中,ERO 332向末端節點指定用於反向LSP的(由頭端節點計算的)路徑(即,反向LSP ER0),並且RRO 334記錄前向LSP的路徑(即,前向LSP路徑RR0)。應當注意,ERO中所指定的路徑可以通過頭端節點使用例如CSPF計算來確定。這組規則可以指定末端節點將被包含在前向RSVP路徑消息中的前向LSP路徑RRO的內容與反向LSP ERO的內容進行比較。然而,該方法可能是模糊的,因為儘管該比較可以顯示(例如,通過CSPF所計算的)路由是相同的,但是管理器可能尚未將該路徑作為合作路由路徑。
[0046]另外,這組規則可以指定關聯ID 420(例如,隧道序號)在雙向隧道的中點節點處被檢查,以推斷LSP是合作路由還是非合作路由,其中,關聯ID 420被運載在遍歷前向LSP和反向LSP的路徑消息300的擴展關聯對象400中。然而,該方法也可能是模糊的,因為儘管該檢查顯示ID匹配,從而推斷為合作路由,但LSP可能是非合作路由LSP,在前向和反向中遍歷相同路徑時出現該情況。
[0047]對相關聯的RSVP信令方法的擴展
[0048]具體實施例可以使得能夠以相對於LSP/隧道的配設清楚的方式建立雙向分組TE隧道的合作路由LSP和非合作路由LSP,並且用信號對其進行告知。雙向TE隧道說明性地包括前向LSP和反向LSP。頭端節點可以通過計算用於前向(可能是反向)LSP的路徑來建立雙向TE隧道,然後使用例如本文所描述的對相關聯的RSVP信令方法的擴展來用信號告知雙向TE隧道。在實施例中,對相關聯的RSVP信令方法的擴展包括被運載在RSVP路徑消息300中的多個附加關聯類型410的擴展關聯對象400,該RSVP路徑消息由頭端節點通過前向LSP發送至末端節點,其中,附加關聯類型410明確標識前向LSP和反向LSP的配設是合作路由還是非合作路由。這些附加關聯類型410包括:
[0049]合作路由雙側關聯雙向LSP(D)
[0050]合作路由單側關聯雙向LSP(A)
[0051]非合作路由雙側關聯雙向LSP(D)
[0052]非合作路由單側關聯雙向LSP(A)
[0053]在接收RSVP路徑消息300時,末端節點可以檢查該消息的對象(包括擴展關聯對象400),並且可以使用合作路由或非合作路由LSP的附加關聯類型410來建立合適的反向LSP並用信號告知該反向LSP,以產生雙向TE隧道。例如,如果ERO 332 (例如,反向ER0)存在於RSVP路徑消息300中,則末端節點可以使用該ERO來用信號告知反向LSP,而不管關聯類型410。然而,如果反向ERO不存在於RSVP路徑消息300中並且關聯類型410是非合作路由(例如,非合作路由雙面關聯雙向LSP),則末端節點可以計算反向LSP的路徑(例如,計算反向LSP的ER0),並且用信號告知該反向LSP。另外,如果反向ERO不存在於RSVP路徑消息300中並且關聯類型410為合作路由(例如,合作路由雙面關聯雙向LSP),則末端節點可以檢查該路徑消息來確定RRO 334 (例如,路徑RR0)是否存在於該消息中。如果RRO存在,則末端節點可以使用路徑RRO來用信號告知合作路由反向LSP(例如,如RRO中所記錄的)。另一方面,如果路徑RRO不存在於RSVP路由消息中,則末端節點可以嘗試計算反向LSP (並且之後用信號對其進行告知)。如果不能計算反向LSP (或之後用信號對其進行告知),則末端節點可以向頭端節點發送RSVP信令錯誤。
[0054]根據本文所描述的一個或多個實施例,末端節點還可以檢查所接收的RSVP路徑消息300的對象(包括擴展關聯對象400),並且可以使用合作路由或非合作路由LSP的附加關聯類型410來配設、重新建立、以信號告知和/或控制反向LSP,以響應於例如由於信令錯誤、重新優化(即,尋找更好路徑的需要)和/或路徑驗證(即,驗證路徑)而出現的中斷/故障。例如,如果反向ERO存在於由頭端節點發起的RSVP路徑消息300中,則末端節點可以使用反向ERO來將錯誤信息中繼至發起頭端節點,命令頭端節點處理該錯誤。如本文所使用的,發起頭端節點是被配置為針對兩個方向執行路徑計算的節點,而實際的頭端節點是針對前向LSP的發起頭端節點或者是針對反向LSP的末端節點。
[0055]可替代地,如果路徑RRO存在於路徑消息300中,並且關聯類型410是合作路由(例如,合作路由單面關聯雙向LSP),則末端節點可以使用例如路徑RRO來首先嘗試重新建立反向LSP。然而,如果不能重新建立反向LSP,則末端節點可以將故障(例如,信令錯誤或路徑驗證錯誤)通知給發起頭端節點。說明性地,末端節點例如通過發送命令頭端節點處理錯誤的錯誤消息(例如,路徑錯誤消息)來將故障通知給發起頭端節點。而且,如果關聯類型是非合作路由(例如,非合作路由雙面關聯雙向LSP),則末端節點可以針對反向LSP計算可替代的路徑,並且重新用信號告知該路徑。如果不能計算反向LSP,則末端節點可以使用例如錯誤消息來將故障通知給發起頭端節點。
[0056]根據本文所描述的一個或多個實施例,中點節點(即,雙向隧道中點處的節點)可以檢查RSVP信令消息的對象(包括擴展關聯對象400),並且可以使用合作路由或非合作路由LSP的附加關聯類型410,以確定RSVP信令錯誤消息是應該在一個方向(至實際頭端節點)還是在兩個方向(至發起頭端節點和實際頭端節點)上被發送。如上所述,響應於LSP的中點節點處所滿足的帶寬要求,頭端節點可以用信號告知前向LSP。例如根據CAC處理,帶寬要求由中點節點進行後續檢查,以確保前向LSP仍能運載所請求的流量的量。當用信號告知前向LSP時,中點節點可以檢查擴展關聯對象400的關聯類型欄位410,以確定LSP關聯是合作路由還是非合作路由。如果關聯是合作路由(例如,合作路由單面關聯雙向LSP),則中點節點還可以執行CAC處理來檢查反向LSP的帶寬。這樣,中點節點能夠(例如,在建立反向LSP期間)檢查潛在故障,並且通知發起頭端節點,以使得發起頭端節點可以立即嘗試計算可替代的路徑。
[0057]說明性地,信令錯誤消息可以由中點節點發送至合作路由LSP的發起頭端節點和末端節點(例如,通過發送至實際頭端節點的RSVP錯誤消息和發送至發起頭端節點的RSVP通知消息),其中,可以僅在非合作路由LSP的情形中才將信令錯誤消息發送至實際頭端節點。應當注意,中點節點使用擴展關聯對象400的關聯類型410(而不是例如關聯ID 420)來確定LSP是合作路由還是非合作路由。這是因為檢查遍歷前向LSP和反向LSP的信令消息中的關聯ID 420不足以在中點節點處推斷LSP是合作路由還是非合作路由,因為非合作路由LSP可以在前向和反向遍歷相同路徑。
[0058]圖5示出根據本文所描述的一個或多個實施例的用於建立雙向分組TE隧道的合作路由LSP和非合作路由LSP並用信號進行告知的示例簡化程序。頭端節點可以通過計算前向(可能是反向)LSP來建立雙向TE隧道。頭端節點然後可以通過將RSVP路徑消息經由前向LSP發送至末端節點來用信號告知雙向TE隧道。路徑消息可以包括對象,例如,指定多個附加關聯類型之一的擴展關聯對象,附加關聯類型明確標識前向LSP和反向LSP作為合作路由或非合作路由的配設。
[0059]程序500開始於框505處,並且前進至框510,在框510處,末端節點接收RSVP路徑消息,並且在框515處,檢查用來建立合適的反向LSP並對其用信號進行告知的消息的對象(包括擴展關聯對象),並且產生雙向TE隧道。在框520處,末端節點檢查這些對象以確定ERO (例如,反向ER0)是否存在於RSVP路徑消息中。響應於ERO存在於路徑消息中,在框525處,末端節點用信號告知由該ERO指定的反向LSP,並且該程序在框565處結束。然而,響應於ERO不存在於RSVP路徑消息中,在框530處,末端節點檢查該消息的擴展關聯對象來確定LSP的關聯類型是否為非合作路由。響應於關聯類型為非合作路由(即,是),在框535處,末端節點嘗試計算反向LSP並用信號對其進行告知。響應於框540處的嘗試成功,該程序在框565處結束。響應於框540處的嘗試不成功,即,末端節點不能計算反向LSP或對其用信號進行告知,則在框545處,末端節點向頭端節點發送RSVP信令錯誤消息,並且該程序在框565處結束。然而,響應於框530處的關聯類型為合作路由(即,否),則在框550處,末端節點檢查RSVP路徑消息來確定RRO (例如,路徑RR0)是否存在於路徑消息中。響應於路徑RRO存在,在框560處,末端節點使用路徑RRO來用信號告知被記錄在該RRO中的反向LSP,並且該程序在框565處結束。響應於框550處的RRO不存在於RSVP路徑消息中,則在框535處,末端節點嘗試計算反向LSP並且對其用信號進行告知。響應於框540處的嘗試成功,該程序在框565處結束。響應於框540處的嘗試不成功,在框545處,末端節點向頭端節點發送RSVP信令錯誤消息,並且該程序在框565處結束。
[0060]有利地,本文所描述的各個實施例可以被用來(例如,通過使得節點能夠僅檢查RSVP路徑消息300中運載的擴展關聯對象400的關聯類型410 (例如,非合作路由雙面關聯雙向LSP或非合作路由單面關聯雙向LSP),從而避免由頭端節點對反向LSP路徑ERO信息或前向LSP路徑RRO信息進行計算和以信號告知)建立非合作路雙向LSP。本文所描述的實施例還可以被用來通過末端節點僅檢查頭端節點所指示的擴展關聯對象400的關聯類型410 (例如,合作路由雙面關聯雙向LSP或合作路由單面關聯雙向LSP)來建立合作路由雙向LSP。響應於確定LSP的合作路由配設類型,末端節點可以(例如,使用前向路徑RRO信息)計算反向LSP並對其用信號進行告知。應當注意,檢查路徑消息中RRO的內容不能使得末端節點推斷LSP的合作路由關聯類型。
[0061]本文所描述的各實施例還用於建立具有合作路由或非合作路由LSP的域間雙向TE隧道,其中,頭端節點不具有完整的(例如其他域的)TE拓撲資料庫,也不具有計算反向中端到端路徑的能力。相應地,對於這樣的域間雙向隧道建立,中點邊界節點能夠結合ERO使用LSP的附加關聯類型410來在反向中執行鬆散跳ERO擴張。雙向隧道的末端節點還可以針對合作路由LSP和非合作路由LSP提供合適的本地處理,而不需要將有關信息中繼到頭端節點以用信號告知反向LSP、重新用信號進行告知以及對其重新優化,從而改善了 TE的收斂並且最小化流量損失。另外,本文所描述的實施例在多個供應商環境中是互操作的,因為這消除了合作路由或非合作路由LSP的關聯類型的模糊性。
[0062]儘管已經示出並描述了示例實施例來使得能夠以相對於LSP/隧道的配設清楚的方式建立雙向TE隧道的合作路由和非合作路由LSP並對其用信號進行告知,但是應當理解,可以在本文的實施例的精神和範圍內做出各種其他的適應和修改。例如,儘管本文所描述的實施例中的一個或多個實施例可以針對單個域雙向LSP/隧道,但是本文的教導同樣適用於域間雙向LSP/隧道。此處,頭端節點可以創建遍歷多個域的TE LSP路徑。然而,頭端節點不知道特定域的內部路由信息;然而,可能需要路由信息來指定路徑ERO內的路由。因此,頭端節點可以依賴於ERO內鬆散的抽象節點,並且中點邊界節點可以執行CSPF計算或針對其特定域計算LSP。因此,頭端節點可以通過前向LSP發送RSVP路徑消息,並且中點邊界路由器可以對鬆散的抽象節點執行ERO擴張來計算其域的路徑。邊界節點還可以檢查RSVP路徑消息300內的擴展關聯對象400的關聯類型410,以確定LSP是合作路由還是非合作路由。通過檢查關聯類型欄位410,邊界節點可以以簡單、直接並且清楚的方式來確定LSP的合作路由或非合作路由配設,從而可以相應地配設雙向TE隧道。
[0063]前面的描述已針對具體實施例。然而,可以在達到這些實施例的一些或全部優點的情況下對所描述的實施例做出其他變化和修改,這將是顯而易見的。例如,應當明確考慮,本文所描述的部件和/或元件能被實現為被編碼在一個或多個有形(非易失性)的計算機可讀存儲介質(例如,盤/CD等)上的軟體,該計算機可讀存儲介質具有在計算機、硬體、固件或其組合上運行的程序指令。因此,本說明書只採用示例的方式,並不限制本文實施例的範圍。因此,所附權利要求的目標是覆蓋進入本文實施例的真實精神和範圍內的所有這樣的變化和修改。
【權利要求】
1.一種方法,包括: 在雙向隧道的末端節點處接收第一路徑消息,所述第一路徑消息由頭端節點通過所述雙向隧道的前向路徑進行發送,所述第一路徑消息包括一個或多個對象,所述一個或多個對象被用來建立所述雙向隧道的反向路徑並用信號告知所述雙向隧道的反向路徑; 檢查所述第一路徑消息的所述一個或多個對象,以確定顯式路由對象(ERO)是否存在於所述第一路徑消息中; 響應於所述ERO存在於所述第一路徑消息中,用信號告知由所述ERO所指定的反向路徑;以及 響應於所述ERO不存在於所述第一路徑消息中, 檢查所述消息的擴展關聯對象,以確定所述路徑的關聯類型是合作路由還是非合作路由;以及 響應於所述關聯類型為非合作路由,計算所述反向路徑並用信號告知所述反向路徑。
2.如權利要求1所述的方法,其中,所述關聯類型為非合作路由雙面關聯雙向LSP。
3.如權利要求1所述的方法,其中,所述第一路徑消息為第一資源預留協議(RSVP)路徑消息,並且其中,所述雙向隧道為雙向流量工程(TE)隧道。
4.如權利要求1所述的方法,其中,所述前向路徑為前向標籤交換路徑(LSP),並且其中,所述反向路徑為反向LSP。
5.如權利要求1所述的方法,其中,所述ERO為反向ER0。
6.如權利要求1所述的方法,其中,用信號告知所述反向路徑還包括: 通過所述反向路徑從所述末端節點向所述頭端節點發送第二路徑消息;以及 在所述末端節點處接收來自所述頭端節點的返回預留消息。
7.如權利要求1所述的方法,還包括: 響應於所述ERO不存在於所述第一路徑消息中,並且所述關聯類型為合作路由, 檢查所述第一路徑消息的所述一個或多個對象,以確定記錄路由對象(RRO)是否存在於所述第一路徑消息中;以及 響應於所述RRO存在於所述第一路徑消息中,用信號告知所述RRO中所記錄的反向路徑。
8.如權利要求7所述的方法,其中,所述RRO為路徑RR0。
9.如權利要求7所述的方法,還包括: 響應於所述RRO不存在於所述第一路徑消息中,計算所述反向路徑並且用信號告知所述反向路徑。
10.如權利要求9所述的方法,還包括: 響應於未成功計算所述反向路徑或用信號告知所述反向路徑,從所述末端節點向所述頭端節點發送錯誤消息。
11.如權利要求1所述的方法,還包括,響應於所述ERO存在於所述第一路徑消息中: 將錯誤信息中繼至所述頭端節點以響應故障的發生。
12.—種系統,包括: 網絡接口,所述網絡接口被連接至網絡,所述網絡接口適於通過所述網絡的雙向隧道的前向路徑接收由頭端節點發送的第一路徑消息,所述第一路徑消息包括一個或多個對象,所述一個或多個對象被用來建立所述雙向隧道的反向路徑並用信號告知所述雙向隧道的反向路徑; 處理器,所述處理器被耦合於所述網絡接口,並且所述處理器適於運行一個或多個處理;以及 存儲器,所述存儲器被配置為存儲可由所述處理器運行的所述一個或多個處理,當所述一個或多個處理被運行時可操作以: 檢查所述第一路徑消息的所述一個或多個對象,以確定顯式路由對象(ERO)是否存在於所述第一路徑消息中; 響應於所述ERO存在於所述第一路徑消息中,用信號告知由所述ERO所指定的反向路徑;以及 響應於所述ERO不存在於所述第一路徑消息中, 檢查所述消息的擴展關聯對象,以確定所述路徑的關聯類型是合作路由還是非合作路由;以及 響應於所述關聯類型為非合作路由,計算所述反向路徑並用信號告知所述反向路徑。
13.如權利要求12所述的系統,其中,所述關聯類型為非合作路由雙面關聯雙向LSP。
14.如權利要求12所述的系統,其中,所述第一路徑消息為第一資源預留協議(RSVP)路徑消息,並且其中,所述雙向隧道為雙向流量工程(TE)隧道。
15.如權利要求12所述的系統,其中,所述前向路徑為前向標籤交換路徑(LSP),並且其中,所述反向路徑為反向LSP。
16.如權利要求12所述的系統,其中,當所述一個或多個處理被運行以用信號告知所述反向路徑時,還可操作以: 通過所述反向路徑從所述末端節點向所述頭端節點發送第二路徑消息;以及 在所述末端節點處接收來自所述頭端節點的返回預留消息。
17.如權利要求12所述的系統,其中,當所述一個或多個處理被運行時,還可操作以: 響應於所述ERO不存在於所述第一路徑消息中,並且所述關聯類型為合作路由,檢查所述第一路徑消息的所述一個或多個對象,以確定記錄路由對象(RRO)是否存在於所述第一路徑消息中;以及 響應於所述RRO存在於所述第一路徑消息中,用信號告知所述RRO中所記錄的反向路徑。
18.如權利要求12所述的系統,其中,當所述一個或多個處理被運行時,還可操作以: 響應於所述RRO不存在於所述第一路徑消息中,計算所述反向路徑並且用信號告知所述反向路徑。
19.如權利要求18所述的系統,其中,當所述一個或多個處理被運行時,還可操作以: 響應於未成功計算所述反向路徑或用信號告知所述反向路徑,向所述頭端節點發送錯誤消息。
20.編碼有軟體的一個或多個計算機可讀存儲介質,所述軟體包括計算機可執行指令,並且當所述軟體被運行時可操作以: 在雙向隧道的末端節點處接收路徑消息,所述路徑消息由頭端節點通過所述雙向隧道的前向路徑進行發送,所述路徑消息包括一個或多個對象,所述一個或多個對象被用來建立所述雙向隧道的反向路徑並用信號告知所述雙向隧道的反向路徑; 檢查所述路徑消息的所述一個或多個對象,以確定顯式路由對象(ERO)是否存在於所述路徑消息中; 響應於所述ERO存在於所述路徑消息中,用信號告知由所述ERO所指定的反向路徑;以及 響應於所述ERO不存在於所述路徑消息中, 檢查所述消息的擴展關聯對象,以確定所述路徑的關聯類型是合作路由還是非合作路由;以及 響應於所述關聯類型是非合作路由,計算所述反向路徑並用信號告知所述反向路徑。
【文檔編號】H04L12/913GK104429030SQ201380035471
【公開日】2015年3月18日 申請日期:2013年6月27日 優先權日:2012年7月3日
【發明者】拉克什·岡赫, 馬薩拉傑·斯瓦巴蘭 申請人:思科技術公司