MPLS virtual private network基础内容

VPN基础:

VPN是指利用IP基础设施(比如公用的 Internet或专用的IP骨干网等)来实现专用广域网专线技术(比如DDN 等)的业务仿真技术。通俗地讲,就是企业利用公共网络来建立私网的连接。在这个私网的连接上传送的业务流量对于公网来说是不可见的,当然跟其他私网的连接也是相互隔离起来的。

随着加密、隧道等技术的不断出现,客户对VPN组网的需要也在发生变化,衍生出了多种VPN类型:

  1. 按VPN的应用分类
    Remote Access VPN(远程接入VPN):客户端到网关,使用公网作为骨干网在设备之间传输VPN 数据流量。Intranet VPN(内联网VPN):网关到网关,通过公司的网络架构连接来自同公司的资源。Extranet VPN(外联网VPN):与合作伙伴企业网构成Extranet,将一个公司与另一个公司的网络进行连接。

  2. 按VPN的协议分类
    VPN的隧道协议主要4种:PPTP,L2TP、IPSec和 MPLS,其中,PPTP和L2TP协议工作在TCP/IP第二层,又称为二层隧道协议;IPSec是第三层的隧道协议,也是最常见的协议。L2TP和IPSec配合使用是目前性能最好且企业网络中应用较为广泛的一种;MPLS是基于第二层之上和第三层之下的隧道技术。

MPLS VPN概述:

MPLS VPN是一种基于MPLS技术的IP VPN,是在网络路由和交换设备上应用MPLS (Multiprotocol Label Switching,多协议标记交换)技术,简化核心路由器的路由选择方式,利用结合传统路由技术的标签交换实现的IP虚拟专用网络(IP VPN)。MPLS的优势在于将二层交换和三层路由技术结合起来,在解决VPN、服务质量(QoS)和流量工程(TE)这些IP网络的重大问题时具有很优异的表现。因此,MPLS VPN在解决企业互连、提供各种新业务方面也越来越被运营商看好,成为在运营商网络中提供增值业务的重要手段。MPLS VPN 又可分为二层 MPLS VPN(即 MPLS L2 VPN)和三层MPLS VPN(即 MPLS L3 VPN)。本笔记的内容主要是三层的MPLS VPN。

由于MPLS VPN是基于公网的骨干网来构建的,因此为企业各站点之间的通信提供了强大的传输能力,节省了企业内网互连的成本,减轻了用户网络运营和管理的负担,同时又能满足用户数据的安全、带宽等方面的需求。目前在基于IP网络中的MPLSVPN具有以下优点。

  1. 降低了成本。
    MPLS简化了ATM与IP的集成技术,有效地结合了L2和L3技术,降低了成本,保护了用户的前期投资。
  2. 提高了资源利用率。
    由于在骨干网中使用标签交换,因此用户各站点的局域网可以使用重复的IP地址,提高了IP地址资源利用率。
  3. 提高了网络速率。
    由于使用标签交换,因此缩短了每一跳过程中地址搜索的时间,减少了数据在网络传输中的时间,提高了网络速度。
  4. 提高了灵活性和可扩展性。
    由于MPLS使用的是Any to Any的连接,因此提高了网络的灵活性和可扩展性。灵活性方面,可以制订特殊的控制策略,满足不同用户的特殊需求,实现增值业务。扩展性包括:一是网络中可以容纳的VPN数目更大,二是在同一VPN中的用户很容易扩充。
  5. 方便了用户。
    MPLS技术将更广泛地应用在各个运营商的网络当中,这样给企业用户建立全球的VPN带来极大的方便。
  6. 安全性高。
    用户的数据在 MPLS网络中传递时,是以隧道(LSP)的方式传递的,所以 MPLS具有像帧中继和ATM类似的高可靠安全性。
  7. 业务综合能力强。
    网络能够提供数据、语音、视频相融合的能力。 MPLS 的QoS保证。用户可以根据不同的业务需求,通过在CE端的配置来赋予不同的QoS等级。通过这种QoS技术,既保证了网络的服务质量,又降低了用户的费用
  8. 适用于较大的企事业单位。
    适用于具有以下特征的企业:高效动作、商务活动频繁、数据通信量大、对网络依赖度高、有很多分支机构,如互联网公司、IT公司、金融业、贸易行业、新闻机构等。企业网的节点数较多,通常将达到几十个以下。而像城域网这样的网络环境,业务类型多样、业务流向流量不确定,特别适合使用MPLS VPN。

MPLS VPN的基本构成:

在这里插入图片描述
MPLS VPN也称为BGP/MPLS IP VPN的基本模型由三部分组成:CE、PE和P。

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

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

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

    PE和P设备仅由SP(服务提供商)管理;CE设备仅由用户管理(用户只需要配置CE设备,也是MPLS VPN的优点所在),除非用户把管理权委托给SP。

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

理解BGP部分:骨干网仅仅是用来建立MPLS VPN隧道,其中P节点是无需保存客户端IP路由信息,只是仅仅根据隧道标签进行转发,最终要实现的是隧道两端逻辑的点对点连接,否则就不是VPN。如果PE是直连的,可以直接学习到直连路由信息,但大多数情况下PE之间不是直接连接的,而P节点又不保存用户信息,这样就给PE间相互学习对端所连接用户网络路由信息带来困难。这个时候就需要使用BGP的特性了(无需直连也能建立邻居关系)。除此之外,MP-BGP还可以支持多种地址簇,在MPLS VPN中所使用的就是VPN4地址簇,通过RD值解决IP地址空间重叠的问题。

理解MPLS部分:表示需要使用MPLS协议建立隧道,利用MPLS标签(而不是依据IP路由表)指导用户数据包在运营商网络中的转发。

理解IP部分:指的是在VPN隧道中承载的是IP报文,所连接的用户网络也是IP网络。

理解VPN部分:表示这是一个VPN解决方案,可以实现通过服务运营商网络连接属于同一个VPN、位于不同地理位置的用户站点。

MPLS VPN基本概念:

一、Site
Site是指相互之间具备IP连通性的一组IP系统,并且,这组IP系统的IP连通性不需通过运营商网络实现。

Site的划分是根据设备的拓扑关系,而不是地理位置,尽管在大多数情况下一个Site中的设备地理位置相邻。地理位置隔离的两组IP系统,如果它们使用专线互联,不需要通过运营商网络就可以互通,这两组IP系统也组成一个Site。
在这里插入图片描述
一个Site中的设备可以属于多个VPN,换言之,一个Site可以属于多个VPN。
Site通过CE连接到运营商网络,一个Site可以包含多个CE,但一个CE只属于一个Site。
根据Site的情况,建议CE设备选择方案如下:

  1. 如果Site只是一台主机,则这台主机就作为CE设备。
  2. 如果Site是单个子网,则使用交换机作为CE设备。
  3. 如果Site是多个子网,则使用路由器作为CE设备。

对于多个连接到同一运营商网络的Site,通过制定策略,可以将它们划分为不同的集合(set),只有属于相同集合的Site之间才能通过运营商网络互访,这种集合就是VPN。

二、VPN-Instance:
VPN-Instance
在一个典型的MPLS VPN 网络中,CE和 PE之间可以使用任何P路由协议技术来交换用户的私网路由,但是当多个VPN 用户连接到同一个PE上或者不同VPN用户之间需要相互通信时,因为不同用户的地址空间可能会在一定范围内重合,例如,VPN1和VPN2都使用10.10.10.0/24 网段地址,导致地址空间的重叠(Address SpacesOverlapping),而在PE上产生路由冲突。所以,在PE上必须将这些不同VPN用户的路由隔离起来,这就产生了VPN实例的技术,VPN实例也称为VPN路由转发表VRF(VPNRouting and Forwarding Table)。一个VPN实例相当于一台虚拟的路由器,这台虚拟路由器具有自己的接口、路由转发表等资源,在控制平面上是独立运行的。每个VPN用户都会在PE上拥有自已的VPN实例,当PE 收到来自不同用户的私网路由时,会将其放在该用户对应的VPN实例的路由转发表中。一台PE可以拥有多个路由转发表,包括一个公网路由转发表,以及一个或多个VPN路由转发表。
在这里插入图片描述
VPN实例技术实际上解决了两大问题:(1)在PE上解决不同VPN用户的路由冲突问题;(2)不需要使用ACL等工具,简化了隔离不同用户网络的操作。如下图所示的场景中,两个不同VPN用户(VPN1和VPN2)连接到同一个PE上,这时如果在PE1和PE2上为VPN1和 VPN2都创建了相应的VPN实例,那么当PE接收到来自这两个VPN用户的私网路由时,会存放在不同的VPN实例转发表中。这样,即使这两个VPN用户的私网地址空间有重叠,在PE上也不会产生路由冲突的问题,因为不同VPN实例的路由转发表之间是相互隔离的。同时,来自用户的私网路由也不会进入骨干网中的公网全局路由转发表,因为用户VPN实例中的路由转发表和全局路由转发表之间也是相互隔离的。
在这里插入图片描述
三、RD值:
用户的VPN路由是通过MP-BGP(多协议BGP)在 MPLS VPN骨干网络中来传递的,如果来自不同用户的 VPN路由地址空间相同,BGP 协议就无法区分这是来自哪个用户的路由了,为了保证每个用户的VPN路由的唯一性,引入了RD 的概念。

通过在PE上为每个用户分配一个唯一的RD值,并且在通告用户私网路由时附带上该RD值,这时在接收端路由器收到不同用户的VPN路由后,因为每条路由有一个唯一标识符(即RD值),所以能区分出这些路由是否来自同个用户,不会因为BGP在进行最优路由选择时,导致某些用户的VPN路由被弃选。比如一台PE在接收到两条来自不同用户、相同前缀的VPN路由时,根据BGP的选路原则,会在这两条路由中选择出最优路由,另一条路由就会被“冷落”了。

在一条IPv4路由前缀之前加上RD值后,就变成VPN-IPv4地址簇了(可简称VPNv4地址簇),VPNv4地址簇只在运营商骨干网内部存在,由PE路由器产生并发布,如图所示:
在这里插入图片描述
用户的CE设备先将一条IPv4的私网路由前缀(1.1.1.0/24)通告给PE,PE 从 VPN实例中将该路由引入至MP-BGP,并且将RD值添加至IPv4路由前缀之前变成了96bit的VPNv4路由,然后发布到骨干网中的其他PE。当另一侧的PE收到该VPNv4路由后,在其发布给CE之前,先将RD剥离掉,还原回IPv4的路由再通告给对面的CE路由器。

RD值共64bit,这64bit 的值有两种表示方式:ASN:nn和IP-Address:nn,其中 nn代表数字,管理员可以自定义。最常用的格式为ASN:nn,其中 ASN代表自治系统号。通常情况下,在服务提供商所使用的ASN:nn中,ASN是IANA分配给服务提供商的AS号,nn可以是服务提供商分配给每个VPN实例的唯一号码。RD并没有什么特定的语法要求,它只不过是用来唯一标识VPN路由的。具体格式如下:
在这里插入图片描述
Type Field(类型域):该字段用于定义Administrator Subfield(管理子域)的表示方法,目前定义了两个值(0和1):

  1. 类型取值为0时,管理子域占用2个 Byte,Assigned Number(分配号)使用4个Byte,管理子域使用AS号(公有AS号),分配号由服务提供商设置和管理。
  2. 类型取值为1时,管理子域占用4个 Byte,分配号占用2个Byte;管理子域使用IPv4地址,分配号子域值由服务提供商设置和管理。

四、VPN-Target
VPN Target(也称为Route Target,RT)是BGP的一个扩展团体属性,用来判断路由该被送入到哪个VPN实例中,或者可以说,VPN实例使用RT来表达对路由的喜好。当一个PE将VPN路由引入到 MP-BGP后,就会让其携带一个RT值,然后送到远端的PE,远端的PE根据RT值来决定将其送往哪个VPN实例。

VPN 实例中的RT值分为Export(导出和Import(导入)两种值,Export 的 RT会在 VPNv4路由发布出来时携带,在 VPNv4路由的接收端PE上,会比较路由携带过来的Export RT值跟本地所有VRF的Import RT值,如果匹配上了,该路由就被送往相应的VRF路由表,如图所示:
在这里插入图片描述
由图可知,PE1在将CE1发过来的IPv4路由转变为VPNv4路由时,除了添加一个RD 以外,还携带了一个Export RT值,当PE2接收到该VPNv4路由后,将其转变了IPv4路由,再通过匹配各VRF的 Import RT值,从而将该IPv4路由加入到指定的路由表中。

前面提到RT是一种 BGP扩展团体属性(Type值为0x0002或Ox0102),具体格式如下:
在这里插入图片描述
除去2个 Byte的类型值外,RT值后面6个Byte的表示形式可以有以下几种:

  1. 2字节自治系统号:4字节用户自定义数,例如1:3。自治系统号的取值范围是0~65535,用户自定义数的取值范围是0~4294967295。其中,自治系统号和用户自定义数不能同时为0,即 VPN Target的值不能是0:0。
  2. IPv4地址:2字节用户自定义数,例如 192.168.122.15:1。IP地址的取值范围是0.0.0.0~255.255.255.255,用户自定义数的取值范围是0~65535。
  3. 整数形式4字节自治系统号:2字节用户自定义数,自治系统号的取值范围是65536~4294967295,用户自定义数的取值范围是0~65535,例如65537:3。其中,自治系统号和用户自定义数不能同时为0,即 VPN Target的值不能是0:0。
  4. 点分形式4字节自治系统号:2字节用户自定义数,点分形式自治系统号通常写成x.y的形式,x和 y的取值范围都是0~65535,用户自定义数的取值范围是0~65535,例如:0.0:3或者0.1:0。其中,自治系统号和用户自定义数不能同时为0,即VPN Target的值不能是0.0:0。

一条 VPNv4路由可以携带多个RT值,而这个特性可以让我们很轻松地实现相同VPN或不同VPN的站点之间的路由控制,比如在某一用户的VPN网络中,只允许分支站点和总部站点互相通告路由,而不允许分支站点之间的路由交换,可以在每个站点设置相应VRF的RT值来实现需求。

MPLS VPN的典型组网结构:

一、Intranet VPN
最简单的情况下,一个VPN中的所有用户形成闭合用户群,相互之间能够进行流量转发,VPN中的用户不能与任何本VPN以外的用户通信。这种组网方式的VPN叫做Intranet VPN,其站点通常是属于同一个组织。
对于这种组网,需要为每个VPN分配一个VPN Target,作为该VPN的Export Target和Import Target,并且,此VPN Target不能被其他VPN使用。
在这里插入图片描述
在图中,PE上为VPN1分配的VPN Target值为100:1,为VPN2分配的VPN Target值为200:1。VPN1的两个Site之间可以互访,VPN2的两个Site之间也可以互访,但VPN1和VPN2的Site之间不能互访。

二、Extranet VPN:
在这里插入图片描述
在图中,VPN1的Site3能够被VPN1和VPN2访问:

  1. PE3能够接收PE1和PE2发布的VPN-IPv4路由。
  2. PE3发布的VPN-IPv4路由能够被PE1和PE2接收。

基于以上两点,VPN1的Site1和Site3之间能够互访,VPN2的Site2和VPN1的Site3之间能够互访。

PE3不把从PE1接收的VPN-IPv4路由发布给PE2,也不把从PE2接收的VPN-IPv4路由发布给PE1,因此,VPN1的Site1和VPN2的Site2之间不能互访。

三、Hub and Spoke:
如果希望在VPN中设置中心访问控制设备,其它用户的互访都通过中心访问控制设备进行,可以使用Hub and Spoke组网方案。其中,中心访问控制设备所在站点称为Hub站点,其他用户站点称为Spoke站点。Hub站点侧接入VPN骨干网的设备叫Hub-CE;Spoke站点侧接入VPN骨干网的设备叫Spoke-CE。VPN骨干网侧接入Hub站点的设备叫Hub-PE,接入Spoke站点的设备叫Spoke-PE。

Spoke站点需要把路由发布给Hub站点,再通过Hub站点发布给其他Spoke站点。Spoke站点之间不直接发布路由。Hub站点对Spoke站点之间的通讯进行集中控制。

对于这种组网情况,需要设置两个VPN Target,一个表示“Hub”,另一个表示“Spoke”。如图所示:
在这里插入图片描述

各Site在PE上的VPN实例的VPN Target设置规则为:
• Spoke-PE:Export Target为“Spoke”,Import Target为“Hub”。任意Spoke-PE的Import Route Target属性不与其它Spoke-PE的Export Route Target属性相同。
• Hub-PE:Hub-PE上需要使用两个接口或子接口。

  1. 一个用于接收Spoke-PE发来的路由,其VPN实例的Import Target为“Spoke”。
  2. 另一个用于向Spoke-PE发布路由,其VPN实例的Export Target为“Hub”。

在图中,Spoke站点之间的通信通过Hub站点进行(图中箭头所示为Site2的路由向Site1的发布过程):
• Hub-PE能够接收所有Spoke-PE发布的VPN-IPv4路由。
• Hub-PE发布的VPN-IPv4路由能够为所有Spoke-PE接收。
• Hub-PE将从Spoke-PE学到的路由发布给Hub-CE,并将从Hub-CE学到的路由发布给所有Spoke-PE。因此,Spoke站点之间可以通过Hub站点互访。
• 任意Spoke-PE的Import Target属性不与其它Spoke-PE的Export Target属性相同。因此,任意两个Spoke-PE之间不直接发布VPN-IPv4路由,Spoke站点之间不能直接互访。

本地VPN互访(前提是PE接受的条目可达):
因为业务需求,连接在同一个PE设备上不同VPN的Site站点需要进行数据互通时,可以采用本地VPN互访组网方案。通过VPN Target属性来控制VPN路由信息在各Site之间的发布和接收,可以实现本地VPN互访需求。一般来说,每个VPN都各自规划了属于自己的VPN Target属性。
在这里插入图片描述
如上图:VPNA的本来的属性为Import:100:1,Export:100:1;VPNB的本来的属性为Import:200:1,Export:200:1

现在为了保证企业总部A和企业总部B互访,将VPNA的Import Target属性增加一条200:1。如果需要VPNA用户和VPNB用户实现互通,将VPNB的Import Target属性增加一条100:1,完成后VPNA和VPNB的用户就可以互访了。

整理资料来源:《HCIE路由交换学习指南》、华为hedex文档

猜你喜欢

转载自blog.csdn.net/tushanpeipei/article/details/113029517