【MPLS ***】基礎知識:模型、PE路由器、VRF、RD及RT

(紅茶三杯http://weibo.com/vinsoney版權所有,轉載請註明出處)

 

一、MPLS ***模型

 

【MPLS <wbr>***】基礎知識:模型、PE路由器、VRF、RD及RT等等


1. PE(Provider edge)運營商邊界設備

  運營商邊界設備,與客戶邊界設備相連接。運行MPLS。同時在PE上,使用VRF對***客戶進行隔離。

2. P(Provider)運營商設備

  運營商設備不直接與客戶設備相連接。運行MPLS。P設備往往並不知道***客戶網絡、以及客戶的路由。它只負責在Backbone內運載標籤數據。

3. CE(customer edge )客戶邊界設備

  客戶網絡中,與PE直連的設備,主要的功能是將***客戶的路由通告給PE,以及從PE學習同一個***下其他站點的路由


二、VRF


  MPLS ***一個非常吸引人的地方,就是可以讓不同客戶的路由及數據穿越運營商的MPLS *** Backbone,而且這些路由和數據又是相互隔離和獨立的,即使不同的客戶,擁有相同的IPv4地址空間也不要緊。

  那麼作爲這些客戶路由進入MPLS Backbone入口的設備 -- PE,就顯得非常重要了。在PE上有個非常重要的概念—VRF(嚴格的說,VRF的作用現在已經擴展了,我們這裏重點討論在MPLS *** PE中的運用)。

  VRF:Virtual Routing and Forwarding,翻譯成虛擬路由及轉發,它是一種***路由和轉發實例。一臺PE路由器,由於可能同時連接了多個***用戶,這些用戶(的路由)彼此之間需要相互隔離,那麼這時候就用到了VRF,PE路由器上每一個***都有一個VRF。PE路由器除了維護全局IP路由表之外,還爲每個VRF維護一張獨立的IP路由表,這張路由表稱爲VRF路由表。要注意的是全局IP路由表,以及VRF路由表都是相互獨立或者說相互隔離的。

  因爲每一個***都有一張獨立的VRF路由表,所以PE路由器上每一個***也會有一張獨立的CEF表來轉發這些報文,這就是VRF CEF表

一旦在PE路由器上創建了一個VRF,我們就可以將特定的接口(物理或邏輯的)放入這個VRF,那麼這個接口將不再屬於全局IP路由表或其他任何VRF,只爲該VRF服務。


三、RD


  由於***前綴是通過MP-BGP在MPLS ***網絡中擴散,那麼可能,同一時間,MPLS ***網絡承載着多個客戶的***前綴,甚至有可能是相同的IPv4地址空間,那麼怎麼做到客戶之間地址空間的唯一性呢?就需要用到RD值了。RD值在VRF中進行配置。

  RD(route distinguisher)64bits,用於在MP-BGP運載VRF前綴時,確保這些前綴的唯一性。但是RD並不會說明該前綴屬於哪一個VRF(需要搭配RT),RD的功能並不是***標示符,因爲在一些複雜的***環境中,可能一個***存在多個RD。RD的最重要的兩個功能: 

  • 與32bits的Ipv4前綴一起構成96bits的***v4前綴;

  • 如果不同的***客戶,存在相同的IPv4地址空間,那麼可以通過設置不同的RD值從而保證前綴的唯一性。


  這個64比特的值可以有兩種表現形式:AS:nn或者IP-address:nn。其中nn代表數字。最常用的格式是AS:nn,其中AS代表AS號。通常AS是IANA分配給服務提供商的AS號,nn是服務提供商分配給VRF的唯一號碼。

產生的***v4前綴通過MP-BGP在PE路由器之間被傳遞。

(紅茶三杯http://weibo.com/vinsoney版權所有,轉載請註明出處)


四、RT


  Route Targets,這玩意就是用來區分customer的。是BGP community 的擴展屬性,在VRF中進行配置。它跟在***v4前綴後面被一起傳遞。一條路由可以附加多個RT值。


  • Export RTs

通過在vrf中定義export RT值,將使得輸出的***v4路由攜帶上該RT值一起傳遞 – 以BGP擴展community的方式。注意這些***v4路由,是由***客戶的IPv4路由導入VRF後,加上VRF中配置的RD值所形成的。

 

【MPLS <wbr>***】基礎知識:模型、PE路由器、VRF、RD及RT等等

  • Import RTs

【MPLS <wbr>***】基礎知識:模型、PE路由器、VRF、RD及RT等等

  PE會從其他MP-BGP對等體的PE那收到***v4的前綴,這些前綴都是攜帶RT值的。默認情況下,PE是不會將這些***v4路由以IPv4的形式裝載到VRF路由表裏,除非在本地的VRF中,配置import RTs,那麼如果import RTs與收到的***v4前綴中的RT匹配的話,這些***v4前綴纔會被以IPv4的形式裝載到相應的VRF路由表裏,相當於在這裏RT起到一個前綴過濾或者識別的作用,這個功能在許多場景中非常有用。

***v4路由可能攜帶不止一個RT值,只要有一個匹配import RT即可導入到VRF路由表。

 

五、PE設備邏輯詳解


【MPLS <wbr>***】基礎知識:模型、PE路由器、VRF、RD及RT等等


  PE設備是MPLS ***部署非常關鍵的一個環節。上面這張圖就是一個典型的PE路由器的邏輯分解圖。藍色的這個框框代表的就是一臺PE路由器。我們看到這個PE設備創建了兩個VRF,VRF-A對應的是客戶A,VRF-B對應的是客戶B。(紅茶三杯http://weibo.com/vinsoney版權所有,轉載請註明出處)

  一旦創建了兩個VRF,我們就可以將特定的接口放入特定的VRF,那麼這些接口將只爲所屬的VRF服務。上圖中的PE路由器實際上就有了三張路由表,分別是兩張VRF路由表,以及一張全局IP路由表。

  一個PE路由器連接不同的客戶Customer,使用類似虛擬路由器的概念,來進行邏輯上的進行區分,看到上圖中的virtual router for A和virtual router for B了麼。這些客戶甚至有可能使用相同的地址空間,那麼我們在一臺PE上,使用多個virtual路由表,將客戶及客戶的路由進行邏輯上的隔離。這裏virtual路由表是相對於我們的全局IP路由表的概念。從global接口上學習到的路由,放入全局IP路由表,從VRF接口上學習到的路由,放入相應的VRF路由表。不同的virtual路由表完全隔離。

 

【MPLS <wbr>***】基礎知識:模型、PE路由器、VRF、RD及RT等等

  再來看仔細一點,上面這個PE,我們創建了VRF ABC,那麼同時一併出現的還有VRF ABC的路由表以及VRF ABC的CEF表。我們將PE上與CE直連的接口放入VRF ABC。接下去來分解一下,看看這裏頭有什麼東西:

  •  

    首先PE上,運行一個Core的IGP協議,這裏用的是OSPF 100,這個OSPF進程是爲全局IP路由表貢獻路由的。OSPF 100與運營商骨幹網內的其他設備形成OSPF鄰居關係並且交互骨幹網Core內的路由,交互這些路由的目的是,可以爲後面的MP-BGP的建立服務,因爲MP-BGP往往是通過PE之間的Loopback來建,MP-BGP鄰居關係建立需要這些IGP路由。同時後續的LDP也依賴這個Core的IGP協議。

  • 接着PE上運行一個MP-BGP,MP-BGP至少有兩個address-family也就是地址族,一個是address-family ***v4,用於和對端的PE交互***v4前綴。另一個地址族是address-family ipv4 vrf ABC,注意這個地址族是和vrf ABC關聯的,用於獲取***客戶的路由,這個圖中就是customer-A。

  • 接着PE上跑一個PE-CE的路由協議,例如靜態、RIP、EIGRP、BGP等等,目的是爲了從***客戶那,也就是CE設備那學習到***客戶的路由。注意由於連接CE的接口被放入了VRF ABC,因此通過這個接口學習到的路由,被放入了VRF ABC的路由表。放入了VRF ABC路由表之後呢?接下來就要將路由引入到MP-BGP中,如果PE-CE之間運行的是路由協議是非BGP,那麼就需要做路由重發布,將客戶路由重發布進address-family ipv4 vrf ABC這個地址族下面,而如果PE-CE之間運行的已經是BGP了,那麼路由當然就直接進入MP-BGP了。

  • 現在MP-BGP已經有了***客戶的路由,現在要將這些IPv4的路由前綴,變成***v4的路由前綴,通過已經建立起來的***v4的鄰接關係傳遞給對端PE。由於這些路由是屬於VRF ABC的,而VRF是定義了RD、RT值的,那麼這些值在這裏就派上用場了。32bits的IPv4路由前綴,搭配上64bits的RD值,就形成了96bits的***v4的前綴。另外,RT值跟隨着這個***V4前綴,被MP-BGP更新給了對端PE。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章