在看紅茶的視頻 視頻裏說因為要使用vpnv4來封裝所以用MPbgp,使用vpnv4來封裝的原因是因為有可能存在對端不同vrf表內相同的路由條目 所以通過rd加ip的vpnv4格式進行區分。那麼前綴本身community屬性攜帶的rt值已經足夠區分到底該條目屬於哪個vrf了啊 為啥還要使用mpbgp呢??


MPLS VPN是個很有意思的話題。我在專欄裡面花了好幾篇介紹它,這裡就不貼所有的鏈接了。與MP-BGP相關的介紹主要在 MPLS L3 VPN。

再來看這位同學的問題,community的RT能不能區分條目屬於哪個VRF?

能!RT就是用來幹這個的。BGP是通過BGP route攜帶的RT將BGP route分到不同的VRF。

那為什麼還要MPBGP,這個問題等於為什麼還要VPNv4地址族,進一步等於問為什麼要有RD?

這涉及到BGP是如何工作的。BGP收到條目之後,會存到RIB(Routing informaiton base)。這個時候,如果有相同的prefix,那麼新的會替代舊的,之後才處理community,Community在這個問題裏也就是RT。這是BGP4,也就是老BGP協議的工作方式。MPBGP對BGP4擴展,本質上沒有改變BGP4的工作方式,只是增加了幾個地址族,所以MPBGP沿用了這個處理方式。

在MPLS VPN中,如果沒有RD,那麼不同VPN的相同prefix,假設都是192.168.31.0/24,後來的也會覆蓋先到的,相應的RT也會覆蓋。舉個例子,192.168.31.0/24+RT1先到,192.168.31.0/24+RT2後到,RT1會丟失,MPBGP的RIB裡面只會存 192.168.31.0/24+RT2,而RT1對應的VRF也收不到這條路由。

有了RD,在MPBGP的RIB裡面,可以區分不同的VPN的相同的prefix,剛才那個例子,對應的在RIB裏會有兩條:

RD1:192.168.31.0/24+RT1

RD2:192.168.31.0/24+RT2

所以為什麼要有RD,是因為老BGP(BGP4)自身的工作方式導致的,你要是能重新定義BGP的工作方式,說不定RT就夠用了。


打補丁思路,bgp本來用於遠距離路由傳送,藉助community 傳送vpn路由也正合適。也有改造ISIS來傳送vpn路由的,比如北電的pbb就是用isis來攜帶mac地址,當然也可以攜帶三層ip


RD和RT功能是不一樣的,RD是用於標識區分,僅此而已,不做任何動作。RT纔是控制路由的導入導出。怎麼可能取代呢!


我覺得你理解錯了,rd是將本地的每一條路由變成一個唯一的,因為一個pe鏈接著多個ce,這些ce端發過來的路由前綴有可能是重複的,rd就是為瞭解決重複地址的,沒有別的作用,而且本地有效!兩邊pe配不配相同的rd完全沒有影響,控制層面來說rt纔是決定路由應該放進哪個vrf。數據層面私網標籤決定往哪個ce發


推薦閱讀:
查看原文 >>
相關文章