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