HCIP Datacom-MPLS VPN协议详解

什么是MPLS VPN?

  • MPLS VPN就是采用MPLS建立的LSP作为公网隧道来传输私网业务数据的。
  • BGP/MPLS IP VPN是一种L3VPN(Layer 3 Virtual Private Network)。它使用BGP(Border Gateway Protocol)在服务提供商骨干网上发布VPN路由,使用MPLS(Multiprotocol Label Switch)在服务提供商骨干网上转发VPN报文。这里的IP是指VPN承载的是IP(Internet Protocol)报文。

MPLS VPN网络结构

  • BGP/MPLS IP VPN的基本模型由三部分组成:CE、PE和P。

    • CE(Customer Edge):用户网络边缘设备,有接口直接与服务提供商网络相连。CE可以是路由器或交换机,也可以是一台主机。通常情况下,CE“感知”不到VPN的存在,也不需要支持MPLS。

    • PE(Provider Edge):是服务提供商网络的边缘设备,与CE直接相连。在MPLS网络中,对VPN的所有处理都发生在PE上,对PE性能要求较高。

    • P(Provider):服务提供商网络中的骨干设备,不与CE直接相连。P设备只需要具备基本MPLS转发能力,不维护VPN信息。

示例图片

  • PE和P设备仅由服务提供商管理;CE设备仅由用户管理,除非用户把管理权委托给服务提供商。

  • 一台PE设备可以接入多台CE设备。一台CE设备也可以连接属于相同或不同服务提供商的多台PE设备。

MPLS VPN技术架构

  • MP-BGP:负责在PE与PE之间传递站点内的路由信息。普通的BGP无法承担VPN-IPV4的路由,因此我们需要使用该技术来支持VPN-IPV4路由

  • MPLS LDP:负责PE与PE之间的隧道建立。

  • VRF:负责PE的VPN用户管理。不同公司的多个站点,难免会出现地址冲突等情况,于是为了区分这些服务,我们用对应的设备上创建VRF,可以理解为在同一台设备上创建了多个虚拟设备,同属于一个VRF的数据使用相同的服务。

MPLS VPN常见组网

  • Internet:一个VPN中的所有用户形成闭合用户群,相互之间能够进行流量转发,VPN中的用户不能与任何本VPN以外的用户通信。对于这种组网,需要为每个VPN分配一个VPN Target,作为该VPN的Export Target和Import Target,并且,此VPN Target不能被其他VPN使用。

示例图片

  • Extranet:一个VPN用户希望提供部分本VPN的站点资源给非本VPN的用户访问,可以使用Extranet组网方案。对于这种组网,如果某个VPN需要访问共享站点,则该VPN的Export Target必须包含在共享站点的VPN实例的Import Target中,而其Import Target必须包含在共享站点VPN实例的Export Target中。

示例图片

  • Hub&Spoke:如果希望在VPN中设置中心访问控制设备,其它用户的互访都通过中心访问控制设备进行,可以使用Hub&Spoke组网方案,从而实现中心设备对两端设备之间的互访进行监控和过滤等功能。

    对于这种组网,需要设置两个VPN Target,一个表示“Hub”,另一个表示“Spoke”。

    各Site在PE上的VPN实例的VPN Target设置规则为:

    • 连接Spoke站点(Site 1和Site 2)的Spoke-PE:Export Target为“Spoke”,Import Target为“Hub”;
    • 连接Hub站点(Site 3)的Hub-PE:Hub-PE上需要使用两个接口或子接口,一个用于接收Spoke-PE发来的路由,其VPN实例的Import Target为“Spoke”;另一个用于向Spoke-PE发布路由,其VPN实例的Export Target为“Hub”

示例图片

MPLS VPN路由发布

  • 在基本MPLS L3VPN组网中,VPN路由信息的发布涉及CE和PE,P路由器只维护骨干网的路由,不需要了解任何VPN路由信息。PE路由器也只维护与它直接相连的VPN的路由信息,不维护所有VPN路由。因此,MPLS L3VPN网络具有良好的可扩展性。

    VPN路由信息的发布过程包括三部分:

    • 本地CE到入口PE、

    • 入口PE到出口PE、

    • 出口PE到远端CE。

      完成这三部分后,本地CE与远端CE之间将建立可达路由,VPN私网路由信息能够在骨干网上发布。

本地CE到入口PE的路由信息交换

  • CE与直接相连的PE建立邻接关系后,把本站点的VPN路由发布给PE。

  • CE与PE之间可以使用静态路由、RIP、OSPF、IS-IS或EBGP。无论使用哪种路由协议,CE发布给PE的都是标准的IPv4路由。

入口PE到出口PE的路由信息交换

  • PE从CE学到VPN路由信息后,存放到VPN实例中。同时,为这些标准IPv4路由增加RD,形成VPN-IPv4路由。
  • 入口PE通过MP-BGP的Update报文把VPN-IPv4路由发布给出口PE。Update报文中携带Export VPN Target属性及MPLS标签。
  • 出口PE收到VPN-IPv4路由后,在下一跳可达的情况下进行路由交叉、隧道迭代和路由优选,决定是否将该路由加入到VPN实例的路由表。被加入到VPN路由表的路由,本地PE为其保留如下信息以供后续转发报文时使用:
    • MP-BGP Update消息中携带的MPLS标签值
    • Tunnel ID

出口PE到远端CE的路由信息交换

  • 远端CE有多种方式可以从出口PE学习VPN路由,包括静态路由、RIP、OSPF、IS-IS和EBGP,与本地CE到入口PE的路由信息交换相同。

示例图片

VRF

  • Virtual Routing and Forwarding,虚拟路由转发,又称VPN实例。

RD

  • RD用于区分使用相同地址空间的IPv4前缀,增加了RD的IPv4地址称为VPN-IPv4地址(即VPNv4地址)。PE从CE接收到IPv4路由后,转换为全局唯一的VPN-IPv4路由,并在公网上发布。

  • RD的结构使得每个服务供应商可以独立地分配RD,但为了在CE双归属的情况下保证路由正常,必须保证PE上的RD全局唯一。

VPN-IPv4地址

  • 传统BGP无法正确处理地址空间重叠的VPN的路由。假设VPN1和VPN2都使用了10.110.10.0/24网段的地址,并各自发布了一条去往此网段的路由。虽然本端PE通过不同的VPN实例可以区分地址空间重叠的VPN的路由,但是这些路由发往对端PE后,由于不同VPN的路由之间不进行负载分担,因此对端PE将根据BGP选路规则只选择其中一条VPN路由,从而导致去往另一个VPN的路由丢失。

  • PE之间使用MP-BGP(Multiprotocol Extensions for BGP-4,BGP-4的多协议扩展)来发布VPN路由,并使用VPN-IPv4地址来解决上述问题。

  • VPN-IPv4地址共有12个字节,包括8字节的路由标识符RD(Route Distinguisher)和4字节的IPv4地址前缀,

————————————————

参考文章链接如下: