VRF 原理

近年來網絡***技術方興未艾,日益成爲業界關注的焦點。根據***實現的技術特點,可以把***技術分爲以下三類:

傳統***:FR和ATM

CPE-based ***L2TPIPSec

Provider Provisioned ***s ( PP-*** )MPLS L2***MPLS L3***

本文介紹的VRF(virtual route forwarding)特性是MPLS ***中經常使用的技術,中文含義爲***路由轉發實例。鑑於VRF與MPLS ***密切相關,下面首先對MPLS ***作簡要介紹。


圖1是一個典型的MPLS L3***的組網圖,運營商通過自己的IP/MPLS核心網絡爲BLUE和YELLOW兩個客戶提供***服務。SITE1和SITE3分別爲*** BLUE的兩個站點,SITE2和SITE4分別爲*** YELLOW的兩個站點。*** BLUE兩個站點內的主機可以互訪,但不能訪問*** YELLOW內的主機。同樣,*** YELLOW兩個站點內的主機可以互訪,但不能訪問*** BLUE內的主機。從而實現了兩個***間的邏輯劃分和安全隔離。

CE設備的作用是把用戶網絡連接到PE,與PE交互***用戶路由信息:向PE發佈本地路由並從PE學習遠端站點路由。

PE作用是向直連的CE學習路由,然後通過IBGP與其他PE交換所學的***路由。PE設備負責***業務的接入。

P設備是運營商網絡中不與CE直接相連的設備,只要支持MPLS轉發,並不能感知到***的存在。

20071227_290570_p_w_picpath001_c513cada-3789-4


1


上面組網中***的設計思想是很巧妙的,但存在如下幾個問題:

1、本地路由衝突問題,即:在BLUE和YELLOW兩個***中可能會使用相同的IP地址段,比如10.1.1.0/24,那麼在PE上如何區分這個地址段的路由是屬於哪個***的。

2、路由在網絡中的傳播問題,上述問題會在整個網絡中存在。

3、PE向CE的報文轉發問題,當PE接收到一個目的地址在10.1.1.0/24網段內的IP報文時,他如何判斷該發給哪個***?


針對上述3個問題,分別有以下解決方案:

1、爲了解決本地路由衝突問題,我們引入了VRF的概念:把每臺PE路由器在邏輯上劃分爲多臺虛擬路由器,即多個***路由轉發實例VRF,每個VRF對應一個***,有自己獨立的路由表、轉發表和相應的接口。這就相當於將一臺各***共享的PE模擬成多臺專用PE。這樣PE與CE交互的路由信息只是該***的路由,從而實現了***路由的隔離。由於不同***的路由存放在不同的VRF中,所以***路由重疊的問題也解決了。

2、***重疊路由在網絡中的傳播問題可以在路由傳遞的過程中爲這條路由再添加一個標識,用以區別不同的***。正常的BGP4協議只能傳遞IPv4的路由,由於不同***用戶具有地址空間重疊的問題,必須修改BGP協議。BGP最大的優點是擴展性好,可以在原來的基礎上再定義新的屬性,通過對BGP修改,把BGP4擴展成MP-BGP。在MP-IBGP鄰居間傳遞***用戶路由時打上RD標記等***信息,這樣CE傳來的***用戶的IPv4路由被PE轉換爲***-IPv4路由,這樣就能保證對端PE能夠區分開屬於不同***用戶的地址重疊的路由。

3、PE向CE的報文轉發問題,由於IP報文的格式不可更改,沒有什麼文章可以做,但可以在IP頭之外加上一些信息(標籤),由始發的***打上標記,這樣PE在接收報文時可以根據這個標記進行轉發。

每一個VRF可以看作一臺虛擬的路由器,好像是一臺專用的PE設備。該虛擬路由器包括如下元素:

一張獨立的路由表/轉發表,當然也包括了獨立的地址空間。

一組歸屬於這個VRF的接口集合。

一組只用於本VRF的路由協議。

對於每個PE,可以維護一個或多個VRF,同時維護一個公網的路由表(也叫全局路由表),多個VRF實例相互分離獨立。實現VRF並不困難,關鍵在於如何在PE上使用特定的策略規則來協調各VRF和全局路由表之間的關係。


在VRF中定義的和***業務有關的兩個重要參數是RT和RD,RT和RD長度都是64bit。

RTRoute Target的縮寫,RT的本質是每個VRF表達自己的路由取捨及喜好的方式,主要用於控制***路由的發佈和安裝策略。分爲importexport兩種屬性,前者表示了我對那些路由感興趣,而後者表示了我發出的路由的屬性。當PE發佈路由時,將使用路由所屬VRFRT export規則,直接發送給其他的PE設備。對端PE接收路由時,首先接收所有的路由,並根據每個VRF配置的RTimport規則進行檢查,如果與路由中的RT屬性match,則將該路由加入到相應的VRF中。以下圖爲例:

SITE-1:我發的路由是藍色的,我也只接收藍色的路由。

SITE-2:我發的路由是黃色的,我也只接收黃色的路由。

SITE-3:我發的路由是藍色的,我也只接收藍色的路由。

SITE-4:我發的路由是黃色的,我也只接收黃色的路由。

這樣,SITE-1與SITE-3中就只有自己和對方的路由,兩者實現了互訪。同理SITE-2與SITE-4也一樣。這時我們就可以把SITE-1與SITE-3稱爲*** BLUE,而把SITE-2與SITE-4稱爲*** YELLOW


20071227_290571_p_w_picpath002_c513cada-3789-4

2


RDRoute Distinguisher的縮寫,是說明路由屬於哪個***的標誌。理論上可以爲每個VRF配置一個RD,通常建議爲每個***VRF都配置相同的RD,並且要保證這個RD全球唯一。如果兩個VRF中存在相同的地址,但是由於RD不同,這兩個路由在PE間發佈過程中也不會混淆,因爲MP BGPRD和路由一起發送,對端PE可以根據RD確定路由所屬的***,從而把路由安裝到正確的VRF中。

RD並不會影響不同VRF之間的路由選擇以及***的形成,這些事情由RT搞定。

PECE接收的標準的路由是IPv4路由,如果需要發佈給其他的PE路由器,此時需要爲這條路由附加一個RD。在IPv4地址加上RD之後,就變成***-IPv4地址族了。***-IPv4地址僅用於服務供應商網絡內部。在PE發佈路由時添加,在PE接收路由後放在本地路由表中,用來與後來接收到的路由進行比較。CE不知道使用的是***-IPv4地址。


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