一、MPLS概述
MPLS的定義
MPLS(Multiprotocol Label Switching,多協(xié)議標(biāo)簽交換)起源于IPv4(Internet Protocol version 4,因特網(wǎng)協(xié)議版本4),最初是為了提高轉(zhuǎn)發(fā)速度而提出的,其核心技術(shù)可擴展到多種網(wǎng)絡(luò)協(xié)議,包括IPv6(Internet Protocol version 6,因特網(wǎng)協(xié)議版本6)、IPX(Internet Packet Exchange,網(wǎng)際報文交換)和CLNP(Connectionless Network Protocol,無連接網(wǎng)絡(luò)協(xié)議)等。MPLS中的“M”指的就是支持多種網(wǎng)絡(luò)協(xié)議。
MPLS是一種IP(Internet Protocol)骨干網(wǎng)技術(shù)。MPLS在無連接的IP網(wǎng)絡(luò)上引入面向連接的標(biāo)簽交換概念,將第三層路由技術(shù)和第二層交換技術(shù)相結(jié)合,充分發(fā)揮了IP路由的靈活性和二層交換的簡捷性。
它實際上是一種隧道技術(shù)。這種技術(shù)不僅支持多種高層協(xié)議與業(yè)務(wù),而且在一定程度上可以保證信息傳輸?shù)陌踩浴?/p>
當(dāng)下MPLS存在的意義
解決BGP的路由黑洞
MPLS VPN
MPLS TE 流量工程
二、MPLS相關(guān)概念
轉(zhuǎn)發(fā)等價類
MPLS作為一種分類轉(zhuǎn)發(fā)技術(shù),將具有相同轉(zhuǎn)發(fā)處理方式的分組歸為一類,稱為FEC(Forwarding Equivalence Class,轉(zhuǎn)發(fā)等價類)。相同F(xiàn)EC的分組在MPLS網(wǎng)絡(luò)中將獲得完全相同的處理。通常對一個FEC分配唯一的標(biāo)簽。
FEC的劃分方式非常靈活,可以是以源地址、目的地址、源端口、目的端口、協(xié)議類型或VPN等為劃分依據(jù)的任意組合。例如:
屬于某特定組的組播報文
目的IP地址匹配了某一個特定前綴的報文
根據(jù)DCSP字段,有相同QOS策略的報文
MPLS VPN中,屬于同一個VPN的報文
標(biāo)簽
標(biāo)簽是一個長度固定,僅具有本地意義的短標(biāo)識符,用于唯一標(biāo)識一個分組所屬的FEC。
MPLS domain
LSR構(gòu)成的網(wǎng)絡(luò)區(qū)域稱為MPLS域(MPLS Domain) ,是MPLS的工作半徑。
標(biāo)簽交換路由器
LSR(Label Switching Router,標(biāo)簽交換路由器)是MPLS網(wǎng)絡(luò)中的基本元素,所有LSR都支持MPLS技術(shù)。
標(biāo)簽邊界路由器
LER(Label Edge Router,標(biāo)簽邊界路由器)可以轉(zhuǎn)發(fā)數(shù)據(jù)包進(jìn)入MPLS域,也可以轉(zhuǎn)發(fā)IP包進(jìn)入或離開MPLS域。
在MPLS域中LSR是轉(zhuǎn)發(fā)帶標(biāo)簽的數(shù)據(jù)包,LER可以轉(zhuǎn)發(fā)數(shù)據(jù)包進(jìn)入MPLS域,也可以轉(zhuǎn)發(fā)IP包進(jìn)入或離開MPLS域。
標(biāo)簽交換路徑
一個轉(zhuǎn)發(fā)等價類在MPLS網(wǎng)絡(luò)中經(jīng)過的路徑稱為LSP(Label Switched Path,標(biāo)簽交換路徑)。在一條LSP上,沿數(shù)據(jù)傳送的方向,相鄰的LSR分別稱為上游LSR和下游LSR。
LSP是一個單向路徑,與數(shù)據(jù)流方向一致。LSP的入口LER稱為入節(jié)點(Ingress);位于LSP中間的LSR稱為中間節(jié)點(Transit);LSP的出口LER稱為出節(jié)點(Egress)。
MPLS MTU
MPLS標(biāo)簽棧象“墊層”一樣,位于二層數(shù)據(jù)幀頭和數(shù)據(jù)之間。在MPLS轉(zhuǎn)發(fā)過程中,雖然網(wǎng)絡(luò)層報文長度小于接口的MTU,但是增加MPLS標(biāo)簽后,報文長度可能超過鏈路層允許發(fā)送的范圍,從而導(dǎo)致報文無法正常轉(zhuǎn)發(fā)。為此,設(shè)備上定義了MPLS MTU,MPLS轉(zhuǎn)發(fā)時將增加標(biāo)簽后的報文長度與MPLS MTU比較。報文長度大于MPLS MTU時,如果允許分片,則將報文分片后再進(jìn)行轉(zhuǎn)發(fā);如果不允許分片,則直接丟棄。
三、MPLS結(jié)構(gòu)
控制平面:負(fù)責(zé)產(chǎn)生和維護(hù)路由信息以及標(biāo)簽信息。
IP路由協(xié)議:OSPF、ISIS等。
路由信息表RIB(Routing Information Base):由IP路由協(xié)議(IP Routing Protocol)生成,用于選擇路由。
標(biāo)簽分發(fā)協(xié)議LDP(Label Distribution Protocol):負(fù)責(zé)標(biāo)簽的分配、標(biāo)簽轉(zhuǎn)發(fā)信息表的建立、標(biāo)簽交換路徑的建立、拆除等工作。
標(biāo)簽信息表LIB(Label Information Base):由標(biāo)簽分發(fā)協(xié)議生成,用于管理標(biāo)簽信息。
轉(zhuǎn)發(fā)平面:即數(shù)據(jù)平面(Data Plane),負(fù)責(zé)普通IP報文的轉(zhuǎn)發(fā)以及帶MPLS標(biāo)簽報文的轉(zhuǎn)發(fā)。
-轉(zhuǎn)發(fā)信息表FIB(Forwarding Information Base):從RIB提取必要的路由信息生成,負(fù)責(zé)普通IP報文的轉(zhuǎn)發(fā)。
-標(biāo)簽轉(zhuǎn)發(fā)信息表LFIB(Label Forwarding Information Base):簡稱標(biāo)簽轉(zhuǎn)發(fā)表,由標(biāo)簽分發(fā)協(xié)議在LSR上建立LFIB,負(fù)責(zé)帶MPLS標(biāo)簽報文的轉(zhuǎn)發(fā)。
四、MPLS標(biāo)簽報文格式
采用幀模式。在二層報頭和三層報頭之間插入MPLS報頭??梢圆迦胍粋€或多個,這種標(biāo)簽?zāi)J揭脖环Q為幀模式。
靠近二層報頭的叫外層或者高層;靠近三層的叫內(nèi)層或者低層標(biāo)簽。當(dāng)查看完二層報頭發(fā)現(xiàn)標(biāo)簽之后就不再關(guān)心三層報頭,直接進(jìn)行轉(zhuǎn)發(fā)。理論上,MPLS標(biāo)簽可以無限嵌套。目前MPLS標(biāo)簽嵌套主要應(yīng)用在MPLS VPN、TE FRR(Traffic Engineering Fast ReRoute)中。
怎么判斷一個數(shù)據(jù)包是通過MPLS還是IP轉(zhuǎn)發(fā)呢?
在二層頭部中有一個PID(協(xié)議號字段)
PID標(biāo)識二層頭部后面的報文類型,LSR判斷報文類型
Ethernet :
0x0800 IPv4
0x8847 MPLS單播報文
0x8848 MPLS多播報文
PPP :0x8021 IPv4
0x8281 MPLS單播報文
0x8283 MPLS多播報文
MPLS標(biāo)簽空間:
標(biāo)簽空間就是指標(biāo)簽的取值范圍。標(biāo)簽空間劃分如下:
0~15:特殊標(biāo)簽。
16~1023:靜態(tài)LSP和靜態(tài)CR-LSP(Constraint-based Routed Label Switched Path)共享的標(biāo)簽空間。
1024及以上:LDP、RSVP-TE(Resource Reservation Protocol-Traffic Engineering)、MP-BGP(MultiProtocol Border Gateway Protocol)等動態(tài)信令協(xié)議的標(biāo)簽空間。
PS:MPLS有一些特殊的固定標(biāo)簽值,在后面會細(xì)說,這里不方便理解。
標(biāo)簽操作類型(Label Operations)
Push:指當(dāng)IP報文進(jìn)入MPLS域時,MPLS邊界設(shè)備在報文二層首部和IP首部之間插入一個新標(biāo)簽;或者M(jìn)PLS中間設(shè)備根據(jù)需要,在標(biāo)簽棧頂增加一個新的標(biāo)簽(即標(biāo)簽嵌套封裝)。
Swap: 當(dāng)報文在MPLS域內(nèi)轉(zhuǎn)發(fā)時,根據(jù)標(biāo)簽轉(zhuǎn)發(fā)表,用下一跳分配的標(biāo)簽,替換MPLS報文的棧頂標(biāo)簽。
Pop: 當(dāng)報文離開MPLS域時,將MPLS報文的標(biāo)簽去掉。
五、LDP標(biāo)簽分發(fā)協(xié)議
LDP簡述
LDP(Label Distribution Protocol,標(biāo)簽分發(fā)協(xié)議)是MPLS的控制協(xié)議,它相當(dāng)于傳統(tǒng)網(wǎng)絡(luò)中的信令協(xié)議,負(fù)責(zé)FEC的分類、標(biāo)簽的分配以及LSP之間LDP Session的建立并交換Lebel/FEC映射信息等一系列操作。
通過LDP,LSR可以把網(wǎng)絡(luò)層的路由信息直接映射到數(shù)據(jù)鏈路層的交換路徑上,進(jìn)而建立起LSP。LSP既可以建立在兩個相鄰的LSR之間,也可以建立在兩個非直連的LSR之間,從而在網(wǎng)絡(luò)中所有中間節(jié)點上都使用標(biāo)簽交換。
LDP對等體
LDP對等體(LDP Peer)是指相互之間存在LDP會話、使用LDP來交換標(biāo)簽/FEC映射關(guān)系的兩個LSR。LDP對等體通過它們之間的LDP會話獲得對方的標(biāo)簽映射消息。
LDP會話
LDP會話用于在LSR之間交換標(biāo)簽映射、釋放等消息。LDP會話可以分為兩種類型:
本地LDP會話(Local LDP Session):建立會話的兩個LSR之間是直連的;
遠(yuǎn)端LDP會話(Remote LDP Session):建立會話的兩個LSR之間是非直連的。
標(biāo)簽空間與LDP標(biāo)識符
LDP對等體之間分配標(biāo)簽的范圍稱為標(biāo)簽空間(Label space)。可以為LSR的每個接口指定一個標(biāo)簽空間(per-interface label space),也可以整個LSR使用一個標(biāo)簽空間(per-platform label space)。
LDP標(biāo)識符(LDP Identifier)用于標(biāo)識特定LSR的標(biāo)簽空間,是一個六字節(jié)的數(shù)值,格式如下:
?
LSR ID | 標(biāo)簽空間序號 |
---|---|
4Byte | 2Byte,標(biāo)簽空間序號取值為1時表示每個接口指定一個標(biāo)簽空間;取值為0時表示整個LSR使用一個標(biāo)簽空間 |
?
LDP消息類型:
發(fā)現(xiàn)(Discovery message):宣告和維護(hù)網(wǎng)絡(luò)中一個LSR的存在。
會話(Session message):建立、維護(hù)和終止LDP Peers之間的LDP Session。
通知(Advertisement message):生成、改變和刪除FEC的標(biāo)簽映射。
通告(Notification message):宣告告警和錯誤信息。
為保證LDP消息的可靠發(fā)送,除了發(fā)現(xiàn)階段使用UDP傳輸外,LDP的Session消息、Advertisement消息和Notification消息都使用TCP傳輸。
LDP消息的作用
? | 消息類型 | 作用 |
---|---|---|
Discovery Message | Hello | LDP發(fā)現(xiàn)機制中宜告本LSR并發(fā)現(xiàn)鄰居 |
Session Message | Initialization | 在LDP Session建立過程中協(xié)商參數(shù) |
Session Message | KeepAlive | 監(jiān)控LDP Session的TCP連接的完整性 |
Advertisement Message | Address | 宣告接口地址 |
Advertisement Message | Address Withdraw | 撤消接口地址 |
Advertisement Message | Label Mapping | 直告FEC/Label映射信息 |
Advertisement Message | Label Request | 請求FEC的標(biāo)簽映射 |
Advertisement Message | Label Abort Request | 終止未完成的abel Request Message |
Advertisement Message | Label Withdraw | 撤消FEC/LabeI映射 |
Advertisement Message | Label Release | 釋放標(biāo)簽 |
Notification Message | Notification | 通知LDP Peer錯誤信息 |
?
LDP的鄰居發(fā)現(xiàn)機制
基本發(fā)現(xiàn)機制
基本發(fā)現(xiàn)機制用于發(fā)現(xiàn)本地的LDP對等體,即通過鏈路層直接相連的LSR,建立本地LDP會話。
LSR通過周期性**(5S)地發(fā)送Hello Message表明自己的存在。這個消息是封裝在UDP報文中的,源和目的端口號為646**。在LDP基本發(fā)現(xiàn)機制中,該消息的目的IP地址為組播I P地址224.0.0.2。
LDP鏈路Hello消息帶有接口的LDP標(biāo)識符及其他相關(guān)信息,如果LSR在某個接口收到了LDP鏈路Hello消息,則表明在該接口(鏈路層)存在LDP對等體。
擴展發(fā)現(xiàn)機制
擴展發(fā)現(xiàn)機制用于發(fā)現(xiàn)遠(yuǎn)端的LDP對等體,即不通過鏈路層直接相連的LSR,建立遠(yuǎn)端LDP會話。
這種方式下,LSR周期性以UDP報文形式向指定的IP地址發(fā)送LDP目標(biāo)Hello消息(LDP Targeted Hello)。
LDP目標(biāo)Hello消息帶有LSR的LDP標(biāo)識符及其他相關(guān)信息,如果LSR收到LDP目標(biāo)Hello消息,則表明在網(wǎng)絡(luò)層存在LDP對等體。
LDP Session的建立和維護(hù)
過程簡述
發(fā)送Hello報文之后發(fā)現(xiàn)了鄰居,建立TCP連接(兩端都會發(fā)送TCP,transport ip地址大的主動發(fā)起連接,目的端口是646,源端口任意)之后發(fā)送初始化消息(協(xié)商會話中涉及的各種參數(shù),如LDP版本、標(biāo)簽分發(fā)方式、定時器值、標(biāo)簽空間等),再發(fā)送keepalive消息這樣LDP會話就建立完成了,完成之后兩個LSR就成為了LDP Peers,并會交換Advertisement Message。
如果協(xié)商過程中發(fā)現(xiàn)某些參數(shù)不匹配,就會發(fā)送Notification錯誤消息。
PS:Transport id默認(rèn)是和配置的lsr-id一致,因為要用它來建立TCP連接,所以lsr-id一定要是可達(dá)的,如果不可達(dá)就要手動配置transport id。
LDP狀態(tài)機
一開始沒有建立LDP Session的時候是non existent狀態(tài),之后就進(jìn)入一個初始化狀態(tài)INITIALIZED,如果是TCP的主動方(transport id大,處于active狀態(tài)的一方),會主動發(fā)送初始化消息(在LDP Session建立過程中協(xié)商參數(shù)),然后自身狀態(tài)變成OPENSENT,在此狀態(tài)是在等待對方回復(fù)他初始化信息,被動方接收到主動方的初始化消息后,他會同時發(fā)送init和KeepAlive消息,然后將自身狀態(tài)變?yōu)镺PENREC并等待接收主動方的KeepAlive,主動方接收到被動方的init和KeepAlive消息后,變?yōu)镺PENREC狀態(tài)同時發(fā)送KeepAlive消息,被動方收到了主動方的KeepAlive后,二者回變?yōu)镺PERATIONAL狀態(tài),這樣LDP Session就建立完成了并發(fā)送其他LDP消息。
會話撤銷
LDP通過檢測Hello消息來判斷鄰接關(guān)系;通過檢測Keepalive消息來判斷會話的完整性。
LDP在維持鄰接關(guān)系和LDP會話時使用不同的定時器:
Hello保持定時器:LDP對等體之間,通過周期性發(fā)送Hello消息表明自己希望繼續(xù)維持鄰接關(guān)系。如果Hello保持定時器超時仍沒有收到新的Hello消息,則刪除Hello鄰接關(guān)系。
Keepalive定時器:LDP對等體之間通過LDP會話連接上傳送的Keepalive消息來維持LDP會話。如果會話保持定時器超時仍沒有收到任何Keepalive消息,則關(guān)閉連接,結(jié)束LDP會話。
六、LSP的建立
LSP介紹
IP報文在MPLS網(wǎng)絡(luò)中經(jīng)過的路徑稱為標(biāo)簽交換路徑LSP (Label Switched Path),這條路徑是在轉(zhuǎn)發(fā)報文之前就已經(jīng).通過各種協(xié)議確定并建立的,報文會在特定的LSP上傳遞。
LSP是一個單向路徑,與數(shù)據(jù)流的方向一致。LSP的入口LER稱為入節(jié)點(Ingress) ;位于LSP中間的LSR稱為中間節(jié)點(Transit) ; LSP的出PLER稱為出節(jié)點(Egress) 。一條LSP可以有0個、1個或多個中間節(jié)點,但有且只有一個入節(jié)點和一個出節(jié)點。
靜態(tài)LSP的建立
靜態(tài)LSP是用戶通過手工為各個轉(zhuǎn)發(fā)等價類分配標(biāo)簽而建立的。手工分配標(biāo)簽需要遵循的原則是:上游節(jié)點出標(biāo)簽的值就是下游節(jié)點入標(biāo)簽的值。
由于靜態(tài)LSP各節(jié)點上不能相互感知到整個LSP的情況,因此靜態(tài)LSP是一個本地的概念。
靜態(tài)LSP不使用標(biāo)簽發(fā)布協(xié)議,不需要交互控制報文,因此消耗資源比較小,適用于拓?fù)浣Y(jié)構(gòu)簡單并且穩(wěn)定的小型網(wǎng)絡(luò)。但通過靜態(tài)方式分配標(biāo)簽建立的LSP不能根據(jù)網(wǎng)絡(luò)拓?fù)渥兓瘎討B(tài)調(diào)整,需要管理員干預(yù)。
動態(tài)LSP的建立
動態(tài)LSP通過標(biāo)簽發(fā)布協(xié)議動態(tài)建立。標(biāo)簽發(fā)布協(xié)議是MPLS的控制協(xié)議(也可稱為信令協(xié)議),負(fù)責(zé)FEC的分類、標(biāo)簽的分發(fā)以及LSP的建立和維護(hù)等一系列操作。
LDP協(xié)議分配原則
①路由器LDP默認(rèn)會為/32主機路由分配標(biāo)簽。(前提是設(shè)備從/32路由的下一跳設(shè)備得到了標(biāo)簽)也可以為/24的網(wǎng)段去分
②如果通過多個鄰居收到一個FEC的標(biāo)簽,設(shè)備會使用本FEC(路由前綴)下一跳設(shè)備分配的標(biāo)簽
七、MPLS與路由協(xié)議
LDP通過逐跳方式建立LSP時,利用沿途各LSR路由轉(zhuǎn)發(fā)表中的信息來確定下一跳,而路由轉(zhuǎn)發(fā)表中的信息一般是通過IGP、BGP等路由協(xié)議收集的。LDP并不直接和各種路由協(xié)議關(guān)聯(lián),只是間接使用路由信息。另一方面,通過對BGP、RSVP等已有協(xié)議進(jìn)行擴展,也可以支持標(biāo)簽的分發(fā)。
在MPLS的應(yīng)用中,也可能需要對某些路由協(xié)議進(jìn)行擴展。例如,基于MPLS的VPN應(yīng)用需要對BGP進(jìn)行擴展,使BGP能夠傳播VPN(Virtual Private Network,虛擬專用網(wǎng))的路由信息;基于MPLS的TE(Traffic Engineering,流量工程)需要對OSPF或IS-IS協(xié)議進(jìn)行擴展,以攜帶鏈路狀態(tài)信息。
八、MPLS數(shù)據(jù)轉(zhuǎn)發(fā)
轉(zhuǎn)發(fā)過程中涉及到的表項
①NHLFE
下一跳標(biāo)簽轉(zhuǎn)發(fā)表項NHLFE (Next Hop Label Forwarding Entry) 用于指導(dǎo)MPLS報文的轉(zhuǎn)發(fā)。NHLFE包括: Tunnel ID、出接口、下一跳、出標(biāo)簽、標(biāo)簽操作類型等信息。
②FTN
FEC到一組NHLFE的映射稱為FTN (FEC-to-NHLFE) 。
通過查看FIB表中Tunnel ID值不為0x0的表項,能夠獲得FTN的詳細(xì)信息。FTN只在Ingress(入節(jié)點)存在。
③ILM
入標(biāo)簽到一組下一跳標(biāo)簽轉(zhuǎn)發(fā)表項的映射稱為入標(biāo)簽映射ILM (Incoming Label Map)。ILM包括: Tunnel ID、入標(biāo)簽、入接口、標(biāo)簽操作類型等信息。
ILM在Transit節(jié)點(并不是Ingress節(jié)點)的作用是將標(biāo)簽和NHLFE綁定。通過標(biāo)簽索引LM表,就相當(dāng)于使用目的IP地址查詢FIB,能夠得到所有的標(biāo)簽轉(zhuǎn)發(fā)信息。
④Tunnel ID
為了給使用隧道的上層應(yīng)用(如VPN、路由管理)提供統(tǒng)一的接口,系統(tǒng)自動為隧道分配了一個ID,也稱為Tunnel ID。 該Tunnel ID的長度為32比特,只是本地有效。
※當(dāng)IP報文進(jìn)入MPLS域時,首先查看FIB表,檢查目的IP地址對應(yīng)的Tunnel ID值是否為0x0。
如果Tunnel ID值為0x0,則進(jìn)入正常的IP轉(zhuǎn)發(fā)流程。
如果Tunnel ID值不為0x0,則進(jìn)入MPLS轉(zhuǎn)發(fā)流程。
MPLS查表流程圖
在MPLS轉(zhuǎn)發(fā)過程中, FIB、ILM和NHLFE表項是通過Tunnel ID關(guān)聯(lián)的
ingress的處理
查看FIB表,根據(jù)目的IP地址找到對應(yīng)的Tunnel ID。
根據(jù)FIB表的Tunnel ID找到對應(yīng)的NHLFE表項,將FIB表項和NHLFE表項關(guān)聯(lián)起來。
查看NHLFE表項,可以得到出接口、下一跳、出標(biāo)簽和標(biāo)簽操作類型,標(biāo)簽操作類型為Push。
在IP報文中壓入出標(biāo)簽,并根據(jù)QoS策略處理EXP,同時處理TTL,然后將封裝好的MPL S報文發(fā)送給下一跳。
Transit的處理
根據(jù)MPLS的標(biāo)簽值查看對應(yīng)的ILM表,可以得到Tunnel ID。
根據(jù)ILM表的Tunnel ID找到對應(yīng)的NHLFE表項。
查看NHLFE表項,可以得到出接口、下一跳、出標(biāo)簽和標(biāo)簽操作類型。
MPLS報文的處理方式根據(jù)不同的標(biāo)簽值而不同。.
如果標(biāo)簽值>=16,則用新標(biāo)簽替換MPLS報文中的舊標(biāo)簽,同時處理EXP和TTL,然后將替換完標(biāo)簽的MPLS報文發(fā)送給下一跳。
如果標(biāo)簽值為3,則直接彈出標(biāo)簽(次末跳彈出,這是針對FEC),同時處理EXP和TTL,然后進(jìn)行IP轉(zhuǎn)發(fā)或下一層標(biāo)簽轉(zhuǎn)發(fā)。
Egress的處理:通過查詢ILM表指導(dǎo)MPLS報文的轉(zhuǎn)發(fā)或查詢路由表指導(dǎo)IP報文轉(zhuǎn)發(fā)。
如果Egress收到IP報文,則查看路由表,進(jìn)行IP轉(zhuǎn)發(fā)。
如果Egress收到MPLS報文,則查看ILM表獲得標(biāo)簽操作類型,同時處理EXP和TTL。
如果標(biāo)簽中的棧底標(biāo)識S=1,表明該標(biāo)簽是棧底標(biāo)簽,直接進(jìn)行IP轉(zhuǎn)發(fā)。
如果標(biāo)簽中的棧底標(biāo)識S=0,表明還有下一層標(biāo)簽,繼續(xù)進(jìn)行下一層標(biāo)簽轉(zhuǎn)發(fā)。
PS:PHP次末跳彈出
為了減輕Egress節(jié)點的負(fù)擔(dān),提高M(jìn)PLS網(wǎng)絡(luò)對報文的處理能力,可以使最后一跳路由器只進(jìn)行一次IP查表,但是當(dāng)需要通過EXP位進(jìn)行QoS策略時,次末跳彈出會讓QoS非常繁瑣,需要對兩個網(wǎng)段分別配置IP和MPLS的QoS。
固定標(biāo)簽值
標(biāo)簽值 | 名稱 | 詳細(xì)信息 |
---|---|---|
0 | IPV4 Explicit Null Lable IPV4顯式空標(biāo)簽 | 表示該標(biāo)簽必須被彈出(即標(biāo)簽被剝掉),且報文的轉(zhuǎn)發(fā)必須基于IPv4。如果出節(jié)點分配給倒數(shù)第二跳節(jié)點的標(biāo)簽值為0,則倒數(shù)第二跳LSR需要將值為0的標(biāo)簽正常壓入報文標(biāo)簽值頂部,轉(zhuǎn)發(fā)給最后一跳。最后一跳發(fā)現(xiàn)報文攜帶的標(biāo)簽值為0,則將標(biāo)簽彈出。 |
1 | Router Alert Label 路由器報警標(biāo)簽 | 只有出現(xiàn)在非棧底時才有效。類似于IP報文的“Router Alert Option”字段,節(jié)點收到Router Alert Label時,需要將其送往本地軟件模塊進(jìn)一步處理。實際報文轉(zhuǎn)發(fā)由下一層標(biāo)簽決定。如果報文需要繼續(xù)轉(zhuǎn)發(fā),則節(jié)點需要將Router Alert Label壓回標(biāo)簽棧頂。 |
2 | IPv6 Explicit NULL Label IPV6顯式空標(biāo)簽 | 表示該標(biāo)簽必須被彈出,且報文的轉(zhuǎn)發(fā)必須基于IPv6。如果出節(jié)點分配給倒數(shù)第二跳節(jié)點的標(biāo)簽值為2,則倒數(shù)第二跳節(jié)點需要將值為2的標(biāo)簽正常壓入報文標(biāo)簽值頂部,轉(zhuǎn)發(fā)給最后一跳。最后一跳發(fā)現(xiàn)報文攜帶的標(biāo)簽值為2,則直接將標(biāo)簽彈出。 |
3 | lmplicit NULL Label 隱式空標(biāo)簽 | 倒數(shù)第二跳LSR進(jìn)行標(biāo)簽交換時,如果發(fā)現(xiàn)交換后的標(biāo)簽值為3,則將標(biāo)簽彈出,并將報文發(fā)給最后一跳。最后一跳收到該報文直接進(jìn)行IP轉(zhuǎn)發(fā)或下一層標(biāo)簽轉(zhuǎn)發(fā)。 |
4~13、15 | 保留 | ? |
14 | OAM Router Alert Label | MPLS OAM(Operation Administration & Maintenance)通過發(fā)送OAM報文檢測和通告LSP故障。OAM報文使用MPLS承載。OAM報文對于Transit LSR和倒數(shù)第二跳LSR(penultimate LSR)是透明的。 |
16~1023 | ? | 靜態(tài)LSP使用 |
1024以上 | ? | LDP、RSVP-TE、 MP-BGP使用 |
九、MPLS環(huán)路檢測
MPLS對TTL的處理——Uniform(統(tǒng)一)模式
IP報文經(jīng)過MPLS網(wǎng)絡(luò)時,在入節(jié)點,IP TTL減1映射到MPLS TTL字段,此后報文在MPLS網(wǎng)絡(luò)中按照標(biāo)準(zhǔn)的TTL處理方式處理。在出節(jié)點將MPLS TTL減1后映射到IP TTL字段。如上圖所示。
MPLS對TTL的處理二——Pipe(管道)模式
在入節(jié)點,IP TTL值減1,MPLS TTL字段為固定值,此后報文在MPLS網(wǎng)絡(luò)中按照標(biāo)準(zhǔn)的TTL處理方式處理。在出節(jié)點會將IP TTL字段的值減1。即IP分組經(jīng)過MPLS網(wǎng)絡(luò)時,無論經(jīng)過多少跳,IP TTL只在入節(jié)點和出節(jié)點分別減1。如上圖所示。
MPLS域透明化,在IP上將其看為一跳。
TTL對ICMP響應(yīng)報文的影響
在MPLS網(wǎng)絡(luò)中,當(dāng)LSR收到TTL為1的含有標(biāo)簽的MPLS報文時,LSR生成ICMP的TTL超時消息。
如果LSR上存在到達(dá)報文發(fā)送者的路由,則可以通過IP路由,直接向發(fā)送者回應(yīng)TTL超時消息。
如果LSR上不存在到達(dá)報文發(fā)送者的路由,則ICMP響應(yīng)報文將按照LSP繼續(xù)傳送,到達(dá)LSP出節(jié)點后,由Egress節(jié)點將該消息返回給發(fā)送者。
通常情況下,收到的MPLS報文只帶一層標(biāo)簽時,LSR可以采用第一種方式回應(yīng)TTL超時消息;收到的MPLS報文包含多層標(biāo)簽時,LSR采用第二種方式回應(yīng)TTL超時消息。
但是,在MPLS VPN中,ASBR(Autonomous System Boundary Router,自治系統(tǒng)邊界路由器)和HoVPN組網(wǎng)應(yīng)用中的SPE(Superstratum PE or Sevice Provider-end PE,上層PE或運營商側(cè)PE),接收到的承載VPN報文的MPLS報文可能只有一層標(biāo)簽,此時,這些設(shè)備上并不存在到達(dá)報文發(fā)送者的路由,則采用第二種方法回應(yīng)TTL超時消息。
十、對MPLS LSP的檢測
在MPLS中,如果LSP轉(zhuǎn)發(fā)數(shù)據(jù)失敗,負(fù)責(zé)建立LSP的MPLS控制平面將無法檢測到這種錯誤,這會給網(wǎng)絡(luò)維護(hù)帶來困難。
MPLS LSP Ping/Traceroute為用戶提供了發(fā)現(xiàn)LSP錯誤、并及時定位失效節(jié)點的機制。類似于普通IP的Ping/Traceroute,MPLS LSP Ping/Traceroute使用MPLS Echo Request報文和MPLS Echo Reply報文檢測LSP的可用性。MPLS Echo Request中攜帶需要檢測的FEC信息,和其他屬于此FEC的報文一樣沿LSP發(fā)送,從而實現(xiàn)對LSP的檢測。
MPLS LSP Ping是用于對LSP的有效性、可達(dá)性進(jìn)行檢測的工具。采取方法是通過發(fā)送一個叫做MPLS Echo Request的報文,通過LSP的數(shù)據(jù)轉(zhuǎn)發(fā),到達(dá)出口后,在MPLS域的Egress,由Egress節(jié)點的控制平面確認(rèn)本LSR是否為該FEC的出口,返回一個叫做MPLS Echo Reply的報文,如果發(fā)送方收到該報文,則說明這條LSP可以正確用于數(shù)據(jù)轉(zhuǎn)發(fā)。
MPLS LSP Traceroute是對LSP的錯誤進(jìn)行定位的工具。采取方法是Echo Request數(shù)據(jù)包被發(fā)送到每一個中間LSR的控制平面,以確定本LSR是否是此路徑的中間節(jié)點。
十一、LDP的標(biāo)簽管理
LDP標(biāo)簽空間
①基于平臺的標(biāo)簽空間
不管是通過哪個接口,分發(fā)給哪個鄰居,一個FEC分發(fā)的標(biāo)簽是一樣的。
弊端:攻擊人可以根據(jù)要攻擊的FEC的標(biāo)簽值,發(fā)送一個不合法但標(biāo)簽值相同的數(shù)據(jù)。
不管用多少接口,都要為每個接口分配不同的標(biāo)簽值,標(biāo)簽數(shù)據(jù)庫會非常大,但是比較安全
LDP標(biāo)簽分發(fā)方式
DU(Downstream Unsolicited下游自主)
對于一個特定的FEC,LSR無需從上游獲得標(biāo)簽請求消息即進(jìn)行標(biāo)簽分配與分發(fā)。下游LSR在LDP會話建立成功后,主動向其上游LSR發(fā)布標(biāo)簽映射消息。上游LSR保存標(biāo)簽映射信息,并根據(jù)路由表信息來處理收到的標(biāo)簽映射信息。
DoD(Downstream on Demand下游按需)
游LSR向下游LSR發(fā)送標(biāo)簽請求消息(Label Request Message),其中包含F(xiàn)EC的描述信息。下游LSR為此FEC分配標(biāo)簽,并將綁定的標(biāo)簽通過標(biāo)簽映射消息(Label Mapping Message)反饋給上游LSR。
具有標(biāo)簽分發(fā)鄰接關(guān)系的上游LSR和下游LSR之間必須使用相同的標(biāo)簽發(fā)布方式,否則LSP無法正常建立。
LDP標(biāo)簽控制方式
Independent獨立
采用Independent獨立控制方式時,每個LSR隨時可以向鄰居發(fā)送標(biāo)簽幀映射。(不管有沒有收到它的下游返回的標(biāo)簽映射消息,都立即向其上游發(fā)送標(biāo)簽映射消息)
Ordered有序
當(dāng)標(biāo)簽控制方式時Ordered,只有當(dāng)LSR收到特定FEC下一跳發(fā)送的特定FEC標(biāo)簽映射消息或者LSR是LSP的出口節(jié)點時,LSR才可以向上游發(fā)送標(biāo)簽映射消息。(只有收到它的下游返回的標(biāo)簽映射消息后,才向其上游發(fā)送標(biāo)簽映射消息)
LDP標(biāo)簽保持方式
Conservative保守
當(dāng)使用DU標(biāo)簽分發(fā)方式時,LSR可能從多個LDP Peer收到到同一網(wǎng)段的標(biāo)簽映射消息,如果采用Conservative保持方式,則路由器只保留IP路由表中下一跳發(fā)來的標(biāo)簽,丟棄非下一跳發(fā)來的標(biāo)簽。
Liberal自由
如果采用Liberal保持方式,路由器會保留所有LDP Peer發(fā)來的標(biāo)簽,無論該LDP Peer是否為到達(dá)目的網(wǎng)段的下一跳。
使用自由標(biāo)簽保持方式,LSR能夠迅速適應(yīng)路由變化;而使用保守標(biāo)簽保持方式,LSR可以分配和保存較少的標(biāo)簽數(shù)量。
保守標(biāo)簽保持方式通常與DoD方式一起,用于對于標(biāo)簽空間有限的LSR。
十二、LDP 標(biāo)簽過濾
LDP協(xié)議在缺省的情況下,從下游鄰居接收到的所有FEC的標(biāo)簽映射(標(biāo)簽-FEC綁定)都將接受;并按照水平分割的原則向各個上游鄰居通告FEC的標(biāo)簽映射。
LDP標(biāo)簽過濾提供了兩種機制,可以有選擇的接受從指定LDP下游鄰居接收到的標(biāo)簽映射、也可以選擇性地向指定LDP上游鄰居通告指定地址前綴的標(biāo)簽映射。
標(biāo)簽接受控制
標(biāo)簽接受控制(Label Acceptance Control)或入站標(biāo)簽過濾(Inbound Filtering),選擇性地接受指定下游設(shè)備通告過來的、指定地址前綴的標(biāo)簽映射。
標(biāo)簽通告控制
標(biāo)簽通告控制(Label Advertisement Control)或出站標(biāo)簽過濾(Outbound Filtering),選擇性地向指定上游設(shè)備通告指定地址前綴的標(biāo)簽映射。
十三、MPLS與路由協(xié)議
LDP通過逐跳方式建立LSP時,利用沿途各LSR路由轉(zhuǎn)發(fā)表中的信息來確定下一跳,而路由轉(zhuǎn)發(fā)表中的信息一般是通過IGP、BGP等路由協(xié)議收集的。LDP并不直接和各種路由協(xié)議關(guān)聯(lián),只是間接使用路由信息。另一方面,通過對BGP、RSVP等已有協(xié)議進(jìn)行擴展,也可以支持標(biāo)簽的分發(fā)。
在MPLS的應(yīng)用中,也可能需要對某些路由協(xié)議進(jìn)行擴展。例如,基于MPLS的VPN應(yīng)用需要對BGP進(jìn)行擴展,使BGP能夠傳播VPN(Virtual Private Network,虛擬專用網(wǎng))的路由信息;基于MPLS的TE(Traffic Engineering,流量工程)需要對OSPF或IS-IS協(xié)議進(jìn)行擴展,以攜帶鏈路狀態(tài)信息。
LDP IGP同步
LDP和IGP同步功能主要用來解決在LSP存在主備鏈路的組網(wǎng)中,主LSP發(fā)生故障,導(dǎo)致的流量丟失問題。
具體情況如下:
當(dāng)主鏈路發(fā)生故障時,IGP流量和LSP流量均切換到備份鏈路上。但當(dāng)主鏈路從故障中恢復(fù)時,由于IGP比LDP收斂速度快,IGP會 先于LDP切換回主鏈路,因此造成LSP流量丟失。
當(dāng)主鏈路正常,但主鏈路節(jié)點間的LDP會話發(fā)生故障時,LSP流量從主鏈路切換到備份鏈路,而IGP流量繼續(xù)從主鏈路轉(zhuǎn)發(fā),導(dǎo)致LSP流量丟失。
十四、MPLS常問問題
路由器是如何判斷一個數(shù)據(jù)包是IP包還是標(biāo)簽包。
答:在二屋協(xié)議號中,如果協(xié)議號為:0X0800就是IP包,如果是0X8847或0X8848就是MPLS包。
MPLS在OSI參考模型中是幾層?
答:MPLS介于二層與三層之間,插入了4個BYTE的長度。
3 .分發(fā)標(biāo)簽的方式有哪些?
答:有下游請求(down-stream on demand,簡稱DoD)和主動分發(fā)(DU)兩種
4.有哪些獨立的標(biāo)簽分發(fā)協(xié)議?
答:協(xié)議就是TDP和LDP啊!
5 .談?wù)凾DP和LDP的區(qū)別
答:TDP是思科的私有協(xié)議,用TCP/UDP 711端口,LDP是業(yè)界標(biāo)準(zhǔn),用TCP/LDP 646端口
在ip路由表中,LDP為每一條前綴都會進(jìn)行一個本地綁定,這句話對嗎?如果不對請說明原因。
答:不精確,LDP是不對BGP路由分標(biāo)簽的。
標(biāo)簽交換有哪幾種動作。
答:壓標(biāo)簽、彈標(biāo)簽、交換標(biāo)簽
哪些標(biāo)簽是被用于保留的.
答:其中4至13、15是被保留的。
哪一個標(biāo)簽用于通知倒數(shù)第二跳LSR使用倒數(shù)第二跳標(biāo)簽移除(POP)機制?
答:就是標(biāo)簽3,又叫隱式空標(biāo)簽。
審核編輯:黃飛
評論
查看更多