利用MPLS實現VPN是一種趨勢,基于MPLS的標簽轉發,VPN可以單獨構成一個獨立的地址空間,VPN之間可以復用地址。當然,在考慮VPN與Internet互連時,網絡還需要通過NAT等方式避免與Internet地址發生沖突。
隨著VPN市場趨熱,華為公司也推出了自己的MPLS/BGP VPN解決方案。該方案已經有不少應用,其具體優勢與特色有:
1. 基于網絡,易于管理。這種基于網絡的VPN可以完全由骨干網絡來實現,集團用戶可將VPN的管理外包給運營商,即網絡用戶不用關心VPN是如何構造的,VPN由網絡運營商在其網絡內提供。這種VPN可以顯著地減少運營商和用戶的投資,特別適用于為企業集團用戶實現Intranet和Extranet。
2. 擴充性好。由于基于MPLS/BGP實現,因此網絡很容易對網絡節點進行擴充,網絡可剪裁性好。
3. 安全。由于基于MPLS/BGP實現,報文在網絡節點構成的MPLS域中采用標簽轉發的形式進行交換(LSP),這具有同ATM/FR虛電路相同的安全級別。
4. QoS保證。MPLS可以利用特有的CoS、RSVP、流量工程等機制,為用戶實現QoS保證。
組網模型
如圖所示,華為MPLS/BGP VPN網絡模型分為VPN1和VPN2,其中:
VPN1包括site1、site2、site3、site6;
VPN2包括site3、site4、site5、site7。
需要指出的是,site3同時屬于VPN1和VPN2,VPN1和VPN2地址可分別采用獨立的私有地址空間(允許重疊),并可由用戶自行確定。
在此MPLS/BGP VPN的模型中,網絡由運營商的骨干網與用戶的各個site組成,所謂VPN就是對site集合的劃分,一個VPN就對應一個由若干site組成的集合。但是必須遵循如下規則:兩個site只有同時屬于至少一個VPN定義的site集合,才具有IP連通性。按照這個VPN的定義,一個VPN中的所有site都屬于一個企業,稱為Intranet;如果VPN中的site分屬不同的企業,則稱為Extranet。site可以同時屬于不同的集合,也可以同時屬于不同的VPN。
實現過程
MPLS采用虛擬路由表的方法實現一個路由器上多個VPN的路由表。每一個VPN對應一個或多個VRF(VPN Routing/Forwarding Instance)。VRF定義連接到PE上的VPN成員(一個site)。一個VRF包括一個IP路由表、一個FIB( Forwarding Information Table)表、相關聯的端口和一些控制路由的規則和參數。
數據包的路由和交換由VRF路由表和單獨的FIB表控制,每一個VPN對應一個路由表和一個FIB表。
VPN路由信息的傳播由VPN Route-Target Communities來控制,它主要通過BGP的Extended Communities屬性來實現。 VPN路由信息的傳播通過下述方法進行工作。
當一條從CE處學習到的VPN路由被Inject到BGP中時,它被賦于一些VPN Route Target Communities屬性,其中包括Route-Target屬性,該屬性決定這些Route將被Export到具體的VRF。
每個VRF配置有一個Import Route-Target列表,該列表指明BGP的Update中的Communities屬性應該包含哪些Route-Target才能被目標VRF接受。比如,某一個VRF的Import Route-Target列表指明Route-Target Communities A、B和C,這樣,每一個MP-iBGP的Update中Communities屬性的Route-Target中有A或B或C的Route將被Import到該VRF中。
一個PE路由器可通過靜態路由、RIP或BGP從CE處得到某一個IP前綴的路由,該前綴是標準IPv4的前綴。然后,PE通過加上一個8字節的RD(Route Distinguisher)將它轉換成為一個VPN-IPv4的前綴,該前綴屬于VPN-IPv4的前綴。這種方法可以使用戶地址唯一,即使用戶使用的是IANA規定的保留地址也一樣。
用于生成VPN-IPv4前綴的RD由PE路由器的VRF配置命令指定。
IP包經過MPLS標簽交換到目的地址,其選路的基礎是VRF路由表和VRF FIB表。
PE路由器為每一個從CE路由器學到的前綴產生一個標簽,然后將這個標簽添加到BGP更新表中并傳遞出去。當一個源PE路由器從CE路由器處得到一個IP包,它使用從目標PE路由器學到的標簽將該IP包發送出去。當目標PE路由器得到這個已經打上標簽的IP包后,該標簽從IP包中去除,IP包作為一個純IP包發送到CE路由器。