網絡中的海底隧道——MPLS

目錄

  1. MPLS概述
  2. MPLS相關概念
  3. MPLS結構
  4. MPLS標籤報文格式
  5. LDP標籤分發協議
  6. LSP的建立
  7. MPLS與路由協議
  8. MPLS數據轉發
  9. MPLS環路檢測
  10. 對MPLS LSP的檢測
  11. LDP的標籤管理
  12. LDP 標籤過濾
  13. MPLS與路由協議
  14. 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存在的意義

  1. 解決BGP的路由黑洞
  2. MPLS VPN
  3. MPLS TE 流量工程

二、MPLS相關概念

  1. 轉發等價類

    MPLS作爲一種分類轉發技術,將具有相同轉發處理方式的分組歸爲一類,稱爲FEC(Forwarding Equivalence Class,轉發等價類)。相同FEC的分組在MPLS網絡中將獲得完全相同的處理。通常對一個FEC分配唯一的標籤。

    FEC的劃分方式非常靈活,可以是以源地址、目的地址、源端口、目的端口、協議類型或VPN等爲劃分依據的任意組合。例如:

    • 屬於某特定組的組播報文
    • 目的IP地址匹配了某一個特定前綴的報文
    • 根據DCSP字段,有相同QOS策略的報文
    • MPLS VPN中,屬於同一個VPN的報文
  2. 標籤

    標籤是一個長度固定,僅具有本地意義的短標識符,用於唯一標識一個分組所屬的FEC。
    在這裏插入圖片描述

  3. MPLS domain
    LSR構成的網絡區域稱爲MPLS域(MPLS Domain) ,是MPLS的工作半徑。

  4. 標籤交換路由器

    LSR(Label Switching Router,標籤交換路由器)是MPLS網絡中的基本元素,所有LSR都支持MPLS技術。

  5. 標籤邊界路由器

    LER(Label Edge Router,標籤邊界路由器)可以轉發數據包進入MPLS域,也可以轉發IP包進入或離開MPLS域。

    在MPLS域中LSR是轉發帶標籤的數據包,LER可以轉發數據包進入MPLS域,也可以轉發IP包進入或離開MPLS域。

  6. 標籤交換路徑

    一個轉發等價類在MPLS網絡中經過的路徑稱爲LSP(Label Switched Path,標籤交換路徑)。在一條LSP上,沿數據傳送的方向,相鄰的LSR分別稱爲上游LSR和下游LSR。

    LSP是一個單向路徑,與數據流方向一致。LSP的入口LER稱爲入節點(Ingress);位於LSP中間的LSR稱爲中間節點(Transit);LSP的出口LER稱爲出節點(Egress)。

  7. 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的處理
  1. 查看FIB表,根據目的IP地址找到對應的Tunnel ID。
  2. 根據FIB表的Tunnel ID找到對應的NHLFE表項,將FIB表項和NHLFE表項關聯起來。
  3. 查看NHLFE表項,可以得到出接口、下一跳、出標籤和標籤操作類型,標籤操作類型爲Push。
  4. 在IP報文中壓入出標籤,並根據QoS策略處理EXP,同時處理TTL,然後將封裝好的MPL S報文發送給下一跳。
  • Transit的處理
  1. 根據MPLS的標籤值查看對應的ILM表,可以得到Tunnel ID。
  2. 根據ILM表的Tunnel ID找到對應的NHLFE表項。
  3. 查看NHLFE表項,可以得到出接口、下一跳、出標籤和標籤操作類型。
  4. MPLS報文的處理方式根據不同的標籤值而不同。.
    • 如果標籤值>=16,則用新標籤替換MPLS報文中的舊標籤,同時處理EXP和TTL,然後將替換完標籤的MPLS報文發送給下一跳。
    • 如果標籤值爲3,則直接彈出標籤(次末跳彈出,這是針對FEC),同時處理EXP和TTL,然後進行IP轉發或下一層標籤轉發。
  • Egress的處理:通過查詢ILM表指導MPLS報文的轉發或查詢路由表指導IP報文轉發。
  1. 如果Egress收到IP報文,則查看路由表,進行IP轉發。
  2. 如果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常問問題

  1. 路由器是如何判斷一個數據包是IP包還是標籤包。
    答:在二屋協議號中,如果協議號爲:0X0800就是IP包,如果是0X8847或0X8848就是MPLS包。
  2. 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端口
  3. 在ip路由表中,LDP爲每一條前綴都會進行一個本地綁定,這句話對嗎?如果不對請說明原因。
    答:不精確,LDP是不對BGP路由分標籤的。
  4. 標籤交換有哪幾種動作。
    答:壓標籤、彈標籤、交換標籤
  5. 哪些標籤是被用於保留的.
    答:其中4至13、15是被保留的。
  6. 哪一個標籤用於通知倒數第二跳LSR使用倒數第二跳標籤移除(POP)機制?
    答:就是標籤3,又叫隱式空標籤。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章