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