蘭加興
摘要:在路由協(xié)議IS-IS中,無論是IS-IS自身的路由信息,還是MPLS TE鏈路帶寬信息,均通過三元組TLV封裝在鏈路狀態(tài)報文LSP中泛洪給鄰居。文章提供一種解決方案,通過對MPLS TE鏈路帶寬信息變化情況進行標(biāo)識,改進現(xiàn)有的路由計算算法,避免了IS-IS在發(fā)布MPLS TE鏈路帶寬信息過程中因不必要的路由計算以及計算中的不必要操作引起的網(wǎng)絡(luò)震蕩,提高了路由計算效率。
關(guān)鍵詞:IS-IS;MPLS TE;路由計算;網(wǎng)絡(luò)震蕩方法;鏈路狀態(tài) 文獻標(biāo)識碼:A
中圖分類號:TP393 文章編號:1009-2374(2016)21-0010-04 DOI:10.13535/j.cnki.11-4406/n.2016.21.005
1 背景技術(shù)
MPLS TE是基于MPLS的流量工程技術(shù),利用MPLS天然的隧道特性,通過建立多條隧道并根據(jù)帶寬使用情況將報文分配給不同的隧道轉(zhuǎn)發(fā),提高網(wǎng)絡(luò)資源的有效利用率。
圖1是MPLS TE隧道進行負載均衡的示意圖。
使用MPLS TE隧道之前,IP報文按照最短路徑轉(zhuǎn)發(fā),站點1(Site1)到達站點2(Site2)的IP報文都通過LSRB,而另外一條路徑(LERA→LSRD→LSRE→LERC)處于空閑狀態(tài)。使用MPLS TE隧道之后,在LERA上建立兩條到達LERC的TE隧道,一條隧道經(jīng)過LSRB,另外一條經(jīng)過LSRD、LSRE到達LERC。這樣從站點1到達站點2的報文流量可以通過定義的策略分別引入到這兩條TE隧道中進行轉(zhuǎn)發(fā),從而充分利用了網(wǎng)絡(luò)的帶寬,避免網(wǎng)絡(luò)資源浪費。
MPLS TE由以下四個部分組成:
1.1 信息發(fā)布
即將MPLS TE鏈路帶寬信息通過鏈路狀態(tài)路由協(xié)議(比如IS-IS)的鏈路狀態(tài)報文(比如IS-IS的LSP報文)封裝后發(fā)布到網(wǎng)絡(luò)中,形成流量工程數(shù)據(jù)庫(Traffic Engineering Database,簡稱為TED)。
1.2 路徑計算
根據(jù)網(wǎng)絡(luò)管理員指定的隧道帶寬等條件,由鏈路狀態(tài)路由協(xié)議,使用流量工程數(shù)據(jù)庫TED中存儲的鏈路帶寬等信息在原有最短路徑SPF算法基礎(chǔ)上增加隧道帶寬等條件判斷,計算出符合建立隧道條件的最短路徑,該算法也稱為約束最短路徑優(yōu)先算法(Constraint Shortest Path First algorithm,CSPF)。由于增加了隧道帶寬等條件,最早建立的隧道優(yōu)先使用最短路徑的帶寬,后續(xù)的隧道由于最短路徑帶寬被之前建立的隧道占用,將使用其他路徑建立,這樣就保證了不同路徑都會被利用,避免網(wǎng)絡(luò)資源浪費。
1.3 TE隧道建立
MPLS TE信令協(xié)議沿著CSPF計算出的路徑建立MPLS TE隧道。隧道成功建立之后,通知鏈路狀態(tài)路由協(xié)議MPLS TE鏈路帶寬信息發(fā)生變化(因為帶寬被剛建立的TE隧道占用了),鏈路狀態(tài)路由協(xié)議更新鏈路狀態(tài)報文,并泛洪給鄰居。
1.4 報文轉(zhuǎn)發(fā)
通過流量策略,報文被引入符合規(guī)則的不同隧道轉(zhuǎn)發(fā)。
IS-IS協(xié)議是MPLS TE可用于路徑計算的兩種鏈路狀態(tài)路由協(xié)議之一。在IS-IS協(xié)議中,所有的路由信息均封裝在三元組TLV中并通過LSP報文泛洪給鄰居,然后根據(jù)一致的LSP報文進行SPF路由計算。在MPLS TE技術(shù)中,MPLS TE鏈路帶寬信息也是封裝在三元組TLV中并通過LSP報文泛洪給鄰居,IS-IS協(xié)議進行隧道的CSPF計算也是基于LSP報文進行。
2 現(xiàn)有機制的網(wǎng)絡(luò)震蕩問題
從上文描述可知,無論是IS-IS自身的最短SPF路由計算,還是為MPLS TE進行CSPF路由計算,都是基于LSP報文進行。由于IS-IS自身的最短SPF路由計算不關(guān)心MPLS TE鏈路帶寬信息,而為MPLS TE進行的CSPF路由計算則需要MPLS TE鏈路帶寬信息,在現(xiàn)有機制下存在以下缺陷:
第一,MPLS TE任何鏈路帶寬信息變化都會導(dǎo)致LSP報文更新并泛洪給鄰居,鄰居收到后,首先會觸發(fā)SPF計算,由于路由信息無變化,因此所進行的SPF計算是多余的,白白浪費設(shè)備系統(tǒng)資源;其次會觸發(fā)MPLS TE隧道的重優(yōu)化計算(即使用CSPF計算更優(yōu)的路徑)或重試計算(即之前因帶寬等條件不滿足的隧道重新進行計算),而無論重優(yōu)化或重試計算只有在可用鏈路帶寬變大或新增鏈路情況下才有可能成功,否則都是多余的計算,比如鏈路帶寬配置變小或者其他隧道正常建立占用帶寬導(dǎo)致可用帶寬變小。在存在大量隧道的網(wǎng)絡(luò)中,這些多余的路由計算可能導(dǎo)致設(shè)備處理繁忙、內(nèi)存不足,從而引發(fā)網(wǎng)絡(luò)震蕩。
第二,在規(guī)模比較大的網(wǎng)絡(luò)中,每臺設(shè)備的LSP報文一般都有多條,而大部分LSP報文只攜帶SPF或CSPF計算無需關(guān)心IP路由信息,然而每次SPF或CSPF計算都要遍歷并檢索所有的LSP報文,在設(shè)備處理壓力比較大的情況下,這些多余的操作同樣可能導(dǎo)致網(wǎng)絡(luò)震蕩。
綜合前面的描述,IS-IS現(xiàn)有機制的缺陷可以總結(jié)為一句話:由于無法識別LSP報文攜帶的MPLS TE鏈路帶寬信息的變化情況,觸發(fā)了不必要的SPF/CSPF路由計算以及路由計算中的不必要操作,在特定情況下,將導(dǎo)致設(shè)備處理繁忙、內(nèi)存不足,引起網(wǎng)絡(luò)震蕩。
3 避免網(wǎng)絡(luò)震蕩方法的研究
本文描述了一種避免網(wǎng)絡(luò)震蕩的解決方案,該技術(shù)方案包括兩個方面:
第一,識別MPLS TE鏈路帶寬信息的變化情況,并在LSP報頭進行標(biāo)記。
第二,改進現(xiàn)有SPF/CSPF算法,取消不必要的計算以及計算過程中不必要的操作。
下文分別進行說明:
3.1 MPLS TE鏈路帶寬信息變化標(biāo)記
3.1.1 在非選舉節(jié)點LSP報文更新時,根據(jù)三元組TLV的內(nèi)容變化情況,將之識別為以下八種情況:
第一,只包含IP路由TLV,并發(fā)生改變。
第二,包含鄰居TLV,并且所有鄰居TLV均無MPLS TE鏈路帶寬信息,并發(fā)生變化。
第三,包含鄰居TLV,并且其中一個或多個包含MPLS TE鏈路帶寬信息,鏈路帶寬因隧道建立變小。
第四,包含鄰居TLV,并且其中一個或多個包含MPLS TE鏈路帶寬信息,鏈路帶寬因管理員配置變小。
第五,包含鄰居TLV,并且其中一個或多個包含MPLS TE鏈路帶寬信息,鏈路帶寬因隧道關(guān)閉變大。
第六,包含鄰居TLV,并且其中一個或多個包含MPLS TE鏈路帶寬信息,鏈路帶寬因管理員配置變大。
第七,包含鄰居TLV,并且其中一個或多個包含MPLS TE鏈路帶寬信息,非鏈路帶寬值發(fā)生變化或者路由ID(router-id)TLV發(fā)生變化。
第八,其他TLV(除IP路由TLV、鄰居TLV、路由ID TLV之外的TLV)發(fā)生變化。
3.1.2 定義五種優(yōu)先級從小到大的標(biāo)識并復(fù)用LSP報頭五個比特保留位來表示:IP路由標(biāo)識、無MPLS TE鏈路帶寬信息標(biāo)識、MPLS TE鏈路帶寬變小標(biāo)識、MPLS TE鏈路帶寬變大標(biāo)識、MPLS TE非鏈路帶寬變化標(biāo)識。優(yōu)先級高的標(biāo)識直接覆蓋優(yōu)先級低的,已經(jīng)有優(yōu)先級高或相同的標(biāo)識,直接跳過,無需設(shè)置,同時按以下規(guī)則設(shè)置標(biāo)識位:
(1)IP路由標(biāo)識。符合第一種情況,打上該標(biāo)識。
(2)無MPLS TE鏈路帶寬信息標(biāo)識。符合第二種情況,打上該標(biāo)識,直接覆蓋IP路由標(biāo)識。
(3)MPLS TE鏈路帶寬變小標(biāo)識。適合第三、四種情況,打上該標(biāo)識,直接覆蓋優(yōu)先級低的標(biāo)識。
(4)MPLS TE鏈路帶寬變大標(biāo)識。適合第五、六種情況,打上該標(biāo)識,直接覆蓋優(yōu)先級低的標(biāo)識。
(5)MPLS TE非鏈路帶寬變化標(biāo)識。適合第七種情況,打上該標(biāo)識,直接覆蓋優(yōu)先級低的標(biāo)識。
(6)第八種情況,無需打標(biāo)識。
3.1.3 對LSP報文封裝機制做如下改進:在LSP報文插入或更新TLV時,首先對TLV進行分類,如果是IP路由TLV,則判斷是否已經(jīng)設(shè)置了高優(yōu)先級的標(biāo)識,如果沒有,則設(shè)置IP路由標(biāo)識;如果有,則無需修訂;如果是鄰居TLV,接著分析判斷是否包含鏈路帶寬信息,如無,則設(shè)置無MPLS TE鏈路帶寬信息標(biāo)識,如果有,是否是第一次添加,如果是,則設(shè)置MPLS TE非鏈路帶寬變化標(biāo)識,如果不是第一次添加,則對比前后鏈路帶寬信息和非鏈路帶寬信息,根據(jù)變化情況設(shè)置MPLS TE鏈路帶寬變大或變小標(biāo)識或非鏈路帶寬變化標(biāo)識。路由ID TLV變化直接設(shè)置非鏈路帶寬變化標(biāo)識。LSP報文泛洪給鄰居之后,如果報頭標(biāo)識是后面四種,則清零,IP路由標(biāo)識保留。
圖2是LSP報文封裝機制改進擴展流程圖:
3.2 SPF/CSPF計算算法改進
在現(xiàn)有機制中,IS-IS協(xié)議收到鄰居的LSP報文之后,分別存入LSP報文狀態(tài)數(shù)據(jù)庫LSPD和流量工程數(shù)據(jù)庫TED中,然后分別進行SPF/CSPF計算。本文所描述的解決將分別對SPF/CSPF路由計算算法別做如下改進:
3.2.1 SPF。
觸發(fā)機制改進:判斷LSP報文類型,如果是非選舉節(jié)點的LSP報文,則進一步判斷LSP報頭標(biāo)識,如果攜帶MPLS TE鏈路帶寬變小標(biāo)識、MPLS TE鏈路帶寬變大標(biāo)識、MPLS TE非鏈路帶寬變化標(biāo)識,則直接跳過,無需觸發(fā)新的SPF計算,其他情況按現(xiàn)有流程處理。
算法改進:在LSP報文遍歷時,判斷LSP報文類型,如果是非選舉節(jié)點的LSP報文,則進一步判斷LSP報頭標(biāo)識,如果攜帶IP路由標(biāo)識,則直接跳過,不遍歷具體內(nèi)容,其他情況按現(xiàn)有流程處理。
圖3為SPF算法改進流程圖:
3.2.2 CSPF。
觸發(fā)機制改進:判斷LSP報文類型,如果是非選舉節(jié)點的LSP報文,則進一步判斷LSP報頭標(biāo)識,如果攜帶MPLS TE鏈路帶寬變小標(biāo)識、無MPLS TE鏈路帶寬信息標(biāo)識、IP路由標(biāo)識,則直接跳過,無需觸發(fā)重優(yōu)化計算和重試計算,如果攜帶MPLS TE鏈路帶寬變大標(biāo)識、MPLS TE非鏈路帶寬變化標(biāo)識,則需觸發(fā)重優(yōu)化計算和重試計算,其他情況按現(xiàn)有流程處理。
算法改進:在LSP報文的遍歷過程中,判斷LSP報文類型,如果是非選舉節(jié)點的LSP報文,則進一步判斷LSP報頭標(biāo)識,如果攜帶IP路由標(biāo)識或無MPLS TE鏈路帶寬信息標(biāo)識,則直接跳過,不遍歷具體內(nèi)容,其他情況按現(xiàn)有流程處理。
CSPF算法改進流程與SPF算法改進流程類似,這里不再給出改進流程圖。
4 結(jié)語
綜上所述,本文所描述的方法,通過對MPLS TE鏈路帶寬信息變化情況進行識別并標(biāo)識,改進現(xiàn)有的SPF和CSPF計算算法,避免了IS-IS協(xié)議在發(fā)布MPLS TE鏈路帶寬信息過程中因不必要的路由計算或計算過程不必要的操作引起的網(wǎng)絡(luò)震蕩,同時也提高了路由計算效率。
參考文獻
[1] Eric Osborne,張輝,等.基于MPLS的流量工程(修訂版)[M].北京:人民郵電出版社,2012.
[2] ISO/IEC 10589 2002-Intermediate System to Intermediate System Intra-domain routing informationexchange protocol[S].
[3] IETF RFC 1195 1990-Use of OSI IS-IS for Routing in TCP/IP and Dual Environments[S].
[4] IETF RFC 5305 2008-IS-IS Extensions for Traffic Engineering[S].
(責(zé)任編輯:黃銀芳)