作者:金利忠 樊祥寧 馮軍
要害詞:虛擬私有偽線服務;提供商邊緣路由器;客戶端邊緣路由器;偽線
Abstract:Theapplicationofthe traditional L2 Virtue PRivate Network (VPN) based on pseudo-wire is restricted since the L2 VPN requires the same protocols for the access of customer edge equipment. Based on the study of and comparison between the local service extension model and the local service independent model, this paper provides solutions for the establishment of local service independent model. It further brings forward a solution scheme for L2 VPN interworking on the basis of L3 VPN. The pseudo-wire-based L2 VPN interworking solution has been implemented on ZTE´s ZXR10 router platform.
KeyWords:virtualprivatepseudo-wire service; provider edge router; custom edge router; pseudo-wire
虛擬專用網(VPN)是利用公眾網資源為客戶定做的一種專用私網。VPN的劃分種類較多,建立在IP技術或者二層鏈路基礎之上的多協議標記交換(MPLS)VPN正迅速成為下一代網絡增值業務的服務基礎。由于三層MPLS VPN技術過于復雜,引發了對二層MPLS VPN的研究。二層MPLS VPN主要模擬傳統的專線業務,業務提供的簡單性是其主要優勢。
MPLS二層VPN的協議草案基本可以劃分為兩類:Martini草案和Kompella草案。
Martini草案[1]建議在提供商邊緣路由器(PE)和網絡設備之間建立固定數量的MPLS標記交換通道(LSP),當客戶端邊緣設備(CE)和PE之間的承載業務需要穿越網絡時,進入MPLS LSP中點對點的子隧道,即偽線(PW),該LSP可以看作是多條PW的承載通道。因特網工程任務組(IETF)相關草案定義了用于建立子隧道的信令和在子隧道上轉發異步傳輸模式(ATM)、幀中繼(FR)、以太網數據包的封裝格式。雖然這種方法節約了部分網絡資源(比如LSP的數量),但是在創建大規模MPLS VPN時,仍需手工建立所有的子隧道,故配置工作量巨大。
Kompella草案[2]也采用PW的方式減少過多網絡資源的消耗,但引入了一種創建PW的新機制,即采用邊界網關協議(BGP)作為VPN自動發現協議和信令協議。該草案的主要優點是配置工作比Martini草案簡單且工作量也少,降低了VPN業務開通的復雜度。Kompella草案更具靈活性,但Martini草案比Kompella草案的機制簡單,實現起來相對輕易,故MPLS設備提供商基本都支持Martini草案,支持Kompella草案的相對較少。
本文在Martini方案的基礎上,對文獻[3]中的模型進行了探討,提出了實現模型所必須的地址解析協議(ARP)的解析和代理實現方案,同時提出了使用二層VPN和三層VPN完成互聯的方法。
1.二層VPN模型
1.1協議堆棧
圖1為PW的協議堆棧模型,其中本地預處理包含轉發和本地服務處理。虛擬服務類型為建立PW所用的類型。從這個模型可以看出,本地二層接入服務類型和PW建立類型是可以不一樣的。
圖2為二層VPN互聯模型,二層VPN提供的是獨立于包交換網絡(PSN)的基于PW的二層虛擬服務。此模型和文獻[3]中定義的模型基本相同,關于CE、PE、接入電路(AC)、PW、PSN隧道、PSTN的定義,可以參考文獻[3—5]。
傳統二層VPN實現時,其本地服務類型和建立偽線的類型(虛擬服務類型)必須是相同的。在本文所提出的二層VPN互聯模型中,本地服務類型和建立偽線的類型(虛擬服務類型)可以不相同,因此需要解決不同服務類型的互聯。本文將從本地服務處理互聯功能(IWF)和虛擬服務類型這兩個方面來探討如何解決二層VPN的不同接入類型的互聯。
1.2基于偽線的二層VPN互聯模型
基于偽線的二層VPN互聯模型主要有兩種:本地服務延伸模型和本地服務獨立模型。
1.2.1本地服務延伸模型
本地服務延伸模型的特點為:PW類型(即虛擬服務類型)和其中一個二層接入服務類型是相同的(如圖3所示)。在圖3中,在PE2上,PW類型和二層服務接入類型是相同的,從而不需要本地服務處理IWF。IWF只存在于PE1上。
此模型的優點是由于轉換功能僅僅存在于一個PE上,從而可以減少PE的處理。但由于PE上的本地服務處理IWF不僅和二層接入服務類型有關,還和PW類型有關,二層接入服務類型和PW類型的多種組合,使IWF變得異常復雜,限制了網絡的可擴展性。
1.2.2本地服務獨立模型
本地服務獨立模型的特點為:PW類型和二層接入服務類型是獨立的(如圖3所示)。在圖3中,虛線淡色部分表示的“本地服務處理IWF”為本地服務獨立模型不同與本地服務延伸模型的地方。在每個PE上,二層接入服務經過本地IWF處理,形成統一的PW類型。本地服務IWF處理過程為:PE將本地二層接入服務類型解封裝,然后根據PW類型重新封裝,得到統一的PW類型。此處統一的PW類型簡化了IWF處理。
本地服務獨立模型的主要優點為組成的網絡易于擴展,并且比本地服務延伸模型易配置,實現比較簡單。所以本文實現的是本地服務獨立二層VPN模型。
2.本地服務獨立模型的實現
本地服務獨立二層VPN模型可分為以太網、IP、PPP、多協議等類型,本文實現了以太網、IP兩種類型,并且是基于MPLS的二層VPN。
2.1以太網類型
在以太網類型中,PE之間建立以太網類型的PW。對于不同的本地二層接入服務類型,使用不同的IWF后,得到統一的以太網(ETH)類型虛擬服務。由于PW類型為以太網,因此IWF模塊必須有能力解析出ETH類型的數據報文,因而對二層接入的CE設備有一定的配置要求。PE收到數據幀后通過IWF處理可以提取出原始以太幀(帶有MAC幀頭)。PE功能結構如圖4所示,IWF模塊在微碼部分處理。
PE的IWF模塊處理過程為:將從本地二層接入接口收到的數據幀,根據接口類型,使用相應的協議進行解封裝,得到ETH類型的幀。
二層VPN轉發模塊對于從IWF模塊得到的ETH類型的幀,根據PW類型進行封裝,插入內層和外層標簽,送入MPLS網傳輸。從PW收到的數據,首先根據PW類型進行解封裝,得到ETH類型的幀;然后根據本地出接口類型,進行相應的數據封裝,送入私有網絡。
2.2IP類型
IP類型的實現比ETH類型復雜。雖然從本質上來說,它還是屬于二層VPN,但其PW工作在IP層。PE之間建立IP類型的PW后,對于不同的接口,使用不同的IWF功能。其PE的結構功能模塊如圖4所示,只是在支撐部分增加了特定的ARP代理模塊。
PE的IWF處理過程為:從本地二層接入接口收到的數據幀,根據接口類型,使用相應的協議進行解封裝,得到IP類型的幀。
二層VPN轉發模塊對得到的IP類型的幀,插入內層和外層標簽,送入MPLS網傳輸。從PW收到的數據,首先根據PW類型進行解封裝,得到IP類型的幀;然后根據本地出接口類型進行相應的數據封裝送入私有網絡。
2.2.1IP類型中PE的ARP模塊處理
對于IP類型的二層VPN,ARP報文不能透傳。若透傳數據,將剝去二層報頭,這會影響到特定二層網絡的選路和傳輸。所以在PE端需要引入ARP代理功能。
PE的ARP代理有兩種方式。一種方式是特定IP地址的ARP代理,如圖2所示,PE1通過一定的信令機制得到CE2的IP地址,回應ARP請求。在文獻[6]中提到的ARP協調(Mediation)可以完成此機制。第二種方式是完全ARP代理。這種實現方式,可以遵從二層VPN只有一條PW的方式,但是PE的AC接入不可以接廣播域和主機。
對于第一種ARP方式,由于涉及到多條PW的建立,所以更多地應該在基于IP的虛擬私有局域網服務(IPLS)[7]中研究。本文選擇了第二種ARP方式。為了實現上的方便,對于二層VPN接入為ATM或FR時,都配置成點到點形式。
2.2.2IP類型中ARP的解析和代理
PE的二層VPN接入接口擔當起ARP解析和代理功能。下面以工作在PE的ETH/VLAN接口為例討論ARP解析和代理。
(1)ARP解析
PE收到ARP報文,解析并記錄CE的媒體訪問控制(MAC)地址,寫入二層VPN屬性表,這樣一個MAC地址和一個二層VPN接入接口完全對應。在沒有收到ARP報文情況下,二層VPN屬性表中的MAC地址初始值為全“1”的廣播地址。ARP收到的MAC地址以最新收到的為有效地址。ARP報文不透傳,只終止到PE。
(2)ARP代理
PE在收到ARP請求報文后,不檢查ARP請求的IP地址,對于任何ARP請求報文,都以PE自己的接口MAC地址作為原MAC地址,ARP請求中的目的IP地址作為原IP地址,生成ARP回應報文。
(3)PE的轉發動作
PE從CE收到數據后,剝去MAC頭,剩下IP數據包。從二層VPN屬性表中得到內層輸出標簽,送入PW。PE從PW收到數據后,從二層VPN屬性表中查找目的MAC地址,把自己的MAC地址作為源MAC,向CE轉發數據。
從PE的轉發動作可以看出,IP類型的二層VPN互聯還是基于二層的數據轉發,對三層不做任何處理。
3.基于三層VPN的二層VPN互聯
從上面的分析可以看出,基于偽線的互聯方案對CE設備有一定的配置要求,而假如CE設備不能滿足這些需求時,將無法使用此方案。三層VPN對于二層接入協議沒有要求,從而可以為二層VPN互聯提供一種方案,將二層VPN作為三層VPN的一種接入方式,如圖5所示。
ATM接入的CE2使用三層VPN接入,ETH接入的CE1使用二層VPN接入。二層VPN中建立的PW可以作為一個二層的PW虛擬接口使用,同樣配置IP地址,使它在PE2上成為一個虛擬三層接口,有ARP功能,加入三層VPN的虛擬路由/轉發實例(VRF)。VRF所包含的接口除了本地加入的實際接口外,還有PW虛擬接口,作為VRF私網接口。路由協議將從PW虛擬接口上得到的路由同樣加入VRF轉發表。PW作為隧道,起透傳作用,CE1相當于直接接入VRF。這樣可以完成CE1和CE2之間控制層面和轉發層面的互通。
對于基于偽線的二層VPN互聯方式,在ETH模式下,需要對CE進行橋接配置。在IP模式下,不僅需要對CE有配置要求,還需要對路由協議進行限制。對于需要依靠二層協議的相關路由協議,路由不能互通。ETH模式主要用于二層設備的互聯,對于不支持二層交換的三層設備,IP模式互聯時有一定的優勢。
對于基于三層VPN的二層VPN互聯方式,不需要對CE進行相關配置,對路由協議也沒有限制。只是這種方式下,PE要同時支持二層VPN和三層VPN功能,同時引入PW虛擬接口。
4.測試結果
本文論述的二層VPN互聯,可以用在包括虛擬私有局域網絡服務(VPLS)、虛擬私有租用線服務(VPWS)在內的二層VPN業務上,從而可以實現VPLS、VPWS的擴展?;趥尉€的二層VPN互聯方案的研究成果已經在中興通訊的ZXR10路由器平臺上實現應用。
對二層VPN互聯ETH模型進行測試,所采用的業務方式為點對點的VPWS。實驗采用兩臺ZXR10-T128直連,中間公網接口速率為1 000 Mb/s,兩邊私網接口分別為ETH和VLAN接口,接入測試儀Agilent RT900,測試軟件為N2X6.4。
測試時,兩邊“灌”的數據流量為100%,數據報文的大小為64字節。測試結果為:流量達到100%,實現了線速轉發,丟包率為零。
5.參考文獻
[1]IETF-draft-ietf-pwe3-control-protocol-15,PseudowireSetup and Maintenance Using LDP [S].
[2]IETF-draft-ietf-l2vpn-vpls-bgp-02,VirtualPrivate LAN Service [S].
[3]IETF-draft-ietf-pwe3-arch-07,PWE3Architecture [S].
[4]IETF-draft-ietf-pwe3-requirements-08,Requirementsfor Pseudo-wire Emulation Edge-to-Edge (PWE3) [S].
[5]FrameRelay/ATMPVC Service Interworking Implementation Agreement [R]. Boston (MA, USA): Frame Relay Forum Technical Committee, FRF.8.1.2000
[6]IETF-draft-ietf-l2vpn-arp-mediation-00,ARPMediation for IP Interworking of Layer 2 VPN [S].
[7]IETF-draft-ietf-l2vpn-ipls-01,IP-OnlyLAN Service (IPLS) [S].
作者簡介:
金利忠,東南大學移動通信國家重點實驗室在讀碩士研究生,現在中興通訊數據事業部實習,研究方向為MPLS、二層VPN。樊祥寧,東南大學移動通信國家重點實驗室副教授,碩士生導師,研究方向為超寬帶通信、未來移動通信、寬帶無線通信等。馮軍,西北工業大學碩士畢業,中興通訊股份有限公司數據事業部MPLS開發經理。(張翀編輯)
新聞熱點
疑難解答