vrf
解決地址重疊等問題的技術
VRF全稱是虛擬路由轉發(Virtual Routing Forwarding),是一項計算機網路中使用的技術。
Virtual Routing Forwarding
VPN路由轉發表,也稱VPN-instance(VPN實例),是PE為直接相連的site建立並維護的一個專門實體,每個site在PE上都有自己的VPN-instance,每個VPN-instance包含到一個或多個與該PE直接相連的CE的路由和轉發表,另外如果要實現同一VPN各個Site間的互通,該VPN-instance還就應該包含連接在其他PE上的發出該VPN的Site的路由信息。
MPLS VPN網路主要由CE、PE和P等3部分組成:CE(Customer Edge Router,用戶網路邊緣路由器)設備直接與服務提供商網路(圖1中的MPLS骨幹網路)相連,它“感知”不到VPN的存在;PE(Provider Edge Router,骨幹網邊緣路由器)設備與用戶的CE直接相連,負責VPN業務接入,處理VPN-IPv4路由,是MPLS三層VPN的主要實現者:P(Provider Router,骨幹網核心路由器)負責快速轉發數據,不與CE直接相連。在整個MPLS VPN中,P、PE設備需要支持MPLS的基本功能,CE設備不必支持MPLS。
PE是MPLS VPN網路的關鍵設備,根據PE路由器是否參與客戶的路由,MPLS VPN分成Layer3 MPLS VPN和Layer2 MPLS VPN。其中Layer3 MPLS VPN遵循RFC2547bis標準,使用MBGP在PE路由器之間分發路由信息,使用MPLS技術在VPN站點之間傳送數據,因而又稱為 BGP/MPLS VPN。本文主要闡述的是Layer3 MPLS VPN。
在MPLS VPN網路中,對VPN的所有處理都發生在PE路由器上,為此,PE路由器上起用了VPNv4地址族,引入了RD(Route Distinguisher)和RT(Route Target)等屬性。RD具有全局唯一性,通過將8byte的RD作為IPv4地址前綴的擴展,使不唯一的IPv4地址轉化為唯一的VPNv4地址。VPNv4地址對客戶端設備來說是不可見的,它只用於骨幹網路上路由信息的分發。PE對等體之間需要發布基於VPNv4地址族的路由,這通常是通過 MBGP實現的。正常的BGP4能只傳遞IPv4的路由,MP-BGP在BGP的基礎上定義了新的屬性。MP-iBGP在鄰居間傳遞VPN用戶路由時會將 IPv4地址打上RD前綴,這樣VPN用戶傳來的IPv4路由就轉變為VPNv4路由,從而保證VPN用戶的路由到了對端的PE上以後,即使存在地址空間重疊,對端PE也能夠區分開分屬不同VPN的用戶路由。RT使用了BGP中擴展團體屬性,用於路由信息的分發,具有全局唯一性,同一個RT只能被一個 VPN使用,它分成Import RT和Export RT,分別用於路由信息的導入和導出策略。在PE路由器上針對每個site都創建了一個虛擬路由轉發表VRF(VPN Routing & Forwarding),VRF為每個site維護邏輯上分離的路由表,每個VRF都有Import RT和Export RT屬性。當PE從VRF表中導出VPN路由時,要用Export RT對VPN路由進行標記;當PE收到VPNv4路由信息時,只有所帶RT標記與VRF表中任意一個Import RT相符的路由才會被導入到VRF表中,而不是全網所有VPN的路由,從而形成不同的VPN,實現VPN的互訪與隔離。通過對Import RT和Export RT的合理配置,運營商可以構建不同拓撲類型的VPN,如重疊式VPN和Hub-and-spoke VPN。
整個MPLS VPN體系結構可以分成控制面和數據面,控制面定義了LSP的建立和VPN路由信息的分發過程,數據面則定義了VPN數據的轉發過程。
在控制層面,P路由器並不參與VPN路由信息的交互,客戶路由器是通過CE和PE路由器之間、PE路由器之間的路由交互知道屬於某個VPN的網路拓撲信息。CE-PE路由器之間通過採用靜態/默認路由或採用IGP(RIPv2、OSPF)等動態路由協議。PE-PE之間通過採用MP-iBGP進行路由信息的交互,PE路由器通過維持iBGP網狀連接或使用路由反射器來確保路由信息分發給所有的PE路由器。除了路由協議外,在控制層面工作的還有 LDP,它在整個MPLS網路中進行標籤的分發,形成數據轉發的邏輯通道LSP。
在數據轉發層面,MPLS VPN網路中傳輸的VPN業務數據採用外標籤(又稱隧道標籤)和內標籤(又稱VPN標籤)兩層標籤棧結構。當一個VPN業務分組由CE路由器發給入口PE 路由器后,PE路由器查找該子接
VPN Routing and Forwarding (VRF) is a technology used in computer networks that allows multiple instances of a routing table to co-exist within the same router at the same time. Because the routing instances are independent,the same or overlapping IP addresses can be used without conflicting with each other.
VRF---VPN路由轉發實例(VPN Routing & Forwarding Instance)
每一個VRF可以看作虛擬的路由器,好像是一台專用的PE設備。該虛擬路由器包括如下元素:
一張獨立的路由表,當然也包括了獨立的地址空間;
一組歸屬於這個VRF的介面的集合;
一組只用於本VRF的路由協議。
對於每個PE,可以維護一個或多個VRF,同時維護一個公網的路由表(也叫全局路由表),多個VRF實例相互分離獨立。
公網路由表:包含全部PE和P 路由器之間的路由,由骨幹網IGP 產生。
私網路由表:包含本VPN 用戶可達信息的路由和轉發表。
⒊1 配置RD
理論上可以為每個VRF配置一個RD。
通常建議為每個VPN都配置相同的RD,不同的VPN配置不同的RD。
但是實際上只要保證存在相同地址的兩個VRF的RD不同即可,不同的VPN可以配置相同的RD,相同的VPN也可以配置不同的RD。
VPN RD的關係比較鬆散,只需要保證存在地址相同的兩個VRF的RD不同即可。只要能區分不同vrf的系統路由就可以了。
PE1(config-vrf)#rd
ASN:nn or IP-address:nn VPN Route Distinguisher
一般採用:ASN:nn
⒊2 配置RT
PE1(config-vrf)#route-target import
ASN:nn or IP-address:nn Target VPN Extended Community
PE1(config-vrf)#route-target export
ASN:nn or IP-address:nn Target VPN Extended Community
⒊3 為VRF 指派介面
一旦你創建VRF的工作結束,你就可以開始分配特定的介面並且開始把客戶分開。如果你在確定VRF中的介面之前分配IP地址,這個IP地址將被刪除,你必須重新為介面分配IP地址。
PE1(config)#interface s1/0
PE1(config-if)#ip vrf forwarding vpn-a
PE1(config-if)#
PE1(config-if)#do show ip vrf
Name Default RD Interfaces
vpn-a 65001:1 Se1/0
⒉1 實現類似專用PE的功能,用路由隔離不同的vpn用戶。
⒉2 解決地址重疊的問題
即同時支持使用公有地址的客戶端設備和私有地址的客戶端設備,或者多個VPN使用同一個地址空間;
也可以支持創建重疊VPN,所謂重疊VPN是指同一個站點同時屬於多個VPN的情況。
引入RT的概念
在PE 中,存在全局路由表、vrf 等,從全局路由表選擇路由到vrf 稱為export導出;從vrf 中選擇路由到全局路由表稱為import。RT 用於路由信息的分發,它分成Import RT和Export RT,分別用於路由信息的導入、導出策略。當從全局路由表中導出路由到vrf 時,要用Export RT對VPN路由進行標記;在往全局路由導入VPNv4 路由時,只有所帶RT 標記與VRF 表中任意一個Import RT相符的路由才會被導入到全局路由表中。RT使得PE路由器只包含和其直接相連的VPN的路由,而不是全網所有ipvpnv4 的路由,從而節省了PE路由器的資 源,提高了網路拓展性。在一個VRF中,在發布路由時使用RT 的export 規則。直接發送給其他的PE設備。在接收端的PE上,接收所有的路由,並根據每個VRF 配置的RT 的import 規則進行檢查,如果與路由中的RT屬性match,則將該路由加入到相應的VRF中。
Export Target: 我這個VRF 發出的路由打上什麼標記;
Import Target:我這個VRF 接受什麼標記的路由。
引入RD的概念
ISP 網路需要把來自CE 用戶的路由,通過公用網路傳遞到用戶的其他CE 路由器。但是來自不同用戶的路由可能相同(重疊)。假設A 用戶有個路由條目是10.180.0.0/16,B 用戶有個路由也是10.180.0.0/16。這樣在ISP 內部將不能區分10.180.0.0/16 到底是那個用戶的。為了解決這個問題映入RD (64bit)概念,將ipv4 地址擴展為ipvpn4 地址(RD:ipv4),在ISP 內部傳播路由時為每個來自CE 的路由加一個區別標識,這樣對端ISP,PE收到不同vrf的相同路由,就能準確區分。假設A 用戶的RD 是65001:1,B 用戶的RD為65002:1,這樣A 的10.180.0.0/16 就擴充為65001:1:10.180.0.0/16,B 擴充為65002:1:10.180.0.0/16 ,這種擴充后的路由成為ipvpn4 route。只要RD 全局唯一,將不唯一的IPv4地址轉化為唯一的IPVPNv4 地址,但是IPVPNv4 地址對客戶端設備來說是不可見的。