僞裝網絡工程師20——MPLS動態LSP介紹

1、背景介紹

以前介紹靜態LSP在小規模的場景下能夠進行手動配置,當網絡規模變大時,靜態LSP的配置就變得複雜,他須要爲每個FEC建立label,手工配置的靜態LSP就不符合當前場景。 相似於IGP的ospf,rip等協議的路由表,MPLS在控制面也須要一個協議來構建標籤表,此處用到的協議就是ldp(label distribute protocol)。當控制面的標籤表構建完成後,在實際轉發時路由器看的是標籤轉發表(lfib),這點跟igp的fib表概念很類似。 網絡

2、實驗介紹

本次實驗拓撲以下圖所示:
僞裝網絡工程師20——MPLS動態LSP介紹
在上圖中,端口的IP地址爲xx.0.0.x/24(x爲路由器編號),如R1上g0/0/0接口地址爲12.0.0.1/24,每一個路由器的使用x.x.x.x/32(x爲路由器編號)做爲: ide

  • loopback 0地址
  • ospf router-id
  • mpls lsr-id
  • ldp通訊地址

相似於BGP協議,LDP協議也須要一個地址做爲通訊地址,這個地址默認是lsr-id的公網地址,若是是私網地址則爲接口的主IP地址,因此本例中ldp的通訊地址默認爲x.x.x.x/32,爲了讓通訊地址可以正常通訊,在MPLS下層須要藉助IGP協議,本例採用ospf協議 oop

3、配置信息

接口IP地址這些設置省略,本次僅演示R1上的配置,其他路由器上配置相似,再也不贅述: 優化

# 先打通底層IGP,爲後續MPLS作準備
[R1]ospf 1 router-id 1.1.1.1 
[R1-ospf-1]area 0
[R1-ospf-1-area-0.0.0.0]network 12.0.0.1 0.0.0.0
[R1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0

# 全局使能MPLS,lsr-id不會自動選舉,必須手動設置
[R1]mpls lsr-id 1.1.1.1   
[R1]mpls
[R1]mpls ldp 

# 在對應接口上啓用mpls功能 
[R1]interface g0/0/0
[R1-GigabitEthernet0/0/0]mpls 
[R1-GigabitEthernet0/0/0]mpls ldp

至此,配置完成,能夠經過tracert來查看1.1.1.1/32去往5.5.5.5/32確實是經過標籤轉發進行,而沒有經過IGP走IP報文 3d

<R1>tracert -v -a 1.1.1.1 5.5.5.5

 traceroute to  5.5.5.5(5.5.5.5), max hops: 30 ,packet length: 40,press CTRL_C t
o break 

 1 12.0.0.2[MPLS Label=1026 Exp=0 S=1 TTL=1] 30 ms  30 ms  20 ms 

 2 24.0.0.4[MPLS Label=1025 Exp=0 S=1 TTL=1] 30 ms  20 ms  30 ms      #注意:此處是倒數第二跳一彈出標籤,後續會詳細介紹

 3 45.0.0.5 40 ms  30 ms  30 ms

4、MPLS LDP詳解

1.創建LDP鄰居

當路由器的物理接口激活LDP協議後,該接口會向224.0.0.2組播發送數據報文用於發現鄰居
僞裝網絡工程師20——MPLS動態LSP介紹
數據報文中會攜帶用於LDP通訊的地址,默認狀況下通訊地址是lsr-id的公網地址,若是lsr-id不是公網地址,則會用接口的主地址做爲通訊地址,,後期等LDP鄰居創建後,鄰居之間的keepalive報文也是經過該地址通訊
僞裝網絡工程師20——MPLS動態LSP介紹
通訊地址也能夠手動指定 code

[R1-GigabitEthernet0/0/0]mpls ldp transport-address ?
  Ethernet         Ethernet interface
  GigabitEthernet  GigabitEthernet interface
  LoopBack         LoopBack interface
  NULL             NULL interface
  interface        Specify Transport Address As One Of Interface

當接口相互之間交互過通訊地址後,由地址大的一方主動發起TCP會話請求,通過三次握手後最終創建鏈接,至此LDP鄰居關係創建完成
僞裝網絡工程師20——MPLS動態LSP介紹 router

二、LDP協議的標籤分發策略

LDP協議默認會給每個32位的FEC分配一格標籤,且在MPLS中,這些標籤雖然是無序分發的,但有下面3種策略 blog

  • 主動發送/被動拉取
    主動分發:當A路由器爲他的FEC分配完標籤後主動通告給它的LDP鄰居(默認)
    被動拉取:當A路由器爲他的FEC分配完標籤後,當它的LDP鄰居請求時再發送給它的鄰居
    [R2-GigabitEthernet0/0/1]mpls ldp advertisement ?
    dod  Downstream On Demand Advertisement Mode
    du   Downstream Unsolicited Advertisement Mode
  • 等待/非等待
    等待:對於不一樣路由器上相同的FEC,只有收到下游路由器通告的標籤後纔會將本身給這個FEC分配的標籤通告給上游路由器(默認)
    非等待:路由器給FEC分配標籤後直接轉發給LDP鄰居,不須要等待下游路由器對該FEC的通告
  • 自由/保守
    自由:因爲低層IGP互通,對於一個FEC可能會有多個路由器爲他分配標籤,但它只會選擇路由表中下一跳路由器分配的標籤做爲LSP路徑,對於其餘路由器爲這個FEC分配的標籤自由策略是保留(默認)
    保守:保守策略就是不保留除下一跳路由器以外,其餘路由器爲這個FEC分配的標籤 接口

    三、LDP的水平分割

    相似RIP協議同樣,LDP協議也有水平分割,即從一個接口接收到了FEC標籤,不會把本地爲這個FEC分配的標籤從這個接口再發出去。但水平分割這個策略默認是關閉的,同一時刻就可能有如下這種狀況
    僞裝網絡工程師20——MPLS動態LSP介紹
    R2與R3都在向對方發送相同FEC的標籤,此時LSP之因此可以不成爲環路的緣由就是他會選擇IGP中下一跳地址通告的FEC標籤做爲LSP路徑 ip

    四、LDP的POP彈出標籤動做

    不一樣於靜態MPLS最後一跳彈出標籤,啓用LDP後它的POP動做發生在倒數第二跳
    僞裝網絡工程師20——MPLS動態LSP介紹
    從下面能夠看出,R4再將數據報文交給R5的時候,就已經變成了純IP報文,這麼作的緣由是爲了減輕MPLS域邊界路由器的負擔,同時提高轉發效率。若是彈出標籤的動做發生在邊界路由器上,他則要先再轉發表中找到相應的隧道信息拆掉標籤,再一次查詢轉發表進行IP報文轉發。

    <R1>tracert -v -a 1.1.1.1 5.5.5.5
    
    traceroute to  5.5.5.5(5.5.5.5), max hops: 30 ,packet length: 40,press CTRL_C t
    o break 
    
    1 12.0.0.2[MPLS Label=1026 Exp=0 S=1 TTL=1] 30 ms  30 ms  20 ms 
    
    2 24.0.0.4[MPLS Label=1025 Exp=0 S=1 TTL=1] 30 ms  20 ms  30 ms      
    
    3 45.0.0.5 40 ms  30 ms  30 ms

    那麼他是如何判斷哪一個交換機是倒數第二個從而觸發POP動做的呢?MPLS的LDP標籤是從1024開始分發,他有0~15共16個保留標籤,路由器默認會給本地起源的FEC標籤分配爲3
    僞裝網絡工程師20——MPLS動態LSP介紹
    當上遊路由器發現下游FEC標籤爲3時,就觸發POP動做,會彈出標籤將IP報文送給邊界路由器

    [R4]dis tunnel-info tunnel-id 0x1
    Tunnel ID:                    0x1
    Tunnel Token:                 1
    Type:                         lsp
    Destination:                  5.5.5.5
    Out Slot:                     0
    Instance ID:                  0
    Out Interface:                GigabitEthernet0/0/1
    Out Label:                    3
    Next Hop:                     45.0.0.5
    Lsp Index:                    4097

    這麼作雖然減輕了邊界路由器的負擔提高了轉發效率,可是也帶來了一個新的問題:標籤中EXP用於優化的信息丟失,一般一個優化是要求端到端的,這樣就不知足端到端的要求,解決辦法是用標籤0代替標籤3,他會保留除label外的其餘字段
    僞裝網絡工程師20——MPLS動態LSP介紹
    這樣最後邊界路由器看到label 0時直接進行IP報文轉發,而優先級等字段也得以保留

    5、總結

    經過上述內容,咱們能夠將動態LDP總結爲如下幾點:

    1. MPLS域中的LDP協議會依賴低層的IGP協議進行LSP路徑選擇與防環
    2. LDP協議默認工做在主動,等待,自由模式下
    3. LDP協議的POP動做發生在倒數第二跳
相關文章
相關標籤/搜索