摘要:Mpls VPN 因為其創建vpn 具有動態性,相比其傳統的ipsec vpn等具有更好的擴展性,現在該技術越來越受到重視,在電信運營商的部署越來越多, 該文從Mpls VPN 的概述,原理,概念,特點等方面進行了詳細的分析,并講述了現有網絡中的一個Mpls VPN 的部署方法。
關鍵詞:Mpls VPN; mp-ibgp;VRF;RT;RD
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2009)36-10361-04
1 Mpls VPN 的概述
在了解Mpls VPN 之前首先要了解mpls,MPLS(Multi-Propocol Label Switching)即多協議標記交換.MPLS屬于第三代網絡架構,是新一代的IP高速骨干網絡交換標準,由IETF(Internet Engineering Task Force,因特網工程任務組)所提出,由Cisco、ASCEND、3Com等網絡設備大廠所主導.MPLS是集成式的IP Over ATM技術,即在Frame Re lay及ATM Switch上結合路由功能,數據包通過虛擬電路來傳送,只須在OSI第二層(數據鏈結層)執行硬件式交換(取代第三層(網絡層)軟件式routing),它整合了IP選徑與第二層標記交換為單一的系統,因此可以解決Internet路由的問題,使數據包傳送的延遲時間減短,增加網絡傳輸的速度,更適合多媒體訊息的傳送。因此,MPLS最大技術特色為可以指定數據包傳送的先后順序。MPLS使用標記交換(Label Switching),網絡路由器只需要判別標記后即可進行轉送處理。現在我們再來看mplsvpn,傳統的VPN通常建立在ATM/DDN/FR網上,隨著IP網的大規模部署及ATM技術應用的衰落,在IP網上提供VPN業務被認為是一種非常經濟的方式,隨著MPLS技術的出現,基于MPLS的VPN技術發展迅速并已獲得商用。根據RFC 2764中對IP VPN技術的分類,IP VPN可劃分為:VLL(Virtual Leased Lines)、VPDN(Virtual Private Dial Networks)、VPRN(Virtual Private Routed Networks)和VPLS(Virtual Private LAN Segment)四種。Mpls VPN 屬于VPRN。
2 Mpls VPN的原理
首先對mpls網絡中的路由器進行分類,Mpls VPN 中的路由器有三種:P路由器、PE路由器和CE路由器。P路由器為運營商主干路由器,負責VPN分組外層標簽的交換;PE路由器為運營商邊界路由器,存放著VRF表和全局路由表,VRF中存放著VPN路由,全局路由表中存放著運營商的域內路由;CE路由器為客戶端路由器,由客戶負責維護。當CE路由器將一個VPN分組轉發給入口PE路由器后,PE路由器查找該VPN對應的VRF,從VRF中得到一個VPN標簽和下一跳出口PE路由器的地址,VPN標簽作為內層標簽打在VPN分組上,根據下一跳出口PE路由器的地址可以在全局路由表中查出到達該PE路由器應打上的域內路由的標簽,即外層標簽,于是VPN分組被打上了兩層標簽,主干網的P路由器根據外層標簽轉發VPN分組,在最后一個P路由器處,外層標簽彈出,VPN分組只剩下內層標簽(此過程被稱作次末級彈出機制),接著VPN分組被發往出口PE路由器。出口PE路由器根據內層標簽查找到相應的出口后,將VPN分組上的內層標簽刪除,將不含標簽的VPN分組轉發給正確的CE路由器,CE路由器根據自己的路由表將分組轉發到正確的目的地。
3 Mpls VPN中涉及的概念
3.1 VPN路由轉發實例(VRF)
VPN IP路由表及相關的VPN IP轉發表被統稱為VPN路由和轉發實例。在極端的情況下,可以為連接到PE路由器上的每個站點都分配一個VRF來存放VPN路由,但連接在同一PE路由器上的站點如果滿足以下三個條件則可以共享一個VRF:1)各站點屬于同一個VPN; 2)路由信息相同; 3)站點之間允許相互直接通信。通常PE路由器上每個用戶的端口與一個特定的VRF相關聯,從該端口輸入的VPN分組將根據各自對應的VRF查找其VPN標簽和下一跳的出口PE路由器地址。VRF隔離了不同的VPN。
3.2 路由區分符(RD)
由于VPN數量巨大且不少原先的VPN用戶不愿修改自身的IPv4地址,因此有必要允許不同的VPN客戶使用相同的IPv4地址,對于不同VPN中相同的地址,采用RD可以實現IPv4地址的重用。PE路由器通過MP-iBGP協議通告站點的路由時,將同時攜帶各路由的RD,即將IPv4地址轉化為VPN-IPv4地址,PE路由器在收到MP-iBGP通告的路由后,將查看該路由的RD,然后將VPN-IPv4地址轉化成IPv4地址,即將地址中的RD去掉,將其導入到相應的VRF中。由于不同VPN被VRF隔離了,因此不同VPN中相同的IPv4地址,將被導入到不同的VRF中。在同一個VPN中,地址必須是唯一的;當多個VPN之間需要相互通信時(例如有公共的站點),則要求地址必須在多個VPN中是唯一的,此時多個VPN只能使用同一個RD。
3.3 路由目標(RT)
RT來控制VRF的導入和導出策略,以構成各種復雜的VPN拓撲。一個VPN有可能不止使用一個RT,RT的具體使用與VPN的拓撲結構密切相關, 對于全網狀相接的VPN可以用一個RT,對于非全網狀相連的VPN,一個VPN往往需要多個RT。當從PE導出VPN路由時,要用RT對VPN路由進行標記,在往VRF中導入路由時,可以使用多個RT,只要有一個VPN路由中附帶的RT與導入路由中的任意RT相同,都將被導入到該VRF中。
3.4 MP-iBGP 協議
在基于MP-iBGP協議的Mpls VPN 體系中,存在兩個層面的路由,即域內路由和VPN路由。 所有的PE路由器及P路由器上要運行主干網的域內路由(OSPF或IS-IS等),生成的路由表將觸發主干網中LSP的建立(拓撲驅動方式),通過CR-LDP或RSVP等信令協議建立LSP,產生的標簽轉發表用于VPN分組外層標簽的交換。PE路由器之間運行MP-iBGP協議,該協議跨越主干的P路由器在PE之間分發VPN標簽,形成VPN路由,MP-iBGP發布的一條VPN路由包含的信息有:IPv4地址、路由區分符(RD)、路由目標(RT)、VPN標簽和下一跳PE地址,其中RD用來消除IPv4地址的歧義,以重用IPv4地址;RT用來控制VRF的導入和導出策略,從而控制網絡的連通和拓撲;下一跳PE地址是連接域內路由和VPN路由的紐帶,在PE路由器上根據在VRF中得到的下一跳PE地址可以在全局路由表中查找到到達該地址應打上的外層標簽。
4 Mpls VPN 的技術特點
Mpls VPN 技術具有如下四個方面的技術特點。
4.1 能提供QoS或CoS的保證
主干的MPLS網絡可以通過RSVP以面向連接的方式提供集成服務,也可以通過劃分類以面向無連接的方式提供差分服務,另外,還可以通過流量工程技術間接地為QoS的實現提供一定的資源保障。基于流的集成服務因其需要信令的支持造成可擴展性較差,不適合在骨干網上應用,MPLS骨干網上服務質量的保證主要依靠基于類的差分服務和流量工程來滿足,另外在傳統的盡力而為的IP網上的專線技術IPSec/GRE等也可以構建VPN,但這些技術無法保證QoS。
4.2 安全性較高
MPLS骨干不負責維護任何VPN路由,只進行標簽交換,因此其安全性與二層的ATM技術相當。在PE路由器上,各VPN路由通過VRF來隔離,也具有良好的安全性。
4.3 可擴展性好
Mpls VPN 的路由只存在于PE路由器上,PE路由器只保存與之相連的客戶站點的VPN路由,骨干的P路由器無需任何VPN路由的知識,這大大減少了VPN路由的維護量。另外,Mpls VPN 通過二層標簽棧區分域內路由和VPN路由,使網絡具有較好的可擴展性。
4.4 減輕客戶的維護負擔
Mpls VPN 技術中的VPN路由存在于運營商的PE路由器上,由運營商替客戶維護路由,其初衷是為了減輕用戶的管理和維護負擔,以利于將VPN業務向各類高中低端客戶大規模推廣,然而在網絡安全性越來越重要的今天,這個最初看來是優點的初衷卻成為發展高端大客戶的障礙,通常銀行等金融系統的客戶更信賴ATM/FR/DDN等二層專線技術,他們不可能將與安全相關的路由功能讓運營商來維護,因此三層的Mpls VPN 技術很難吸引傳統的大客戶,這種情況最終導致了二層Mpls VPN 的出現,二層的VPN只提供連接(類似傳統的ATM/DDN/FR專線),VPN路由仍由客戶維護,運營商與客戶責任明確。僅提供二層連接的Mpls VPN 技術更容易被高端客戶理解并接受。不過,對于多數自己不具備維護力量的中小企業客戶來說,三層的Mpls VPN 卻是一種頗具魅力的解決方案。
5 Mpls VPN在運營網絡中的運用
如右圖1所示。
R1和r5分別為企業網邊緣設備,r2和r4分別為電信運營商邊緣網絡,r3 為電信運營商中間設備,配置如下:
r1:
hostname ce1配置企業網邊緣設備名稱為ce1
ip cef啟動cef,配置mpls必須先要啟動ipcef
interface Loopback0
ip address 100.1.1.1 255.255.255.0
interface Serial0/0
ip address 12.1.1.1 255.255.255.0
serial restart-delay 0
router rip在企業網上配置rip路由選擇協議
version 2設置為版本2
network 12.0.0.0
network 100.0.0.0
no auto-summary
end
r2:
hostname pe1
ip cef
ip vrf vpn1建立mplsvpn的vrf名稱為vpn1
rd 10:100設置rd的值,用于刪除路由時用
route-target export 10:1000設置rt的值,用于路由發布時進行攜帶
route-target import 10:1000設置rt的值,用于路由接收時進行匹配操作。
interface Loopback0
ip address 10.1.1.1 255.255.255.255
!
interface Serial0/0
ip vrf forwarding vpn1將該接口劃分到vrf實例vpn1中
ip address 12.1.1.2 255.255.255.0
serial restart-delay 0
!
interface Serial0/1
ip address 23.1.1.1 255.255.255.0
mpls ip啟動mpls
router ospf 1啟動ospf協議
log-adjacency-changes
network 10.1.1.1 0.0.0.0 area 0
network 23.1.1.0 0.0.0.255 area 0
!
router rip啟動rip協議
address-family ipv4 vrf vpn1在實例vpn1中運行rip協議
redistribute bgp 1 metric transparent把bgp協議引入到rip協議中來
network 12.0.0.0
no auto-summary
version 2
exit-address-family
!
router bgp 1配置bgp協議
no synchronization
bgp log-neighbor-changes
neighbor 10.1.1.2 remote-as 1
neighbor 10.1.1.2 update-source Loopback0修改其bgp協議數據源
neighbor 10.1.1.2 next-hop-self修改其路由表的下一跳地址
no auto-summary
!
address-family vpnv4
neighbor 10.1.1.2 activate
neighbor 10.1.1.2 send-community both
exit-address-family
!
address-family ipv4 vrf vpn1在實例vpn1中重發布rip的路由
redistribute rip
no synchronization
exit-address-family
end
r3:
hostname r3
ip cef啟動cef
interface Serial0/0
ip address 34.1.1.1 255.255.255.0
mpls ip啟動mpls
serial restart-delay 0
!
interface Serial0/1
ip address 23.1.1.2 255.255.255.0
mpls ip啟動mpls
serial restart-delay 0
router ospf 1運行ospf
log-adjacency-changes
network 23.1.1.0 0.0.0.255 area 0
network 34.1.1.0 0.0.0.255 area 0
end
r4:
hostname pe2
ip cef啟動cef
ip vrf vpn1建立mplsvpn的vrf名稱為vpn1
rd 10:100設置rd的值,用于刪除路由時用
route-target export 10:1000設置rt的值,用于路由發布時進行攜帶
route-target import 10:1000設置rt的值,用于路由接收時進行匹配操作。
interface Loopback0
ip address 10.1.1.2 255.255.255.255
!
interface Serial0/0
ip address 34.1.1.2 255.255.255.0
mpls ip啟動mpls
interface Serial0/1
ip vrf forwarding vpn1將該接口劃分到vrf實例vpn1中
ip address 45.1.1.1 255.255.255.0
router ospf 1啟動ospf協議
log-adjacency-changes
network 10.1.1.2 0.0.0.0 area 0
network 34.1.1.0 0.0.0.255 area 0
!
router rip
address-family ipv4 vrf vpn1在實例vpn1中運行rrip協議
redistribute bgp 1 metric transparent重發布bgp協議
network 45.0.0.0
no auto-summary
version 2
exit-address-family
!
router bgp 1啟動bgp協議
no synchronization
bgp log-neighbor-changes
neighbor 10.1.1.1 remote-as 1
neighbor 10.1.1.1 update-source Loopback0
neighbor 10.1.1.1 next-hop-self
no auto-summary
!
address-family vpnv4
neighbor 10.1.1.1 activate
neighbor 10.1.1.1 send-community both
exit-address-family
!
address-family ipv4 vrf vpn1
redistribute rip在bgp協議中引入rip協議
no synchronization
exit-address-family
end
r5:
hostname ce2
ip cef
interface Loopback0
ip address 200.1.1.1 255.255.255.0
interface Serial0/1
ip address 45.1.1.2 255.255.255.0
serial restart-delay 0
router rip啟動rip協議
version 2
network 45.0.0.0
network 200.1.1.0
no auto-summary
6 結束語
該文論述了Mpls VPN 的原理,以及一些重要的概念,最后還詳細了闡述了一個Mpls VPN 的解決方案,從該文我們可以發現Mpls VPN 與傳統的vpn 的巨大區別,特別是擴展性上的提高,傳統vpn,如ipsec vpn越來越受到擴展性的制約,很顯然Mpls VPN在一定程度上將會得到更大的發展,那么就現在了解Mpls VPN就越來越重要了。