僞裝網絡工程師23——MPLS單域通訊過程詳解

1、背景說明

上一篇文章只是講述了多站點穿過mpls域進行通訊,本文專門從路由傳輸與數據傳輸兩個維度詳細講解傳輸的過程,上文實驗拓撲以下圖所示,爲了簡單起見,只已客戶A爲例(紫色)進行描述
僞裝網絡工程師23——MPLS單域通訊過程詳解 網絡

2、路由傳輸層面

  1. R5與R1之間經過ospf 1學習到5.5.5.5/32網絡
    僞裝網絡工程師23——MPLS單域通訊過程詳解
  2. 將5.5.5.5/32路由導入R1上的instance A中,在bgp路由表中能看到5.5.5.5/32的起源路由器爲R1,起源方式爲incomplete
    僞裝網絡工程師23——MPLS單域通訊過程詳解
  3. 因爲R1和R3底層已經經過ospf創建鄰居關係,bgp協議的update包能夠直接經過「一跳」的方式將路由從R1傳到R3
    僞裝網絡工程師23——MPLS單域通訊過程詳解
    因爲R3上也建立了VRF,因此R1將5.5.5.5/32傳給R3時將普通的bpg報文變成mp-bgp報文傳送給R3,其中經過rd值來表示路由的惟一性,rt值告訴R3該路由應該放進R3上哪一個VRF中,rt值信息粘附在R1傳給R3的bgp update報文community擴展屬性中
    僞裝網絡工程師23——MPLS單域通訊過程詳解
    一併傳給R3的還有R1經過mp-bgp爲5.5.5.5/32分配的標籤值,此處爲1028
    僞裝網絡工程師23——MPLS單域通訊過程詳解
    這一點也能夠從R1上看到
    僞裝網絡工程師23——MPLS單域通訊過程詳解
  4. 最後,R3將5.5.5.5/32由mp-bgp引入ospf1,在經過ospf1發給R7,至此路由信息傳送完成
    僞裝網絡工程師23——MPLS單域通訊過程詳解
  5. 由上述可知,在整個過程當中,PE(R1,R3)設備的任務最爲繁重,他須要將普通的bgp路由條目轉換成mp-bgp的4路由條目,再經過lsp隧道發出,pe路由器的功能模塊在此過程當中以下圖所示
    僞裝網絡工程師23——MPLS單域通訊過程詳解
    能夠看到BGP除了自己的
    4路由表外,還單獨爲每一個vrf實例維護了一張路由表

    3、數據傳輸層面

  6. 首先數據包從R7出來,目的地址是5.5.5.5/32
    僞裝網絡工程師23——MPLS單域通訊過程詳解
  7. 因爲R1,R2,R3之間還運行了ldp協議,因此當數據包到達R3時,棧底先壓上R1的mp-bgp爲5.5.5.5/32分配的標籤1028,外層再壓上R2爲1.1.1.1/32分配的標籤1025傳送給R2
    僞裝網絡工程師23——MPLS單域通訊過程詳解
    之因此壓上R2爲1.1.1.1/32分配的標籤,是由於在R3的fib表中,去往5.5.5.5/32走的是0x3隧道
    僞裝網絡工程師23——MPLS單域通訊過程詳解
    而在0x3隧道中目的地址變成了1.1.1.1,下一跳是R2的g0/0/1接口,標籤爲1025
    僞裝網絡工程師23——MPLS單域通訊過程詳解
  8. 數據包到達R2後,剝離外層標籤,再發給R1
    僞裝網絡工程師23——MPLS單域通訊過程詳解
  9. R1根據MP-BGP分配的標籤值放入相應的VRF中,最後以ip報文的形式發送給R5,至此數據傳輸完成
    僞裝網絡工程師23——MPLS單域通訊過程詳解
    整個過程能夠在R7上進行標籤路徑查看
    僞裝網絡工程師23——MPLS單域通訊過程詳解

    4、RD、RT與MP-BGP label詳解

    1.RT詳解

    僞裝網絡工程師23——MPLS單域通訊過程詳解
    當R1要把路由傳給R3時,因爲R3上也運行了vrf,因此就須要有一種判斷機制來肯定將路由存放到那一個vrf中,而rt的引入就是結局這個問題,他做爲只對vrf感興趣的判斷依據,存放於BGP updata的擴展community屬性中,因此rt屬於控制(路由傳輸)層面的參數 ide

    2.RD詳解

    關於rd值,以R1爲例,不少解釋說他是爲了在R1上標識路由的惟一性,其實這個說法並不許確,再往深層次的挖,就算R1上instance A與instance B使用了相同的路由,但BGP updata報文中的rt值已經判斷出要傳輸的路由屬於哪一個vrf,因此rd值的做用並非在此體現 學習

仍是以R1爲例,假設instance A與instance B上都有5.5.5.5/32,發送給R3後,因爲有rt這個擴展屬性,因此R3使能分辨出該放到哪一個vrf中的,但以後若是R1給R3發的是一種撤銷報文(route reserve),這種報文與BGP的updata不一樣,他不會去查看屬性,因此此時的R3就不知道該撤銷那個vrf中的5.5.5.5/32,rd也只是在這種場景下發揮做用。這也是爲何rd是粘附在路由前綴以前,而rt在擴展屬性中,rd與rt同樣屬於控制(路由傳輸)層面的參數 3d

3.Label詳解

僞裝網絡工程師23——MPLS單域通訊過程詳解
首先要說明的是,label屬於轉發(數據傳輸)層面的參數。當R1將路由傳遞個R3後,R3將數據要發送給R1,此時他知道如何去往R1,但數據包送到R1的那個vrf中卻沒法斷定,因此bgp在經過rt值將路由發送過來時,一併附帶一個label值,就是用於告訴R3將數據發往哪一個vrf的 blog

相關文章
相關標籤/搜索