上一篇文章只是講述了多站點穿過mpls域進行通訊,本文專門從路由傳輸與數據傳輸兩個維度詳細講解傳輸的過程,上文實驗拓撲以下圖所示,爲了簡單起見,只已客戶A爲例(紫色)進行描述 網絡
當R1要把路由傳給R3時,因爲R3上也運行了vrf,因此就須要有一種判斷機制來肯定將路由存放到那一個vrf中,而rt的引入就是結局這個問題,他做爲只對vrf感興趣的判斷依據,存放於BGP updata的擴展community屬性中,因此rt屬於控制(路由傳輸)層面的參數 ide
關於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
首先要說明的是,label屬於轉發(數據傳輸)層面的參數。當R1將路由傳遞個R3後,R3將數據要發送給R1,此時他知道如何去往R1,但數據包送到R1的那個vrf中卻沒法斷定,因此bgp在經過rt值將路由發送過來時,一併附帶一個label值,就是用於告訴R3將數據發往哪一個vrf的 blog