网络通信 频道

L2VPN与L3VPN介绍与对比

1. VPN技术简介

VPN是运营商通过其公网向用户提供的虚拟专有网络,即在用户的角度VPN是用户的一个专有网络。对于运营商来说公网包括公共的骨干网和公共的运营商边界设备。地理上彼此分离的VPN成员站点通过客户端设备(CPE)连接到对应的运营商边界设备(PE),通过运营商的公网组成客户的VPN网络。



2. 传统的VPN组网方式

传统的VPN主要采取两种组网的方式:专线VPN和基于客户端设备的安全VPN。



专线VPN使用静态的虚电路(如ATM PVC、FR PVC 等)连接客户的站点,形成一个二层的VPN骨干网。VPN成员站点连接到运营商的边界设备(PE),由运营商负责建立VPN成员站点之间的虚电路连接,客户对属于自己VPN的站点的路由进行自主的控制和管理。采用这种方式组建VPN无论对运营商或者是对客户来说成本都是很高的,而且二层虚电路的业务提供的周期长,网络管理人员需要进行大量的手工配置工作。

对于基于客户端设备的(CE Based)VPN,VPN的功能全部在客户端的设备中实现。运营商的设备对客户的VPN来说是完全透明的。客户可以通过购买相应的VPN设备或者在现有的路由器、网关或者甚至是PC机上安装相应的VPN功能软件就可以开始独立构建基于客户端设备的VPN。由于VPN的成员站点之间通常是通过非信任的Internet实现互连的,所以一般基于客户端设备的VPN在实现时都引入某些安全机制保护站点之间跨Internet的客户私有流量。这个解决方案的最大缺点就是客户需要购买、配置和维护昂贵的VPN网关设备,同时也意味着需要高素质的网络管理人员对VPN网关设备和整个VPN网络进行有效的管理和维护,相应也会带来企业网络成本的上升。



3. MPLS VPN

MPLS技术提供了类似于虚电路的标签交换业务,这种基于标签的交换可以提供类似于帧中继、ATM的网络安全性。同时相对于传统的VPN技术来说,MPLS VPN可以实现底层标签自动的分配,在业务的提供上比传统的VPN技术更廉价,更快速。同时MPLS VPN可以充分的利用MPLS技术的一些先进的特性,比如说MPLS 流量工程能力,MPLS的服务质量保证,结合这些能力,MPLS VPN可以向客户提供不同服务质量等级的服务,也更容易实现跨运营商骨干网服务质量的保证。同时MPLS VPN还可以向客户提供传统基于路由技术VPN无法提供的业务种类,比如像支持VPN地址空间复用。对于MPLS的客户来说,运营商的MPLS网络可以提供客户需要的安全机制,以及组网的能力,VPN底层连接的建立、管理和维护主要由运营商负责,客户运营其VPN的维护和管理都将比传统的VPN解决方案简单,也减低了企业在人员和设备维护上的投资和成本。基于MPLS的VPN可以作为传统的基于二层专线的VPN、纯三层的IP VPN和隧道方式的VPN的替代技术,在现阶段可以作为传统VPN技术的有效补充。



具体到MPLS VPN的实现方式,根据运营商边界设备PE是否参与客户的路由,运营商在建立基于IP/MPLS的VPN时有两种选择:

l 第三层的解决方案, 通常称作是Layer3 MPLS VPNs

l 第二层的解决方案,通常称作是Layer2 MPLS VPNs

衡量一个VPN解决方案的优劣主要基于以下几点的考虑:

l 支持的业务种类;

l 可以向用户提供的连接的种类;

l 扩展性;

l 部署的复杂度;

l 业务开展的复杂度;

l 管理和维护的复杂度;

l 部署的成本;

l 管理和维护的成本。



当然这些因素并不是绝对的,实际的应用中很难简单的说这两个方案谁优谁劣。两个方案都有其优缺点,有其特定的业务模式,也都还处在不断完善发展的阶段,选择一个方案的关键是运营商实际的网络运营环境,和运营商自身的业务定位,要向客户提供什么样的服务模式。



4. Layer3 MPLS VPN

Layer3 MPLS VPN是一种基于路由方式的MPLS VPN解决方案,ITEF RFC2547中对这种VPN技术进行了描述,MPLS Layer3 VPN也被称作是BGP/MPLS VPNs。BGP/MPLS VPN使用类似传统路由的方式进行IP分组的转发,在路由器接收到IP数据包以后,通过在转发表查找IP数据包的目的地址,然后使用预先建立的LSP进行IP数据跨运营商骨干的传送。为了使运营商的路由器可以感知客户网络的可达性信息,运营商的边界路由器(PE)和客户端路由器(CE)进行路由信息的交互。PE和CE之间的路由交换可以采用静态路由,也可以采用RIP、OSPF、ISIS和BGP等动态的路由协议。BGP/MPLS VPN的解决方案支持对等方式的VPN网络结构。PE之间属于同一MPLS VPN的路由信息通过BGP协议承载进行交互。PE路由器使用LSP进行路由转发,对于运营商路由器P并不需要知道客户VPN网络的信息,这种透明可以有效的减小P路由器的负担,提高网络的扩展性和业务开展的灵活性。通过PE之间、PE和CE之间的路由交互,客户的路由器可以知道属于同一个VPN的网络拓扑信息。



BGP/MPLS VPNs 可以解决基于纯IP Layer3 VPN无法实现的一些功能,主要有:



支持地址重叠,即同时支持使用公有地址的客户端设备和私有地址的客户端设备,或者多个VPN使用同一个地址空间;



支持重叠VPN,即一个站点可以同时属于多个VPN。



对于传统基于路由的VPN来说,要解决以上的问题有一定的挑战性。MPLS VPN使用VPN路由转发表(VRF)解决地址重叠的问题。在运营商PE路由器上使用基于每VPN的路由转发表隔离不同VPN的路由。通过路由信息的隔离,实现支持VPN地址的重叠。如果一个PE上有多个CE属于同一个VPN,那么这些CE共享PE上的VPN路由转发表。对于重叠VPN的情况,重叠发生的站点需要使用独立的VRF表存储来自其所属VPN的路由信息。地址重叠的另一个问题是,PE路由器从邻居的BGP更新中会收到属于不同VPN的重叠路由信息。为了区别来自不同VPN的路由信息,PE使用8 octet的路由标识(RD)对来自不同VPN的路由信息进行标识。这个8 octet的路由标识作为4 octet的IP地址前缀的扩展构成了一个新的地址类(VPN-IPv4地址)。RD不参与路由发布的过程,它所起的作用仅仅是区分属于不同VPN站点的路由。RD和VRF之间建立了一种一一映射的关系,VRF在发布路由信息时将同时附带相应的RD信息。对于重叠VPN的情况,这类站点虽然同时属于多个VPN,但是它只需要一个RD,并不需要多个RD以对应多个VRF,其主要的目的是为了节省PE路由器上的存储资源。对于这类的VPN成员站点,路由分布的策略和单一VPN成员站点是一致的。为了防止PE路由器接收到不属于该PE 上VPN成员的路由信息而浪费PE的资源,MPLS VPN使用BGP的扩展属性来控制运营商网络中路由信息的发布。这个功能是通过对BGP的团体属性来实现的,所有的客户VPN都被赋予一个唯一的团体属性值。在PE接收到一条路由时,BGP进程将检查该路由的扩展属性,如果该属性和该PE上承载的VPN的扩展属性相同PE将接收该路由,如果不同,PE将忽略这些BGP路由。 通过这种方式,PE路由器可以避免存储一些不必要的路由信息,提高网络的可扩展性。图1 简单的示意了Layer 3 MPLS VPN的解决方案。



从以上的分析可以看出,MPLS VPN可以支持创建重叠VPN,所谓重叠VPN是指同一个站点同时属于多个VPN的情况。这种功能特别适用于企业之间并购时的网络整合或者企业之间由于合作的需要,相互之间需要共享网络资源。用户将依靠服务提供商来实现特定的路由控制,也就是说,路由控制来自于CE路由器并且派送到PE路由器。在图1中,用户A,站点1,既归属于VPN A,又归属于VPNC 。该站点的路由信息由本地PE路由器在一个RD中进行通告,这个RD同时包含了两个Route Target扩展属性:一个用于VPN A,另一个用于VPN C。远端的PE根据BGP扩展属性对来自该PE的路由信息进行接收和处理。



当通告一个VPN-IPv4路由时, BGP信息中携带了VPN的内标签信息和相关VPN的BGP 下一跳信息。PE路由器可以通过LSP可以建立两两之间之间的通信。这些LSP可以看做是MPLS VPN的外层标签,可以通过多种信令协议方式建立,比如LDP或者RSVP/TE。当PE接收到一个目的为远端VPN站点的IP分组时,PE给分组包附加两层MPLS标签,如图2所示。



外标签或者称作是隧道标签用于标识BGP的下一跳即远端PE的地址;内标签或者称之为VPN标签标识PE上特定的VPN成员,具体的说应该是标识到PE上的VRF。P路由器只是根据标签进行数据转发,整个过程VPN过程对于P路由器透明。



5. MPLS Layer2 VPN

基于MPLS的第二层VPN解决方案保留了传统基于第二层VPN解决方案的优势。MPLS L2  VPN降低了VPN业务开通复杂度,特别是在现有的VPN中增加站点时,在大多数情况下只需把供应商边缘(PE)路由器连接到新站点上即可,相应也减小了业务提供的周期。通过采用MPLS技术,可以在多元融合的网络中运行二层VPN、三层VPN、流量工程、Diffserv及许多其它业务,服务提供商可以为IP、第三层(MPLS/IP)和二层VPN共同管理和维护单一的基于MPLS的网络。基于第二层的MPLS VPN解决方案提供了运营商网络和客户的VPN网络之间的完全独立,也就是说,运营商边界的PE设备和CE设备之间没有进行路由交换,运营商只是简单向客户提供一些基于2层的网络功能。运营商的网络和客户的VPN网络和完全架构在层叠的网络模型上,从客户的角度看运营商只是提供了一个简单的2层连接。这种透明简化了运营商网络的结构和配置管理,同时也提供了对客户的多业务支持能力,运营商除了传统的IP业务以外,还可以向客户提供IPv4, IPv6, IPX, DECNet, OSI, SNA等等业务,以及一些传统基于电路业务的仿真,比如说FR、ATM等。



目前Layer2 MPLS VPN的解决方案可以提供以下两种连接方式的服务:

-点到点连接

-点到多点连接

5.1 点到点仿真虚电路



对于点到点仿真虚电路方式的Layer2 MPLS VPN主要是基于以下的几个IETF草案,这几个草案基本上已经成为点到点方式L2 VPN的事实标准:

“draft-martini-l2circuit-trans-mpls-0x.txt”

“draft-martini-l2circuit-encap-mpls-0x.txt”

“draft-kompella-mpls-l2vpn-0x”

“draft-kompella-ppvpn-l2vpn-0x”



这几个草案基本上可以划分为Layer2 MPLS VPN两个主要的技术流派: Martini和Kompella。两种解决方案在数据层面非常相似,都支持多种二层技术。两个草案的区别主要在控制层面;前者支持点对点的服务,后者可以支持点对多点服务。 Draft-Martini不包括用于VPN成员自动发现机制,更多的操作需要手工完成。支持Martini的运营商和设备厂家主要有Level 3 Communications, Cisco Systems, Nortel Networks, Laurel Networks, Vivace Networks, Mazu Networks, Gone2 Ltd., Global Crossing, Cable & Wireless, and Juniper Networks, Inc.。支持Kompella的主要有Juniper Networks, Telefónica Data, Cable & Wireless, CoSine Communications, WorldCom, KPN Dutch Telecom, Nortel Networks, and Unisphere Networks.。由于Draft-Martini比Draft-Kompella的机制简单,实现起来比Draft-Kompella容易,所以提供MPLS的2层VPN的厂家基本上都支持Martini草案,能支持Kompella方式的厂家比较少。



5.1.1 Draft-Martini基于MPLS的二层VPN

Martini草案的基于MPLS的二层VPN是一种点对点的解决方案。可以支持的二层技术主要有:帧中继、ATM AAL5 CPCS模式、ATM透明信元模式、以太网、以太网VLAN、HDLC、PPP、SONET/SDH链路仿真服务。



为了通过运营商MPLS网络承载L2帧,Martini草案引入VC(虚连接)的概念。VC通过MPLS标签栈的方式在MPLS骨干网由LSP构建的隧道中进行复用,其标签的结构如图 3所示。



LSP可以看作是承载多条VC的隧道,VC可以看作是实际承载L2帧的电路,VC实际是隧道LSP中的子LSP。隧道LSP提供PE之间的隧道连接,VC承载特定用户(VPN)的数据帧。隧道ISP的建立方式可以有多种,可以使用LDP的方式或者是RSVP/CR-LDP等信令协议。PE之间VC 标签的分发使用下游标签分配的方式,可以采用静态分配的方法也可以通过信令进行分配,VC和传统的LSP一样也是单向的,为了获得双向的VC连接必须对VC两端的PE都进行配置。为了实现这种等级化的结构,在用户(VPN)的数据帧穿透运营商的网络时被打上了两层的标签:

外层标签或者隧道标签:用于标识隧道LSP,用于定位特定的目的PE路由器;

内层标签或者VC标签:用于标识用户的连接,用于定位目的PE路由器上特定的VPN成员站点。



如图4所示,以PE1为源端、PE2为目的端为例,当PE1发送一个二层PDU到PE2时,PE1首先为二层净荷添加一个VC标签,然后添加一个隧道标签。隧道标签用来确定MPLS分组从PE1到PE2的通路;只有MPLS分组到达PE2时,VC标签才可见,PE2对分组的处理取决于VC标签的内容。



隧道标签用来确定通过MPLS网络的通路,VC标签用来识别端点的VLAN、VPN、或连接。例如,如果MPLS分组的净荷是ATM AAL5 协议数据单元时,PE2能从VC标签推断出净荷对应的出口,以及AAL5 PDU的VPI/VCI值。如果净荷是帧中继PDU时,PE2能从VC标签推断出净荷对应的出口,以及DLCI值。如果净荷是以太网帧时,PE2能从VC标签推断出净荷对应的出口,及VLAN识别符。



使用隧道标签和VC标签的方法,可以将多个二层“VC”复用到单个“Tunnel”中,可以节省运营商骨干MPLS网络中对LSP的需求量,有利于提高网络的扩展性。



5.1.2 Draft-kompella基于MPLS的二层VPN

Kompella草案的基于MPLS的二层VPN是一种点对多点的解决方案。但是和下面将要提到的VPLS对比,Kompella方式的点对多点连接只是一种点到点连接的集合。和Martini方式相比,Kompella的优势是引入了VPN的自动发现机制,在网络初始化时需要对VPN的所有站点进行配置,一旦初始化完成后,只需对新添加的站点进行配置,而不必触及已配置的站点。Kompella的自动发现机制使用BGP作为VC标签分配的信令,整个VPN建立的过程充分的借鉴的L3 MPLS VPN实现的思想。PE之间建立全网状的IBGP会话,相互交换VPN成员信息和VPN能力的协商,其网络结构如图5所示。



对于大型的IP运营商来说,其网络中原有运行的BGP可以作为Kompella方式Layer2 MPLS VPN的信令载体,在同一个信令平台上可以同时提供L2和L3的VPN业务。对于网络的运营和维护来说也不会增加很大的负担。基于Layer3 MPLS VPN的运营商经验也完全可以被Komplla VPN借鉴,比如说VPN跨域的问题,Kompella就可以采用和Layer3 MPLS VPN相似的方法实现,而Martini VPN的跨域问题解决起来就比较的困难。但是,Kompella VPN在借鉴了Layer3 MPLS VPN思想的同时也不可避免的继承了Layer3 MPLS VPN 实现、配置管理复杂、业务提供周期长等缺点,导致了目前支持和实现Kompella的厂家较少,有关这方面的问题还处于进一步研究的过程中。



在数据层面上Kompella和借鉴了Martini的封装格式,可以支持:帧中继、ATM AAL5 CPCS模式、ATM透明信元模式、以太网、以太网VLAN、HDLC、PPP、SONET/SDH链路仿真服务等二层技术。

1
相关文章