MPLS網(wǎng)絡結(jié)構(gòu)
MPLS網(wǎng)絡的基本構(gòu)成單元是標簽交換路由器LSR(Label Switching Router),主要運行MPLS網(wǎng)絡控制協(xié)議和第三層路由協(xié)議,并負責與其他LSR 交換路由信息來建立路由表,實現(xiàn)FEC 和IP 分組頭的映射,建立FEC 和標簽之間的綁定,分發(fā)標簽綁定信息,建立和維護標簽轉(zhuǎn)發(fā)表等工作。由LSR 構(gòu)成的網(wǎng)絡叫做MPLS 域,位于區(qū)域邊緣的LSR 稱為邊緣LSR(LER,Labeled Edge Router )。
主要完成連接MPLS 域和非MPLS 域以及不同MPLS網(wǎng)絡域的功能,并實現(xiàn)對業(yè)務的分類、分發(fā)標簽(作為出口LER)、剝?nèi)撕灥?。其中入口LER 叫Ingress,出口LER 叫Egress。位于區(qū)域內(nèi)部的LSR 則稱為核心LSR,核心LSR 可以是支持MPLS網(wǎng)絡的路由器,也可以是支持MPLS網(wǎng)絡標簽交換的LSR,它提供標簽分發(fā)、交換功能(Label Swapping)。帶標簽的分組沿著由一系列LSR 構(gòu)成的標簽交換路徑LSP(Label Switched Path)傳送。
◆標記交換路徑(LSP)
◆MPLS網(wǎng)絡核心路由器 (LSR)
◆Ingress
◆Egress
◆MPLS網(wǎng)絡邊緣路由器(LER)
LSP 的建立
LSP 的建立其實就是將FEC 和標簽進行綁定,并將這種綁定通告LSP 上相鄰LSR的過程。這個過程是通過標簽分發(fā)協(xié)議LDP 來實現(xiàn)的。LDP 規(guī)定了LSR 間的消息交互過程和消息結(jié)構(gòu),以及路由選擇方式。有關LDP 的詳細描述,請參見下一節(jié)。Comware V3 操作手冊(MPLS網(wǎng)絡)
MPLS網(wǎng)絡支持LSP 隧道技術。在一條LSP 路徑上,LSR Ru 和LSR Rd 互為上下游,但LSR Ru和LSR Rd之間的路徑,可能并不是路由協(xié)議所提供路徑的一部分,MPLS允許在LSR Ru 和LSR Rd 間建立一條新的LSP 路徑,LSR Ru和LSR Rd 分別為這條LSP 的起點和終點。LSR Ru 和LSR Rd 間的LSP 就是LSP隧道,它避免了傳統(tǒng)的網(wǎng)絡層封裝隧道。當隧道經(jīng)由的路由和逐跳與從路由協(xié)議取得的路由一致時,這種隧道叫逐跳路由隧道;若不一致,則這種隧道叫顯式路由隧道。
多層標簽棧
在MPLS網(wǎng)絡中,分組可以攜帶多個標簽,這些標簽在分組中以“堆棧”的形式存在,對堆棧的操作按“后進先出”的原則,決定如何轉(zhuǎn)發(fā)分組的標簽始終是棧頂標簽。標簽入棧是指向輸出分組中加入一個標簽,使標簽棧的深度加1,同時,分組的當前標簽就變?yōu)榇诵录尤氲臉撕?標簽出棧是指從分組中去掉一個標簽,使標簽棧的深度減1,同時,分組的當前標簽將變?yōu)樵瓉硖幱谙乱粚拥臉撕灐?br />
在LSP 隧道中會使用多層標簽棧。當分組在LSP 隧道中傳送時,分組的標簽就會有多層。在每一隧道的入口和出口處,要進行標簽棧的入棧和出棧操作,每發(fā)生一次入棧操作,標簽就會增加一層。MPLS網(wǎng)絡對標簽棧的深度沒有限制。標簽棧按照“后進先出”方式組織標簽,MPLS網(wǎng)絡從棧頂開始處理標簽。若一個分組的標簽棧深度為m,則位于棧底的標簽為1 級標簽,位于棧頂?shù)臉撕灋閙 級標簽。未打標簽的分組可看作標簽棧為空(即標簽棧深度為零)的分組。
標簽報文的轉(zhuǎn)發(fā)
在Ingress,將進入網(wǎng)絡的分組根據(jù)其特征劃分成轉(zhuǎn)發(fā)等價類FEC。一般根據(jù)IP 地址前綴或者主機地址來劃分FEC。屬于相同F(xiàn)EC 的分組在MPLS網(wǎng)絡區(qū)域中將經(jīng)過同的路徑(即LSP)。LSR 對到來的FEC 分組分配一個短而定長的標簽,然后從相應的接口轉(zhuǎn)發(fā)出去。
在LSP 沿途的LSR 上,都已建立了輸入/輸出標簽的映射表(該表的元素叫下一跳標簽轉(zhuǎn)發(fā)條目,簡稱NHLFE,Next Hop Label Forwarding Entry)。對于接收到的標簽分組,LSR 只需根據(jù)標簽從表中找到相應的NHLFE,并用新的標簽來替換原Comware V3 操作手冊(MPLS網(wǎng)絡)。
來的標簽,然后,對標簽分組進行轉(zhuǎn)發(fā),這個過程叫輸入標簽映射ILM(IncomingLabel Map)。MPLS網(wǎng)絡入口處指定特定分組的FEC,后續(xù)P 路由器只需簡單的轉(zhuǎn)發(fā)即可,比常規(guī)的網(wǎng)絡層轉(zhuǎn)發(fā)要簡單得多,轉(zhuǎn)發(fā)速度得以提高。
TTL 處理:標簽化分組時必須將原IP 分組中的TTL 值拷貝到標簽中的TTL 域。LSR 在轉(zhuǎn)發(fā)標簽化分組時,要對棧頂標簽的TTL 域作減一操作。標簽出棧時,再將棧頂?shù)腡TL 值拷貝回IP 分組或下層標簽。但是,當LSP 穿越由ATM-LSR 或FR-LSR 構(gòu)成的非TTL LSP 段時,域內(nèi)的LSR無法處理TTL 域。這時,需要在進入非TTL LSP 段時對TTL 進行統(tǒng)一處理,即一次性減去反映該非TTL LSP 段長度的值。
ICMP Need Frag 差錯報文回送
在MPLS網(wǎng)絡中,當報文的長度超過了路由器出接口所設置的MTU 值時,若想使報文順利的傳輸,需要將MPLS網(wǎng)絡報文的標簽剝?nèi)?,對IP 報文進行分片,然后分別為每一個分片都封裝原有的標簽后進行傳輸。但如果IP 報文中設置了不允許分片的標記,則向發(fā)送報文的源端回送ICMP Unreach 報文,并丟棄源報文。
出接口的MTU 將被填入ICMP 報文中,如果設備上配置了mtu label-including 命令,在生成報文的時候,應將報文中的出接口MTU字段減去MPLS 標簽長度(可能有多層標簽)。文后回送ICMP 差錯報文的方式有所不同,下面將分別介紹。
PE 設備的處理方式
PE1 收到CE1 發(fā)來的報文,報文目的地址為CE2,且該報文攜帶不可分片標記。PE1 將對此報文進行轉(zhuǎn)發(fā)處理,封裝MPLS 標簽,生成MPLS 報文后進行轉(zhuǎn)發(fā)。Comware V3 操作手冊(MPLS)。此時如果報文的長度超過了出接口的MTU 時,PE1 會給CE1 回送ICMP Unreach報文,并丟棄源報文。
P設備的處理方式
P1 收到一份MPLS 報文需要進行標簽交換,該報文為CE1 發(fā)往CE2 的報文,攜帶不可分片標記。完成標簽交換后,如果發(fā)現(xiàn)報文的長度超過了出接口的MTU,此時,由于P1 設備上可能沒有到CE1 的路由,P1 會將MPLS網(wǎng)絡報文中封裝的IP 報文取出,根據(jù)這個IP報文生成ICMP Unreach 報文,然后重新封裝標簽發(fā)往PE2 方向。當PE2 收到此ICMP 報文時,將此報文轉(zhuǎn)發(fā)到CE1 的方向。