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