MPLS VPN知识汇总

发布时间:2024年01月24日

? ? ? ?MPLS VPN不是单一的一种VPN技术,是多种技术结合的综合解决方案。除非特别指出,否则MPLS VPN即指BGP/MPLS IP VPN。

术语介绍

MPLS VPN

BGP/MPLS IP VPN 网络一般由运营商搭建,VPN用户购买VPN服务来实现用户网络之间的路由传递。

MPLS VPN 使用BGP在运营商骨干网(IP 网络?)上发布VPN路由,使用MPLS在运营商网络上传输VPN报文。BGP/MPLS IP VPN 又被简称为MPLS VPN,是一种L3VPN(Layer 3 VPN,3 层VPN)技术

MPLSVPN的骨干网也可以由企业自行搭建,技术层面与运营商搭建基本一致

CE、PE、P?

  1. CE:用户网络边缘设备,有接口直接与运营商网络相连。
  2. CE可以是路由器或交换机,也可以是一台主机。通常情况下,CE不“感知”VPN的存在,也不需要支持MPLS。
  3. PE:运营商边缘路由器,是运营商网络的边缘设备,与CE直接相连。在MPLS网络中,对VPN的所有处理都发生在PE上,对PE性能要求较高。
  4. P:运营商网络中的骨干路由器,不与CE直接相连。P设备只需要具备基本MPLS转发能力,不维护VPN相关信息。

站点与VPN

  1. 站点:站点是指相互之间具备IP连通性的一组IP系统,并且这组IP系统的IP连通性不需通过运营商网络实现。站点的划分是根据设备的拓扑关系,而不是地理位置。
  2. 如图所示,公司A的X省网络和公司A的Y省网络需要通过运营商的骨干网进行互联,所以它们被划分为两个站点。若在当前X省网络和Y省网络的CE之间增加一条物理专线,不需要通过运营商网络就可以互通,那么这两张网络就是一个站点

  3. 对于多个连接到同一服务提供商网络的站点,通过制定策略,可以将它们划分为不同的集合,只有属于相同集合的站点之间才能通过服务提供商网络互访,这种集合就是VPN
  4. 一个Site中的设备可以属于多个VPN,换言之,一个Site可以属于多个VPN。

MP-BGP

MP-BGP(MultiProtocolBGP):拓展的BGP协议,可提供对多种地址族的支持

VRF

VRF(Virtual Routing and Forwarding,虚拟路由转发),又称VPN实例,是MPLS VPN架构中的关键技术,每个VPN实例使用独立的路由转发表项,实现VPN之间的逻辑隔离。

VRF技术实现了同一物理设备上不同网络之间的逻辑隔离,当在物理设备上部署多个VRF实例时,每一个VRF实例就相当于一个虚拟的网络设备。VRF实例之间的接口和路由天然隔离,当同一个物理设备连接到多个相同的网段时,也不用担心IP地址冲突的问题。
?VRF技术广泛应用在防火墙虚拟系统、BGP/MPLSIPVPN等多个场景中。?

MPLS VPN 技术架构

MPLS VPN不是单一的一种VPN技术,是多种技术结合的综合解决方案,主要包含下列技术:

  1. MP-BGP:负责在PE与PE之间传递站点内的路由信息。
  2. LDP:负责PE与PE之间的隧道建立。
  3. VRF:负责PE的VPN用户管理。

静态路由、IGP、BGP:负责PE与CE之间的路由信息交换。

MPLS VPN 优势

对VPN客户而言:

  1. 不“感知” VPN的存在,不需要部署和维护VPN,降低企业运维难度和成本。
  2. 一般部署在运营商的MPLS VPN专网上,有一定的安全性保障。

对于运营商而言:

  1. MPLS在无连接的IP网络中增加了面向连接的控制平面,为IP网络增添了管理和运营的手段。
  2. 支持地址空间重叠。
  3. 组网方式灵活、可扩展性好。
  4. 能够方便地支持MPLS TE合理调控现有网络资源,最大限度的节省运营商成本。

MPLS TE(MPLS Traffic Engineering,MPLS流量工程):基于一定约束条件LSP隧道,并将流量引入到这些隧道中进行转发,使网络流量按照指定的路径进行传输。可以在不进行硬件升级的情况下对现有网络资源进行合理调配和利用,并对网络流量提供带宽和QoS保证,最大限度的节省成本。

MPLS VPN常见组网

根据VPN用户的需求不同,可采用以下几种常见的组网方案:

  1. Intranet:一个VPN中的所有用户形成闭合用户群,同一VPN站点之间可以互访,不同VPN站点间不能互访。
  2. Extranet:适用于一个VPN用户希望提供部分本VPN的站点资源给其他VPN的用户访问的场景。
  3. Hub&Spoke:如果希望在VPN中设置中心访问控制设备,其它用户的互访都通过中心访问控制设备进行,可采用Hub&Spoke组网方案。

Intranet组网是最简单也是最典型的MPLS VPN组网方案,

MPLS VPN路由发布概述

若想实现同一个VPN的不同站点之间的通信,首先需要完成不同站点之间的路由交互。在基本MPLS VPN组网中,VPN路由信息的发布涉及CE和PE,P路由器只维护骨干网的路由,不需要了解任何VPN路由信息。 VPN路由信息的发布过程包括三部分:

  1. 本地CE到入口PE。
  2. 入口PE到出口PE。
  3. 出口PE到远端CE。

CE与PE之间的路由信息交换

如图,客户X和客户Y属于不同的VPN,分别拥有两个站点,现需要实现站点间的路由信息交互。

CE与PE之间可以使用静态路由、OSPF、IS-IS或BGP交换路由信息。无论使用哪种路由协议,CE和PE之间交换的都是标准的IPv4路由。

本地CE到入口PE和出口PE到远端CE的路由信息交换原理完全相同。

入口PE到出口PE路由传递(1)

VPN是一种私有网络,不同的VPN独立管理自己的地址范围,也称为地址空间(address space)。

PE在接收到CE传递来的路由之后,需要独立保存不同VPN的路由,且需要解决不同的客户使用重叠IP地址空间的问题。

VRF

例如图中用户X和用户Y都使用192.168.1.0/24网段地址。

??? ?以下两种情况允许VPN使用重叠的地址空间:

  1. 两个VPN没有共同的站点;
  2. 两个VPN有共同的站点,但此共同站点中的设备不与两个VPN中使用重叠地址空间的设备互访。

RD

PE收到不同VPN的CE发来的IPv4地址前缀,本地根据VPN实例配置去区分这些地址前缀。但是VPN实例只是一个本地的概念,PE无法将VPN实例信息传递到对端PE,故有了RD(Route Distinguisher,路由标识符)。

  1. RD长8字节,用于区分使用相同地址空间的IPv4前缀。
  2. PE从CE接收到IPv4路由后,在IPv4前缀前加上RD,转换为全局唯一的VPN-IPv4路由。

??? ?配置RD时,只需要指定RD的Administrator子字段和Assigned Number子字段。
??? ?RD的配置格式有四种,常用的两种如下:
??????????? ?16 bit自治系统号:32 bit用户自定义数字(例如:100:1)。
??????????? ?32 bit IPv4地址:16 bit用户自定义数字(例如:172.1.1.1:1)。
??? ?RD的结构使得每个运营商可以独立地分配RD,但为了在某些应用场景下保证路由正常,必须保证RD全局唯一。

VPN-IPv4地址

VPN-IPv4地址又被称为VPNv4地址:VPNv4地址共有12个字节,包括8字节的路由标识符RD(Route Distinguisher)和4字节的IPv4地址前缀。

?入口PE到出口PE路由传递 (2)

PE之间建立BGP邻居关系,并通过BGP进行路由传递。为什么采用BGP呢?

  1. BGP使用TCP作为其传输层协议,提高了协议的可靠性。可以跨路由器的两个PE设备之间直接交换路由。
  2. BGP拓展性强,为PE间传播VPN路由提供了便利。
  3. PE之间需要传送的路由条目可能较大,BGP只发送更新的路由,提高传递路由数量的同时不占用过多链路带宽。
  4. 传统的BGP-4不支持处理VPNv4路由。

MP-BGP

为了正确处理VPN路由,MPLS VPN使用RFC2858(Multiprotocol Extensions for BGP-4)中规定的MP-BGP,即BGP-4的多协议扩展。

MP-BGP采用地址族来区分不同的网络层协议,既可以支持传统的IPv4地址族,又可以支持其它地址族(比如VPN-IPv4地址族、IPv6地址族等)。

MP-BGP新增了两种路径属性:

  1. MP_REACH_NLRI:Multiprotocol Reachable NLRI,多协议可达NLRI。用于发布可达路由及下一跳信息。

MP_UNREACH_NLRI:Multiprotocol Unreachable NLRI,多协议不可达NLRI。用于撤销不可达路由。

??? ?NLRI:Network Layer Reachability Information,网络层可达信息。
??? ?关于地址族的一些取值请参考RFC3232(Assigned Numbers)。
??? ?MP_REACH_NLRI用于发布可达路由及下一跳信息。该属性由一个或多个三元组<地址族信息、下一跳信息、网络可达性信息>组成,格式如下:
??? ?地址族信息(Address Family Information)域:由2字节的地址族标识AFI
(Address Family Identifier)和1字节的子地址族标识SAFI(Subsequent Address Family Identifier)组成。
??? ?AFI标识网络层协议,对应RFC3232的“Address Family Number”所定义的地址族值。例如IPv4的值是1,IPv6的值是2。
??? ?SAFI表示NLRI的类型。AFI值为1,SAFI值为128表示NLRI中的地址为MPLS-labeled VPN-IPv4地址。
??? ?下一跳信息(Next Hop Network Address Information)域:由一字节的下一跳网络地址长度和可变长度的下一跳网络地址组成。
??? ?网络层可达性信息(NLRI)域:由一个或多个三元组<长度、标签、前缀>组成,该部分内容将在后面的课程里详细介绍。

??? ?MP_UNREACH_NLRI用于通知对等体删除不可达的路由。该属性的格式如下:
??? ?地址族标识AFI:与MP_REACH_NLRI属性中的相同。
??? ?子地址族标识SAFI:与MP_REACH_NLRI属性中的相同,表示NLRI的类型。
??? ?撤销路由(Withdrawn Routes):不可达路由列表,也是由一个或多个NLRI组成。BGP发言者可以通过在撤销路由域中携带与之前发布的可达路由中相同的NLRI来撤销路由。
??? ?MP-BGP的报文类型、VPNv4路由发布策略仍与普通BGP相同。

入口PE到出口PE路由传递 (3)

MP-BGP将VPNv4传递到远端PE之后,远端PE需要将VPNv4路由导入正确的VPN实例。

MPLS VPN使用BGP扩展团体属性:VPN Target(也称为Route Target)来控制VPN路由信息的发布与接收。

本地PE在发布VPNv4路由前附上RT属性,对端PE在接到VPNv4路由后根据RT将路由导入对应的VPN实例。

RT

Export Target(ERT):本地PE从直接相连站点学到IPv4路由后,转换为VPN IPv4路由,并为这些路由添加Export Target属性。Export Target属性作为BGP的扩展团体属性随路由发布。

Import Target(IRT):PE收到其它PE发布的VPN-IPv4路由时,检查其Export Target属性。当此属性与PE上某个VPN实例的Import Target匹配时,PE就把路由加入到该VPN实例的路由表。

??? ?与RD相同,RT由Type、Administrator和Assigned Number三个字段构成,长度也是8字节。
??? ?配置VPN-Target时,只需要指定VPN-Target的Administrator子字段和Assigned Number子字段。VPN-Target的配置格式与RD格式一致。

入口PE到出口PE路由传递 (4)

PE根据VPNv4路由所携带的RT将路由导入正确的VPN实例之后,VPNv4路由的RD值剥除,将IPv4路由通告给相应的客户的CE设备。

站点B和站点D的CE设备就能学习到去往各自远端站点的路由。同理,通过一系列的操作,可以实现同一用户(同一VPN)不同站点之间的路由互通。

数据转发时遇到的问题

通过标签解决问题

入口PE到出口PE路由传递 (5)

PE和P设备之间运行LDP,交换公网标签,建立PE之间的LSP隧道(公网隧道)。

入口PE在通过MP-BGP传递VPNv4路由时,会携带私网标签,用于区分不同VPN的数据。

出口PE在接收到VPNv4路由后,需要执行私网路由交叉和隧道迭代来选择路由。

??? ?PE上分配私网标签的方法有如下两种:
??? ?基于路由的MPLS标签分配:为VPN路由表的每一条路由分配一个标签(one label per route)。这种方式的缺点是:当路由数量比较多时,设备入标签映射表ILM(Incoming Label Map)需要维护的表项也会增多,从而提高了对设备容量的要求。
??? ?基于VPN实例的MPLS标签分配:为整个VPN实例分配一个标签,该VPN实例里的所有路由都共享一个标签。使用这种分配方法的好处是节约了标签。
??? ?私网路由交叉:VPNv4路由与本地VPN实例的VPN-Target进行匹配的过程称为私网路由交叉。PE在收到VPNv4路由后,既不进行优选,也不检查隧道是否存在,直接将其与本地的VPN实例进行交叉。
??? ?隧道迭代:为了将私网流量通过公网传递到另一端,需要有一条公网隧道承载这个私网流量。因此私网路由交叉完成后,需要根据目的IPv4前缀进行路由迭代,即该IPv4路由的下一跳有对应的LSP存在;只有隧道迭代成功,该路由才被放入对应的VPN实例路由表。

MPLS VPN中的路由交互全过程

文章来源:https://blog.csdn.net/shangdichengfo/article/details/135753058
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。