MPLS小結

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

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

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

  1. 標籤交換路由器(P路由器)
    LSR(Label Switching Router,標籤交換路由器)是具備標籤分發能力和標籤交換能力的設備,是MPLS網絡中的基本元素。
  2. 標籤邊緣路由器(PE路由器)
    位於MPLS網絡邊緣、鏈接其餘網絡的LSR稱爲LER(Label Edge Router,標籤邊緣路由器)。
    五、標籤分發協議
    標籤分發協議(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):依據標籤轉發表對收到的分組進行轉發。

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

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

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

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

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

6、次末跳彈出機制(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域

相關文章
相關標籤/搜索