作者:金利忠 樊祥宁 冯军
摘要:传统的基于伪线的二层虚拟专用网(VPN),由于客户端边缘设备(CE)接入的二层协议类型必须相同,被限制了使用范围。文章通过对基于伪线的二层VPN互联的两种模型:本地服务延伸模型和本地服务独立模型进行研究、比较,提出了本地服务独立模型解决方案,并进一步提出了基于三层VPN的二层VPN互联解决方案。该研究成果已经在中兴通讯的ZXR10路由器平台上实现。
要害词:虚拟私有伪线服务;提供商边缘路由器;客户端边缘路由器;伪线
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开发经理。(张翀编辑)