MPLS VPN在中小型IP城域网中的应用探讨
2017-07-27刘勇
刘勇
摘要:该文结合城域网现状,通过对MPLSVPN技术原理的分析,提出了在诸如湖北宜昌这样的中小型IP城域网上实现MPLS VPN业务的网络拓扑及技术解决方案。对于三层BGP/MPLS VPN:以业务接入控制点设备作为VPN的PE,以核心路由器作为三层MPLSVPN的P,在核心路由器上启用I~P.,PE作为RR的客户机。对于二层VPLS:选择三台BRAS作为VPLS核心层,建立层次化的VPLS网络。通过对三层和二层MPLS VPN技术特点的进一步研究,发现三层MPLS VPN适合网络规模庞大且对路由信息不甚敏感的客户,而二层MPLS VPN适合不愿透露路由信息且网络规模较小的客户。根据以上特点可对客户组建VPN网的技术方案进行引导。
关键词;BGP/MPLS;VPN;VPLS;R.R;层次化;VPLS
1概述
IP城域网经过几次扩容和网络优化后,实现了三层路由网络(城域骨干网)和二层接入网(宽带接入网)的物理和逻辑层次的分离,实现了以业务接人控制点为界的两层扁平化网络结构。网络拓扑的改变,特别是汇聚交换机层面的取消,使以城域网为承载的VLAN互连的企业VPNfVirtual Private Network虚拟专用网)的实现出现了困难,并且利用VLAN互连的企业VPN在技术方面有一些先天不足,例如VLANID全网必须唯一、广播域过大、容易形成环路、容易对全网造成影响、不能唯一标识用户等。
MPLSfMuhi-protocol label switch多协议标签交换)为企业VPN互连业务提供了很好的解决方法。MPLS是下一代宽带互联网技术的发展方向,它基于标签交换并且能有效利用基于IP交换的设备。在MPLS网络,采用MPLS作为通道机制实现透明报文传输,MPLS的LSP(1abel switch path标志交换路径)具有与帧中继和ATM VCC(virtual Channel Connection,虚通道连接)类似的高可靠和安全性。它消除了在IP和ATM之间过多的复杂映射而且更好地支持了传统IP路由技术难以支持的QoS业务。相对IP协议基于目的地址的路由,MPLS提供基于多种因素的路由,从而更好地满足流量工程的需要。
優化后的IP城域网能很好地支持MPLS,MPLS VPN可为企业提供很好的二层或三层专线互连业务:
三层MPLS VPN也被称为BGP/MPLS VPN,基于RFC2547bis,现在已经非常成熟,其实现思路为:使用LDP(La-bel Distribution Protocol标签分发协议)或RSVP(Resource Res-ervation Protocol资源预留协议)建立PE(Provider Edge Router服务提供商边缘路由器)至PE的标签交换路径LSP,PE通过若干VRF(VPN Routing&Forwarding Instance VPN路由转发实例)来维护每个直连VPN用户相应的转发表,PE和CE(CustomEdge客户边缘路由器)之间运行传统IP路由,PE通过MP-BGP来发布VPN路由,至此VPN用户可以相互通信。
基于MPLS二层VPN的VPLS(Virtual Private LAN Services虚拟专用局域网业务)虽应用较为广泛,但这一技术的标准化还在准备中。IETF目前一共收到了3类VPLS草案,它们主要的区别在于信令及组网结构的不同,简称为LDP草案、BGP草案和RADIUS草案,其中LDP草案提出最早并且已经得到众多厂商的支持,其实现思路是:PE之间应用LDP信令建立标签交换路径LSP、虚电线PW(Pseudo Wire),虚电线将所有的广播(broadcast)帧和跨局域网的单播帧、组播(muhicast)帧从一个局域网转发到另一个局域网,使得其所连接两个局域网在数据链路层上被整合。
本文将结合湖北宜昌IP城域网现状及MPLS VPN业务的实际运行情况,详细讨论二、三层MPLS VPN的实现原理,并根据宜昌这样的十万用户的中小型城域网设计出实际的组网方案,通过分析二、三层MPLSVPN各自的特点找到各自最合适的业务模式,从而对客户的技术实现需求提供引导。
2宜昌IP城域网现状
宜昌IP城域网由核心层设备(核心路由器及SR、BRAS)和接人层设备(POP点交换机,楼道交换机,DSLAM)构成。其中两台核心路由器为ALCATEL 7750 SRl2,一台SR业务路由器ALCATEL 7750 SR7,六台BRAS宽带远端接入设备REDBACKSES00;POP点交换机为中兴T64G、T64C等,楼道交换机为中兴、华为等中低端二层交换机。
核心路由器fALCATEL 7750 SR12)和CNl出口路由器(cis-co GSR 12016)建立EBGP(Extemal Border Gateway Protocol外部边界网关协议)邻居,宣告本AS(Autonomous SyNems自治域)的路由信息,并将通过BGP学到的出网流量的缺省路由导人内部路由协议。核心路由器之间建立IBGP(Internal Border GatewayProtocol内部边界网关协议)邻居;核心路由器与业务接人控制点设备ALCATEL 7750 SR7、REDBACK SE800等通过OSPF(开放最短路径优先)内部路由协议交换路由信息。
核心路由器和CN2出口路由器也会建立EBGP邻居,且业务路由器会和CN2的SR互连。
POP点交换机层及以下为纯二层网络,三层终结在BRAS、SR等业务接入控制点上。POP点交换机之间不允许互连。SR作为大客户的接入设备原则上不接POP点,所有POP点接入BRAS。
通过对网络拓扑的分析可以知道:利用VLAN互连的企业VPN业务已很难在现网上实现了,但是现网中的设备不论是核心路由器ALCATEL 7750 SRl2、业务路由器ALCATEL 7750SR7,还是宽带远端接入设备REDBACK SE800都对MPLS支持很好,使得MPLS VPN成为开通企业VPN的更优方案。
3三层MPLS VPN的实现
3.1三层MPLS VPN的实现原理
3.1.1三层MPLS VPN的相关概念
VPN网在发展过程中曾经碰到个两个难以解决的问题:(1)GRE、IPSec等静态隧道存在N的平方问题(即N个节点将建N*(N-1)/2个隧道),网络伸展性极差。(2)不同的VPN业务无法共用相同的地址空间。而三层MPLS VPN很好地解决了这些问题:MPLS的LSP解决了动态建立隧道问题,VRF解决了共用地址空间问题。
VRF的重要参数:RT(Route Target)表达每个VRF的路由取舍,作为BGP的路由属性被携带,而RD(Route Distinguisher)加上IPv4地址后,就变成VPN-IPv4地址族了,用来标识地址段所属VRF。
3.1.2 BGP/MPLS VPN的路由交换
BGP/MPLS VPN的路由交换过程如下:
1)CE和PE通过普通静态或IGP(Internal Gateway Protoc01)交换路由,然后redistribute(重分发)到PE上的MP-BGP。
2)PE路由器需要对一条路由进行如下操作:加上RD(RD为手工配置),变为一条VPN-IPV4路由。更改下一跳属性为自己(通常是自己的loopbaek地址)。加上私网标签(随机自动生成,无需配置),加上RT属性(RT需手工配置),通过MP-BGP发给所有的PE邻居。
例如,一个VPN-IPV4路由更新包VPN-v4 update:
RD+IP ADDR=h27:10.10.10.0/24;RD为1:27。地址段为10.10.10.0/24
Next-hop=1.1.1.1/32;下一跳改为PE1的loopbaekSOO=Paris,RT=VPN-A;RT属性
Label=(28);私网标签,数据包转发时用
3)对端PE接收VPN-v4路由并将其变为IPV4路由,然后根据本地VRF的importRT屬性加入到相应的VRF中,私网标签保留,留做转发时使用。再由本VRF的路由引入并转发给相应的CE。
3.1.3 BGP/MPLS VPN的公网标签的分配
公网标签的分配过程(动态LSP的建立):
1)PE和P路由器通过骨干网IGP学习到BGP邻居下一跳的地址。
2)通过运行LDP协议,分配标签,建立LSP通道。
3)标签用于报文转发,外层标签用来指示如何到达BGP下一跳,内层标签表示报文的出接口或者属于哪个VRF(属于哪个VPN)。
4)MPLS节点转发是基于外层标签,而不管内层标签是多少。
5)LDP标签分配遵循DU(下游主动向上游发出标签映射消息)。
例如,PEl经过P将自己的loopback(1.1.1.1/32)标签映射至PE2。
3.1.4 BGP/MPLS VPN的报文转发
报文转发的过程:
1)CE将报文发给与其相连的PE的VRF接口,PE在本VRF的路由表中进行查找,得到了该路由的公网下一跳地址(即:对端PE的loopback地址)和相应的私网标签。
2)将该报文封装一层私网标签后,在公网的标签转发表中查找下一跳地址,再封装一层公网标签后,交与MPLS转发。
例如:PE2的VRFA向地址10.10.10.10/24发送数据包,经查VRF的路由表得到该路由的公网下一跳地址PEl的loop-back 1.1.1.1/32和私网标签28,经查公网1.1.1.1/32的标签为41,则数据包标签封装如下:
3)该报文在公网上沿着LSP转发,并根据途径的每一台设备的标签转发表进行标签交换。在倒数第二跳处,将外层的公网标签弹出,交给目的PE设备。在上例中:P将数据包
4)PE设备根据内层的私网标签判断该报文的出接口和下一跳。然后去掉私网标签后,请报文转发给相应的VRF中的CE。
3.2城域网上三层MPLS VPN的实现
3.2.1网络拓扑设计思路
现业城域网上三层路由功能在业务接人控制点层面启用,接入网层面是纯二层的,并且核心路由器是不会直接接入用户业务的,所以三层MPLS VPN的PE一定会是业务接人控制点设备,包括业务路由器SR和宽带接入设备BRAS。由于业务接入控制点设备之间没有直连,它们只有依靠核心路由器才能相互通信,所以核心路由器必须作为三层MPLS VPN的P(Provid-er Router骨干网上的核心路由器)。
SR和BRAS这些PE之间需要运行MP-iBGP来交换VPN-IPV4路由,主要的实现方式有两种:
1)PE之间之间建MP-iBGP邻居。
2)选核心路由器P为RR(ROUTER REFLECTION路由反射器),PE作为其客户机。
方式I的优势是配置简单,因为SR和BRAS在普通IP路由网络里是不运行BGP协议的,因此不会担心BGP邻居间交换路由时将普通IPV4泄漏到路由表里。缺点是因为i-BGP的水平分割问题需要PE的邻居关系全互联(FULL MESH),从而存在N的平方问题。
方式II解决了平方问题,但需要注意核心路由器的普通IP路由可能注入到PE路由表里的问题。
通过以上分析可知:是否需要建RR需要根据PE设备的台数来定,若在4台以内(邻居联接数不大于6),可以选择方式I;若有5台及以上建议选择方式II。
3.2.2宜昌城域网上三层MPLS VPN的实现
宜昌PE设备共有7台,通过选核心路由器P为RR建MP-iBGP邻居,实现拓扑如图2:
实现步骤:
1)在P设备即ALCATEL 7750 SRl2上建family(协议族)为VPN-IPV4的i-BGPRR邻居关系,客户机为PE。两台核心路由器上都建,起到路由宣告的备份。通过定义路由策略过滤掉普通IPV4路由向PE的发布。
2)在P设备启用MPLS、LDP,将LOOPBACK以及与PE互联的INTERFACE(接口)加入。
3)在PE上启用VPN-IPV4 BGP,与P建立i-BGP邻居,并启用“NEXT-HOP-SELF”修改下一跳属性。
4)在PE上启用MPLS、LDP,将LOOPBACK以及与P互联的接口加入。可过滤掉非loopback地址的标签映射。(只需要建至对端PE LOOPBACK的LSP)
5)经过以上过程,三层MPLSVPN的骨干已经建好,可以检查BGP邻居是否建立,PE的LOOPBACK的标签映射是否分发,LSP是否成功建立。
6)根据客户需求规划网络资源:ip地址、VRF、RT、RD以及PE与CE路由交换的方式。规划接入网用户二层接人的方式,例如可通过QinQ实现客户的唯一标识。
7)在PE上根据规划实现CONTEXT(BRAS)或VRF(sR)的建立,实现和CE的路由的交互及向BGP的路由发布,实现用户的二层接入。
8)经过以上过程,整个三层MPLS VPN的用户业务接人就可以实现,通过在CONTEXT或VRF中查看路由表验证VPN路由是否成功分发,业务实现是否成功。
3.3三层MPLS VPN的实现总结
1)三层MPLS VPN业务的实现需要运营商规划和维护客户的路由信息。一方面减小了客户维护难度,另一方面可能客户会担心由于运营商参与的路由维护会降低VPN网的安全性。
2)运营商需要考虑在一些普通ip业务上未用BGP的设备上启用BGP,并要考虑通过路由策略完善与普通ip业务的关系。
3)通过对客户二层接人的设计可以更好的减小广播域和标识用户,是对三层MPLS VPN的安全的有效補充。
4 VPLS的实现
4.1 VPLS的实现原理
4.1.1虚电线(Pseudo Wire)
虚电线是一个双向的LSP(虚电路),它存在两个PE之间并被其建立。它的功能是将所有的广播帧和跨局域网的单播帧、组播帧从一个局域网转发到另一个局域网,使得其所连接两个局域网在数据链路层上被整合。
以太网虚电线PW技术的核心是帧的封装及其在MPLS网络中的传输控制。一个PW帧结构如下:
隧道标签
虚电路标签以太网帧头
Ip包头上层数据
隧道标签(tunnel label)用于在MPLS网络中标识一条确定的标签交换路径(LSP),也就是至端点(END-POINT)PE的外层标签,在MPLS网络中根据LDP协议分发。虚电路上标签用来标识其虚电路ID,即某一VPN。隧道标签与虚电路标签均在发送端PE处被封装,隧道标签在MPLS网络中可能被逐跳修改,而虚电路标签则一般维持不变直到帧到达接收端PE。在帧到达接收端PE后,隧道标签首先被剥离,然后,根据虚电路标签的值,转发帧到相应以太网端口。
4.1.2 MAC地址学习
VPLS桥接功能之一就是MAC地址学习。以太网的一个特征是所有的广播帧和未知目的地址的帧都会被扩散到所有的端口。为了在VPLS里实现地址扩散,所有未知地址的单播、广播和组播帧将被扩散到相应的虚电线PW,从而到达VPLS中相应的PE节点。
每个PE设备维护一个单独的转发信息库(FIB),其中包括它所学习到的所有的地址和接口标识符,以及转发VPLS流量到这些地址所需的相关信息。在VPLS中,PE从其他PE发来的源地址中学习MAC地址。为了转发帧,PE必须能够将MAC地址与虚电线PW对应起来。因此,在VPLS中的PE必须有能力在物理端口和虚电路上动态地学习MAC地址,MAC表如下:VPLS MAC地址以太网位置(端点PE)端口或PW标识
并且通过物理端口和虚电线转发和复制数据包。
4.1.3 VPLS环路的避免
任一PE只被允许接收来自其他PE的帧而不被允许再转发这些帧。这样做的目的是为了防止网络中出现环路。由于帧永远不可能被PE二次转发,所以网络中不会出现多于两个节点的路径,从而避免了环的产生。但是正如iBGP的水平分割一样,PE之间需要两两建VPLS邻居,既是全网格(FULLMESH)。相应的PW数量也存在N的平方问题。
4.1.4层次化VPLS
针对上节提到的全网格问题,利用层次化(Hierarchical)VPLS来减少虚电线的数量,其基本思想可以总结为:一个VPLS被划分成2部分,一部分称为VPLS核心层(core),另一部分称为VPLS接入层。构成核心层的PE设备被称为PE-rs,而VPLS接入层设备被称为MTU-s(Multi Tenant Unit switch多出租单元交换机)。核心层的PE-rs之间仍然采用两两互连(Hub)的方式,而核心层的PE-rs与接入层的MTU-s设备之间使用星型(Spoke)连接方式,一个MTU-s只允许有一条虚电线(冗余用途的虚电线一般设置为备份状态)与一个PE-rs相连。
4.2城域网上VPLS的实现
4.2.1网络拓扑设计思路
VPLS网络拓扑的设计,主要是从是否层次化以及从哪儿划分核心层等方面考虑。方式一:对于PE节点少的网络,可以采用简单的全网格拓扑。方式二:对于PE节点较多的网络,建议采用层次化的VPLS。对于核心层,(a)可以选择核心路由器作为核心层;(b)也可挑出几台业务接入控制点设备作为核心层。
图示如下:虚线双箭头表示核心层的PE-rs之间仍然采用两两互连(Hub)的方式;
虚线表示核心层的PE-rs与接人层的MTU-s设备之间使用星型(sooke)连接方式。
从以上图示中可以看出,方式一最简单,但是一旦PE节点过多,将会形成大量的PW数量,造成设备性能的下降和带宽的消耗。方式二(a)的网络结构是最科学的,但存在以下问题:(1)不同设备的VPLS兼容性问题;(2)核心路由器上启用VPLS是否必要及安全性问题。方式二(b)的网络结构最实用:既可满足接入业务的需要,又减小了PW的数量,同时还避免了设备VPLS兼容性问题带来的麻烦,毕竟IETF现在还没有发布VPLS的RFC文档。
4.2.2宜昌城域网上VPLS的实现
宜昌城域网采用方式二(b)实现VPLS,三台接人城区业务的BRAS SE800作为核心层PE-rs,其它BRAS作为接入层MTU-s。
实现步骤(在REDBACK SE800的版本5.03):
1)在核心层PE-rs之间建VPLS邻居:
(1)建bridge profile,定义多播、广播等的速率限制,保护现网。
(2)建vpls profile,加入VPLS邻居IP地址,类型为HUB。
(3)在contextlocal下,启用MPLS,启用LDP,在LDP中加入对端PE的ip地址,建立LsP。
21建核心层PE-rs的接入層MTU-s邻居:
(1)建bridge profile,定义多播、广播等的速率限制,保护现网。
(2)建vpls profile,加入VPLS邻居IP地址,类型为SPOKE,本地模式为PE-RS。
(3)在contextlocal下,启用MPLS,启用LDP,在LDP中加入对端PE的ip地址,建LSP。
3)建接入层MTU-s的核心层PE-rs邻居:
(1)建bridgeprofile定义多播、广播等的速率限制,保护现网。
(2)建vpls profile,加入VPLS邻居IP地址,类型为SPOKE,本地模式为MTU-S。
(3)在contextlocal下,启用MPLS,启用LDP,在LDP中加入对端PE的ip地址,建立LsP。
(4)在接入业务的PE上建VPN的context、类型为bridge的interface,然后将该interface绑到设备的业务接入端口。
4.3 VPLS的实现总结
1)根据VPLS的实现原理,PW会转发广播和组播帧,应根据实际情况做好对广播、组播、未知目的帧的速率限制,做好对学习的最大MAC数的限制,保证不会影响现有普通业务。
2)对接人网络的规模需要控制。宜昌电信建议接人单个VPLS客户网络规模小余100台设备。
3)对网络的合理分层可以减小PW数量,降低网络的消耗。
4)通过对客户接人的设计(比如采用QinQ),可以更好的减小广播域和更精确的标识用户,提高网络的安全与稳定。
5)不同厂家的VPLS的互通,一定要经过严格的测试。
5总结
本文通过对三层的BGP/MPLS VPN和二层的VPLS的技术原理的分析以及对实际应用的研究,提出了针对二层和三层VPN的相应的技术解决方案和网络拓扑设计。三层MPLS VPN技术成熟,对广播域能很好地控制,适合作为VPN的主要实现技术,接入网络规模较大的且对路由信息不很敏感的VPN客户。而VPLS实现简单,且对客户的路由信息透明,适合接入不愿透露路由信息的规模较小的客户。
目前阶段,城域网上MPLS VPN应用还只是在本地,随着CN2网络的部署和业务的加载以及与IP城域网的对接,MPLSVPN将会实现跨地域甚至跨自治域系统的业务连通;随着MPLS QOS、MPLS TE等技术应用的不断成熟,通过MPLS VPN构建一个多业务、可为用户提供有Qos保障VPN业务的IP网络将成为现实。MPLS VPN技术必将得到不断地发展,获得更为广泛的应用。