MPLS小結

MPLS
MPLS:多協議標籤交換,工作在數據鏈路層與網絡層之間,即2.5層,支持多種協議,基於標籤進行路由。傳統的包交換是基於IP地址進行數據轉發的。
MPLS的主要解決的問題:
1)BGP的路由黑洞(一層標籤,爲普通MPLS分組使用)
2)MPLS ×××(兩層標籤)
3)MPLS TE(流量工程)(三層標籤)
一、MPLS的基本概念

1、轉發等價類
MPLS作爲一種分類轉發技術,將具有相同轉發處理方式的分組歸爲一類,稱爲FEC(Forwarding Equivalence Class,轉發等價類)。相同FEC的分組在MPLS網絡中將獲得完全相同的處理。目前設備只支持根據報文的網絡層目的地址劃分FEC,即到同一個目的地址的所有報文就是一個FEC。

2、標籤
標籤是一個固定長度爲4字節,僅具有本地意義的短標識符,用於唯一標示一個分組所屬的FEC。一個標籤只能代表一個FEC。標籤的封裝結構如下圖:
Label Exp S TTL
Label:標籤值字段,長度爲20位,用來表示一個FEC。
Exp:長度爲3位,協議中沒有明確規定,通常用作CoS。
S:長度爲1位,MPLS支持多種標籤。值爲1時,表示爲最底層標籤。
TTL:長度爲8位,和IP分組中的TTL意義相同,可以用來防止環路。、

  1. 標籤交換路由器(P路由器)
    LSR(Label Switching Router,標籤交換路由器)是具有標籤分發能力和標籤交換能力的設備,是MPLS網絡中的基本元素。
  2. 標籤邊緣路由器(PE路由器)
    位於MPLS網絡邊緣、連接其他網絡的LSR稱爲LER(Label Edge Router,標籤邊緣路由器)。
    5、標籤分發協議
    標籤分發協議(LDP)是 MPLS 體系中的一種主要協議。在 MPLS 網絡中,兩個標籤交換路由器(LSR)必須用在它們之間或通過它們轉發流量的標籤上達成一致。
  3. 標籤交換路徑
    屬於同一個FEC的報文在MPLS網絡中經過的路徑稱爲LSP(Label Switched Path,標籤交換路徑)。
    7.轉發信息庫
    FIB從概念上講類似於路由表或信息庫。它維護着一個IP路由表中包含的轉發信息的
    鏡象。當網絡中路由或拓樸結構發生了變化時,IP路由表就被更新,而這些變化也反映在FIB中。RIB表把所有路由協議學習到的路由彙總到一起,經過優選,把優選結果的路由加入到FIB表,供轉發使用。所以FIB是RIB的一個子集。
    8.標籤信息庫
    對路由表中的每一條IGP的IP前綴來說,第一臺LSR都會進行本地捆綁,也就是說,
    爲IPv4前綴捆綁標籤。然後LSR再將該捆綁的標籤分發給所有LSP鄰居。這些接收到的標籤轉換爲遠程標籤。之後鄰居將該遠程和本地標籤存儲於一張特殊的表中,這張表就是標籤信息庫(LIB)。
    9.標籤轉發信息庫
    在LFIB中,本地捆綁的標籤被作爲入站標籤,通過路由表選擇的遠程捆綁標籤中的一
    個作爲出站標籤。因此,當一臺LSR收到一個帶標籤的報文以後,它就(根據LFIB)有能力將爲自己分配的入站標籤交換爲其鄰接的下一跳LSR分配的出站標籤了。
    LFIB是CEF中的FIB+標籤交換形成的LIB結合而成的(迭代)。

LFIB的每一個條目中包括輸入標誌,輸出標誌,輸入接口和輸出端口的MAC地址,轉發表由輸入標誌對條項進行檢索檢查。

LIB與LFIB的區別
通過LIB,只保存有標籤信息,並沒有出接口和下一跳信息,而你的LFIB,必須有出接口和下一跳信息,否則,無法實現轉發

  1. 控制平面和轉發平面
    MPLS節點由兩部分組成:
    控制平面(Control Plane):負責標籤的分配、路由的選擇、標籤轉發表的建立、標籤交換路徑的建立、拆除等工作。
    轉發平面(Forwarding Plane):依據標籤轉發表對收到的分組進行轉發。

二、IP轉發原理 
利用路由協議(靜態\RIP\OSPF等)生成路由表,根據目的IP地址進行轉發,在IP報文
轉發的過程中,目的IP地址保持不變。其中用到兩個表: 
RIB(路由表):路由信息庫,通過各種路由協議獲取路由信息。 
FIB(CEF表):轉發信息庫,根據RIB生成,用於指導IP報文的轉發。 
路由器收到數據包,查看數據包的目的IP地址(IP頭部),查找CEF表,根據CEF錶轉發數據。

三、MPLS的工作原理
使用路由協議傳遞路由條目時,路由器上使用LDP/TDP爲FIB表中的每一條路由條目均分配一個標籤號,裝載於LIB表中,同時傳遞給鄰居,LIB表中還記錄鄰居傳遞到本地的標籤號,然後路由器基於本地的FIB表和LIB表生成LFIB表。在MPLS網絡中,路由器根據LFIB錶轉發分組。
轉發過程是:輸入端的標記邊緣路由器(LER)接收分組,並給分組貼上標籤,標籤交換路由器(LSR)對帶有標籤的分組進行交換,然後,輸出端的標籤邊緣路由器(LER)去掉標籤,並將分組傳送給終端用戶。

四、IP轉發與MPLS轉發的比較
IP包頭長度20字節,MPLS包頭長度是4字節,基於MPLS轉發的效率高於基於IP轉發。 
IP網絡是逐跳轉發數據,收到數據包,查找路由表發給下一跳就可以,而不關心下一跳路由器到底把數據包給誰。IP的逐跳轉發,在經過的每一跳處,必須進行路由表的最長匹配查找(可能多次),速度緩慢。
MPLS 網絡中,預先分配標籤,生成LSP。 MPLS的標籤轉發,通過事先分配好的標籤,爲報文建立了一條標籤轉發通道(LSP),在通道經過的每一臺設備處,只需要進行快速的標籤交換即可(一次查找)。

四、MPLS轉發的四個動作:
1.數據包由IP域進入到MPLS 域,LER根據標籤轉發表壓入標籤(PUSH)。
2.在MPLS域轉發數據包時,LSR根據標籤轉發表替換標籤(SWAP)。
3.當數據包離開MPLS域時,LER是彈出標籤(POP)。PHP:倒數第二跳彈出。
4.在最後一跳將所有標籤移除(Untag)。

五、LSR如何判斷所收到的報文是MPLS標籤報文? 
根據二層協議字段進行判斷承載的是否是MPLS報文:以太網:0x8847(單播)
和0x8848(組播);PPP:0x8281 MPLSCP,一種新的NCP協議。 

六、次末跳彈出機制(Penultimate Hop Poping)
在MPLS ×××應用中,末跳路由器(輸出端LER)在默認情況下需要查看LFIB表後再查看FIB表,然後轉發數據(轉發給CE,即客戶端路由器),而PHP路由器在已知出接口、下一跳等信息時,便可以將頂層標籤彈出,然後將數據包轉發給末跳路由器(輸出端LER),導致末跳路由器轉發數據包時只需查看FIB表,節省了一次LFIB表的查詢。
爲了讓次末跳LSR執行次末跳彈出,其下游的末跳LSR需要向次末跳LSR分發implicit-null標籤,針對所有帶有imp-null的remote標籤的包,次末跳路由器就執行pop動作,將頂層標籤彈出。爲什麼要強調“頂層”呢?這是因爲對於MPLS ×××環境來講,下面還有一層×××標籤,PHP彈出之後的數據包仍然不是原本的IP包,而是帶有×××標籤的標籤包。這樣egress PE收到這個標籤包之後,進行的不是IP的layer-3查找而仍然是標籤查找,只不過查找的是×××標籤所對應的VRF實例而已。查找完成之後就彈出×××標籤包並放入對應的VRF實例裏面發送給CE。

注意:PHP是MPLS的一種優化或補充,主要應用環境是MPLS ×××。要知道MPLS和MPLS ×××是兩個不同的概念,而且,普通的MPLS分組使用一層標籤,而MPLS ×××使用兩層標籤。對於普通MPLS分組,沒有PHP,標籤交換和數據轉發也能正常完成。

MPLS小結

名詞解釋:
MPLS domain:MPLS的工作範圍
LSR(P路由器):標籤交換路由器
LER(PE路由器):標籤邊界路由器
CE(客戶端路由器):不工作於MPLS域

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章