蘭加興



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