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組成。
l盡管同一域內所有PE都與RR建立MP-iBGP關系,但MPLSVPN數據不一定全部經過RR轉發,因為RR在分發VPN-IPv4路由信息時并沒有改變初始的下一跳地址。
圖6中描述了在本目標網絡架構下典型的數據傳送過程。需要注意的是,盡管圖中所有數據都通過RR,但實際中不一定是這樣。只要有一條LSP能夠從出口PE到達入口PE就可以。