1、背景
隨著MPLS技術的成熟,其應用越來越廣泛,尤其是在VPN方面。電信運營商提供給使用者的MPLSVPN服務主要有MPLSLayer2 VPN和 MPLS Layer 3 VPN兩類。MPLS Layer 2 VPN因標準化和複雜性問題,目前還沒有被大規模採用;而MPLS Layer 3 VPN具有高度的靈活性和擴充套件性,正成為取代傳統專線VPN的技術。
最初的MPLSLayerVPN技術主要應用在一個AS域內,為使用者提供在本AS域內的、基於MPLS/IP技術的VPN通訊。隨著MPLS VPN在一個AS域內的廣泛應用,跨域間的VPN通訊需求逐漸增加。
跨域MPLSLayer3VPN的實現方法有許多種。對於大型電信運營商來說,目前需要解決的問題是如何部署一個易擴充套件、易維護的跨域MPLS Layer 3 VPN。
2、MPLSLayer3 VPN架構
典型的MPLSLayer3VPN架構如圖1所示。其中,PE與CE之間可以執行Static、RIP、OSPF和BGP等協議來傳送IP路由資訊,而入口PE與出口PE之間則透過MP-iBGP(Multi-Protocol extension –internal BGP)來傳送VPN-IP路由資訊。
3、跨域MPLSLayer3 VPN實現方案及比較
跨域MPLSLayer3VPN主要解決的是VPN的跨域實現,也就是VPN IPv4路由資訊的跨域傳遞。其主要的實現方案有ASBR(Autonomous System Boundary Router,自治區系統邊界路由器)間背靠背VRF-VRF連線、ASBR間透過MP-eBGP分發VPN-IPv4路由資訊和相應的標籤以及RR間透過Multi-hop MP-eBGP分發VPN-IPv4路由資訊和相應的標籤三類。下面分別介紹這三種方案的實現原理。
3.1方案的實現原理
3.1.1方案一:ASBR間背靠背VRF-VRF連線
方案一實現起來最簡單。它透過兩個AS的ASBR間建立VRF-VRF連線來實現MPLS的跨域互通。具體做法就是每個ASBR透過直連鏈路或者子介面建立到對方ASBR的VRF連線,也就是以本ASBR作為PE、對端ASBR作為自己的CE來進行VPN域內路由的跨域分發。下面結合圖2來說明方案一的具體實現。
如圖2所示,VPN-A內的IP路由資訊由CE1-A透過RIP、OSPF或者BGP分發給PE11,PE11將其儲存在對應的VRF(VPN路由轉發)表中,新增RD(RouteDistinguisher,路由區分符),將其變為VPN-IP路由,並且為該路由分配MPLSVPN中的內層標籤V1,之後透過MP-iBGP將該路由資訊和對應的標籤資訊傳送給同一域內的對等點,也就是圖2中的ASBR1。此時,ASBR1作為CE,將收到的VPN-IP路由資訊中的IP路由提取出來,同時保留收到的內層標籤。提取出來的IP路由(注意:非VPN-IP路由)由ASBR1(CE)透過相應的路由協議(RIP、OSPF和BGP等)傳送給ASBR2(PE),由ASBR2進行類似PE11的操作,然後將其傳送給PE22,而後由PE22傳送給位於VPN-A的CE2-A。當CE2-A有資料要傳送給CE1-A時,首先發送資料給PE22,由PE22為該資料包加上兩層標籤(外層MPLS標籤和由ASBR2分發的內層VPN標籤V2),之後經過MPLSLSP到達ASBR2(到達時該資料包只有內層標籤)。ASBR2根據內層標籤在VRF表中查詢相應的鏈路和子介面,去除內層標籤,將純IP資料包傳送給ASBR1。ASBR1根據接收資料包的鏈路選擇相應的VRF表,之後進行類似PE22所完成的工作(給資料包加上兩層標籤),並將資料包透過MPLS LSP傳送到PE1(到達PE1時只剩內層標籤),由PE1根據VRF表傳送給CE1-A。
上述VRF背對背連線的一個特點是ASBR和ASBR之間的連線不需要支援MPLS,但因為每一個VPN都需要一個獨立的接入鏈路,所以該方案只適合在小區域內小規模部署。
3.1.2方案二:ASBR間透過MP-eBGP分發VPN-IPv4路由資訊和相應的標籤
在方案二中,ASBR間仍然是物理直連,但VPN-IP路由資訊是透過它們之間的MP-eBGP關係進行傳送。
在瞭解該方案之前,我們首先需要明白MPLSVPN中VPN標籤分發的一個原則:VPN標籤分發時,與其同時傳送的下一跳地址必須是VPN標籤分發者本身,否則就需要重新分發VPN標籤。如圖3所示,當PE11為VPN-A中的路由分發VPN標籤V1時,這些路由的下一跳必須是PE11本身。
在該方案中,兩個ASBR之間是e-BGP連線。這樣,當ASBR1向ASBR2傳送VPN-IP路由資訊時,VPN-A中路由的下一跳就會由原來的PE11變為ASBR1。因為下一跳發生變化,所以ASBR1必須重新為VPN-A中的路由資訊分配VPN標籤V2,ASBR2在收到這些VPN-IP路由資訊後,再向其MP-iBGP鄰居PE22進行分發。
如果不對ASBR2做任何特別的配置,那麼在其向PE22分發VPN-A路由資訊時,這些路由資訊的下一跳仍然為ASBR1,這就要求AS2域中的其他路由器也應該知道ASBR1的IP地址,併為這個地址分配相應的外層標籤。
ASBR1與ASBR2建立MP-eBGP鄰居,可以使用它們之間的直連鏈路地址,也可以使用各自的loopback地址。如果使用後者,ASBR1和ASBR2之間的關係就是Multi-hopMP-eBGP,不過處理方法與直連的MP-eBGP類似,主要是把用來建立鄰居關係的IP地址用對應的方法分發給對等域中的路由器即可。
把本域中路由器地址分發給其他域可能有一定的安全風險。由此延伸而來的另一種解決辦法是,在配置ASBR2與PE22的MP-iBGP鄰居關係時,透過在ASBR2上配置next-hop-self來人為地將ASBR1傳送來的VPN-IP路由下一跳改為自己,這樣就避免了ASBR1的IP地址在AS2中擴散,從而增加一定的安全性。但因為涉及下一跳地址的改變,所以在VPN-IP路由資訊分發到ASBR2後,ASBR2需重新為其分配VPN標籤V3。
以上所述主要是VPN-IP路由資訊從AS1到AS2傳送過程中的一些配置和處理,在VPN-IP路由資訊從AS2到AS1的傳遞過程中,對應的ASBR需進行同樣的配置和處理。
當ASBR1與ASBR2透過MP-eBGP建立鄰居關係,並且各自與自己的PE透過next-hop-self建立iBGP鄰居關係時(這樣就涉及VPN標籤的重新分配),典型的資料傳送過程如圖3所示。
在此需要特別指出的是,由於在ASBR1與ASBR2上均進行了next-hop-self配置,VPN-A路由的下一跳地址在傳送過程中要改變兩次,因此出現了三個VPN標籤(一個VPN路由下一跳生成一個標籤)。另外要注意此時ASBR1與ASBR2傳送的是帶VPN標籤的IP資料包,所以要求它們之間的鏈路支援MPLS。
對於本方案中的其他解決辦法,也可畫出類似的資料傳送過程,惟一不同的就是如果ASBR2不改變ASBR1發來的路由資訊的下一跳,ASBR2就沒必要重新分配VPN標籤V3,當資料包到達ASBR2時應該包含兩層標籤,而後由ASBR2剝去外層的MPLS標籤,將帶VPN標籤的資料包傳送給ASBR1,由ASBR1完成後續的加標籤和傳送工作。
3.1.3方案三:RR間透過Multi-hopMP-eBGP分發VPN-IPv4路由資訊和相應的標籤
對於大型電信運營商,因其網路中一般有很多PE,如果要求它們之間都相互建立iBGP連線關係,也就是fullmeshiBGP,那麼其維護或將來的擴充套件將會很困難。解決這個問題的辦法就是在自治域內部署RR,在RR間直接建立Mult-hopMP-eBGP鄰居關係。
如圖4所示,PE11為VPN-A中的路由分配VPN標籤V1,並將下一跳設定為自己,而後將這些資訊傳送給RR1。RR1在收到PE11發來的VPN-IP路由資訊時,透過eBGP連線直接將其傳送給RR2,而後由RR2傳送給對應的PE22(在此處,可以對RR1與RR2進行相應的配置,如next-hop-unchanged,這樣RR2在收到上述資訊後,下一跳地址仍保持為PE11,對應的VPN標籤仍是原來PE11分發的那個標籤。當然也可以不做這樣的設定,這樣的話RR2需要為這些路由重新分配標籤)。位於各自治域的PE只需跟本域的RR建立iBGP鄰居關係即可。
需要特別指出的是,由於RR1與RR2採用next-hop-unchanged來建立Multi-hopMP-eBGP鄰居關係,VPN-A中路由資訊的下一跳在傳送過程中一直未發生變化,因此整個過程僅有一個VPN標籤被使用。
另外,ASBR1與ASBR2間傳送的是加上兩層標籤(外層MPLS標籤和VPN標籤)的IP資料包,自然要求它們之間的鏈路支援MPLS。而且,分別位於兩個AS中的PE11和PE22之間需要有一條LSP存在,也就是說PE22需要為PE11分配外層MPLS標籤(如圖4中的L4),這可能給大規模部署後的維護帶來一些困難。
3.2方案比較
上述三個方案的優缺點比較見表1。
4 對中國電信開展MPLSLayer3 VPN部署的建議
中國電信的CN2骨幹網目前全面支援MPLSLayer3VPN的部署,在骨幹網上直接進行MPLS VPN的部署相對來說比較容易,但其欲採用MPLS VPN支援的業務,如軟交換業務、大客戶資料業務等主要來自各都會網路。因此,要實現全網對MPLS VPN的支援,首先要對各都會網路進行改造,使其支援MPLS Layer 3 VPN。
改造後的都會網路除了支援在本都會網路內開展MPLSLayer3VPN業務外,還需要與CN2骨幹網對接,實現跨地區、跨省的MPLS Layer 3 VPN業務。這就需要部署跨域MPLS VPN。
考慮到中國電信目前都會網路數量眾多,骨幹網上與都會網路對接的PE路由器數量約是都會網路數量的兩倍,因此骨幹網內PE之間的iBGP連線只能採用RouteReflector或者BGPConfederation方式。從規劃和管理方面考慮,採用RouteReflector建立骨幹網內各PE間的iBGP連線更加合適。
如果都會網路內的PE數量較少,則它們之間可以直接建立iBGP鄰居關係;如果都會網路內的PE數量較多或者考慮到將來擴充套件的需要,建議採用RouteReflector方式建設。
對於都會網路之間的跨域連線,也應根據都會網路內PE的數量分別設計。
(1)如果都會網路沒有采用RouteReflector方式建設,則其與CN2的跨域VPN連線可綜合方案二、三,採用骨幹網的RR與都會網路的PE(ASBR)建立Multi-hopMP-eBGP鄰居關係來實現VPN的跨域連通,如圖5所示。但是,這種方案中都會網路PE同時兼任ASBR與RR,不利於以後的配置、維護和除錯,所以不建議採用。
(2)如果都會網路採用RouteReflector方式建設,則其與CN2的跨域VPN連線可直接採用方案三來實現,也就是RR間直接建立Multi-hopMP-eBGP連線。但是,正如前面分析時所說,如果直接採用方案三,則VPN兩端的PE之間必須維持一條LSP,也就是參與通訊的PE、P路由器都必須為源PE分配一個標籤。這對於大型電信網路來說,無疑會增加維護的難度和安全方面的問題,因為不同域骨幹路由器的IP地址資訊最好相互隔離,除非是邊界路由器。
我們不妨結合方案二和方案三各自的優點,採用圖6所示的網路結構。
該方案具有以下特點:
l同一域內的PE路由器間不直接建立MP-iBGP鄰居關係,而是各自與本域內的RR建立MP-iBGP鄰居關係,適合於PE數量較多的都會網路,能夠保證將來的擴充套件性(以後每新增一臺PE,只需對PE和本域內的RR進行重新配置即可)。
l不同域ASBR間建立MP-eBGP鄰居關係(相鄰域ASBR間傳送加VPN標籤的IP資料包)。
l邊界路由器ASBR與本域內RR建立MP-iBGP鄰居關係時,使用next-hop-self將VPN-IPv4路由資訊的下一跳改為自己,再將其傳送給RR,而後至本域內的其他PE。這樣,同一域內的路由器只為本域內PE路由器的/32主機地址分配標籤即可,方便維護且安全性大大提高。
lMPLSVPN通訊兩端PE間的LSP由幾段起終點分別位於各自治域內的LSP組成。
圖6中描述了在本目標網路架構下典型的資料傳送過程。需要注意的是,儘管圖中所有資料都透過RR,但實際中不一定是這樣。只要有一條LSP能夠從出口PE到達入口PE就可以。