VRF技术白皮书
VRF技術白皮書
1??原理簡介
近年來網絡VPN技術方興未艾,日益成為業界關注的焦點。根據VPN實現的技術特點,可以把VPN技術分為以下三類:
傳統VPN:FR和ATM
CPE-based VPN:L2TP和IPSec等
Provider Provisioned VPNs ( PP-VPN ):MPLS L2VPN和MPLS L3VPN。
本文介紹的VRF特性是MPLS VPN中經常使用的技術,中文含義為VPN路由轉發實例。鑒于VRF與MPLS VPN密切相關,下面首先對MPLS VPN作簡要介紹。
?
圖1是一個典型的MPLS L3VPN的組網圖,運營商通過自己的IP/MPLS核心網絡為BLUE和YELLOW兩個客戶提供VPN服務。SITE1和SITE3分別為VPN BLUE的兩個站點,SITE2和SITE4分別為VPN YELLOW的兩個站點。VPN BLUE兩個站點內的主機可以互訪,但不能訪問VPN YELLOW內的主機。同樣,VPN YELLOW兩個站點內的主機可以互訪,但不能訪問VPN BLUE內的主機。從而實現了兩個VPN間的邏輯劃分和安全隔離。
CE設備的作用是把用戶網絡連接到PE,與PE交互VPN用戶路由信息:向PE發布本地路由并從PE學習遠端站點路由。
PE作用是向直連的CE學習路由,然后通過IBGP與其他PE交換所學的VPN路由。PE設備負責VPN業務的接入。
P設備是運營商網絡中不與CE直接相連的設備,只要支持MPLS轉發,并不能感知到VPN的存在。
?
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????圖1
?
上面組網中VPN的設計思想是很巧妙的,但存在如下幾個問題:
1、????本地路由沖突問題,即:在BLUE和YELLOW兩個VPN中可能會使用相同的IP地址段,比如10.1.1.0/24,那么在PE上如何區分這個地址段的路由是屬于哪個VPN的。
2、????路由在網絡中的傳播問題,上述問題會在整個網絡中存在。
3、????PE向CE的報文轉發問題,當PE接收到一個目的地址在10.1.1.0/24網段內的IP報文時,他如何判斷該發給哪個VPN?
?
針對上述3個問題,分別有以下解決方案:
1、???為了解決本地路由沖突問題,我們引入了VRF的概念:把每臺PE路由器在邏輯上劃分為多臺虛擬路由器,即多個VPN路由轉發實例VRF,每個VRF對應一個VPN,有自己獨立的路由表、轉發表和相應的接口。這就相當于將一臺各VPN共享的PE模擬成多臺專用PE。這樣PE與CE交互的路由信息只是該VPN的路由,從而實現了VPN路由的隔離。由于不同VPN的路由存放在不同的VRF中,所以VPN路由重疊的問題也解決了。
?
2、????VPN重疊路由在網絡中的傳播問題,可以在路由傳遞的過程中為這條路由再添加一個標識,用以區別不同的VPN。正常的BGP4協議只能傳遞IPv4的路由,由于不同VPN用戶具有地址空間重疊的問題,必須修改BGP協議。BGP最大的優點是擴展性好,可以在原來的基礎上再定義新的屬性,通過對BGP修改,把BGP4擴展成MP-BGP。在MP-IBGP鄰居間傳遞VPN用戶路由時打上RD標記等VPN信息,這樣CE傳來的VPN用戶的IPv4路由被PE轉換為VPN-IPv4路由,這樣就能保證對端PE能夠區分開屬于不同VPN用戶的地址重疊的路由。
?
3、????PE向CE的報文轉發問題,由于IP報文的格式不可更改,沒有什么文章可以做,但可以在IP頭之外加上一些信息(標簽),由始發的VPN打上標記,這樣PE在接收報文時可以根據這個標記進行轉發。
?
???????每一個VRF可以看作一臺虛擬的路由器,好像是一臺專用的PE設備。該虛擬路由器包括如下元素:
一張獨立的路由表/轉發表,當然也包括了獨立的地址空間。
一組歸屬于這個VRF的接口集合。
一組只用于本VRF的路由協議。
?
對于每個PE,可以維護一個或多個VRF,同時維護一個公網的路由表(也叫全局路由表),多個VRF實例相互分離獨立。實現VRF并不困難,關鍵在于如何在PE上使用特定的策略規則來協調各VRF和全局路由表之間的關系。
?
在VRF中定義的和VPN業務有關的兩個重要參數是RT和RD,RT和RD長度都是64bit。
RT是Route Target的縮寫,RT的本質是每個VRF表達自己的路由取舍及喜好的方式,主要用于控制VPN路由的發布和安裝策略。分為import和export兩種屬性,前者表示了我對那些路由感興趣,而后者表示了我發出的路由的屬性。當PE發布路由時,將使用路由所屬VRF的RT export規則,直接發送給其他的PE設備。對端PE接收路由時,首先接收所有的路由,并根據每個VRF配置的RT的import規則進行檢查,如果與路由中的RT屬性match,則將該路由加入到相應的VRF中。以下圖為例:
SITE-1:我發的路由是藍色的,我也只接收藍色的路由。
SITE-2:我發的路由是黃色的,我也只接收黃色的路由。
SITE-3:我發的路由是藍色的,我也只接收藍色的路由。
SITE-4:我發的路由是黃色的,我也只接收黃色的路由。
這樣,SITE-1與SITE-3中就只有自己和對方的路由,兩者實現了互訪。同理SITE-2與SITE-4也一樣。這時我們就可以把SITE-1與SITE-3稱為VPN BLUE,而把SITE-2與SITE-4稱為VPN YELLOW。
?
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????圖2
?
RD是Route Distinguisher的縮寫,是說明路由屬于哪個VPN的標志。理論上可以為每個VRF配置一個RD,通常建議為每個VPN的VRF都配置相同的RD,并且要保證這個RD全球唯一。如果兩個VRF中存在相同的地址,但是由于RD不同,這兩個路由在PE間發布過程中也不會混淆,因為MP BGP把RD和路由一起發送,對端PE可以根據RD確定路由所屬的VPN,從而把路由安裝到正確的VRF中。
RD并不會影響不同VRF之間的路由選擇以及VPN的形成,這些事情由RT搞定。
PE從CE接收的標準的路由是IPv4路由,如果需要發布給其他的PE路由器,此時需要為這條路由附加一個RD。在IPv4地址加上RD之后,就變成VPN-IPv4地址族了。VPN-IPv4地址僅用于服務供應商網絡內部。在PE發布路由時添加,在PE接收路由后放在本地路由表中,用來與后來接收到的路由進行比較。CE不知道使用的是VPN-IPv4地址。
?
?
總結
- 上一篇: LeetCode 32. Longest
- 下一篇: HALCON示例程序color_segm