專利名稱:使用rsvp-te在標(biāo)簽交換路徑上負(fù)載均衡網(wǎng)絡(luò)流量的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò),更具體地,涉及計(jì)算機(jī)網(wǎng)絡(luò)內(nèi)的流量管理。
背景技術(shù):
術(shù)語“鏈路,,通常用于指計(jì)算機(jī)網(wǎng)絡(luò)中兩臺(tái)設(shè)備之間的連接。鏈路可以是諸如銅 線、同軸電纜、任何大量不同的光纖的物理介質(zhì)或無線連接。此外,網(wǎng)絡(luò)設(shè)備可以定義“虛 擬”或“邏輯”鏈路,并將虛擬鏈路映射到物理鏈路。隨著網(wǎng)絡(luò)在規(guī)模和復(fù)雜性上的增長(zhǎng),在 任何給定鏈路上的流量可接近鏈路的最大帶寬容量,從而導(dǎo)致?lián)砣蛽p耗。多協(xié)議標(biāo)簽交換(MPLS)是一種用于管理網(wǎng)際協(xié)議(IP)網(wǎng)絡(luò)內(nèi)流量模式的機(jī)制。 通過利用MPLS,源設(shè)備可以請(qǐng)求通過網(wǎng)絡(luò)的路徑,即標(biāo)簽交換路徑(LSP)。LSP定義了不同 的通過網(wǎng)絡(luò)的路徑,以從源設(shè)備向目的設(shè)備傳送MPLS包。與特定LSP相關(guān)聯(lián)的短標(biāo)簽附加 到經(jīng)由LSP通過網(wǎng)絡(luò)傳送的包。沿路徑的路由器共同完成MPLS操作,以沿建立的路徑轉(zhuǎn)發(fā) MPLS包。LSP可用于包括帶寬管理和服務(wù)質(zhì)量(QoS)的各種流量管理目的。存在建立LSP的各種協(xié)議。例如,一個(gè)這樣的協(xié)議是標(biāo)簽分發(fā)協(xié)議(LDP)。標(biāo)簽 交換路由器(LSR)通過其分發(fā)標(biāo)簽以支持沿通常路由路徑的MPLS轉(zhuǎn)發(fā)的LDP的程序在互 聯(lián)網(wǎng)工程任務(wù)組(IETF)的RFC 3036的“LDP規(guī)范”中有描述,通過引用結(jié)合于此。另一種 類型的協(xié)議是資源預(yù)留協(xié)議,諸如基于流量工程擴(kuò)展的資源預(yù)留協(xié)議(RSVP-TE)。RSVP-TE 使用諸如可用帶寬的約束信息在網(wǎng)絡(luò)內(nèi)計(jì)算和建立多個(gè)LSP。RSVP-TE可以使用由諸如中 間系統(tǒng)-中間系統(tǒng)(IS-IS)協(xié)議或開放最短路徑優(yōu)先協(xié)議的鏈路狀態(tài)內(nèi)部路由協(xié)議收集的 可用帶寬信息。RSVP-TE建立沿從入口設(shè)備到出口設(shè)備的單一路徑的LSP,并且,在LSP上 發(fā)送的所有網(wǎng)絡(luò)流量必須完全沿此單一路徑。使用RSVP(資源預(yù)留協(xié)議)(包括擴(kuò)展)在 MPLS中建立LSP,在2001年12月的IETF的RFC 3209里中有描述,通過引用結(jié)合于此。
發(fā)明內(nèi)容
總的來說,本發(fā)明旨在提供使用允許建立具有預(yù)留帶寬的標(biāo)簽交換路徑(LSP)的 資源預(yù)留協(xié)議(諸如基于流量工程的資源預(yù)留協(xié)議(RSVP-TE)),來負(fù)載均衡在網(wǎng)絡(luò)上發(fā)送 的網(wǎng)絡(luò)流量的技術(shù)。該技術(shù)包括使路由器能夠發(fā)送用于建立包括多個(gè)子路徑的通道的RSVP 路徑消息的擴(kuò)展的RSVP-TE協(xié)議。該通道可包括被配置為在網(wǎng)絡(luò)的RSVP-TE LSP的不同子 路徑上負(fù)載均衡網(wǎng)絡(luò)流量的單一 RSVP-TE LSP0該技術(shù)包括使路由器能夠建立新型流量工程LSP (本文指負(fù)載均衡流量工程(TE) LSP)的擴(kuò)展的RSVP-TE協(xié)議。本文描述的負(fù)載均衡TE LSP是形成以包含許多在其上負(fù)載 均衡流量的子路徑的單一的LSP。在沿LSP上每一跳,節(jié)點(diǎn)(即,LSR)可將路徑或子路徑分叉出多個(gè)子路徑,每個(gè)遍歷可選路徑到達(dá)LSP的目的地。當(dāng)在建立總體負(fù)載均衡TE LSP的 同時(shí)選擇子路徑時(shí),每個(gè)節(jié)點(diǎn)確保每個(gè)子路徑滿足流量工程LSP的流量工程約束,諸如帶 寬、鏈路色、共享風(fēng)險(xiǎn)鏈路組(SRLG)等。給定的節(jié)點(diǎn)通過子路徑可劃分一些約束(諸如帶 寬)以滿足LSP的總約束。流量工程LSP的多個(gè)子路徑的“結(jié)合點(diǎn)”的節(jié)點(diǎn)負(fù)責(zé)請(qǐng)求占用 由在那個(gè)節(jié)點(diǎn)處結(jié)合的每條子路徑需求的總帶寬的下游路徑(多條下游路徑)。此外,在負(fù) 載均衡TE LSP中的每個(gè)節(jié)點(diǎn)被配置為在從節(jié)點(diǎn)出現(xiàn)的負(fù)載均衡TE LSP的子路徑上負(fù)載均 衡流量。在建立負(fù)載均衡TE LSP之后,沿TE LSP的接收去往TE LSP的出口的網(wǎng)絡(luò)流量(例如,MPLS網(wǎng)絡(luò)流量)的節(jié)點(diǎn)實(shí)現(xiàn)流級(jí)別(flow-level)負(fù)載均衡以在節(jié)點(diǎn)的下游子路徑 之中分配流量。例如,節(jié)點(diǎn)可使用基于流的哈希函數(shù)分離流量以給同一子路徑分配同一包 流的包,還在子路徑上提供負(fù)載均衡度。如果一個(gè)包流開始使用多于它享用的帶寬,節(jié)點(diǎn)可 調(diào)整流的哈希表以在子路徑上重新分配包流。以這種方式,在負(fù)載均衡TE LSP的子路徑上 負(fù)載均衡從入口到出口的網(wǎng)絡(luò)流量使得大體平均地利用TE LSP的所有子路徑。攜帶單播流量的TE LSP通常在一個(gè)節(jié)點(diǎn)(入口)開始,并在另一各節(jié)點(diǎn)(出口) 結(jié)束。負(fù)載均衡TE LSP可以有多個(gè)出口,如果對(duì)LSP攜帶的流量來說這些出口節(jié)點(diǎn)視為相 當(dāng)。即,可存在大量對(duì)單播LSP同等有效的出口。使用本文所述的技術(shù)配置的負(fù)載均衡LSP 的網(wǎng)絡(luò)設(shè)備可以計(jì)算到各種出口的多個(gè)路徑,并在子路徑和出口上均衡流量。應(yīng)注意,在入 口節(jié)點(diǎn)進(jìn)入負(fù)載均衡TE LSP的給定的包遍歷LSP確切的一條子路徑,并因此且到達(dá)確切的 一個(gè)出口節(jié)點(diǎn)。這將多播(點(diǎn)到多點(diǎn))LSPs與負(fù)載均衡LSP區(qū)分開來。 在其他實(shí)施方式中,設(shè)備可被配置成形成負(fù)載均衡點(diǎn)到多點(diǎn)(P2MP) LSP。在這些實(shí) 例中,可以在整個(gè)P2MP LSP上負(fù)載均衡流量。該技術(shù)可提供一個(gè)或多個(gè)優(yōu)點(diǎn)。例如,該技術(shù)可以允許網(wǎng)絡(luò)中的設(shè)備更好地利用 網(wǎng)絡(luò)上不同路徑上的可用帶寬。例如,該技術(shù)不是在同一對(duì)端點(diǎn)之間創(chuàng)建多個(gè)獨(dú)立的LSP 并然后在這些獨(dú)立的LSPs之間盡力固定地分配流量,而是在具有子路徑的一對(duì)端點(diǎn)之間 建立單一的RSVP-TE LSP,其中,LSP中的節(jié)點(diǎn)在該子路徑上負(fù)載均衡流量。這種使用負(fù)載 均衡的方法比需要將流量分成預(yù)定義的“存儲(chǔ)桶”的方法更有效地利用可用帶寬。此外,本 文所述的技術(shù)可減少在網(wǎng)絡(luò)中需要維護(hù)的狀態(tài)的量,因?yàn)樵摷夹g(shù)將在一對(duì)端點(diǎn)之間建立單 一的RSVP-TE LSP,而不是在同一對(duì)端點(diǎn)之間建立多個(gè)獨(dú)立的LSP。此外,如果給定的節(jié)點(diǎn)有 多個(gè)下游子路徑,并且在一條子路徑中發(fā)生故障或其他網(wǎng)絡(luò)故障(如鏈路或節(jié)點(diǎn)故障),那 么給定的節(jié)點(diǎn)可以簡(jiǎn)單地在剩余的子路徑中重新均衡流量,從而快速且有效地處理故障。 負(fù)載均衡LSP可以因此提供改進(jìn)的網(wǎng)絡(luò)恢復(fù)能力,不需要僅用于故障情況的專用鏈路。在一個(gè)實(shí)施方式中,一種對(duì)跨越從入口設(shè)備到出口設(shè)備的網(wǎng)絡(luò)的總體標(biāo)簽交換路 徑(LSP)進(jìn)行流量管理的方法包括為L(zhǎng)SP計(jì)算滿足一組流量工程約束的到出口設(shè)備的的多 個(gè)子路徑,并沿總體LSP的多個(gè)子路徑的兩個(gè)或多個(gè)向標(biāo)簽交換路由器(LSR)發(fā)送資源預(yù) 留請(qǐng)求,其中,資源預(yù)留請(qǐng)求包括將請(qǐng)求與同一總體LSP相關(guān)聯(lián)的標(biāo)識(shí)符,其中,每個(gè)資源 預(yù)留請(qǐng)求均包括將所請(qǐng)求的總體LSP指定為負(fù)載均衡LSP的指示符。該方法還包括響應(yīng)于 資源預(yù)留請(qǐng)求來接收資源預(yù)留消息,資源預(yù)留消息指定預(yù)留資源和分配給總體LSP用于沿 總體LSP的子路徑向相應(yīng)的下一跳轉(zhuǎn)發(fā)網(wǎng)絡(luò)流量的標(biāo)簽,其中,資源預(yù)留消息包括將消息 與同一總體LSP相關(guān)聯(lián)的標(biāo)識(shí)符,以及,其中,每個(gè)資源預(yù)留消息均包括將總體LSP指定為負(fù)載均衡LSP的指示符,配置網(wǎng)絡(luò)設(shè)備的轉(zhuǎn)發(fā)平面以為總體LSP的子路徑存儲(chǔ)標(biāo)簽和相應(yīng) 的下一跳,以及使用指定如何在總體LSP的子路徑上負(fù)載均衡網(wǎng)絡(luò)流量的負(fù)載均衡需求配 置轉(zhuǎn)發(fā)平面。該方法還包括在總體LSP的入口設(shè)備接收網(wǎng)絡(luò)流量,以及在入口設(shè)備的轉(zhuǎn)發(fā) 平面中,根據(jù)負(fù)載均衡需求通過從所存儲(chǔ)的用于轉(zhuǎn)發(fā)所述網(wǎng)絡(luò)流量的相應(yīng)下一跳和標(biāo)簽中 進(jìn)行選擇來在子路徑上負(fù)載均衡所述網(wǎng)絡(luò)流量,此外,使用所選擇的標(biāo)簽將網(wǎng)絡(luò)流量轉(zhuǎn)發(fā) 到總體LSP的子路徑上。
在另一個(gè)實(shí)施方式中,路由器包括控制單元被配置為執(zhí)行用于對(duì)從入口設(shè)備到 出口設(shè)備的網(wǎng)絡(luò)上的總體標(biāo)簽交換路徑(LSP)進(jìn)行流量管理的資源預(yù)留協(xié)議,其中,該資 源預(yù)留協(xié)議被配置成為L(zhǎng)SP計(jì)算滿足一組流量工程約束的到出口設(shè)備的多個(gè)可選子路徑, 物理接口被配置為沿總體LSP的多個(gè)子路徑的兩個(gè)或多個(gè)向標(biāo)簽交換路由器(LSR)發(fā)送由 資源預(yù)留協(xié)議產(chǎn)生的資源預(yù)留請(qǐng)求,其中,資源預(yù)留請(qǐng)求包括將請(qǐng)求與同一總體LSP相關(guān) 聯(lián)的標(biāo)識(shí)符,其中,每個(gè)資源預(yù)留請(qǐng)求均包括將所請(qǐng)求的總體LSP指定為負(fù)載均衡LSP的指 示符,以及響應(yīng)于資源預(yù)留請(qǐng)求來接收資源預(yù)留消息,資源預(yù)留消息指定預(yù)留資源和分配 給總體LSP用于沿總體LSP的子路徑向相應(yīng)的下一跳轉(zhuǎn)發(fā)網(wǎng)絡(luò)流量的標(biāo)簽,資源預(yù)留消息 包括將信息與同一總體LSP相關(guān)聯(lián)的標(biāo)識(shí)符,其中,每個(gè)資源預(yù)留信消息均包括將總體LSP 指定為負(fù)載均衡LSP的指示符。路由器還包括轉(zhuǎn)發(fā)平面,配置成為總體LSP的子路徑存儲(chǔ) 標(biāo)簽和相應(yīng)下一跳,其中,資源預(yù)留協(xié)議使用指示指定如何在所述總體LSP的所述子路徑 上負(fù)載均衡網(wǎng)絡(luò)流量的負(fù)載均衡需求配置所述轉(zhuǎn)發(fā)平面,以及負(fù)載均衡模塊,在轉(zhuǎn)發(fā)平面 上執(zhí)行,其中,根據(jù)負(fù)載均衡需求,通過從存儲(chǔ)的為轉(zhuǎn)發(fā)網(wǎng)絡(luò)流量的相應(yīng)下一跳和標(biāo)簽中進(jìn) 行選擇來在子路徑上負(fù)載均衡網(wǎng)絡(luò)流量,接口被配置成使用所選擇的標(biāo)簽將網(wǎng)絡(luò)流量轉(zhuǎn)發(fā) 到總體LSP的子路徑上。在另一個(gè)實(shí)施方式中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)包括指令,該指令使可編程處理器執(zhí) 行用于對(duì)從入口設(shè)備到出口設(shè)備的網(wǎng)絡(luò)上的總體標(biāo)簽交換路徑(LSP)進(jìn)行流量管理的資 源預(yù)留協(xié)議,為L(zhǎng)SP計(jì)算滿足一組流量工程約束的到出口設(shè)備的多個(gè)可選的子路徑,沿所 述總體LSP的多個(gè)子路徑的兩個(gè)或多個(gè)向標(biāo)簽交換路由器(LSR)發(fā)送資源預(yù)留請(qǐng)求,其中, 資源預(yù)留請(qǐng)求包括將請(qǐng)求與同一總體LSP相關(guān)聯(lián)的標(biāo)識(shí)符,其中,每個(gè)資源預(yù)留請(qǐng)求均包 括將所請(qǐng)求的總體LSP指定為負(fù)載均衡LSP的指示符;該指令還使可編程處理器響應(yīng)資源 預(yù)留請(qǐng)求來接收資源預(yù)留消息,該資源預(yù)留消息指定預(yù)留資源和分配給總體LSP用于沿總 體LSP的子路徑向相應(yīng)的下一跳轉(zhuǎn)發(fā)網(wǎng)絡(luò)流量的標(biāo)簽,其中,資源預(yù)留消息包括將消息與 同一總體LSP相關(guān)聯(lián)的標(biāo)識(shí)符,以及,其中,每個(gè)資源預(yù)留消息均包括將總體LSP指定為負(fù) 載均衡LSP的指示符。該指令還使可編程處理器配置網(wǎng)絡(luò)設(shè)備的轉(zhuǎn)發(fā)平面以為總體LSP的 子路徑存儲(chǔ)標(biāo)簽和相應(yīng)下一跳,以及配置轉(zhuǎn)發(fā)平面以將流級(jí)別負(fù)載均衡應(yīng)用到接收的網(wǎng)絡(luò) 流量,以根據(jù)負(fù)載均衡需求,通過從所存儲(chǔ)的用于轉(zhuǎn)發(fā)網(wǎng)絡(luò)流量的相應(yīng)下一跳和標(biāo)簽中進(jìn) 行選擇來在總體LSP的子路徑上負(fù)載均衡網(wǎng)絡(luò)流量。將在附圖和以下的描述中闡述本發(fā)明的一個(gè)或多個(gè)實(shí)施方式的細(xì)節(jié)。本發(fā)明的其 他特點(diǎn)、目標(biāo)、和優(yōu)點(diǎn)將從描述、附圖和權(quán)利要求中變得顯而易見。
圖1是示出具有在入口路由器和出口路由器之間的網(wǎng)絡(luò)上建立的負(fù)載均衡TELSP的示例性計(jì)算機(jī)網(wǎng)絡(luò)的框圖;圖2是示出為建立負(fù)載均衡TE LSP在計(jì)算機(jī)網(wǎng)絡(luò)內(nèi)由路由器發(fā)送的示例性路徑 消息的框圖;圖3是示出了為建立負(fù)載均衡TE LSP在計(jì)算機(jī)網(wǎng)絡(luò)內(nèi)由路由器發(fā)送的實(shí)例預(yù)留 消息的框圖;圖4是示出了根據(jù)本文所述的技術(shù)能夠支持具有負(fù)載均衡擴(kuò)展的RSVP-TE的示例 性路由器的框圖;圖5是更詳細(xì)地示出了圖4的負(fù)載均衡模塊和鏈路監(jiān)控模塊的實(shí)例的框圖;圖6是示出了由在總體RSVP-TE LSP的子路徑上分配流量的路由器的負(fù)載均衡模 塊和鏈路監(jiān)控模塊維護(hù)的示例性數(shù)據(jù)結(jié)構(gòu)的框圖;圖7示出了在建立包括從入口路由器到出口路由器的多個(gè)路徑的總體RSVP-TE LSP中路由器的示例性操作的流程圖;圖8是示出了當(dāng)根據(jù)發(fā)明的原理在單一的總體LSP的多個(gè)子路徑上接收包和負(fù)載 均衡包時(shí)路由器操作的示例性模式的流程圖;圖9示出了用于指示路由器是否支持負(fù)載均衡RSVP-TE LSPs的示例性RSVP-TE 功能對(duì)象;圖10示出了標(biāo)識(shí)隧道標(biāo)識(shí)符的RSVP-TE對(duì)象的示例性類型-長(zhǎng)度-值(TLV)。
具體實(shí)施例方式圖1是示出系統(tǒng)10的框圖,系統(tǒng)10包括示例性計(jì)算機(jī)網(wǎng)絡(luò)14,該計(jì)算機(jī)網(wǎng)絡(luò)14具 有在入口路由器12A和出口路由器12之間的網(wǎng)絡(luò)14上建立的負(fù)載均衡流量工程隧道16。 例如,隧道16可以包括基于流量工程擴(kuò)展的資源預(yù)留協(xié)議(RSVP-TE)標(biāo)簽交換路徑(LSP)。 在圖1的實(shí)例中,路由器12A-12F(“路由器12”)使用已被擴(kuò)展的改進(jìn)的RSVP-TE協(xié)議以建 立從入口路由器12A延伸到出口路由器12B的負(fù)載均衡TE隧道16。當(dāng)路由器12接收網(wǎng)絡(luò) 流量時(shí),隧道16配置在路由器12上以允許路由器12在隧道16的子路徑18A-18H( “子路 徑18”)上負(fù)載均衡流量。以這種方式,隧道16可看作是單一入口和單一出口之間的點(diǎn)到 點(diǎn)隧道,其被構(gòu)造為包含用于有效負(fù)載均衡與隧道16相關(guān)聯(lián)的MPLS流量的多個(gè)中間子路 徑。在一些實(shí)施方式中,隧道16可形成為提供從單一入口到多個(gè)目的地的點(diǎn)到多點(diǎn)(P2MP) 隧道的P2MP LSP,其中,中間(P2MP)子路徑可用于有效負(fù)載均衡MPLS流量到任何目的地。 在這樣的負(fù)載均衡P2MP LSP中,在任何節(jié)點(diǎn),為給定的包確切地選擇多條子路徑中的一條; 然而,如果該子路徑有多個(gè)下游近鄰,則包被復(fù)制通過這些下游鄰近。為在MPLS和通用多 協(xié)議標(biāo)簽交換(GMPLS)網(wǎng)絡(luò)中建立P2MP LSP的RSVP-TE的擴(kuò)展在2005年5月IETF的“點(diǎn) 到多點(diǎn)TE LSPs的RSVP-TE的擴(kuò)展”中有描述,通過引用結(jié)合于此。在另一個(gè)實(shí)施方式(這 里沒有示出)中,隧道16可以是具有多個(gè)等效出口 12B的單播隧道。經(jīng)由一條子路徑18 將包從入口 12A發(fā)送到這些出口 12B中確切的一個(gè)出口 ;其和負(fù)載均衡P2MP隧道之間的區(qū) 別是在具有多個(gè)出口的單播隧道情況下不存在流量復(fù)制。網(wǎng)絡(luò)14可包括比圖1所示的更多的路由器。正在負(fù)載均衡的網(wǎng)絡(luò)流量的最終的源可以包括一個(gè)或多個(gè)設(shè)備和/或任何公共的或私有的網(wǎng)絡(luò)或在網(wǎng)絡(luò)14中給入口路由器 12A提供流量的因特網(wǎng)。正在負(fù)載均衡的網(wǎng)絡(luò)流量的最終目的地可以包括一個(gè)或多個(gè)目標(biāo)設(shè)備和/或可以包括包含多個(gè)設(shè)備的廣域網(wǎng)(WAN)或LAN的網(wǎng)絡(luò)。例如,目標(biāo)設(shè)備可以包 括個(gè)人電腦、膝上計(jì)算機(jī)、工作站、個(gè)人數(shù)字助理(PDA)、無線設(shè)備、網(wǎng)絡(luò)就緒裝置、文件服務(wù) 器、打印服務(wù)器或經(jīng)由網(wǎng)絡(luò)14訪問源的其他設(shè)備。本文所述的RSVP-TE的擴(kuò)展使入口路由器12A能夠計(jì)算出以出口路由器12B為目 的的多個(gè)子路徑,并能夠沿所選擇的計(jì)算出的子路徑向下游路由器發(fā)送同一隧道16的多 個(gè)RSVP路徑消息。因?yàn)檫@些子路徑是同一總體LSP(即隧道16)的所有部分,可以要求路 由器12存儲(chǔ)網(wǎng)絡(luò)14中比為在路由器12A和路由器12B之間的每個(gè)路徑構(gòu)造的單獨(dú)的LSP 少的狀態(tài)。響應(yīng)于網(wǎng)絡(luò)管理者發(fā)起建立從路由器12A到路由器12B的隧道16,入口路由器 12A使用擴(kuò)展的RSVP-TE協(xié)議計(jì)算滿足由管理員強(qiáng)加給隧道的某些約束的一些或所有到 出口路由器12B的可用路徑。例如,強(qiáng)加的約束可包括帶寬、鏈路色(link color)、共享風(fēng) 險(xiǎn)鏈路組(SRLG)等。例如,網(wǎng)絡(luò)管理員可以期望配置能處理100MB網(wǎng)絡(luò)流量的總體LSP。 RSVP-TE使用關(guān)于網(wǎng)絡(luò)14中鏈路的約束信息(諸如可用帶寬)計(jì)算路徑。例如,RSVP-TE 可使用由諸如中間系統(tǒng)-中間系統(tǒng)協(xié)議(ISIS)或開放式最短路徑優(yōu)先協(xié)議(OSPF)的鏈路 狀態(tài)內(nèi)部路由協(xié)議收集的可用帶寬信息。如本文中擴(kuò)展的RSVP-TE計(jì)算適于包括帶寬的某 些約束的多條路徑,以提供必需的可用帶寬總量。在下面的實(shí)例中將更加詳細(xì)地描述。在 另一個(gè)實(shí)施方式中,諸如路徑計(jì)算元素的外部實(shí)體可以計(jì)算負(fù)載均衡子路徑,然后RSVP-TE 能夠使用該負(fù)載均衡子路徑建立負(fù)載均衡LSP。在計(jì)算多個(gè)路徑之后,RSVP-TE可以選擇所有所計(jì)算的路徑或其子集,在其上發(fā)送 用于建立總體隧道16的子路徑的相應(yīng)路徑信息。與傳統(tǒng)的為建立LSP選擇到出口設(shè)備的 單一路徑的RSVP-TE相比,本文中所述的擴(kuò)展的RSVP-TE被配置成計(jì)算和選擇從入口到出 口的多條路徑。此外,如下面將進(jìn)一步詳細(xì)描述,多條路徑本身可以被沿路徑的連續(xù)的節(jié)點(diǎn) 分成子路徑。RSVP-TE可以使用能夠計(jì)算和/或選擇的路徑數(shù)目的上限來配置。在圖1的實(shí)例中,路由器12A建立以路由器12B為目的地的子路徑18A和18B。路 由器12C通過建立子路徑18D和18C來劃分子路徑18A。路由器12E通過建立子路徑18E 和18F來劃分子路徑18B。路由器12D是將子路徑18D和18E合并為單一子路徑18G的總 體LSP的合并點(diǎn);路由器12F將子路徑18C和18F合并為單一子路徑18H。子路徑18G和 18H延伸到出口路由器12B。路由器12可以配置成識(shí)別接收的路徑信息作為基于在路徑消 息中設(shè)定的特定位(例如,或其他指示符)建立負(fù)載均衡TE LSP的消息。以下將進(jìn)一步詳 細(xì)描述路由器12(也指“節(jié)點(diǎn)”或標(biāo)簽交換路由器(LSR))建立子路徑18的方式。圖2是示出路由器12使用具有負(fù)載均衡擴(kuò)展的RSVP-TE的示例性方式的框圖。如圖2所示,響應(yīng)于建立從路由器12A到路由器12B的LSP的單一請(qǐng)求(例如,來自管理員或 另一個(gè)網(wǎng)絡(luò)設(shè)備的請(qǐng)求,諸如來自路由器12A上游的設(shè)備),當(dāng)隧道16配置成負(fù)載均衡從 入口路由器12A到出口路由器12B的多個(gè)中間子路徑18上的網(wǎng)絡(luò)流量時(shí),路由器12協(xié)調(diào) 發(fā)送多個(gè)路徑消息以建立LSP。此外,路由器12A被配置為總體LSP隧道16的單一入口, 總的來說,其支持在請(qǐng)求中指定的某些約束要求,包括每秒一百兆網(wǎng)絡(luò)流量的總帶寬約束。 在路由器12A上執(zhí)行的RSVP-TE被配置為使用關(guān)于網(wǎng)絡(luò)14中鏈路的約束信息計(jì)算到出口 12B的路徑。約束信息可以通過路由器12A執(zhí)行鏈路狀態(tài)協(xié)議來收集。在圖2的實(shí)例中,響應(yīng)于該請(qǐng)求,路由器12A計(jì)算通向請(qǐng)求目的地(例如,路由器12B)的沿通向路由器12C的鏈路22A的路徑18A(圖1)。路由器12A還標(biāo)識(shí)也可用于到 達(dá)LSP的請(qǐng)求目的地的沿通向路由器12E的鏈路22B的第二路徑18B。同時(shí),基于由RSVP 協(xié)議維護(hù)的網(wǎng)絡(luò)狀態(tài)數(shù)據(jù),路由器12A確定沿路徑18A和18B的預(yù)留的可用帶寬的量,并輸 出多個(gè)路徑消息以建立共同滿足總帶寬需求的兩條子路徑。在這個(gè)實(shí)例中,路由器12A確 定沿路徑18A可以預(yù)留60MB帶寬以及沿路徑18B可以預(yù)留40MB帶寬。同時(shí),路徑18A和 路徑18B能夠共同為總體隧道16提供IOOMB的網(wǎng)絡(luò)流量需求總量。路由器12A的擴(kuò)展的 RSVP-TE協(xié)議選擇這兩條路徑并發(fā)送請(qǐng)求在鏈路22A上預(yù)留60MB帶寬的隧道16的路徑消 息,同時(shí)發(fā)送請(qǐng)求在鏈路22B上預(yù)留40MB帶寬的同一隧道16的第二路徑消息。每一個(gè)路 徑消息均包括表示帶寬預(yù)留是針對(duì)同一總體LSP的標(biāo)識(shí)符,并在傳統(tǒng)的RSVP-TE協(xié)議上修 改使得接收路由器可容易地確定路徑消息可以是由同一 LSP的上游設(shè)備發(fā)送的 多個(gè)路徑 消息中的一個(gè)。路由器12A可以計(jì)算到出口 12B的其他路徑,但是,僅選擇能夠提供所請(qǐng)求 的總帶寬的最佳路徑。在一些實(shí)施方式中,路由器12A可以用能夠計(jì)算和/或選擇的路徑 數(shù)目的上限來配置。一旦從路由器12A接收到修改路徑信息,則在路由器12C上執(zhí)行的擴(kuò)展的RSVP-TE 協(xié)議可以同樣地計(jì)算共同滿足在路徑消息中指定的約束信息的到出口路由器12B的子路 徑。路由器12C從計(jì)算出的子路徑中選擇子路徑18D和18C,并發(fā)送請(qǐng)求在鏈路22D上預(yù) 留30MB帶寬的第一修改路徑消息,以及發(fā)送請(qǐng)求在鏈路22C上預(yù)留30MB帶寬的第二修改 路徑消息。每個(gè)修改路徑消息均表示帶寬預(yù)留是針對(duì)相同的總體LSP的。同樣,一旦從路由器12A接收修改路徑信息,則在路由器12E上執(zhí)行的擴(kuò)展的 RSVP-TE協(xié)議可以同樣地計(jì)算共同滿足在修改的路徑消息中指定的約束信息的通向出口 12B的子路徑。路由器12E從計(jì)算出的子路徑中選擇子路徑18E和18F,并發(fā)送請(qǐng)求在鏈路 22E上預(yù)留20MB帶寬的第一修改路徑消息,以及發(fā)送請(qǐng)求在鏈路22F上預(yù)留20MB帶寬的第 二修改路徑消息。每個(gè)修改路徑消息均表示帶寬預(yù)留是針對(duì)相同的總體LSP的?!穆酚善?2C和12E接收到修改路徑信息,則在路由器12D上執(zhí)行的擴(kuò)展的 RSVP-TE協(xié)議檢查路徑信息,并基于LSP標(biāo)識(shí)符,確定多個(gè)路徑消息對(duì)應(yīng)的包括單一 LSP的 路徑消息集,從而使路由器12D作為多個(gè)上游子路徑的結(jié)合點(diǎn)。路由器12D可類似地計(jì)算 滿足在路徑消息集(例如,從路由器12C和12E接收的路徑消息)中指定的約束信息的聚 集(aggregate)的到出口路由器12B的路徑。在這個(gè)實(shí)例中,路由器12D選擇路徑18G并 向路由器12B發(fā)出單一路徑消息,請(qǐng)求在鏈路22G上預(yù)留50MB帶寬,即,其為在路由器12D 處結(jié)合的兩條上游子路徑接收的兩條路徑消息的請(qǐng)求帶寬的總和。路由器12D發(fā)送的修改 路徑消息指示路徑消息可以是隧道16的路徑消息集中的一個(gè)。這允許路由器12B同樣地 確定它是隧道16的結(jié)合點(diǎn),并且來自路由器12D、12F的路徑消息可視為對(duì)總體LSP的子路 徑的請(qǐng)求,路由器12B為總體LSP提供出口的單一點(diǎn)作為隧道的出口。在某些情況下,在從路由器12E接收路徑消息之前,路由器12D可從路由器12C接 收路徑消息。在一些實(shí)施方式中,路由器12D可將初始路徑消息發(fā)送至路由器12B以請(qǐng)求 到鏈路22G上的30MB帶寬。當(dāng)路由器12D隨后從路由器12E接收路徑消息時(shí),路由器12D 可將更新的路徑消息發(fā)送至路由器12B以請(qǐng)求在鏈路22G上附加的20MB帶寬,總共預(yù)留 50MB帶寬。更新的路徑消息可不被認(rèn)為是新的路徑消息,由于更新的路徑消息沒有將附加 的狀態(tài)引入網(wǎng)絡(luò)14。相反,更新的路徑消息更新路由器12B現(xiàn)有的存儲(chǔ)狀態(tài)。
在一些實(shí)施方式中,路由器12A可以計(jì)算和選擇所有的在網(wǎng)絡(luò)14內(nèi)沿到路由器 12B的路徑的每個(gè)下游路由器12采用的子路徑,而不是每個(gè)路由器12C-12F在單獨(dú)基礎(chǔ)上 執(zhí)行計(jì)算和選擇。在這些實(shí)施方式中,路由器12A可以向網(wǎng)絡(luò)14內(nèi)的路由器12發(fā)送所有 必要的路徑消息以為總體LSP隧道16預(yù)備帶寬。在其他實(shí)施方式中,網(wǎng)絡(luò)管理員可以預(yù)先 計(jì)算出由網(wǎng)絡(luò)14中所有路由器12采用的所有的子路徑,并可以用該信息配置路由器12A 和/或路由器12中的每一個(gè)。可選地,路由器12A可以指示其他路由器12應(yīng)發(fā)送那個(gè)路 徑消息以在隧道16的每條選擇的子路徑上預(yù)留特定量的帶寬。在這方面,其他路由器12 可自主選擇子路徑。
圖3是示出為建立負(fù)載均衡TE LSP隧道16由計(jì)算機(jī)網(wǎng)絡(luò)14內(nèi)的路由器12分配 的示例性標(biāo)簽的框圖。路由器12可以執(zhí)行下游標(biāo)簽分配,并通過向上游路由器發(fā)送RSVP 預(yù)留(“Resv”)消息傳送分配的標(biāo)簽。在圖3的實(shí)例中,路由器12B為路由器12D和12F 分配標(biāo)簽L5,用于沿在路由器12B結(jié)合的子路徑轉(zhuǎn)發(fā)與隧道16相關(guān)聯(lián)的網(wǎng)絡(luò)流量。路由 器12B可以在指示已為隧道16在鏈路22G上預(yù)留了 30Mb帶寬的第一預(yù)留消息中將標(biāo)簽L5 傳送至路由器12D。路由器12B也為路由器12F分配標(biāo)簽L5用于轉(zhuǎn)發(fā)與隧道16相關(guān)聯(lián)的 網(wǎng)絡(luò)流量。路由器12B可以在指示已為隧道16在鏈路22H上預(yù)留了 20Mb帶寬的第二預(yù)留 消息中將標(biāo)簽L5鏈路傳送至路由器12F。路由器12B存儲(chǔ)指示一旦接收到具有標(biāo)簽L5的 MPLS包則彈出標(biāo)簽并將未封裝包轉(zhuǎn)發(fā)至未封裝包的報(bào)頭所指定的目的地的轉(zhuǎn)發(fā)狀態(tài)。雖然 在圖3中示為為隧道16的子路徑18G和18H分配同一標(biāo)簽,路由器12B可以可選地為隧道 16的子路徑18G和18H中的每條子路徑分配不同的標(biāo)簽。一旦從路由器12B接收到為隧道16分配的標(biāo)簽,路由器12D從它的內(nèi)部標(biāo)簽空間 里分配標(biāo)簽用于為其提供合并點(diǎn)的所有子路徑。例如,路由器12D為路由器12C和12E分配 標(biāo)簽Li,用于在隧道16的子路徑18D和18E上將網(wǎng)絡(luò)流量轉(zhuǎn)發(fā)至路由器12D。路由器12D 可以在指示已為隧道16在鏈路22D上預(yù)留了 30Mb帶寬的預(yù)留消息中將標(biāo)簽Ll傳送至路 由器12C。同樣地,路由器12D可以在指示已為隧道16在鏈路22E上預(yù)留了 20Mb帶寬的預(yù) 留消息中將標(biāo)簽Ll (或,可選地,不同的標(biāo)簽)傳送至路由器12E。路由器12D存儲(chǔ)指示一 旦接收到具有標(biāo)簽Ll的包則與L5交換標(biāo)簽并通過與鏈路22G相關(guān)聯(lián)的接口將包輸出到路 由器12B的轉(zhuǎn)發(fā)狀態(tài)。在一些實(shí)施方式中,路由器可配置為為總體LSP的不同子路徑分配不同的標(biāo)簽, 而不是象路由器12D所執(zhí)行的那樣分配相同的標(biāo)簽。例如,路由器12F可以配置為分配不 同的標(biāo)簽。在這種情況下,一旦從路由器12B接收到為隧道16分配的標(biāo)簽,則路由器12F 為路由器12C分配標(biāo)簽L3并為路由器12E分配標(biāo)簽L6,用于轉(zhuǎn)發(fā)隧道16的子路徑18C和 18F上的網(wǎng)絡(luò)流量。路由器12F在指示已為隧道16在鏈路22C上預(yù)留了 30Mb帶寬的預(yù)留 消息中將標(biāo)簽L3傳送至路由器12C。同樣地,路由器12D在指示已為隧道16在鏈路22F上 預(yù)留了 20Mb帶寬的預(yù)留消息中標(biāo)簽L6傳送至路由器12E。路由器12F存儲(chǔ)指示一旦接收 到具有標(biāo)簽L3或L6的包則與L5交換標(biāo)簽并通過與鏈路22H相關(guān)聯(lián)的接口將包輸出到路 由器12B的轉(zhuǎn)發(fā)狀態(tài)。一旦從路由器12D和路由器12F接收標(biāo)簽分配,則路由器12C為路由器12A分配 標(biāo)簽L2用于在隧道16的子路徑18A上轉(zhuǎn)發(fā)網(wǎng)絡(luò)流量。路由器12C可以在指示已為隧道16 在鏈路22A預(yù)留了 60Mb帶寬的預(yù)留消息中將標(biāo)簽L2傳送至路由器12A。路由器12C可以在不同時(shí)間從路由器12D和路由器12F接收標(biāo)簽分配,然后可以在不同時(shí)間為子路徑18A分配標(biāo)簽和帶寬。在這種情況下,路由器12C可從路由器12D接收第一預(yù)留消息,然后將分 配標(biāo)簽L2并指示例如已為隧道16在鏈路22A上預(yù)留了 30Mb帶寬的第一預(yù)留消息發(fā)送到 路由器12A。當(dāng)路由器12C隨后接收路由器12F的第二預(yù)留消息時(shí),路由器12C將指示已為 隧道16在鏈路22A上預(yù)留了 30Mb附加帶寬的更新預(yù)留消息發(fā)送到路由器12A,總共60Mb 帶寬。更新的預(yù)留消息可以不給網(wǎng)絡(luò)14增加任何附加的狀態(tài),但可以非常簡(jiǎn)單的更新路由 器12A的現(xiàn)有狀態(tài)。路由器12C存儲(chǔ)指示一旦接收到具有標(biāo)簽L2的包則路由器12C應(yīng)通過子路徑18D 和18C均勻地負(fù)載均衡包的轉(zhuǎn)發(fā)狀態(tài)。即,對(duì)于接收到的具有標(biāo)簽L2的百分之五十的包, 將標(biāo)簽L2與標(biāo)簽Ll交換,并通過與鏈路22D相關(guān)聯(lián)的接口將包輸出到路由器12D ;對(duì)于接 收到的具有標(biāo)簽L2的百分之五十的包,將標(biāo)簽L2與標(biāo)簽L3交換,并通過與鏈路22C相關(guān) 聯(lián)的接口將包輸出到路由器12F。路由器12E可以類似的方式運(yùn)行,以給路由器12A分配標(biāo)簽L4用于在隧道16的 子路徑18B上轉(zhuǎn)發(fā)網(wǎng)絡(luò)流量,且為隧道16在鏈路22B上預(yù)留總計(jì)為40Mb的帶寬。路由器 12E存儲(chǔ)指示一旦接收到具有標(biāo)簽L4包則路由器12E應(yīng)該通過子路徑18E和18F均勻地 負(fù)載均衡包的轉(zhuǎn)發(fā)狀態(tài)。即,對(duì)于接收到的具有標(biāo)簽L4的百分之五十的包,將標(biāo)簽L4與標(biāo) 簽Ll交換,并通過與鏈路22E相關(guān)聯(lián)的接口將包輸出到路由器12D ;對(duì)于接收到的具有標(biāo) 簽L4的百分之五十的包,將標(biāo)簽L4與標(biāo)簽L6交換,并通過與鏈路22F相關(guān)聯(lián)的接口將包 輸出到路由器12F。發(fā)送到路由器12D的流量的選擇可隨機(jī)作出,或通過計(jì)算標(biāo)簽棧上、或 在標(biāo)簽棧之外的包報(bào)頭或內(nèi)容中的域(譬如IP或以太網(wǎng)報(bào)頭)的函數(shù)(諸如哈希函數(shù))。路由器12A接收由路由器12C和12E分別分配的標(biāo)簽L2和L4。路由器12A被配 置為存儲(chǔ)指示一旦接收到去往路由器12B(或具有路由器12B已通告由路由器12B可到達(dá) 的目的地址)的包則將包封裝為攜帶標(biāo)簽L2或L4的MPLS包的轉(zhuǎn)發(fā)狀態(tài),即,路由器12A 應(yīng)該在隧道16的子路徑18A和18B上負(fù)載均衡包使得百分之六十的包接收標(biāo)簽L2并通過 與鏈路22A相關(guān)的接口輸出到路由器12C,百分之四十的包接收標(biāo)簽L4并通過與鏈路22B 相關(guān)的接口輸出到路由器12E。這樣,對(duì)應(yīng)于隧道16的總體LSP使用RSVP-TE從而包括多 條子路徑18,以允許路由器12自動(dòng)地在隧道16的子路徑18 (即RSVP-TE LSP)上負(fù)載均衡 網(wǎng)絡(luò)流量的方式進(jìn)行流量管理。此外,路由器12A可以在下游路由器12C和12E中隨機(jī)或 通過計(jì)算包報(bào)頭中的字段的函數(shù)選擇劃分流量。根據(jù)本公開中所述的技術(shù),在建立從入口路由器12A延伸至出口路由器12B的隧 道16之后,路由器12A在鏈路22k和22B (例如,通過隧道16的子路徑18A和18B)上動(dòng)態(tài) 均衡網(wǎng)絡(luò)流量。路由器12A首先從另一個(gè)網(wǎng)絡(luò)設(shè)備(未示出)接收包,路由器12A確定其為 去往路由器12B的包(例如,具有路由器12B已通告的由路由器12B可到達(dá)的目的地址)。 例如,路由器12A可以接收允許進(jìn)入LSP的IP包。路由器12A確定通過其發(fā)送該包的鏈路 22A、22B中的一條。即,當(dāng)封裝IP包并允許IP包進(jìn)入LSP時(shí),路由器12A選擇封裝MPLS包 的可用子路徑集中的一條。在一個(gè)實(shí)施方式中,這樣做,路由器12A將一個(gè)或多個(gè)哈希函數(shù)應(yīng)用到包。路由 器12A可以將哈希函數(shù)應(yīng)用到包的IP報(bào)頭,例如,5元組{源IP地址,目的IP地址,源端 口號(hào),目的端口號(hào),協(xié)議}。路由器12A可以維護(hù)哈希函數(shù)的二進(jìn)制文件集并將每個(gè)二進(jìn)制文件映射到鏈路22A和22B中的一條。即,當(dāng)所有或部分IP報(bào)頭被應(yīng)用時(shí),哈希函數(shù)將包流映射到鏈路22A、22B中的每一條。通過將哈希函數(shù)應(yīng)用到包流的包的包報(bào)頭(諸如5元 組),路由器12A在子路徑18A、18B上可以實(shí)現(xiàn)包流的負(fù)載均衡,使得同一包流的包通過同 一子路徑。以這種方式,路由器10可確保順次傳遞包流的包。如果路由器12A確定哈希函 數(shù)將不再與60/40帶寬負(fù)載均衡需求一致的方式將包流映射到鏈路22A、22B,則路由器12A 可以動(dòng)態(tài)調(diào)節(jié)哈希函數(shù)的二進(jìn)制文件映射到鏈路22A、22B的方式以為新的包流維護(hù)合適 的負(fù)載均衡帶寬。在沿LSP的中間路由器(諸如路由器12C)的情況下,例如,路由器12C可以將哈 希函數(shù)應(yīng)用到與封裝包的內(nèi)部IP報(bào)頭相結(jié)合的封裝包的外部MPLS報(bào)頭。S卩,路由器12C 可以對(duì)在MPLS報(bào)頭下面的包進(jìn)行有限的檢測(cè)以應(yīng)用哈希函數(shù)。這允許同一包流的包沿同 一子路徑,甚至沿LSP的中間設(shè)備(例如,除入口或出口設(shè)備的設(shè)備)來映射。圖4是示出根據(jù)本文所述技術(shù)能夠支持具有負(fù)載均衡擴(kuò)展的RSVP-TE的示例性路 由器40的框圖。路由器40可以對(duì)應(yīng)于圖1-3中的任何路由器12。路由器40包括經(jīng)由輸 入鏈路56A 56N( “輸入鏈路56”)接收包并經(jīng)由輸出鏈路57A 57N( “輸出鏈路57”) 發(fā)送包的接口卡54A 54N( “IFC 54”)。IFC 54通過高速交換機(jī)(未示出)和鏈路56、 57互連。在一個(gè)實(shí)例中,交換機(jī)40包括交換機(jī)光纖、交換機(jī)(switchgear)、可配置的網(wǎng)絡(luò) 交換機(jī)或集線器等。鏈路56、57包括任何形式的通信路徑,諸如集成電路內(nèi)的電路徑、外部 數(shù)據(jù)總線、光纖鏈路、網(wǎng)絡(luò)連接、無線連接、或其他類型的通信路徑。IFC 54經(jīng)由多個(gè)接口端 (未示出)連接至輸入鏈路56和輸出鏈路57。當(dāng)路由器40經(jīng)由一條輸入鏈路56接收包時(shí),控制單元42確定經(jīng)由哪一條輸出鏈 路57發(fā)送包。控制單元42包括路由引擎44和轉(zhuǎn)發(fā)引擎46。路由引擎44確定通過網(wǎng)絡(luò) 的一條或多條路線(例如,通過諸如其他路由器的互聯(lián)設(shè)備)。控制單元42為通常作為可 執(zhí)行軟件指令執(zhí)行的協(xié)議48提供運(yùn)行環(huán)境。如圖所示,協(xié)議48包括RSVP-TE 48A和中間 系統(tǒng)-中間系統(tǒng)的(IS-IS) 48B。路由器40使用RSVP-TE 48A以建立LSP。如本文所述, RSVP-TE 48A被可編程地?cái)U(kuò)展以允許LSP的建立,LSP包括在LSP的入口路由器和出口路由 器之間負(fù)載均衡流量的多條子路徑。協(xié)議48可以包括除RSVP-TE 48A和IS-IS 48B之外 或代替RSVP-TE 48A和IS-IS 48B的其他路由協(xié)議,諸如多協(xié)議標(biāo)簽交換協(xié)議(MPLS);或 路由協(xié)議,諸如開放最短路徑優(yōu)先協(xié)議(OSPF)、路由信息協(xié)議(RIP)、邊界網(wǎng)關(guān)協(xié)議(BGP)、 內(nèi)部路由協(xié)議、或其他網(wǎng)絡(luò)協(xié)議。通過執(zhí)行路由協(xié)議,路由引擎44識(shí)別通過網(wǎng)絡(luò)的現(xiàn)有路徑并確定通過網(wǎng)絡(luò)的新 路徑。路由引擎44在包含例如通過網(wǎng)絡(luò)的已知路徑的路由信息庫(RIB)50中存儲(chǔ)路由信 息。轉(zhuǎn)發(fā)引擎46存儲(chǔ)包含輸出鏈路57的目的地的轉(zhuǎn)發(fā)信息庫(FIB)52。FIB 52可以根據(jù) RIB 50產(chǎn)生。系統(tǒng)管理員(“ADMIN 66”)可以經(jīng)由包含在控制單元42中的用戶接口 64向路由 器40提供配置信息。例如,系統(tǒng)管理員可以配置路由器40或安裝軟件以如本文所述的擴(kuò) 展RSVP-TE 48A。作為另一個(gè)實(shí)例,系統(tǒng)管理員可以配置RSVP-TE 48A以對(duì)從入口路由器 到出口路由器的總體LSP進(jìn)行流量管理。作為另一個(gè)的實(shí)例,路徑計(jì)算部件(PCE)67可以 可選地或另外給路由器40提供配置信息,例如,可以計(jì)算出子路徑并將它們提供給路由器 40。
RSVP-TE 48A的擴(kuò)展使路由器40能夠計(jì)算通向總體的RSVP-TE LSP的出口路由器 的多個(gè)子路徑,并沿所選擇的計(jì)算出的子路徑向下游路由器發(fā)送總體的RSVP-TE LSP的多 個(gè)RSVP路徑消息。因?yàn)檫@些子路徑是同一總體LSP的所有部分,所以當(dāng)實(shí)現(xiàn)負(fù)載均衡時(shí), 路由器40可以被要求存儲(chǔ)比維護(hù)單獨(dú)LSP的網(wǎng)絡(luò)少的維護(hù)狀態(tài)。RSVP-TE 48A的擴(kuò)展允 許RSVP-TE 48A配置轉(zhuǎn)發(fā)引擎46 (例如,負(fù)載均衡模塊62和鏈路監(jiān)控模塊68),以反映總體 LSP的負(fù)載均衡需求。響應(yīng)于網(wǎng)絡(luò)管理員發(fā)起建立總體RSVP-TE LS,路由器40使用擴(kuò)展的RSVP-TE 48A 計(jì)算滿足網(wǎng)絡(luò)管理員強(qiáng)加給隧道的某些約束的一些或所有到出口路由器的可用路徑。例 如,強(qiáng)加的約束可包括帶寬、鏈路色、共享風(fēng)險(xiǎn)鏈路組(SRLG)等。例如,網(wǎng)絡(luò)管理員可以期 望配置能處理100MB網(wǎng)絡(luò)流量的總體LSP。RSVP-TE 48A使用關(guān)于網(wǎng)絡(luò)14中鏈路的約束 信息(諸如可用帶寬)計(jì)算路徑。例如,RSVP-TE 48A可使用由諸如中間系統(tǒng)-中間系統(tǒng) (IS-IS)協(xié)議或開放最短路徑優(yōu)先協(xié)議(OSPF)的鏈路狀態(tài)內(nèi)部路由協(xié)議收集的可用帶寬 信息。RSVP-TE計(jì)算適于包括帶寬在內(nèi)的某些約束的多條路徑,以提供必需的可用帶寬總 量。如以上參照?qǐng)D2所述的,RSVP-TE 48A產(chǎn)生和發(fā)送建立負(fù)載均衡LSP (包括子路 徑)的路徑信息。一旦路由器40從相鄰路由器接收路徑消息,則標(biāo)簽分配模塊70分配用 于建立LSP的MPLS標(biāo)簽。路由器40使用RSVP-TE 48A分發(fā)標(biāo)簽并預(yù)留鏈路上的帶寬以產(chǎn) 生如上所述的預(yù)留消息。路由引擎44維護(hù)指定標(biāo)簽分配模塊70如何分配MPLS標(biāo)簽的標(biāo) 簽分配60。例如,標(biāo)簽分配60可以指示標(biāo)簽綁定到網(wǎng)絡(luò)14內(nèi)與LSP相關(guān)聯(lián)的特定的轉(zhuǎn)發(fā) 等價(jià)類。當(dāng)在LSP上轉(zhuǎn)發(fā)包時(shí),然后標(biāo)簽分配模塊70可以使用將要被應(yīng)用的標(biāo)簽更新轉(zhuǎn)發(fā) 引擎46的FIB 52。RSVP-TE 48A也可以被擴(kuò)展以識(shí)別為建立負(fù)載均衡LSP發(fā)送的修改路徑消息和 修改預(yù)留消息。例如,RSVP-TE 48A可被擴(kuò)展以將接收的路徑消息或預(yù)留消息識(shí)別為共同 用于網(wǎng)絡(luò)中以基于在例如路徑消息或預(yù)留消息中設(shè)定的指示符(例如,特殊字段或位)建 立“負(fù)載均衡” TE LSP的一組消息中的一個(gè)。當(dāng)建立必須滿足全部約束的總體LSP的子 路徑時(shí),該特殊字段或位向接收路由器指出標(biāo)識(shí)同一 LSP的接收到的其他信息沒有錯(cuò)誤 而是彼此關(guān)聯(lián),從而允許接收路由器確定它是負(fù)載均衡LSP的中間子路徑的結(jié)合點(diǎn)還是 分支點(diǎn)。路由器40可以利用與建立P2MP RSVP LSPs相同的機(jī)制建立負(fù)載均衡LSP。例 如,路由器40可以通過使用本文所述的RSVP-TE的擴(kuò)展向其他路由器通告其能力,諸如 通過使用RSVP-TE問候信息。這些機(jī)制的進(jìn)一步細(xì)節(jié)在2006年8月22日遞交的申請(qǐng)?zhí)?為 11/508,096 (1014-196US01)的標(biāo)題為 “Resource reservationprotocol with traffic engineering point to multi-point label switchedpath hierarchy,,中有描述,其全部 內(nèi)容通過引用結(jié)合于此。當(dāng)路由器40接收新的包流的包時(shí),轉(zhuǎn)發(fā)引擎46的負(fù)載均衡模塊62標(biāo)識(shí)通過其轉(zhuǎn)發(fā)新的包流的包的一條輸出鏈路57,并且還標(biāo)識(shí)應(yīng)用于包流的包的MPLS標(biāo)簽。在負(fù)載均衡 模塊62已經(jīng)為包流選擇了一條輸出鏈路57和MPLS標(biāo)簽之后,轉(zhuǎn)發(fā)引擎46用選擇的MPLS 標(biāo)簽沿選擇的一條輸出鏈路57轉(zhuǎn)發(fā)包流的所有包。在向這一條輸出鏈路57分配新的包流 之前,負(fù)載均衡模塊62可以參考鏈路監(jiān)控模塊68確定網(wǎng)絡(luò)流量是否被合適地分配在輸出 鏈路57上。
在包流被指定轉(zhuǎn)發(fā)到RSVP-TE LSP上的情況下,鏈路監(jiān)控模塊68確定輸出鏈路57是否載有合適的帶寬分配,例如,如在總體RSVP-TE LSP建立期間由RSVP-TE 48A配置的一 樣。在一個(gè)實(shí)例中,鏈路監(jiān)控模塊68確定每條輸出鏈路57利用的帶寬。在另一個(gè)實(shí)例中, 鏈路監(jiān)控模塊68確定分配到特定的一條輸出鏈路57的多個(gè)包流是否超出閾值。在另一 個(gè)實(shí)例中,鏈路監(jiān)控模塊68確定通過每條輸出鏈路57每秒正在發(fā)送的包的數(shù)量。在另一 個(gè)實(shí)例中,鏈路監(jiān)控模塊68確定通過每條輸出鏈路57每秒正在發(fā)送的兆字節(jié)數(shù)。在其他 實(shí)例中,鏈路監(jiān)控模塊68可以利用上述技術(shù)的組合或其他技術(shù)以確定鏈路擁塞。總之,鏈 路監(jiān)控模塊68確定輸出鏈路57的使用是否與由RSVP-TE 48A指定的與輸出鏈路57連續(xù) (runon)的LSP子路徑的需求一致。鏈路監(jiān)控模塊68還可以確定一條鏈路何時(shí)發(fā)生故障。鏈路監(jiān)控模塊68與負(fù)載均 衡模塊62通信以使負(fù)載均衡模塊62更新哈希表,使得流量從故障鏈路轉(zhuǎn)移到正在負(fù)載均 衡總體RSVP-TE LSP的流量的其他剩余鏈路上。因此,負(fù)載均衡LSP可以提供改進(jìn)的網(wǎng)絡(luò) 適應(yīng)力,而不需要僅用于故障情況的專用鏈路。如關(guān)于圖5和圖6中更詳細(xì)地描述的,負(fù)載均衡模塊62通過選擇一條輸出鏈路57 將新的包流分配到該輸出鏈路來在輸出鏈路57上均衡包流。如果路由器40是到LSP的入 口,一旦接收到新的包流,則負(fù)載均衡模塊62通過將哈希函數(shù)應(yīng)用到包報(bào)頭的5元組來選 擇一條輸出鏈路57。負(fù)載均衡模塊62查詢鏈路監(jiān)控模塊68以確定當(dāng)前分配給輸出鏈路 57的包流的帶寬利用是否與帶寬負(fù)載均衡需求一致。如果一致,負(fù)載均衡模塊62將新的 包流分配到所選擇的一條輸出鏈路57。在一個(gè)實(shí)例中,當(dāng)鏈路監(jiān)控模塊68確定與總體LSP 相關(guān)的鏈路不適當(dāng)?shù)鼐鈺r(shí),負(fù)載均衡模塊62可選擇不同的鏈路分配新的包流,并且可以 修正將哈希函數(shù)的二進(jìn)制文件映射到輸出鏈路57的哈希表以維護(hù)適當(dāng)?shù)膸捸?fù)載均衡。如果路由器40是沿LSP的中間路由器,并且作為L(zhǎng)SP的多個(gè)子路徑的分支點(diǎn)運(yùn) 行,路由器40同樣地在子路徑上負(fù)載均衡MPLS包。在這種情況下,路由器40可以將哈希 函數(shù)應(yīng)用到緊隨包的標(biāo)簽棧的定義的數(shù)據(jù)字集。例如,如果MPLS包封裝IP流量,路由器40 可以將哈希函數(shù)應(yīng)用到與IP報(bào)頭相應(yīng)的數(shù)據(jù)字。在這種情況下,即使MPLS包的有效載荷不 攜帶IP流量,但由于數(shù)據(jù)字可能不變化,同一包流的流量將可能被映射到同一子路徑。在 一些情況下,路由器40可應(yīng)用簽名(signature)和深度包檢測(cè)以標(biāo)識(shí)(identify)封裝的 流量并從流量(例如,ATM報(bào)頭、以太網(wǎng)報(bào)頭、IP報(bào)頭)中為哈希函數(shù)選擇合適的輸入,以進(jìn) 一步確保同一包流的包被分配到負(fù)載均衡LSP的同一子路徑。在圖4中示出的路由器40的結(jié)構(gòu)僅為示例性的目的示出。本發(fā)明不限于此結(jié)構(gòu)。 在其他實(shí)施方式中,路由器40可以以各種方式配置。在一個(gè)實(shí)施方式中,例如,控制單元42 的一些功能可分布在IFC 54中。在另一個(gè)實(shí)施方式中,控制單元42可以包括執(zhí)行路由功 能和維護(hù)路由信息庫(RIB)50的路由引擎,和基于根據(jù)RIB50產(chǎn)生的轉(zhuǎn)發(fā)信息庫(FIB)52 執(zhí)行包轉(zhuǎn)發(fā)的轉(zhuǎn)發(fā)引擎??刂茊卧?2可單獨(dú)在軟件或硬件中實(shí)現(xiàn),或作為軟件、硬件或固件的結(jié)合來實(shí) 現(xiàn)。例如,控制單元42可包括一個(gè)或多個(gè)以軟件指令形式執(zhí)行程序代碼的處理器。在那種 情況下,控制單元42的各種軟件模塊可包括存儲(chǔ)在諸如計(jì)算機(jī)存儲(chǔ)器或硬盤的計(jì)算機(jī)可 讀的存儲(chǔ)介質(zhì)上的可執(zhí)行指令。圖5是更詳細(xì)地示出圖4的負(fù)載均衡模塊62和鏈路監(jiān)控模塊68的實(shí)例的框圖。負(fù)載均衡模塊62根據(jù)為從路由器分出支路的任何子路徑預(yù)留的帶寬在輸出鏈路57上均衡包流。為了執(zhí)行負(fù)載均衡,負(fù)載均衡模塊62通過將哈希函數(shù)79應(yīng)用到新的包流的包來選 擇子路徑的一條輸出鏈路57。例如,負(fù)載均衡模塊62將哈希函數(shù)79應(yīng)用到包的包報(bào)頭,諸 如5元組{源IP地址,目的IP地址,源端口號(hào),目的端口號(hào),協(xié)議}。如果路由器是沿負(fù)載 均衡LSP的中間路由器,負(fù)載均衡模塊62可將哈希函數(shù)79應(yīng)用到緊隨包的MPLS標(biāo)簽棧的 末端的某些數(shù)據(jù)字。當(dāng)為新的包流標(biāo)識(shí)鏈路時(shí),負(fù)載均衡模塊62通過使用該鏈路標(biāo)識(shí)查詢鏈路監(jiān)控模塊68確定由哈希函數(shù)79標(biāo)識(shí)的該鏈路是否合適。對(duì)于現(xiàn)有的包流,在一些情況下,負(fù)載 均衡模塊62可以將同一哈希函數(shù)79應(yīng)用到所有包的包流??蛇x地或另外地,為確保按與 接收的包對(duì)應(yīng)的順次傳遞包流的包,一旦接收到新的包流,負(fù)載均衡模塊62可以存儲(chǔ)為包 流選擇的鏈路的標(biāo)識(shí)。例如,負(fù)載均衡模塊62可以檢查包報(bào)頭以確定該包是否是SYN包。 當(dāng)包是SYN包時(shí),負(fù)載均衡模塊62確定該包對(duì)應(yīng)于新的包流。當(dāng)包不是SYN包時(shí),負(fù)載均 衡模塊62根據(jù)存儲(chǔ)的標(biāo)識(shí)符將包轉(zhuǎn)發(fā)到所選擇的鏈路。當(dāng)負(fù)載均衡模塊62將包與特定包流相關(guān)聯(lián)時(shí),負(fù)載均衡模塊62可以維護(hù)將入站包的哈希值與下一跳和相應(yīng)MPLS標(biāo)簽相關(guān)聯(lián)的分布映射85。分布映射85可以包括將可能 的哈希值與一組指針相關(guān)聯(lián)的哈希表80和定義一組轉(zhuǎn)發(fā)元素并經(jīng)由該組指針可尋址的中 繼信息82。為了在子路徑18上分發(fā)包,轉(zhuǎn)發(fā)元素可以為沿子路徑18的各個(gè)下一跳定義一 組輸出接口和相應(yīng)的MPLS標(biāo)簽。以這種方式,分布映射85將哈希值映射到MPLS標(biāo)簽和下 一跳,更具體地,映射到特定子路徑18的輸出端口。鏈路監(jiān)控模塊68維護(hù)跟蹤(track)與每個(gè)哈希值相關(guān)聯(lián)的流量的流量統(tǒng)計(jì)86。 鏈路監(jiān)控模塊68還基于網(wǎng)絡(luò)管理員的配置和/或擴(kuò)展的RSVP-TE 48A接收的(諸如路徑 和預(yù)留消息接收的)負(fù)載均衡信息來維護(hù)負(fù)載均衡需求87。流量統(tǒng)計(jì)86可以通過使用計(jì) 數(shù)器為每個(gè)可能的哈希值跟蹤流量。計(jì)數(shù)器可以跟蹤為每個(gè)哈希值接收的包的數(shù)目、為每 個(gè)哈希值接收的字節(jié)的數(shù)目等。流量統(tǒng)計(jì)86可以進(jìn)一步跟蹤與每個(gè)可能的下一跳相應(yīng)的 流量。以這種方式,流量統(tǒng)計(jì)86可以跟蹤每個(gè)子路徑18的流量。鏈路監(jiān)控模塊68將流量 統(tǒng)計(jì)86與負(fù)載均衡需求87相比較,并可以根據(jù)負(fù)載均衡需求87更新分布映射85以在子 路徑18上重新分布流量。負(fù)載均衡模塊62可以進(jìn)一步維護(hù)間隙統(tǒng)計(jì)84。間隙統(tǒng)計(jì)84可以使用指示接收具 有特定哈希值的最后一個(gè)包的時(shí)間的時(shí)間戳、跟蹤從接收具有特定哈希值的最后一個(gè)包以 來所消耗的時(shí)間量的計(jì)數(shù)器等跟蹤哈希值內(nèi)的間隙。當(dāng)保持包的順次傳遞時(shí),負(fù)載均衡模 塊62可以利用間隙統(tǒng)計(jì)84確定對(duì)并行數(shù)據(jù)路徑上的流量分布進(jìn)行更新的合適的時(shí)間。更 特別地,負(fù)載均衡模塊62利用間隙統(tǒng)計(jì)84確定合適的時(shí)間以更新哈希值到下一跳的映射。負(fù)載均衡模塊62和鏈路監(jiān)控模塊68可以以諸如多個(gè)表、鏈路列表、根樹、數(shù)據(jù)庫、 平面文件或其他數(shù)據(jù)結(jié)構(gòu)的各種數(shù)據(jù)結(jié)構(gòu)的形式安排分布映射85、哈希表80、中繼信息 82、流量統(tǒng)計(jì)86和間隙統(tǒng)計(jì)84。此外,負(fù)載均衡模塊62和鏈路監(jiān)控模塊68可在一個(gè)或多 個(gè)諸如磁介質(zhì)、光學(xué)介質(zhì)、非易失隨機(jī)存取存儲(chǔ)器(NVRAM)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)、 閃存等的計(jì)算機(jī)可讀介質(zhì)上存儲(chǔ)數(shù)據(jù)結(jié)構(gòu)。圖6示出由在總體RSVP-TE LSP的子路徑上分配流量的路由器40的負(fù)載均衡模 塊62和鏈路監(jiān)控模塊68維護(hù)的示例性數(shù)據(jù)結(jié)構(gòu)的框圖。在實(shí)例中,哈希表80包括表,其中,每行代表哈希值與中繼信息的關(guān)聯(lián)。對(duì)于每個(gè)關(guān)聯(lián),對(duì)M個(gè)可能的哈希值中的每個(gè),哈 希表80包括指向中繼信息82的指針。為了示例性的目的示出的中繼信息82包括表,其中,每行代表與數(shù)據(jù)路徑相關(guān)聯(lián) 的下一跳。中繼信息82包括每個(gè)可能數(shù)據(jù)路徑的下一跳。中繼信息82包括k組下一跳。 理想地,哈希表80的大小(M)與中繼信息82的大小⑷相比相對(duì)大些。例如,M可以等于 128,k可以等于8。以這種方式,負(fù)載均衡模塊62可將多于一個(gè)的哈希值映射到每個(gè)數(shù)據(jù) 路徑。在圖6實(shí)例中,存儲(chǔ)在哈希表80的元素內(nèi)的指針值映射到由虛線箭頭指示的中繼 信息82內(nèi)的索引。例如,與哈希值0相應(yīng)的哈希表80元素存儲(chǔ)索引2,其哈希值0映射到 存儲(chǔ)在中繼信息82中MPLS標(biāo)簽L7和下一跳e2。流量統(tǒng)計(jì)86作為表示出,其中,每行代表特定哈希值的流量信息。對(duì)每個(gè)哈希值, 流量統(tǒng)計(jì)86包括哈希值的包數(shù)和哈希值的字節(jié)數(shù)。流量統(tǒng)計(jì)86可以為M個(gè)可能的哈希值 中的每以個(gè)哈希值維護(hù)信息。鏈路監(jiān)控模塊68可以使用流量統(tǒng)計(jì)86維護(hù)通過可能的數(shù)據(jù) 路徑的每個(gè)哈希值的包流的需求分布。例如,收集的流量統(tǒng)計(jì)可以指示通過與下一跳e2對(duì) 應(yīng)的數(shù)據(jù)路徑的流量大于在負(fù)載均衡需求87中指定的期望負(fù)載均衡需求的閾值量。
與哈希值0和2相應(yīng)的包流被映射到MPLS標(biāo)簽L7和下一跳e2。如果十分需要, 為了減少通過下一跳e2的流量的容量,鏈路監(jiān)控模塊68可更新到特定的下一跳和標(biāo)簽的 哈希值(例如,哈希值0或2),到與沿總體RSVP-TE LSP不同子路徑相關(guān)聯(lián)的下一跳和標(biāo)簽 (諸如下一跳el和標(biāo)簽L4)的映射。間隙統(tǒng)計(jì)84作為列表示出,其中,每行代表從最后一個(gè)接收具有特定哈希值的包 以來所消耗的時(shí)間量。每行包括諸如時(shí)間戳或計(jì)數(shù)器的定時(shí)機(jī)制。間隙統(tǒng)計(jì)84可以跟蹤 從接收M個(gè)可能哈希值中的每個(gè)的特定哈希值的包以來所消耗的時(shí)間量,即間隙長(zhǎng)度。當(dāng) 更新哈希值到數(shù)據(jù)路徑的下一跳的映射時(shí),負(fù)載均衡模塊62可使用間隙統(tǒng)計(jì)84以維持順 次傳遞。例如,負(fù)載均衡模塊62可將從接收具有特定哈希值的包以來所消耗的時(shí)間量(即 哈希值的間隙長(zhǎng)度)與已定義的閾值間隙相比較。在更新映射之前,負(fù)載均衡模塊62可以 等待直到間隙長(zhǎng)度超過定義的閾值間隙。圖6的數(shù)據(jù)是為了示例性的目的示出,而且可容易地變化。例如,流量統(tǒng)計(jì)86可 以僅包括包數(shù)或字節(jié)數(shù),而不是都包括。此外,流量統(tǒng)計(jì)86可以包括每個(gè)數(shù)據(jù)路徑的計(jì)數(shù) 器數(shù)據(jù)。中繼信息82可包括端口信息、輸出接口信息等。圖7是示出在建立包括從入口路由器到出口路由器的多個(gè)子路徑的總體RSVP-TE LSP中的路由器40的示例性操作的流程圖。將參照?qǐng)D1中的路由器12和圖4中的路由器 40解釋圖7。路由器12A可以接收對(duì)滿足某些約束的總體RSVP-TE LSP的流量工程的請(qǐng) 求。例如,網(wǎng)絡(luò)管理員可以按照請(qǐng)求配置路由器12A(90)。例如,強(qiáng)加的約束可以包括,例 如,帶寬、鏈路色、共享風(fēng)險(xiǎn)數(shù)據(jù)鏈路組(SRLG)等。例如,網(wǎng)絡(luò)管理員可以希望配置能夠處 理100MB網(wǎng)絡(luò)流量的總體的LSP。RSVP-TE 48A使用網(wǎng)絡(luò)14內(nèi)的鏈路的約束信息(諸如可 用帶寬)以計(jì)算滿足約束的路徑(92)。例如,RSVP-TE48A可使用由諸如中間系統(tǒng)-中間系 統(tǒng)(IS-IS) 48B或開放最短路徑優(yōu)先協(xié)議(OSPF)鏈路狀態(tài)內(nèi)部路由協(xié)議收集的可用帶寬信 息。RSVP-TE 48A計(jì)算適于包括帶寬的某些約束的多條路徑,以提供必需的可用帶寬總量。 RSVP-TE 48A可以用能夠計(jì)算和/或選擇多少路徑的上限來配置。
對(duì)每個(gè)選擇的子路徑,RSVP-TE 48A產(chǎn)生并發(fā)送與同一總體RSVP-TE LSP相關(guān)聯(lián)的路徑消息(94)。然后路由器12A可以響應(yīng)路徑消息經(jīng)由預(yù)留消息使用RSVP-TE 48A接 收標(biāo)簽通告(96)。路由器12A可以更新中繼信息82以反映接收到的標(biāo)簽如何映射到下一 跳。在一些情況下,諸如在當(dāng)路由器12A可能是沿總體LSP的中間路由器時(shí),路由器12A也 可以分配標(biāo)簽、存儲(chǔ)標(biāo)簽分配、分發(fā)標(biāo)簽和使用RSVP-TE 48A鏈路上預(yù)留帶寬以產(chǎn)生如上 所述的預(yù)留消息。一旦接收到路由器12A確定的去往出口路由器12B的網(wǎng)絡(luò)流量(98),路由器12A 的負(fù)載均衡模塊62確定通過其將哈希函數(shù)79應(yīng)用到包的報(bào)頭(例如5元組{源IP地址, 目的IP地址,源端口號(hào),目的端口號(hào),協(xié)議})發(fā)送包的鏈路22A、22B之一。哈希函數(shù)79輸 出值,負(fù)載均衡模塊62基于哈希表80將其映射到中繼信息82。中繼信息82返回應(yīng)用到網(wǎng) 絡(luò)流量的包流的包的MPLS標(biāo)簽和轉(zhuǎn)發(fā)標(biāo)簽包的下一跳。在這種方式中,路由器12A在子路徑18A、18B上負(fù)載均衡包流(100)。例如,分布 映射85可以根據(jù)負(fù)載均衡需求87將不同的包流映射到子路徑18A或18B。當(dāng)使用擴(kuò)展的 RSVP-TE LSP建立的總體RSVP-TE LSP時(shí),如果流量統(tǒng)計(jì)86指示正在映射的實(shí)際的包流不 滿足負(fù)載均衡需求87時(shí),鏈路監(jiān)控模塊68可以更新哈希表80。圖8是示出當(dāng)根據(jù)本發(fā)明的原理在單一的總體LSP的多個(gè)子路徑上接收包和負(fù)載 均衡包時(shí)路由器40的操作的示例性模式的流程圖。首先,路由器40經(jīng)由網(wǎng)絡(luò)鏈路從網(wǎng)絡(luò) 中接收入站包(106)。接下來,路由器40執(zhí)行關(guān)于入站包的關(guān)鍵字的哈希,或者(如果路由 器40是沿LSP的路由器)執(zhí)行關(guān)于從MPLS包的有效載荷提取的報(bào)頭的哈希(108)。關(guān)鍵 字可包括諸如源IP地址、目的IP地址、協(xié)議類型、源和目的端口號(hào)、服務(wù)等級(jí)(CoS)、服務(wù)類 型(ToS)和其他任何對(duì)從源到目的的任何數(shù)據(jù)流保持常量的包的路由信息中的字段。包括 在關(guān)鍵字中的路由信息的量取決于哈希的期望粒度。例如,包括在哈希中的路由信息越多, 哈希值有越多的可能,即哈希有越多的粒度。路由器40可為每個(gè)哈希值進(jìn)一步收集流量統(tǒng)計(jì)86 (110)。路由器40可以用一組 計(jì)數(shù)器收集流量統(tǒng)計(jì)86。路由器40將至少一個(gè)計(jì)數(shù)器與每個(gè)哈希值相關(guān)聯(lián)。計(jì)數(shù)器可以 計(jì)算與每個(gè)哈希值對(duì)應(yīng)的包的數(shù)量,與每個(gè)哈希值對(duì)應(yīng)的字節(jié)的數(shù)量等。此外,路由器40 可將至少一個(gè)計(jì)數(shù)器與中繼信息82的每組下一跳相關(guān)聯(lián)。例如,路由器40可以用計(jì)數(shù)器 計(jì)算出與每個(gè)哈希值對(duì)應(yīng)的包的數(shù)目和字節(jié)的數(shù)目為每個(gè)哈希值收集流量統(tǒng)計(jì)。路由器40 可同時(shí)為每組下一跳收集可對(duì)應(yīng)多于一個(gè)哈希值的流量統(tǒng)計(jì)。路由器40可以用流量統(tǒng)計(jì) 86更新哈希表80的映射以在與負(fù)載均衡需求87—致的單一的總體LSP的多個(gè)子路徑上均 衡負(fù)載流量。路由器40可進(jìn)一步為每個(gè)哈希值跟蹤間隙統(tǒng)計(jì)(112)。當(dāng)均衡流量時(shí),路由器40 可以使用間隙統(tǒng)計(jì)84防止不順次傳遞包。路由器40可以通過將時(shí)間戳與每個(gè)哈希值相聯(lián) 跟蹤間隙統(tǒng)計(jì)84。時(shí)間戳可以指示接收具有特定哈希值的最后一個(gè)包的時(shí)間。例如,一旦 標(biāo)識(shí)包的哈希值,路由器40可以設(shè)定與哈希值相聯(lián)的時(shí)間戳??蛇x地,路由器40可以用一 組計(jì)數(shù)器跟蹤間隙統(tǒng)計(jì)84。路由器40可將至少一個(gè)計(jì)數(shù)器與每個(gè)哈希值聯(lián)系。無論何時(shí) 路由器40接收包,與包的哈希值相關(guān)聯(lián)的計(jì)數(shù)器可以設(shè)定為固定值,并周期性地按指定增 加值增加。例如,當(dāng)路由器40接收包時(shí),與包的哈希值相關(guān)聯(lián)的計(jì)數(shù)器可以設(shè)為0,增加值 可以設(shè)為1毫秒。以這種方式,計(jì)數(shù)器可以跟蹤從接收到具有特定哈希值的包以來所消耗的時(shí)間量。
路由器40根據(jù)中繼信息82在分布映射85中執(zhí)行查找以將為包計(jì)算的哈希值映 射到一組下一跳中的一個(gè)和MPLS標(biāo)簽(114)。路由器40應(yīng)用MPLS標(biāo)簽并將包轉(zhuǎn)發(fā)到相應(yīng) 的標(biāo)識(shí)的下一跳的輸出接口。圖9示出用于指示路由器是否支持負(fù)載均衡RSVP-TE LSP的示例性RSVP-TE LSP 的功能對(duì)象150。在一些實(shí)施方式中,功能對(duì)象150可以在網(wǎng)絡(luò)中從路由器向相鄰路由器 發(fā)送的RSVP-TE問候信息中可攜帶指示路由器支持的功能集。在其他實(shí)施方式中,功能對(duì) 象150可以在RSVP-TE路徑消息或RSVP-TE預(yù)留消息中攜帶指示路徑消息或預(yù)留消息用于 建立負(fù)載均衡RSVP-TE LSP0功能對(duì)象150包括長(zhǎng)度字段、等級(jí)數(shù)字段、等級(jí)類型字段(設(shè) 為等級(jí)類型1)、預(yù)留字段和指示支持恢復(fù)路徑再生的R標(biāo)志。根據(jù)本發(fā)明,在功能對(duì)象150 中定義了新標(biāo)志U標(biāo)志152,以指示路由器支持負(fù)載均衡RSVP-TE LSP和/或包含功能對(duì)象 150的消息將用于建立負(fù)載均衡RSVP-TE LSP0交換負(fù)載均衡RSVP-TE LSP功能的RSVP-TE問候消息的使用暗示了路由器在與該 相鄰路由器發(fā)送和接收任何其他RSVP-TE消息之前可與相鄰路由器交換RSVP-TE問候。在 一些情況下,路由器可以不將建立總體RSVP-TE LSP的路徑信息發(fā)送到沿該總體LSP的路 由器,除非發(fā)送路由器知道至少一些其他路由器支持負(fù)載均衡RSVP-TE LSP0在功能對(duì)象 150中U標(biāo)志152為路由器提供一種向網(wǎng)絡(luò)中的相鄰路由器宣告負(fù)載均衡RSVP-TE LSP的 能力的機(jī)制。負(fù)載均衡RSVP-TE LSP能力U標(biāo)志152包括1位。當(dāng)U標(biāo)志152被設(shè)置時(shí)(U = 1),路由器即能夠發(fā)送修改路徑消息和修改預(yù)留消息,又能夠接收修改路徑消息或預(yù)留消 息。當(dāng)U標(biāo)志沒有被設(shè)置時(shí)(U = 0),路由器不能分發(fā)或接收修改的路徑或預(yù)留消息。預(yù)留 位在傳輸中被設(shè)置為0,并且在接收中被忽略。圖10示出了標(biāo)識(shí)隧道標(biāo)識(shí)符的RSVP-TE對(duì)象的示例性類型-長(zhǎng)度-值(TLV)。路 由器可以通過在IP隧道或MPLS隧道中封裝MPLS包沿整個(gè)負(fù)載均衡LSP向路由器傳送MPLS 包。在這種情況下,接收路由器可以基于路由器接收包的隧道確定MPLS包與負(fù)載均衡LSP 相關(guān)聯(lián)。圖10示出的TLV提供一種發(fā)送路由器通知接收路由器發(fā)送路由器將使用特定隧 道傳送負(fù)載均衡的RSVP-TE LSP的MPLS包的機(jī)制。當(dāng)使用RSVP-TE建立負(fù)載均衡RSVP-TE LSP時(shí),IF_IDRSVP_H0P對(duì)象可用于表示 隧道標(biāo)識(shí)符。如果發(fā)送路由器使用IP或MPLS隧道將負(fù)載均衡RSVP-TE LSP的MPLS包傳 輸?shù)浇邮章酚善鳎瑒t發(fā)送路由器將IF_ID RSVP_H0P對(duì)象包括在路徑消息和預(yù)留消息中,可 能除了圖9中的RSVP-TE功能對(duì)象150。TLV值用作隧道標(biāo)識(shí)符。圖10示出在IF_ID RSVP_H0P對(duì)象中的示例性負(fù)載均衡RSVP-TE LSP TLV 160。負(fù) 載均衡RSVP-TE LSP TLV 160包括類型字段、長(zhǎng)度字段、用作隧道標(biāo)識(shí)符的值字段162。在 這種情況下,值字段162包括負(fù)載均衡RSVP-TE會(huì)話對(duì)象和可選擇地發(fā)送者模板對(duì)象。TLV 值字段162標(biāo)識(shí)負(fù)載均衡RSVP-TE LSP。本文描述的技術(shù)(至少部分)可以在硬件、軟件、固件或其任意組合中實(shí)現(xiàn)。例如, 所述技術(shù)的各個(gè)方面可在包括一個(gè)或多個(gè)微處理器、數(shù)字信號(hào)處理器(DSP)、特定用途集成 電路(ASIC)、現(xiàn)場(chǎng)可編程門陣列(FPGA)或其他任何等同的集成電路或分離邏輯電路和這 些部件的任何集合的一個(gè)或多個(gè)處理器內(nèi)實(shí)現(xiàn)。術(shù)語“處理器”或“處理電路”通??芍溉魏吻笆龅倪壿嬰娐?,單獨(dú)的或與其他相結(jié)合的邏輯電路,或任何其他等同電路。這些硬件、軟件和固件在相同設(shè)備或分離設(shè)備內(nèi)實(shí)現(xiàn)以支持本公開所述的各種的 操作和功能。另外,任何所述單元、模塊或組件可共同實(shí)現(xiàn)或作為獨(dú)立但能共同操作的邏輯 設(shè)備單獨(dú)地實(shí)現(xiàn)。作為模塊或單元的不同特征的描述是為了強(qiáng)調(diào)不同用途方面,但并不一 定意味著這樣的模塊或單元一定由獨(dú)立的硬件或軟件組件實(shí)現(xiàn)。相反,與一個(gè)或多個(gè)模塊 或單元相關(guān)的功能可由獨(dú)立的硬件或軟件組件,或在通用的或獨(dú)立的軟件或硬件組件內(nèi)集 成實(shí)現(xiàn)。本發(fā)明所述的技術(shù)還可以在包含指令的計(jì)算機(jī)可讀介質(zhì)(諸如計(jì)算機(jī)可讀存儲(chǔ) 介質(zhì))中實(shí)施和編碼。例如,當(dāng)執(zhí)行指令時(shí),在計(jì)算機(jī)可讀介質(zhì)中嵌入和編碼的指令可使 得可編程處理器或其他處理器執(zhí)行方法。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以包括隨機(jī)存取存儲(chǔ)器 (RAM)、只讀存儲(chǔ)器(ROM)、可編程只讀存儲(chǔ)器(PR0M)、可擦除可編程只讀存儲(chǔ)器(EPROM)、 電可擦除可編程只讀存儲(chǔ)器(EEPROM)、閃存、硬盤、CD-ROM、軟盤、磁帶、磁性介質(zhì)、光學(xué)介 質(zhì)、或其他計(jì)算機(jī)可讀介質(zhì)。已經(jīng)描述了本發(fā)明的各種實(shí)施方式。這些和其他實(shí)施方式在后面的權(quán)利要求書的范圍內(nèi)。
權(quán)利要求
一種對(duì)從入口設(shè)備到出口設(shè)備的網(wǎng)絡(luò)上的總體標(biāo)簽交換路徑(LSP)進(jìn)行流量管理的方法,包括為所述LSP計(jì)算滿足一組流量工程約束的到所述出口設(shè)備的多條子路徑;沿所述總體LSP的多個(gè)子路徑中的兩個(gè)或多個(gè)向標(biāo)簽交換路由器(LSR)發(fā)送資源預(yù)留請(qǐng)求,其中,所述資源預(yù)留請(qǐng)求包括將所述請(qǐng)求與同一總體LSP相關(guān)聯(lián)的標(biāo)識(shí)符,以及,每個(gè)所述資源預(yù)留請(qǐng)求均包括將所請(qǐng)求的總體LSP指定為負(fù)載均衡LSP的指示符;響應(yīng)于所述資源預(yù)留請(qǐng)求接收資源預(yù)留消息,所述資源預(yù)留消息指定預(yù)留資源和分配給所述總體LSP用于沿所述總體LSP的子路徑向相應(yīng)的下一跳轉(zhuǎn)發(fā)網(wǎng)絡(luò)流量的標(biāo)簽,其中,所述資源預(yù)留消息包括將所述消息與同一總體LSP相關(guān)聯(lián)的標(biāo)識(shí)符,以及,每個(gè)所述資源預(yù)留消息均包括將所述總體LSP指定為負(fù)載均衡LSP的指示符;配置網(wǎng)絡(luò)設(shè)備的轉(zhuǎn)發(fā)平面以為所述總體LSP的子路徑存儲(chǔ)標(biāo)簽和相應(yīng)的下一跳;使用指定如何在所述總體LSP的所述子路徑上負(fù)載均衡網(wǎng)絡(luò)流量的負(fù)載均衡需求來配置所述轉(zhuǎn)發(fā)平面;在所述總體LSP的所述入口設(shè)備處接收網(wǎng)絡(luò)流量;在所述入口設(shè)備的轉(zhuǎn)發(fā)平面中,根據(jù)負(fù)載均衡需求,通過從所存儲(chǔ)的用于轉(zhuǎn)發(fā)所述網(wǎng)絡(luò)流量的標(biāo)簽和相應(yīng)下一跳中進(jìn)行選擇來在子路徑上負(fù)載均衡所述網(wǎng)絡(luò)流量;以及使用所選擇的標(biāo)簽將所述網(wǎng)絡(luò)流量轉(zhuǎn)發(fā)到所述總體LSP的子路徑上。
2.根據(jù)權(quán)利要求1所述的方法,其中,計(jì)算所述多個(gè)子路徑包括在所述入口設(shè)備計(jì)算 所述多個(gè)子路徑。
3.根據(jù)權(quán)利要求1所述的方法,其中,計(jì)算所述多個(gè)子路徑包括在所述總體LSP的每個(gè) 所述LSR計(jì)算所述多個(gè)子路徑。
4.根據(jù)權(quán)利要求1所述的方法,其中,所述網(wǎng)絡(luò)流量包括與去往所述總體LSP的所述出 口設(shè)備的多個(gè)包流相關(guān)聯(lián)的包,其中,在所述子路徑上負(fù)載均衡所述網(wǎng)絡(luò)流量包括將流級(jí) 別負(fù)載均衡應(yīng)用到所接收的網(wǎng)絡(luò)流量。
5.根據(jù)權(quán)利要求1所述的方法,其中,負(fù)載均衡所述網(wǎng)絡(luò)流量包括將哈希函數(shù)應(yīng)用到 所述網(wǎng)絡(luò)流量的包的一部分,并基于所述哈希函數(shù)訪問哈希表,以確定應(yīng)用于所述包的多 協(xié)議標(biāo)簽交換(MPLS)標(biāo)簽和從其中輸出所述包的輸出接口。
6.根據(jù)權(quán)利要求1所述的方法,其中,所述流量工程約束包括帶寬、鏈路色和共享風(fēng)險(xiǎn) 鏈路組(SRLG)中的一個(gè)或多個(gè)。
7.根據(jù)權(quán)利要求1所述的方法,其中,所述資源預(yù)留請(qǐng)求包括擴(kuò)展的RSVP-TE路徑消 息,其中,每個(gè)所述的擴(kuò)展的RSVP-TE路徑消息均包括所述總體LSP的標(biāo)識(shí)符,以及,所述指 示符是將所述總體LSP標(biāo)識(shí)為負(fù)載均衡LSP的負(fù)載均衡位或字段。
8.根據(jù)權(quán)利要求1所述的方法,還包括評(píng)價(jià)流量統(tǒng)計(jì),以確定子路徑是否與所述總體LSP的配置的流量工程需求一致地被利 用,以及動(dòng)態(tài)更新哈希表,以校正與所述配置的流量工程需求的不一致。
9.根據(jù)權(quán)利要求1所述的方法,其中,所述總體LSP延伸通過從所述入口設(shè)備到多個(gè)出口設(shè)備的網(wǎng)絡(luò),以及其中,為所述LSP計(jì)算滿足一組流量工程約束的到出口設(shè)備的多個(gè)子路徑包括為L(zhǎng)SP計(jì)算到所述多個(gè)出口設(shè)備中的每一個(gè)的多個(gè)子路徑。
10.一種路由器,包括控制單元,被配置為執(zhí)行用于對(duì)從入口設(shè)備到出口設(shè)備的網(wǎng)絡(luò)上的總體標(biāo)簽交換路徑 (LSP)進(jìn)行流量管理的資源預(yù)留協(xié)議,其中,所述資源預(yù)留協(xié)議被配置成為所述總體LSP計(jì) 算滿足一組流量工程約束的到所述出口設(shè)備的多個(gè)可選子路徑;物理接口,被配置為沿所述總體LSP的所述多個(gè)子路徑中的兩個(gè)或多個(gè)向標(biāo)簽交換路 由器(LSR)發(fā)送由所述資源預(yù)留協(xié)議產(chǎn)生的資源預(yù)留請(qǐng)求,其中,所述資源預(yù)留請(qǐng)求包括 將所述請(qǐng)求與同一總體LSP相關(guān)聯(lián)的標(biāo)識(shí)符,并且,每個(gè)所述資源預(yù)留請(qǐng)求均包括將所請(qǐng) 求的總體LSP指定為負(fù)載均衡LSP的指示符;以及,響應(yīng)于所述資源預(yù)留請(qǐng)求來接收資源預(yù) 留消息,所述資源預(yù)留消息指定預(yù)留資源和分配給所述總體LSP用于沿所述總體LSP的子 路徑向相應(yīng)的下一跳轉(zhuǎn)發(fā)網(wǎng)絡(luò)流量的標(biāo)簽,其中,所述資源預(yù)留消息包括將所述信息與同 一總體LSP相關(guān)聯(lián)的標(biāo)識(shí)符,并且,每個(gè)所述資源預(yù)留消息均包括將所述總體LSP指定為負(fù) 載均衡LSP的指示符;轉(zhuǎn)發(fā)平面,被配置成為所述總體LSP的子路徑存儲(chǔ)所述標(biāo)簽和相應(yīng)的下一跳,其中,所 述資源預(yù)留協(xié)議使用指定如何在所述總體LSP的所述子路徑上負(fù)載均衡網(wǎng)絡(luò)流量的負(fù)載 均衡需求來配置所述轉(zhuǎn)發(fā)平面;以及負(fù)載均衡模塊,在轉(zhuǎn)發(fā)平面上執(zhí)行,其中,所述負(fù)載均衡模塊被配置為根據(jù)所述負(fù)載均 衡需求,通過從存儲(chǔ)的用于轉(zhuǎn)發(fā)所述網(wǎng)絡(luò)流量的標(biāo)簽和相應(yīng)下一跳中進(jìn)行選擇來在子路徑 上負(fù)載均衡所述網(wǎng)絡(luò)流量,以及其中,所述接口被配置成使用所選擇的標(biāo)簽將所述網(wǎng)絡(luò)流量轉(zhuǎn)發(fā)到所述總體LSP的子 路徑上。
11.根據(jù)權(quán)利要求10所述的路由器,其中,所述負(fù)載均衡模塊被配置為將哈希函數(shù)應(yīng) 用到所述網(wǎng)絡(luò)流量的包的一部分,以及基于所述哈希函數(shù)訪問哈希表,以確定應(yīng)用于所述 包的多協(xié)議標(biāo)簽交換(MPLS)標(biāo)簽和從其中輸出所述包的輸出接口。
12.根據(jù)權(quán)利要求10所述的路由器,其中,所述負(fù)載均衡模塊被配置成將流級(jí)別負(fù)載 均衡應(yīng)用到與由所述接口接收的多個(gè)包流相關(guān)聯(lián)的包,以在子路徑上負(fù)載均衡所述包流。
13.根據(jù)權(quán)利要求10所述的路由器,其中,所述資源預(yù)留協(xié)議被配置成執(zhí)行最大數(shù)目 的為其發(fā)送資源預(yù)留請(qǐng)求的計(jì)算的子路徑。
14.根據(jù)權(quán)利要求10所述的路由器,還包括鏈路監(jiān)控模塊,其評(píng)價(jià)與所述路由器的多 個(gè)鏈路中的每一個(gè)相關(guān)聯(lián)的流量統(tǒng)計(jì),以確定與鏈路相關(guān)聯(lián)的子路徑是否與總體LSP的配 置的流量工程需求一致地被利用,其中,所述負(fù)載均衡模塊基于所述鏈路監(jiān)控模塊的評(píng)價(jià)動(dòng)態(tài)地更新哈希表,以校正與 所述配置的流量工程需求的不一致。
15.根據(jù)權(quán)利要求10所述的路由器,其中,所述資源預(yù)留協(xié)議包括擴(kuò)展的基于流量工 程擴(kuò)展的資源預(yù)留協(xié)議(RSVP-TE)。
16.根據(jù)權(quán)利要求10所述的路由器,其中,所述總體LSP包括單播LSP。
17.根據(jù)權(quán)利要求10所述的路由器,其中,所述總體LSP延伸通過從所述入口設(shè)備到多個(gè)出口端設(shè)備的網(wǎng)絡(luò),以及其中,所述資源預(yù)留協(xié)議被配置成為所述LSP計(jì)算到所述多個(gè)出口端設(shè)備中的每一個(gè)的多個(gè)子路徑。
18.根據(jù)權(quán)利要求17所述的路由器,其中,所述總體LSP包括用于負(fù)載均衡多播流量的 負(fù)載均衡點(diǎn)到多點(diǎn)LSP,其中,一個(gè)或多個(gè)所述多個(gè)子路徑包括點(diǎn)到多點(diǎn)子路徑。
全文摘要
本發(fā)明提供了使用RSVP-TE在標(biāo)簽交換路徑上負(fù)載均衡網(wǎng)絡(luò)流量的技術(shù),其使用諸如基于流量工程的資源預(yù)留協(xié)議(RSVP-TE)的資源預(yù)留協(xié)議為負(fù)載均衡將在網(wǎng)絡(luò)上發(fā)送的網(wǎng)絡(luò)流量建立總體標(biāo)簽交換路徑(LSP)。該技術(shù)包括使路由器能夠發(fā)送路徑消息的擴(kuò)展的RSVP-TE協(xié)議以建立包含總體LSP的多個(gè)子路徑的隧道。隧道可以包括配置成在網(wǎng)絡(luò)上RSVP-TE LSP的不同子路徑上負(fù)載均衡網(wǎng)絡(luò)流量的單一RSVP-TE標(biāo)簽交換路徑(LSP)。
文檔編號(hào)H04L12/56GK101815035SQ20101013519
公開日2010年8月25日 申請(qǐng)日期2010年2月25日 優(yōu)先權(quán)日2009年2月25日
發(fā)明者基里蒂·康佩拉 申請(qǐng)人:叢林網(wǎng)絡(luò)公司