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