L2VPN 解决方案
L2VPN 解决方案
马绍文
June, 2004
1 内容简介.... 3
2 技术演进.... 3
2.1 L2 VPN 的分类... 3
2.2 业务模型... 4
3 VPWS.. 5
3.1 Martini草案... 6
3.2 Komplla草案... 6
4 VPLS.. 6
4.1 基于LDP. 7
4.2 基于BGP. 8
5 IPLS 简介.... 8
6 总结.... 9
7 参考文献.... 10
1 内容简介
以太网最早作为一种廉价的局域网(LAN)的解决方案,在全世界广泛部署,现在已经有1亿多客户在使用。从最早的10M端口发展到现在广泛应用的10/100/1000M以太网端口。在2002年IEEE也通过了10Gbps的以太网接口标准。以太网也从最早的服务于LAN发展出可以支持广域网(WAN)的应用。
在城域网 (MAN)中,以太网有能力以低成本高效率的方式增加网络容量,以可伸缩的、简单灵活的方式提供各种服务。基于以太网的MAN一般而言就是城域以太网络 (MEN)。
在企业网中,以太网有两项主要的应用。并广受关注:与公共因特网的连接,以及跨地域企业站点(即局域网的延伸)之间的连接。后者扩展了企业网络的功能和范围。
本文讨论了利用MPLS L2 VPN 来建设城域以太网(MEN)中的几种方法。并比较他们的优缺点。
2 技术演进
以太网在企业领域应用的优势之一,就是能够利用虚拟局域网(VLAN)概念,将同一物理网络中特定的用户组
进行逻辑分区。当VLAN扩展至城域网范围时,这样的用户组可能会来自不同的企业,因此将会面临问题:
a. VLAN 标签空间有限
IEEE 801.Q标准只定义了4096个标签地址空间,对于大型服务供应商来说是不够用的。
b. 生成树问题
单个生成树只允许有一个无循环路径。这意味着载荷分布不均衡,可能导致瓶颈。IEEE 802.1s工作组正在探
讨用多重生成树解决这一问题。
c. 慢速故障恢复
以太网环境出现链路中断时,要通过生成树算法进行处理,该算法需要数十秒才能收敛,取决于网络的大小。
与SONET网络中只需50毫秒的自动保护切换(APS)相比,相差几个数量级,根本无法应用于语音/视频/重要任务型应用. IEEE 802.1w工作组 采用快速重新配置生成树)算法,执行一个快速收敛算法,在一秒中内就能收敛。
随着MPLS L2 VPN技术的发展,为解决上述问题提供了可能的方案,并提供了多种保护和增值服务。
a. 可以利用MPLS L2 VPN的内层标签突破VLAN标签空间的限制
根据RFC3032- Label Stack Encoding定义,可以采用除了0-15标签被用特殊用途。MPLS的20 bits标签可以用来区分不同的VPN用户。满足MEN建设的需求。
b. 可以利用MPLS的FRR提供核心网络的链路和节点的保护,可以达到50ms级别的恢复时间。利用VCCV来检测接入Attached VC的状态。
c. 可以利用MPLS的TE功能,来保证不同的VPN用户预留不同的带宽。还可以利用 MPLS Qos的功能,提供更多的差别化服务。
最早利用L2 VPN来提供P2P的连接,模拟虚拟专线的服务(VLL)。后来发展了可以提供P2MP的一些解决方案。
2.1 L2 VPN 的分类
IETF的L2 VPN 工作组,把L2VPN分成三类:
L2VPN
VPWS
VPLS
IPLS
图1.L2 VPN 工作组描述的几种提供二层服务的方式
1.VPWS(Virtual Private Wire Service)
在IP或者MPLS网络中,提供点对点连接方式二层服务。这种方式可以提供ATM、FR、VLAN、P2P Ethernet的等异种网络之间互联。提供类似VLL方式的VPN服务。
2. VPLS(Virtual Private LAN Service)
VPLS在广域网(WAN)中模拟LAN SWITCH或桥接器的功能,提供二层服务。使标准的Ethernet设备可以通过VPLS网络连接,就像接到了同一个网段,VPLS的LAN接口工作在混杂(promiscuous)模式下,报文转发基于目的MAC地址。VPLS和VPWS的主要不同在于VPWS只提供点到点业务,但是可以提供异种网络的互连。而VPLS提供点到多点业务,单是仅仅提供以太网和VLAN的服务。
3. IPLS(IP-Only LAN Service)
类似VPLS提供二层LAN服务,但是要求接入设备是能够支持IP层的设备。不像VPLS可以为L2 Switch等提供服务。IPLS的LAN接口工作再混杂(promiscuous)模式下,报文转发基于目的MAC地址。在IPLS中需要信令过程来传递MAC表的信息,取代了VPLS的MAC地址的学习(Learing)和洪泛(Flooding)过程。并Prxoy ARP消息而不是透传ARP消息。由于IPLS能提供类似VPLS的服务,但是避免了在路由器中进行的MAC地址学习和洪泛过程,适合在路由器中采用。
2.2 业务模型
建立Layer2 VPN的目的就是把两个同种或者异种的Layer2 网络连接起来。
最初的创建Layer2VPN的方法是在CE和PE之间建立ATM或FR连接,在运营商网络中采用MPLS的LSP分别连接这些二层连接,如图2。并且可以采用MPLS流量工程满足用户的QoS需求,采用MPLS 快速重路由(FRR)来保护LSP。
这种模型有以下缺陷:
1.由于只采用一层标签,每个L2 Circuits独占一条LSP。导致LSP数目庞大,占用网络很多资源。降低了网络的扩展性。
2.没有自动发现机制,需要为每对L2 Circuits手工绑定两个LSP,配置工作量很大。
PE
PE
DLCI 101
LSP
Customer Site
Customer Site
Customer Site
Customer Site
VLAN 200
DLCI 102
VLAN 200
PE
LSP
LSP
图2. 最初的L2VPN业务模型
由于存在上述问题,除了一些简单的环境,上述模型已经没有应用。
3 VPWS
为解决上述扩展性等问题,许多专家向IETF提出了许多关于Layer2 VPN的协议草案,基本可以划分为两类:Martini草案和Kompella草案。
Emulated Service
PE
PE
PSN Tunnel
Attachment
Circuits
Pseudo Wires
Customer Site
Customer Site
Customer Site
Customer Site
Attachment
Circuits
Attachment
Circuits
Attachment
Circuits
图3. VPWS业务模型
IETF总结了Layer2 VPN的业务模型,在草案[L2FRAME]中提出了如图3所示的业务模型。在这个模型中定义:
AC(Attachment Circuits)— PE和CE之间的Layer2 Circuits,可以是 ATM、FR、VLAN、Ethrernt等。
PW(Pseudo Wires) — 连接两个AC之间的虚拟线路,可以使用内层标签来标示PW。
PSN (Packet Switched Network)Tunnel — 包交换网络隧道,可以是LSP、GRE、IPSec,或者L2TPv3等。
为了解决上述问题的基本思路是:
1. 采用PW来解决LSP过多问题,采用PW来连接不同的AC,多个PW可以共享一个PSN Tunnel。
2. 使用LDP或者BGP来传递PW信息,描述如何连接同种或异种AC。使用BGP或者其他方式来进行VPN成员关系的自动发现。
IETF相关草案定义了用于建立PW的信令和在PW上转发ATM、FR、以太网数据包的封装格式。
3.1 Martini草案
[MARTINI]草案针对上述问题,提出以下控制和数据流程:
控制流程
1. 在PE之间首先建立PSN Tunnel。
2. 手工配置PWs和ACs之间的映射关系。
3. 使用Dicrect LDP传递PW信息和内层标签。
数据流程
当用户CE设备和PE之间的VC承载业务需要穿越网络时,
1. 在Ingress PE处压上PW的内层标签,并在PSN tunnel中传输。
2. 在Egress PE处,根据内层的PW标签分发报文到相应的AC。
在数据转发流程中PE之间的LSP可以看作是多条AC的承载通道。虽然这种方法节约了部分网络资源(比如LSP的数量),但是在创建大规模MPLSVPN时,仍需手工建立所有的子隧道,故配置工作量巨大。
在草案draft-ietf-l2vpn-signaling-01.txt中定义了采用BGP协议作为VPN成员关系的自动发现。解决了配置上的问题,使这种方法在当今的大规模网络中得到广泛的应用。
3.2 Komplla草案
在[MARTINI]草案提出后,[KOMPELLA]草案也采用这种为PW分配内层标签的方式减少过多网络资源的消耗,但引入了一种分发PW内层标签的新机制,即采用BGP协议作为VPN自动发现协议和信令协议。其数据转发层采用[MARTINI]草案规定的方式。控制流程采用类似RFC2547bis VPN方式,具体如下:
1. 在PE之间首先建立PSN Tunnel。
2. 对每个VPN配置相应的RT、RD来配合BGP进行VPN成员关系的发现。在PE上为每个CE指定标签范围。
3. BGP协议根据本地配置,创建L2 VPN可达性(L2 NLRI)信息,包括 CE ID,标签块等,并传递L2 NLRI到对端PE。
4. 对端PE根据 L2 NLRI的属性,把同一个VPN的L2 NLRI,加到相同的VPN中去。
5. 对端PE根据L2 NLRI的标签块,和本地的CE ID,计算出到对端的PW内层标签。
虽然两种草案的数据封装格式基本相同,网络构成基本相同,业务流“伪线”穿越LSP的方式也相同,但[MARTINI]草案比[KOMPELLA]草案的机制简单,实现起来相对容易,故MPLS设备提供商基本都支持[MARTINI]草案,能支持[KOMPELLA]草案的较少。
4 VPLS
VPWS虽然解决了PSN Tunnel重用的问题,但是无论是[MARTINI]还是[KOMPELLA]的VPWS方案,都仅仅提供了点对点的服务模型的解决方案。
对于下图来说,如果采用VPWS解决方案,PE1-CE1之间的AC(Port or VLAN)如果配置了同CE2通讯,那么就不能同CE3通讯。也就是说如果配置VPWS之后,从CE1发送到PE1的报文(Ethernet or VLAN)只能发送到CE2。如果CE3也属于同一个VPN,那么VPWS就不能适用这种情况。
CE2
Attachment VCs are Port Mode or VLAN ID
CE1
CE3
VSI 1
VSI 2
PE1
PE2
PSN Tunnel 图4. VPLS业务模型
为此在VPWS的两种方案的基础上,发展出对应的两种VPLS的解决方案。IETF总结了两种VPLS的解决方案。提出了如上图所示的VPLS的模型。
为了解决上面的点到多点的通讯问题。VPLS引入了VSI(Virtual Switch Interface)的概念,在每个PE上为不同的VPLS配置不同的VSI。在VPWS解决方案中,需要通过信令协议把PW进行P2P的连接。信令过程
生成转发表项。VPLS中由于要实现P2MP的通讯,信令过程只能传递PE上的VSI信息,在PE的VSI之间建立PWs。并把本地的AC加入到相应的VSI中。还需要在本地接口和到远端PWs上进行MAC地址学习和Flooding过程来确定转发表的信息,也就是说AC之间的通讯。具体如下:
1. 通过使用内层标签,为VSI分配的内层标签标识不同的VPLS。PSN tunnel连接两端PE设备。
2. PW不是连接AC的点对点连接,而是连接不同PE之间属于同一个VPLS的VSI。
3. 通过信令过程在PE之间交互VSI的信息。
4. 通过在本地接口和到远端PWs上进行基于Port或者VLAN的MAC地址学习和Flooding过程,生成转发表项。
4.1 基于LDP
[VPLSLDP]草案描述了基于LDP的VPLS。为实现VPLS信息的传递和转发表项的生成,需要信令传递过程和MAC地址学习和Flooding过程同时配合。其基本思路如下:
信令传递过程:
1. 在PE上配置VSI,并把AC加入到VSI中。
2. PE之间建立Direct LDP协议,传递PWid FEC信息,建立PE的VSI之间的PWs,PWs连接不同PE的属于同一个VPLS的VSI。
3. PE之间在VPLS成员关系发生变化时,还需要发送MAC Address Withdrawal进行MAC地址的收回。
MAC地址学习和Flooding过程:
1. PE在本端直接相连的AC(Ethernet Port Or VLAN)和远端PWs上进行标准的learning, filtering and forwarding。当逻辑接口状态发生变化时,遵循标准[802.1D-ORIG]、 [802.1D-REV] 和[802.1Q]的定义。
2. 如果PE收到一个报文,在VSI中没有目的MAC地址的信息,PE路由器就会把这个报文压上到对端PE VSI的PW内层标签,并在PSN Tunnel中Flooding到其他所有的PE。
3. PE收到从对端PE过来的报文,根据报文携带的内层标签,计算出到对端PE的VSI的内层标签,并获取源MAC地址,生成MAC表项纪录在本地的VSI。
4. 如果有报文的目的MAC地址要送往对端PE后面的CE,根据步骤3生成的MAC表项,PE路由器压上到对端PE的VSI的内层标签,然后在PSN tunnel里面转发到对端PE。PE根据内层标签确定VSI,转发到相应的CE设备。
此方案也可以利用自动发现机制[L2SIGNAL]自动发现新加入的PE、建立PE间的MPLS通道,大幅度降低了配置的工作量。
4.2 基于BGP
[VPLSBGP]草案描述了基于BGP的VPLS的实现方式。这种方式和基于LDP的VPLS解决方案的MAC地址学习和Flooding过程一致。但是这种方案采用BGP协议来传递VPLS信息。具体过程如下:
信令传递过程:
1. 在PE上配置RT RD等信息来标识VPLS域,并把AC加入到VSI中。
2. 在PE之间建立MP-BGP邻居,传递VPLS NLRI。在NLRI中携带一个标签块。
3. PE收到对端的 VPLS NLRI,根据标签块和本地配置,计算出到对端PE的VSI的标签。
MAC地址学习和Flooding过程:
同[VPLSLDP]解决方案。
在VPLS解决方案中,PE设备需要同时执行信令传递过程,建立MPLS LSP和PWs,还要在PWs和本地AC之间进行标准的MAC地址学习,对PE设备的压力很大。对此,已有[VPLSLDP]和[VPLSBGP]草案建议把MAC地址学习功能和VPLS管理等功能分别在不同的设备上实现,也就是实现Hierarchical VPLS。
随着以太网业务的快速增长和以太网向城域网范围内的延伸,用户对VPLS的需求正在快速增长。VPLS的优势在于运营商不但可以向用户提供超过4095个VLAN站点VPN业务、保证用户业务端到端QoS、利用MPLS 的FRR来保护链路和节点。这些优势使得运营商通过与其用户签署SLA(Service Level Agreement),提供差别化的服务,并获得比从网络普通接入业务稍高的收益。
5 IPLS 简介
前面提到MAC地址学习对PE设备的压力很大。通过采用H-VPLS的解决方案把MAC地址学习和VPLS的信令处理过程分配到不同的设备上来解决。这样运营商需要管理的设备增加,导致应用复杂。
对此IETF又提出一种新的解决办法。在PE设备上取消了MAC地址的学习和Flooding过程。这种新的业务模型就是IPLS(IP-only LAN-like Service),在[IPLS]草案描述。
PE
PE
PSN Tunnel
Pseudo Wires
Customer Site
Customer Site
Customer Site
Customer Site
VSI
VSI
图5. IPLS业务模型
这种模型要求CE设备是IP设备。而且注意建立PWs连接CE设备和对端PE 属于同一个IPLS的VSI。而不是VPWS中的连接AC和对端AC,或者VPLS中的PE之间的属于同一个VPLS域的VSI。
IPLS的基本流程如下:
1. PE设备发现配置属于同一个IPLS域的CE设备的IP/MAC地址的绑定关系,通过ARP或者IP Multicast/Boadcast Snooping。
2. PE设备为同一个IPLS域中的每个CE设备建立单播PW连接到其他PE的属于同一个IPLS域的VSI。这个PW是为承载单播报文流量而建立的。
3. PE设备为同一个IPLS域中的每个CE设备建立广播PW连接到其他PE的属于同一个IPLS域的VSI。在FEC中置位multicast。这个PW是为承载广播报文流量而建立的。PE设备发送multicat报文穿越网络时,PE设备给每个对端PE复制一份报文并压上multicast的标签。对端PE收到之后,根据标签知道这个报文是multicast报文,就复制给相连的同一个IPLS域的CE设备。
4. PE设备之间采用Direct LDP来分发FEC。可以使用[L2SIGNAL]规定的BGP协议作IPLS成员关系的发现。FEC指定了IP/MAC地址的绑定关系。
5. PE设备收到对端PE传送的对端CE设备的IP/MAC地址绑定关系,生成相应的转发表项。并为对端CE作ARP Proxy。任何CE可以解析远端CE的IP/MAC地址。
6. PE设备收到CE到远端CE的报文,根据对端PE的FEC压上内层标签,并在PSN tunnel网络中传送。对端PE收到后,根据内层标签,转发给相应的CE设备。
相比VPLS,IPLS的优点如下:
1. 没有数据平面的MAC地址学习。这个过程需要查找报文的源MAC地址。消耗TCAM表项,增加CPU处理负担。
2. 在出接口路由器不用POP出外层标签,然后再查MAC表。不用为MAC地址学习记录源MAC地址。直接转发给CE设备。
3. IPLS中的PE只需要存储CE设备的IP地址和MAC地址,而VPLS则可能需要PE存储大量的用户站点的MAC地址。
故与VPLS相比,IPLS网络具有良好的扩展性且更容易在高端路由器上实现。
6 总结
前面简单的介绍了城域以太网(MEN)的演进过程,从中可以看出最早用VLAN来解决城域以太网的问题,后来演进到采用Layer2 VPN的方式。还介绍了Layer2 VPN中的VPWS、VPLS和IPLS碰到的问题。有关详细的VPWS和VPLS的信息,请参考相应的草案。
通过前面的介绍,可以看出Layer2 VPN的发展,其实质就是利用PW,把不同的网络实体连接起来。
1. VPWS—PW连接不同的AC
2. VPLS—PW连接不同的VSI,AC之间的通讯使用MAC地址学习。
3. IPLS —PW连接CE router 和VSI。
表1 Layer2 VPN业务模型比较
业务种类
网络扩展性
占用资源
配置工作
VPWS
Martini
ATM/FR/VLAN/
Ethernet Port
一般
支持MPLS的设备,一般
手工配置没有自动发现,工作量大,但是可采用[L2SIGNAL]减少配置工作
Kompella
ATM/FR/VLAN/
Ethernet Port
稍好
需要BGP,小型设备比如交换机不支持,一般
有自动发现,但是需要过配置标签块。维护复杂。
VPLS
LDP
VLAN/Ethernet Port
好
多,MAC学习
可以采用LDP自动发现。因为只要PE的VSI之间建立PW,配置同BGP。
BGP
VLAN/Ethernet Port
好
多,MAC学习
工作量少。
IPLS
VLAN/Ethernet Port CE设备是IP
好
少
工作量少。
7 参考文献
[L2FRAME] "Framework for Layer 2 Virtual Private Networks (L2VPNs)", draft-ietf-l2vpn-l2-framework-05, Work in Progress, June 2004
[MARTINI] "Transport of Layer 2 Frames over MPLS", draft-martini-l2circuit-trans-mpls-14, Work in Progress, June 2004
[L2SIGNAL] "Provisioning Models and Endpoint Identifiers in L2VPN Signaling", draft-ietf-l2vpn-signaling-01, Work in Progress, March 2004
[KOMPELLA] "Layer 2 VPNs over Tunnels", draft-kompella-l2vpn-l2vpn-00, Work in Progress, January 2004
[VPLSLDP] "Virtual Private LAN Services over MPLS", draft-ietf-l2vpn-vpls-ldp-03, Work in Progress, April 2004
[802.1D-ORIG] Original 802.1D - ISO/IEC 10038, ANSI/IEEE Std 802.1D-1993 "MAC Bridges".
[802.1D-REV] 802.1D - "Information technology - Telecommunications and information exchange between
systems - Local and metropolitan area networks - Common specifications - Part 3: Media Access Control (MAC) Bridges: Revision. This is a revision of ISO/IEC 10038: 1993, 802.1j-1992 and 802.6k-1992. It incorporates P802.11c, P802.1p and P802.12e." ISO/IEC 15802-3: 1998.
[802.1Q] 802.1Q - ANSI/IEEE Draft Standard P802.1Q/D11, "IEEE Standards for Local and Metropolitan Area Networks: Virtual Bridged Local Area Networks", July 1998.
[VPLSBGP] "Virtual Private LAN Service", draft-ietf-l2vpn-vpls-bgp-02, Work in Progress, MAY 2004
[IPLS] "IP-Only LAN Service (IPLS)", draft-ietf-l2vpn-ipls-00, Work in Progress, MAY 2004

0 Comments:
Post a Comment
<< Home