MPLS技術(shù)研究及應(yīng)用
本文對MPLS技術(shù)進(jìn)行了全面介紹,指出MPLS技術(shù)將發(fā)展成為運營商全國骨干網(wǎng)及各城域網(wǎng)的核心技術(shù),同時簡要介紹了MPLS技術(shù)在中國鐵通IP骨干網(wǎng)絡(luò)中的應(yīng)用。
MPLS VPN TE
MPLS(多協(xié)議標(biāo)簽交換)是一種可提供高性價比和多業(yè)務(wù)能力的交換技術(shù), 它解決了傳統(tǒng)IP分組交換的局限性,在業(yè)界受到了廣泛的重視,并在中國網(wǎng)通、中國鐵通全國骨干網(wǎng)等網(wǎng)絡(luò)建設(shè)中得到了實踐部署。采用MPLS技術(shù)可以提供靈活的流量工程、虛擬專網(wǎng)等業(yè)務(wù),同時,MPLS也是能夠完成涉及多層網(wǎng)絡(luò)集成控制與管理的技術(shù)。
1.MPLS概述
1.1、MPLS的基本原理
MPLS是一種第三層路由結(jié)合第二層屬性的交換技術(shù),引入了基于標(biāo)簽的機制,它把路由選擇和數(shù)據(jù)轉(zhuǎn)發(fā)分開,由標(biāo)簽來規(guī)定一個分組通過網(wǎng)絡(luò)的路徑。MPLS網(wǎng)絡(luò)由核心部分的標(biāo)簽交換路由器(LSR)、邊緣部分的標(biāo)簽邊緣路由器(LER)組成。LSR的作用可以看作是ATM交換機與傳統(tǒng)路由器的結(jié)合,由控制單元和交換單元組成;LER的作用是分析IP包頭,用于決定相應(yīng)的傳送級別和標(biāo)簽交換路徑(LSP)。標(biāo)簽交換的工作過程可概括為以下3個步驟:
(1)由LDP(標(biāo)簽分布協(xié)議)和傳統(tǒng)路由協(xié)議(OSPF、IS-IS等)一起,在LSR中建立路由表和標(biāo)簽映射表;
(2)LER接收IP包,完成第三層功能,并給IP包加上標(biāo)簽;在MPLS出口的LER上,將分組中的標(biāo)簽去掉后繼續(xù)進(jìn)行轉(zhuǎn)發(fā);
(3)LSR對分組不再進(jìn)行任何第三層處理,只是依據(jù)分組上的標(biāo)簽通過交換單元對其進(jìn)行轉(zhuǎn)發(fā)。
整個操作過程如圖1:
#FormatImgID_0# |
圖1
IETF標(biāo)準(zhǔn)文檔中定義的MPLS包頭是插入在傳統(tǒng)的第二層數(shù)據(jù)鏈路層包頭和第三層IP包頭之間的一個32位的字段,如圖2所示:
#FormatImgID_1# |
圖2
Label字段:20位,標(biāo)簽字段。
EXP:3位,實驗字段。
S字段:1位,堆棧(Stack)字段。
TTL字段:8位,生存時間字段。
1.2、MPLS信令方式
目前MPLS實現(xiàn)信令的方式可分為兩類,一類是LDP/CR-LDP(Label Dispatch Protocol, Constrain based Routing Label Dispatch Protocol),源于ATM網(wǎng)絡(luò)的思想。CR-LDP和LDP是同一個協(xié)議,CR-LDP是LDP的擴展,它使用與LDP相同的消息和機制,如對等發(fā)現(xiàn)、會話建立和保持、標(biāo)簽發(fā)布和錯誤處理。另外一類是RSVP,它基于傳統(tǒng)的IP路由協(xié)議。RSVP和LDP/CR-LDP是兩種不同的協(xié)議,它們在協(xié)議特性上存在不同,有不同的消息集和信令處理規(guī)程。從協(xié)議可靠性上來看,LDP/CR-LDP是基于TCP的,當(dāng)發(fā)生傳輸丟包時,利用TCP協(xié)議提供簡單的錯誤指示,實現(xiàn)快速響應(yīng)和恢復(fù)。而RSVP只是傳送IP包。由于缺乏可靠的傳輸機制,RSVP無法保證快速的失敗通知。從網(wǎng)絡(luò)可擴展性上看,LDP較RSVP更有優(yōu)勢,一般電信級網(wǎng)絡(luò)中尤其是ATM網(wǎng)絡(luò)中,應(yīng)采用MPLS/LDP。ITU-T傾向于在骨干網(wǎng)中采用CR-LDP。 目前所有支持MPLS功能的路由設(shè)置都同時支持CR-LDP和RSVP兩種MPLS的信令協(xié)議。
1.3、MPLS的網(wǎng)絡(luò)構(gòu)成
MPLS網(wǎng)絡(luò)由標(biāo)簽邊緣路由器(LER)和標(biāo)簽交換路由器(LSR)組成。在LSR內(nèi),MPLS控制模塊以IP功能為中心,轉(zhuǎn)發(fā)模塊基于標(biāo)簽交換算法,并通過標(biāo)簽分配協(xié)議(LDP)在節(jié)點間完成標(biāo)簽信息以及相關(guān)信令的發(fā)送。值得注意的是,LDP信令以及標(biāo)簽綁定信息只在MPLS相鄰節(jié)點間傳遞。LSR之間或ISR與LER之間依然需要運行標(biāo)準(zhǔn)的路由協(xié)議,并由此獲得拓?fù)湫畔?。通過這些信息LSR可以明確選取報文的下一跳并可最終建立特定的標(biāo)簽交換路徑(LSP)。MPLS使用控制驅(qū)動模型,即基于拓?fù)潋?qū)動方式對用于建立LSP的標(biāo)簽綁定信息的分配及轉(zhuǎn)發(fā)進(jìn)行初始化。LSP屬于單向傳輸路徑,因而全雙工業(yè)務(wù)需要兩條LSP,每條LSP負(fù)責(zé)一個方向上的業(yè)務(wù)。
1.4、MPLS的核心技術(shù)LDP
MPLS通過簡單的核心機制來提供豐富的標(biāo)簽分配及相關(guān)處理功能。構(gòu)成MPLS協(xié)議框架的主要元素有標(biāo)簽分配協(xié)議(LDP),標(biāo)簽映射表(LIB)和轉(zhuǎn)發(fā)信息庫(FIB),其中LIB和FIB分別為存儲標(biāo)簽綁定信息和相應(yīng)的標(biāo)簽轉(zhuǎn)發(fā)信息的數(shù)據(jù)庫。為了能夠在MPLS域內(nèi)明確定義、分配標(biāo)簽,同時使用網(wǎng)絡(luò)內(nèi)各元素充分理解其標(biāo)簽含義,LDP提供一套標(biāo)準(zhǔn)的信令機制用于有效地實現(xiàn)標(biāo)簽的分配與轉(zhuǎn)發(fā)功能。LDP基于原有的網(wǎng)絡(luò)層路由協(xié)議構(gòu)建標(biāo)簽信息庫,并根據(jù)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),在MPLS域邊緣節(jié)點(即入節(jié)點與出節(jié)點)之間建立LSP。LDP信令位于TCP/UDP之上,它通過TCP層保證信令消息可靠傳輸,同時基于UDP傳送發(fā)現(xiàn)消息。LDP信令傳輸使用的TCP和UDP知名端口號均為646。相鄰的LSR之間必須建立一條非MPLS連接鏈路作為信令通道,用于傳送LDP信令報文。
1.5、MPLS的主要技術(shù)特點
(1)流量工程
傳統(tǒng)IP網(wǎng)絡(luò)一旦為一個IP包選擇了一條路徑,則不管這條鏈路是否擁塞,IP包都會沿著這條路徑傳送,這樣就會造成整個網(wǎng)絡(luò)在某處資源過度利用,而另外一些地方網(wǎng)絡(luò)資源閑置不用,MPLS可以控制IP包在網(wǎng)絡(luò)中所走過的路徑,這樣可以避免IP包在網(wǎng)絡(luò)中的盲目行為,避免業(yè)務(wù)流向已經(jīng)擁塞的節(jié)點,實現(xiàn)網(wǎng)絡(luò)資源的合理利用。
(2)負(fù)載均衡
MPLS可以使用兩條和多條LSP來承載同一個用戶的IP業(yè)務(wù)流,合理地將用戶業(yè)務(wù)流分?jǐn)傇谶@些LSP之間。
(3)路徑備份
可以配置兩條LSP,一條處于激活狀態(tài),另外一條處于備份狀態(tài),一旦主LSP出現(xiàn)故障,業(yè)務(wù)立刻導(dǎo)向備份的LSP,直到主LSP從故障中恢復(fù),業(yè)務(wù)再從備份的LSP切回到主LSP。
(4)故障恢復(fù)
當(dāng)一條已經(jīng)建立的LSP在某一點出現(xiàn)故障時,故障點的MPLS會向上游發(fā)送Notification消息,通知上游LER重新建立一條LSP來替代這條出現(xiàn)故障的LSP。上游LER就會重新發(fā)出Request消息建立另外一條LSP來保證用戶業(yè)務(wù)的連續(xù)性。
(5)路徑優(yōu)先級及碰撞
在網(wǎng)絡(luò)資源匱乏的時候,應(yīng)保證優(yōu)先級高的業(yè)務(wù)優(yōu)先使用網(wǎng)絡(luò)資源。MPLS通過設(shè)置LSP的建立優(yōu)先級和保持優(yōu)先級來實現(xiàn)的。每條LSP有n個建立優(yōu)先級和m個保持優(yōu)先級。優(yōu)先級高的LSP先建立,并且如果某條LSP建立時,網(wǎng)絡(luò)資源匱乏,而它的建立優(yōu)先級又高于另外一條已經(jīng)建立的LSP的保持優(yōu)先級,那么它可以將已經(jīng)建立的那條LSP斷開,讓出網(wǎng)絡(luò)資源供它使用。
1.6、MPLS QoS
有兩種方法用以MPLS流中指示服務(wù)類別。一種是IP Precedence,可以指出8種服務(wù)類別。它被拷貝到MPLS頭中的CoS字段,典型應(yīng)用是在核心路由器。在另一種方式中,MPLS可用不同組的標(biāo)簽指定服務(wù)類別,交換機可自動獲知流量需要按優(yōu)先級排隊。目前,MPLS支持最多8種服務(wù)類別,編碼與IP Precedence相同。這一數(shù)量不久將增加,原因是標(biāo)簽的數(shù)量多于IP前導(dǎo)的服務(wù)類別。采用標(biāo)簽分類后實際的服務(wù)類別數(shù)量是無限的。
2、基于MPLS的VPN技術(shù)
VPN被一致認(rèn)可為網(wǎng)絡(luò)運營商的核心應(yīng)用。網(wǎng)絡(luò)運營商經(jīng)常面臨的挑戰(zhàn)是商業(yè)用戶需要將他們建立的網(wǎng)絡(luò)通過VPN擴展到分支機構(gòu)或外部用戶網(wǎng)。這些基于IP的主流應(yīng)用要求網(wǎng)絡(luò)的特殊處理,包括私密性,服務(wù)質(zhì)量以及any-to-any的連通性。網(wǎng)絡(luò)運營商的VPN業(yè)務(wù)必須具備高度的可擴展性,高性價比并可適應(yīng)廣泛的用戶需求。
2.1 基本原理
目前基于MPLS的VPN方案中,以RFC 2547中規(guī)定的BGP/MPLS VPN得到了大多數(shù)廠家的支持,如Cisco,Juniper等。BGP/MPLS VPN概念中,把整個網(wǎng)絡(luò)中的路由器分為三類:用戶邊緣路由器(CE)、運營商邊緣路由器(PE)和運營商骨干路由器(P);其中,PE充當(dāng)IP VPN接入路由器。由于BGP/MPLS VPN采用PE之間通過擴展后的BGP協(xié)議(MP-BGP)來承載VPN成員關(guān)系和VPN網(wǎng)絡(luò)可達(dá)性,所以使MPLS VPN網(wǎng)絡(luò)具有良好的擴展性、靈活性和可靠性。
MPLS VPN的工作過程如圖3:
#FormatImgID_2# |
圖3
(1) CE到PE間通過IGP路由或BGP將用戶網(wǎng)絡(luò)中的路由信息通知運營商路由器(PE),在PE上有對應(yīng)于每個VPN的虛擬路由表(VRF),類似有一臺獨立的路由器與CE進(jìn)行連接。
(2)PE之間采用MP-BGP傳送VPN內(nèi)的路由信息以及相應(yīng)的標(biāo)簽(VPN的標(biāo)簽,以下簡稱為內(nèi)層標(biāo)簽),而在PE與P路由器之間則采用傳統(tǒng)的IGP協(xié)議相互學(xué)習(xí)路由信息,采用LDP協(xié)議進(jìn)行路由信息與標(biāo)簽(用于MPLS標(biāo)簽轉(zhuǎn)發(fā),以下稱為外層標(biāo)簽)的綁定。到此時,CE,PE以及P路由器中基本的網(wǎng)絡(luò)拓?fù)湟约奥酚尚畔⒁呀?jīng)形成。PE路由器擁有了骨干網(wǎng)絡(luò)的路由信息以及每一個VPN的路由信息(VRF)。
(3)當(dāng)屬于某一VPN用戶端路由器(CE)有數(shù)據(jù)進(jìn)入時,在CE與PE連接的接口上可以識別出該CE屬于哪一個VPN,進(jìn)而到該VPN的VRF路由表中去讀取下一跳的地址信息,同時,在前傳的數(shù)據(jù)包中打上VPN標(biāo)簽(內(nèi)層標(biāo)簽)。下一跳地址為與該PE作Peer的PE的地址,為了到達(dá)這個目的端的PE,在起始端PE中需讀取MPLS骨干網(wǎng)絡(luò)的路由信息,從而得到下一個P路由器的地址,同時采用LDP在用戶前傳數(shù)據(jù)包中打上用于MPLS標(biāo)簽交換的標(biāo)簽(外層標(biāo)簽)。
(4)在MPLS骨干網(wǎng)絡(luò)中,初始PE之后的P均只讀取外層標(biāo)簽的信息來決定下一跳,因此骨干網(wǎng)絡(luò)中只是簡單的標(biāo)簽交換。
(5)在達(dá)到目的端PE之前的最后一個P路由器時,將把外層標(biāo)簽去掉,讀取內(nèi)層標(biāo)簽,找到VPN,并送到相關(guān)的接口上,進(jìn)而將數(shù)據(jù)傳送到VPN的目的地址處
(6)P路由器是MPLS LSR。P路由器完全依據(jù)MPLS的標(biāo)簽來作出轉(zhuǎn)發(fā)決定。由于P路由器完全不需要讀取原始的數(shù)據(jù)包信息來作出轉(zhuǎn)發(fā)決定,P路由器不需要擁有VPN的路由信息。