前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >MPLS VPN

MPLS VPN

原创
作者头像
Nujil
修改2024-08-31 11:15:10
修改2024-08-31 11:15:10
2K0
举报
文章被收录于专栏:CNotesCNotes

MPLS VPN基本特征

MPLS VPN是指利用MPLS在IP骨干网络上构建VPN的技术。VPN的实质就是在公网上像私有专用网一样传输业务数据,这就需要在公网上建立一条隧道,让数据报文通过隧道直达目的地,从而达到私有专用网络的效果。概括地讲,MPLS VPN就是采用MPLS建立的LSP作为公网隧道来传输私网业务数据的。

MPLS VPN基本架构及网络组件

MPLS VPN网络主要是分为由P路由器和PE路由器组成的互联网服务提供商网络(Provider Network)和由CE路由器以及客户端设备组成的客户站点网络(Customer Network)。

图中给出了MPLS VPN架构所使用的各个网络组件。

  • P:运营商网络设备(Provider),并不直接和客户端设备相连接,位于互联网运营商网络内部,P网络是由运营商管理的核心MPLS/IP网络,P设备一般不知道VPN客户端的网络,也不知道客户端的具体路由信息,它主要负责的就是在MPLS VPN Backbone内部传输MPLS标签数据。
  • PE:运营商边界路由器(Provider Edge),网络运营商的边界路由器,支持MPLS,与客户边界设备相互连接,提供给VPN终端客户连接和服务。在PE设备上,使用VRF(Virtual Routing and Forwarding)来对不同的VPN客户进行隔离。PE设备通过和客户设备运行三层路由协议来获取客户端的路由信息,并将路由声称的VPNv4前缀放到MPLS VPN Backbone内经由P设备一直传递到对端的PE设备。
  • CE:客户边界设备(Customer Edge),位于客户网络中的设备,由终端用户管理,作为客户网络与运营商网络之间的网关,主要功能是将VPN客户端的路由通过PE与CE之间的路由协议通告给PE设备,以及从PE设备学习到在同一个VPN下的其他客户站点的路由信息。
  • ASBR:自治系统边界路由器(Autonomous System Boundary Router),是互联网运营商的自主系统边界路由器,主要是实现邻接自主系统之间的连接,在跨ISP的网络中用到。

MPLS VPN控制层面逻辑结构

在前面的MPLS基本架构中我们提到MPLS的控制层面,通过Control Plane的工作图我们可以看到:在LSR(MPLS VPN体系中,LSR包括PE设备和P设备)中,PE设备Control Plane通过路由协议与客户端CE设备和其他LSR设备进行路由信息交互,建立路由,标签交换信息和路由表的绑定信息,形成LIB标签交换信息表。之后再根据路由表和LIB表生成FIB转发信息表和LFIB标签转发信息库。PE设备与BGP邻居通过MPLS VPN Backbone内路由协议将路由和标签传递到对端CE路由器,同时注入LIB表、FIB表和LFIB表。MPLS VPN核心内部的P路由器不知道客户端的具体路由信息,从而缩小了P路由器的路由表,提高了转发效率。

虚拟路由转发VRF

MPLS VPN的最大亮点在于,它可以有效的隔离客户端网络和客户路由信息,即使这些信息穿越了MPLS VPN Backbone区域,这就使得就算是不同的客户端用户拥有相同的IPV4地址规划也不会产生影响。那么这一功能是如何得以实现的呢?这里就引入了在PE设备上的一个VRF的概念。

VRF:虚拟路由及转发(Virtual Routing and Forwarding),是一种VPN路由转发实例。一台PE设备要实现对不同客户端VPN用户的隔离就需要为每一个VPN用户创建一个VRF,并且同时为其维护一张独立的VRF路由表,并且每一张VRF路由表都是同PE设备的路由表及其他VPN用户的VRF路由表相互隔离的。而在创建了VRF之后,PE设备可以将特定的物理或者逻辑接口放入到这个VRF内,此时被放入的接口将只为该VRF服务,而与其他IP路由和其他VRF相隔离。这就相当于在一台PE设备上拥有了多台虚拟的路由器,可以轻松的实现不同VPN客户端的隔离。

路由区分符RD

当多个VPN用户的客户信息在MPLS VPN网络内进行传输的过程中,可能会存在着重叠IPV4地址空间的问题,为了保证不同VPN客户地址空间的唯一性,MPLS VPN在VRF中使用了RD值来保障VRF前缀的唯一性。

RD:路由区分符(Route Distinguisher),8个字节(64位)长度;RD的主要作用就是同32位的IPV4地址结合构成一个96位的VPNv4地址前缀,这个地址前缀在MPLS VPN骨干网络中传输。即使不同的VPN客户拥有相同的IPV4地址,那么只要设置不同的RD值就可以进行地址的区分,不会造成地址重叠的问题。此外,一个VPN可以设置多个RD值来规划客户。

RD的表现形式一般有两种:

  • AS:nn, 这种是最常用的一种表现形式,其中的AS代表IANA分配给互联网服务提供商的AS号,nn代表编号,是服务提供商分配给VRF的唯一号码。
  • IP-Address:nn ,nn代表的和上面的一样,IP-Address则表示客户端的IP地址。

路由目标RT

RT:路由目标(Route Target)是在VRF中进行配置,跟随在VPNv4前缀后面一起在网络中传递,用以区分不同的VPN的客户,进行路由信息的分发;是属于BGP团体的扩展属性。一条路由可以附加多个RT值。它分为以下两种:

(1)Export RTs:是路由信息的导出策略。当我们在VRF中设置Export RT值之后,VRF中生成的VPNv4路由将会协同该RT值,一起以BGP扩展属性团体的方式进行传递。

(2)Import RTs:是路由信息的导入策略。Import RT起到一个识别筛选的作用;当PE设备从其他的对等体PE设备那里收到携带RT值的VPNv4前缀的时候,PE设备并不会马上将这些VPNv4路由以IPV4地址的形式封装到VRF路由表内,只有当收到的VPNv4前缀中的RT和本地的VRF中所配置的Import RTs相匹配的时候,这些VPNv4前缀才会以IPV4的形式被加入到相应的VRF路由表内。RT的这个功能起到了至关重要的作用,在非常多的场景中都有应用,同时,VPNv4路由前缀可能携带了多个RT值,此时,只要有一个可以匹配的Import RT即可。

MPLS VPN数据层面传递过程

MPLS VPN数据层面的主要作用同MPLS的DATA Plane一样,主要是基于标签进行数据转发。这里我们主要是通过对MPLS VPN数据传递的整个过程的研究来分析具体额数据转发和标签分发的过程。

MPLS VPN数据传递总体流程

  • 首先,CE需要将VPN客户端网络的路由信息传递到PE设备上,这需要CE和PE设备之间选择一种路由协议来实现路由信息的交互,路由协议的选择是多样的,可以选择静态路由,RIP,OSPF,EIGRP,IS-IS,甚至BGP等等,具体需要依据客户端网络和PE设备之间的实际组网情况来选择。PE设备从VPN客户端网络那里学习到客户的路由信息时,由于PE上连接CE设备的接口会被放入一个VRF中因此,学习到的路由条目会被放入到VRF路由表内,如图所示:
  • 为了满足在MPLS VPN Backbone内可以承载VPNv4路由信息,同时又要满足互联网服务提供商的极大路由信息条目的承载传输能力,这里在PE设备之间运行的是经过扩展的BGP协议,MP-BGP协议。在经过第一步PE和CE之间路由信息交互后,PE设备中的VRF已经有了VPN客户路由信息,接下来就需要让MP-BGP去获取这些路由信息。在这里,如果PE和CE之间运行的是非BGP协议,那么需要在PE上做路由重分发把路由条目重分发进MP-BGP。此时,VPN客户的路由条目前添加了RD,构成了VPNv4前缀,同时,RT也被添加到了该VPNv4前缀中并在MPLS网络中开始传递了。
  • 由于在MPLS VPN Backbone区域PE之间运行了MP-BGP协议,PE之间建立起了MP-BGP邻接关系,PE所产生的VPNv4前缀以及相关联的MPLS标签,RT,BGP属性等就可以通过网络传递到对端PE设备上。如图所示:
  • 由本地PE传递过去的信息到了对端的PE上之后,因为对端的PE也配置了VRF,并且在其中定义了Import RTs,对端PE会根据RTs把收到的VPNv4路由前缀导入进特定的VRF,同时,RD值将从VPNv4路由中被移除。随后,IPV4路由信息就会被添加到VRF路由表内。如图所示:

过程同(1)一样,通过PE和CE之间的路由协议把PE上的IPV4路由信息传递给CE设备,完成两端通信,至此,MPLS VPN数据传递总体流程就结束了。

MPLS VPN标签转发过程

由于在P路由器中我们不会去设置VRF,P设备根本就不会存在VRF路由表,所以PE从CE学习到的路由信息无法以纯IP的形式在源端和目的端之间进行转发。此时我们就需要通过MPLS标签报文来解决这个问题。我们会在MPLS VPN Backbone内使所有的P,PE设备运行LDP,使整个MPLS域内建立起LDP邻居关系,从客户端过来的路由信息和数据报文都会被添加上一层标签,在穿越MPLS VPN Backbone区域的时候,P路由器就算没有VRF路由信息,它也可以传递这些信息,因为它只需要对这层标签进行传输和转发就可以了,P设备永远都不用执行目的IP的查找工作。对于这一层标签,我们称之为LDP标签(IGP标签)。这里我们需要注意的是,为了使MPLS VPN Backbone的设备成功建立LDP邻居关系,我们需要在P,PE设备上运行IGP路由协议,使这个区域内的IGP路由都可达,这样才能保证。

LDP标签成功解决了VPN客户端数据在MPLS VPN Backbone区域内传输转发问题,而当数据到了PE设备上时,如何来判断具体的报文是属于PE设备上定义的哪一个VRF?这里我们加入了另外一层标签来说明,称之为VPN标签。由此看来,一个完整的传输报文会有两层标签:LDP标签和VPN标签。LDP标签通过LDP协议在Backbone区域内逐跳转发;VPN标签则是用于单纯的PE设备之间通过MP-BGP来进行通告。我们可以通过图3.5来详细分析。

首先,VPN客户端Customer发来的IP数据报文到达Ingress PE后,Ingress PE会给接收到的原始的IP报文先打上一层VPN标签(图7中的橙色“V”标签),该层标签是由Egress PE为目的地路由前缀分配的并通过MP-BGP告知给Ingress PE的。有了这层标签,当报文传输到对端Egress PE的时候,路由器就知道这个报文应该传输给哪一个CE设备了。

而要想让报文在MPLS VPN Backbone内传输的话还需要一层LDP标签(IGP标签,图中紫色“L1”,“L2”标签),该层标签由LDP发放,有了这层标签,就可以使报文在Backbone区域内正确转发传输,直至引导到正确的Egress PE设备上。

当带有两层标签的数据包传输到Egress PE上时,Egress PE就会把LDP标签移除掉(该标签的工作已经完成了),然后查找数据包内对应的VPN标签具体对应的是哪一个客户端CE设备,然后把VPN标签也移除掉,把IP数据报文通过相应的接口传输给正确的Customer。

MPLS L2VPN和MPLS L3VPN主要的区别为:

  • 在MPLS L2VPN中,MPLS网络只为用户提供一条二层的隧道连接,通过这个二层隧道将用户的私网报文从一端CE透传到另一端CE,MPLS网络中的PE设备和P设备不保存用户网络的任何二层和三层信息。
  • 而在MPLSL3VPN中,MPLS网络的PE设备需要保留用户的三层路由信息,对于用户的私网报文需要查找PE设备上的私网路由表才可以进行转发。

MPLS L2VPN 与 BGP/MPLS VPN 的差异可以总结如下:

相同点有
  • 都是通过标签标记私网VPN。L3VPN是使用私网标签标记私网路由,L2VPN是使用私网标签标记虚拟链路。
  • 公网都可以走LSP、GRE、TE等隧道,带有私网标签的MPLS报文通过这些隧道到达对端PE,并根据私网标签作进一步转发。
不同点有:
  • 承载的数据类型不同。L3VPN面向三层,只能承载IP报文;L2VPN面向二层,可以在链路层上承载任意三层协议,如IP、IPX等。
  • 参与的角色不同。L3VPN 需要与 CE 交换 VPN 路由,并为每个VPN维护独立的路由表,并参与计算路由、选择最优路由和路由发布;L2VPN只保证 CE 间二层链路的正常连接,作为一种报文透传机制,不参与用户的任何三层协议功能。
  • 分发私网标签的协议不同。L3VPN使用MP-BGP为VPN路由分发私网标签,L2VPN根据不同的类型,使用LDP、MP-BGP为虚链路分发私网标签(MSR CCC和SVC方式也可以手工指定静态标签)。
  • 网络拓扑不同。L3VPN的每个VPN可以与一个或多个VPN互通;L2VPN是点对点的,一条链路只能与一条链路互通。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • MPLS VPN基本特征
  • MPLS VPN基本架构及网络组件
  • MPLS VPN控制层面逻辑结构
    • 虚拟路由转发VRF
    • 路由区分符RD
    • 路由目标RT
    • MPLS VPN数据层面传递过程
    • MPLS VPN数据传递总体流程
  • MPLS VPN标签转发过程
  • MPLS L2VPN和MPLS L3VPN主要的区别为:
    • MPLS L2VPN 与 BGP/MPLS VPN 的差异可以总结如下:
      • 相同点有
      • 不同点有:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档