MPLSVPN基础.docx
《MPLSVPN基础.docx》由会员分享,可在线阅读,更多相关《MPLSVPN基础.docx(16页珍藏版)》请在冰点文库上搜索。
![MPLSVPN基础.docx](https://file1.bingdoc.com/fileroot1/2023-5/2/8c57ff94-278c-4534-b506-5957d18f0d2f/8c57ff94-278c-4534-b506-5957d18f0d2f1.gif)
MPLSVPN基础
MPLSVPN基础
MPLSVPN概述:
BGP/MPLSIPVPN是提供商VPN解决方案PPVPN(ProviderProvisionedVPN)中一种基于PE的L3VPN技术,它使用BGP在服务提供商骨干网上发布VPN路由,使用MPLS在服务提供商骨干网上转发VPN报文。
BGP/MPLSIPVPN组网方式灵活、可扩展性好,并能够方便地支持MPLSQoS和MPLSTE,因此得到越来越多的应用。
BGP/MPLSIPVPN模型由三部分组成:
CE、PE和P。
1.CE(CustomerEdge):
用户网络边缘设备,有接口直接与服务提供商SP(ServiceProvider)网络相连。
CE可以是路由器或交换机,也可以是一台主机。
通常情况下,CE“感知”不到VPN的存在,也不需要支持MPLS。
2.PE(ProviderEdge):
服务提供商边缘路由器,是服务提供商网络的边缘设备,与CE直接相连。
在MPLS网络中,对VPN的所有处理都发生在PE上。
3.P(Provider):
服务提供商网络中的骨干路由器,不与CE直接相连。
P设备只需要具备基本MPLS转发能力,不维护VPN信息。
下图是BGP/MPLSIPVPN模型的示意图:
BGP/MPLSIPVPN模型
BGP/MPLSIPVPN基本概念
site
在介绍VPN时经常会提到“site”,site(站点)的含义可以从下述几个方面理解:
1.site是指相互之间具备IP连通性的一组IP系统,并且,这组IP系统的IP连通性不需通过服务提供商网络实现;
2.site的划分是根据设备的拓扑关系,而不是地理位置,尽管在大多数情况下一个site中的设备地理位置相邻;
3.一个site中的设备可以属于多个VPN,换言之,一个site可以属于多个VPN;
4.site通过CE连接到服务提供商网络,一个site可以包含多个CE,但一个CE只属于一个site。
对于多个连接到同一服务提供商网络的sites,通过制定策略,可以将它们划分为不同的集合(set),只有属于相同集合的sites之间才能通过服务提供商网络互访,这种集合就是VPN。
地址空间重叠:
VPN是一种私有网络,不同的VPN独立管理自己的地址范围,也称为地址空间(addressspace)。
不同VPN的地址空间可能会在一定范围内重合,例如,VPN1和VPN2都使用10.110.10.0/24网段地址,这就发生了地址空间的重叠(addressspacesoverlapping)。
在两种情况下,允许VPN使用重叠的地址空间:
1.两个VPN没有共同的site;
2.两个VPN有共同的site,但此site中的设备不与两个VPN中使用重叠地址空间的设备互访。
VPN实例:
VPN实例(VPN-instance)是PE为直接相连的site建立并维护的一个专门实体,每个site在PE上都有自己的VPN实例。
VPN实例也称为VPN路由转发表VRF(VPNRoutingandForwardingtable)。
PE上存在多个转发表,包括一个公网路由转发表,以及一个或多个VRF。
1.公网路由表中包括所有PE和P路由器的路由,由骨干网的IGP产生。
2.VPN实例中包括直连site的路由,通过CE与PE之间的路由发布获得。
在RFC2547(BGP/MPLSVPNs)中,VPN实例被称为per-siteforwardingtable,顾名思义,VPN实例与site对应。
更准确的描述是:
每条CE与PE的连接对应一个VPN实例。
PE上的各VPN实例之间相互独立,并与公网路由转发表相互独立,可以将每个VPN实例看作一台虚拟的路由器:
维护独立的地址空间、有连接到该路由器的接口。
VPN实例示意图
VPN实例通过路由标识符RD(RouteDistinguisher)实现地址空间独立,通过VPNTarget属性实现直连site的VPN成员关系和路由规则控制。
关于RD和VPNTarget的介绍请参见本节下面的内容。
VPN-IPV4地址:
PE从CE接收到普通IPv4路由后,需要将这些私网路由引入到公网路由表中,进而发布给其他PE。
传统BGP无法正确处理地址空间重叠的VPN的路由。
假设VPN1和VPN2都使用了10.110.10.0/24网段的地址,并各自发布了一条去往此网段的路由,BGP将只选择其中一条路由,从而导致去往另一个VPN的路由丢失。
产生上述问题的原因是BGP无法区分不同VPN中相同的IP地址前缀,为解决这一问题,BGP/MPLSIPVPN使用了VPN-IPv4地址族。
VPN-IPv4地址共有12个字节,包括8字节的路由标识符RD(RouteDistinguisher)和4字节的IPv4地址前缀,如图示:
VPN-IPv4地址结构
RD有两种格式:
1.Type为0时,Administrator子字段占2字节,AssignedNumber子字段占4字节,格式为:
16bits自治系统号:
32bits用户自定义数字。
例如:
100:
1。
2.Type为1时,Administrator子字段占4字节,AssignedNumber子字段占2字节,格式为:
32bitsIPv4地址:
16bits用户自定义数字。
例如:
172.1.1.1:
1。
RD用于区分使用相同地址空间的IPv4前缀,不能用于判断某条路由的发起者,也不能判断某条路由属于哪个VPN。
服务供应商可以独立地分配RD,但必须保证RD全局唯一。
这样,即使来自不同服务提供商的VPN使用了相同的IPv4地址空间,PE路由器也可以向各VPN发布不同的路由。
RD为零的VPN-IPv4地址相当于普通IPv4地址。
增加了RD的IPv4地址称为VPN-IPv4地址,这样,PE从CE接收到普通IPv4路由后,转换为VPN-IPv4路由,进行私网路由在公网上的传输。
MP-BGP:
MP-BGP(MultiprotocolextensionsforBGP-4,请参见RFC2283)在PE路由器之间传播VPN组成信息和VPN-IPv4路由。
MP-BGP向下兼容,既可以支持传统的IPv4地址族,又可以支持其它地址族(比如
VPN-IPv4地址族、IPv6地址族等)。
VPNTarget属性:
BGP/MPLSIPVPN使用32位的BGP扩展团体属性-VPNTarget(也称为Route
Target)来控制VPN路由信息的发布。
有两类VPNTarget属性:
1.ExportTarget:
本地PE在把从与自己直接相连的site学到的VPN-IPv4路由发布给其它PE前,为这些路由设置ExportTarget属性,并作为BGP的扩展团体属性随路由发布;
2.ImportTarget:
PE收到其它PE发布的VPN-IPv4路由时,检查其ExportTarget属性,只有当此属性与PE上某个VPN实例的ImportTarget匹配时,才把路由加入到相应的VPN路由表中。
也就是说,VPNTarget属性定义了一条VPN-IPv4路由可以为哪些Site所接收,以及PE可以接收哪些Site发送来的路由。
与RD类似,VPNTarget也有两种格式:
1.16bits自治系统号:
32bits用户自定义数字,例如:
100:
1。
32bitsIPv4地址:
16bits用户自定义数字,例如:
172.1.1.1:
1。
BGP/MPLSIPVPN路由发布:
在基本BGP/MPLSIPVPN组网中,VPN路由信息的发布涉及CE和PE,P路由器只维护骨干网的路由,不需要了解任何VPN路由信息。
PE路由器也只维护与它直接相连的VPN的路由信息,不维护所有VPN路由。
因此,BGP/MPLSIPVPN网络具有良好的可扩展性。
VPN路由信息的发布过程包括三部分:
本地CE到入口PE、入口PE到出口PE、出口PE到远端CE。
完成这三部分后,本地CE与远端CE之间将建立可达路由,VPN私网路由信息能够在骨干网上发布。
下面分别对这三部分进行介绍。
本地CE到入口PE的路由信息交换
CE与直接相连的PE建立邻接关系后,把本站点的VPN路由发布给PE。
CE与PE之间可以使用静态路由、RIP、OSPF、IS-IS或BGP。
无论使用哪种路由协议,CE发布给PE的都是标准的IPv4路由。
通常情况下,静态路由只用于stubVPN的CE与PE间交换路由。
入口PE到出口PE的路由信息交换
PE从CE学到VPN路由信息后,为这些标准IPv4路由增加RD和VPNTarget属性,形成VPN-IPv4路由,存放到为CE创建的VPN实例中。
入口PE通过MP-BGP把VPN-IPv4路由发布给出口PE。
出口PE根据VPN-IPv4路由的ExportTarget属性与自己维护的VPN实例的ImportTarget,决定是否将该路由加入到VPN实例的路由表。
PE之间通过IGP来保证内部的连通性。
出口PE到远端CE的路由信息交换
远端CE有多种方式可以从出口PE学习VPN路由,包括静态路由、RIP、OSPF、IS-IS和BGP。
与本地CE到入口PE的路由信息交换相同。
BGP的AS号替换:
在BGP/MPLSIPVPN中,如果PE和CE之间运行EBGP,由于BGP使用AS号检测路由环路,为保证路由信息的正确发送,需要为物理位置不同的节点分配不同的AS号。
如果物理分散的CE复用相同的AS号,则PE上应配置BGP的AS号替换功能。
此功能是BGP的出口策略,在发布路由时有效。
使能了BGP的AS号替换功能后,当PE向指定对等体中的CE发布路由时,如果路由的AS_PATH中有与CE相同的AS号,将被替换成PE的AS号后再发布。
BGPAS号替换应用示意图
在上图中,CE1和CE2都使用AS号800,在PE2上使能针对CE2的AS号替换功能。
当CE1发来的Update信息从PE2发布给CE2时,PE2发现AS_PATH中存在与CE2相同的AS号800,就把它替换为自己的AS号100,这样,CE2就可以正确接收CE1的路由信息。
对于PE使用不同接口连接多个CE的情况,如上图中的CE2和CE3,也可以使用BGP的AS号替换功能。
BGP/MPLSIPVPN报文转发:
在BGP/MPLSIPVPN骨干网中,P路由器并不知道VPN路由信息,VPN报文通过隧道在PE之间转发。
PE之间可以使用的隧道类型包括LDP、GRE和CR-LSP。
下面以LDPLSP隧道为例,简单介绍VPN报文的转发过程。
这时,入口PE做为IngressLSR,出口PE做为EgressLSR,P路由器做为TransitLSR。
在基本L3VPN应用中(不包括跨域的情况),VPN报文转发采用两层标签方式:
1.第一层(外层)标签在骨干网内部进行交换,指示从PE到对端PE的一条LSP。
VPN报文利用这层标签,可以沿LSP到达对端PE;
2.第二层(内层)标签在从对端PE到达CE时使用,指示报文应被送到哪个Site,或者到达哪一个CE。
对端PE根据内层标签可以找到转发报文的接口。
特殊情况下,属于同一个VPN的两个Site连接到同一个PE,这时只需要知道如何
到达对端CE。
以图为例:
VPN报文转发示意图
(1)Site1发出一个目的地址为1.1.1.2的IP报文,由CE1将报文发送至PE1。
(2)PE1根据报文到达的接口及目的地址查找VPN-instance表项,匹配后将报文转发出去,同时打上内层和外层两个标签。
(3)MPLS网络利用报文的外层标签,将报文传送到PE2(报文在到达PE2前一跳时已经被剥离外层标签,仅含内层标签)。
(4)PE2根据内层标签和目的地址查找VPN-instance表项,确定报文的出接口,将报文转发至CE2。
(5)CE2根据普通的IP转发过程将报文传送到目的地。
BGP/MPLSIPVPN访问控制:
在BGP/MPLSIPVPN网络中,通过VPNTarget属性来控制VPN路由信息在各site之间的发布和接收。
VPNExportTarget和ImportTarget的设置相互独立,并且都可以设置多个值,能够实现灵活的VPN访问控制,从而实现多种VPN组网方案。
基本的VPN组网方案
最简单的情况下,一个VPN中的所有用户形成闭合用户群,相互之间能够进行流量转发,VPN中的用户不能与任何本VPN以外的用户通信。
对于这种组网,需要为每个VPN分配一个VPNTarget,作为该VPN的ExportTarget和ImportTarget,并且,此VPNTarget不能被其他VPN使用。
基本的VPN组网方案
在上图中,PE上为VPN1分配的VPNTarget值为100:
1,为VPN2分配的VPNTarget值为200:
1。
VPN1的两个site之间可以互访,VPN2的两个site之间也可以互访,但VPN1和VPN2的site之间不能互访。
Hub&Spoke组网方案
如果希望在VPN中设置中心访问控制设备,其它用户的互访都通过中心访问控制设备进行,可以使用Hub&Spoke组网方案。
对于这种组网,需要设置两个VPNTarget,一个表示“Hub”,另一个表示“Spoke”。
各site在PE上的VPN实例的VPNTarget设置规则为:
1.连接Spoke站点的(Spoke-PE):
ExportTarget为“Spoke”,ImportTarget为“Hub”;
2.连接Hub站点的(Hub-PE):
Hub-PE上需要使用两个接口或子接口,一个用于接收Spoke-PE发来的路由,其VPN实例的ImportTarget为“Spoke”;另一个用于向Spoke-PE发布路由,其VPN实例的ExportTarget为“Hub”。
Hub&Spoke组网方案
在上图中,Spoke站点之间的通信通过Hub站点进行(图中箭头所示为site2的路由向site1的发布过程):
1.Hub-PE能够接收所有Spoke-PE发布的VPN-IPv4路由;
2.Hub-PE发布的VPN-IPv4路由能够为所有Spoke-PE接收;
3.Hub-PE将从Spoke-PE学到的路由发布给其他Spoke-PE,因此,Spoke站点之间可以通过Hub站点互访。
4.任意Spoke-PE的ImportVPNTarget属性不与其它Spoke-PE的ExportVPNTarget属性相同。
因此,任意两个Spoke-PE之间不直接发布VPN-IPv4路由,Spoke站点之间不能直接互访。
Extranet组网方案
如果一个VPN用户希望提供部分本VPN的站点资源给非本VPN的用户访问,可以使用Extranet组网方案。
对于这种组网,如果某个VPN需要访问共享站点,则该VPN的ExportTarget必须包含在共享站点的VPN实例的ImportTarget中,而其ImportTarget必须包含在共享站点VPN实例的ExportTarget中。
Extranet组网方案
在上图中,VPN1的site3能够被VPN1和VPN2访问:
1.PE3能够接受PE1和PE2发布的VPN-IPv4路由;
2.PE3发布的VPN-IPv4路由能够为PE1和PE2接受;
3.基于以上两点,VPN1的site1和site3之间能够互访,VPN2的site2和VPN1的site3之间能够互访;
PE3不把从PE1接收的VPN-IPv4路由发布给PE2,也不把从PE2接收的VPN-IPv4路由发布给PE1,因此,VPN1的site1和VPN2的site2之间不能互访。
跨域VPN:
实际组网应用中,某用户一个VPN的多个Site可能会连接到使用不同AS的多个服务提供商,或一个服务提供商的多个AS。
这种VPN跨越多个AS的应用方式被称为跨域VPN(Inter-AS)。
RFC2547bis中提出了三种跨域VPN解决方案,分别是:
1.VRF-to-VRF:
需要跨域的VPN在ASBR间通过专用的接口管理自己的VPN路由,也称为Inter-ProviderBackbonesOptionA;
2.EBGPRedistributionoflabeledVPN-IPv4routes:
ASBR间通过MP-EBGP发布标签VPN-IPv4路由,也称为Inter-ProviderBackbonesOptionB;
3.MultihopEBGPredistributionoflabeledVPN-IPv4routes:
PE间通过Multi-hopMP-EBGP发布标签VPN-IPv4路由,也称为Inter-ProviderBackbonesOptionC。
下面逐一对这些方案进行介绍。
VRF-to-VRF方式
VRF-to-VFR方式实际是基本BGP/MPLSIPVPN在跨域环境下的应用,不需要专门配置。
这种方式下,两个AS的边界路由器ASBR直接相连,ASBR同时也是各自所在自治系统的PE。
两个ASBR都把对端ASBR看作自己的CE设备,使用EBGP方式向对端发布IPv4路由。
ASBR间使用VRF-to-VRF方式管理VPN路由组网图
在上图中,对于AS100的ASBR-1来说,AS200的ASBR-2只是它的一台CE设备;同样,对于ASBR-2,ASBR-1也只是一台接入的CE设备。
VRF-to-VRF方式实现跨域VPN的优点是简单:
两个作为ASBR的PE之间不需要为跨域进行特殊配置。
缺点是可扩展性差:
作为ASBR的PE需要管理所有VPN路由,为每个VPN创建VPN实例。
这将导致PE上的VPN-IPv4路由数量过于庞大。
并且,由于ASBR间是普通的IP转发,要求为每个跨域的VPN使用不同的接口(可以是子接口、物理接口、捆绑的逻辑接口),从而提高了对PE设备的要求。
ASBR间通过MP-EBGP发布标签VPN-IPv4路由
这种方式下,两个ASBR通过MP-EBGP交换它们从各自AS的PE路由器接收的标签VPN-IPv4路由。
路由发布过程可分为以下步骤:
(1)AS1内的PE先通过MP-IBGP方式把标签VPN-IPv4路由发布给AS1的边界路由器PE,或发布给为ASBRPE反射路由的路由反射器RR(RouteReflector);
(2)作为ASBR的PE通过MP-EBGP方式把标签VPN-IPv4路由发布给AS2的PE(也是AS2的边界路由器);
(3)AS2的ASBRPE再通过MP-IBGP方式把标签VPN-IPv4路由发布给AS2内的PE,或发布给为PE反射路由的路由反射器。
这种方式下,ASBR需要对标签VPN-IPv4路由进行特殊处理,因此也称为ASBR扩展方式。
ASBR间通过MP-EBGP发布标签VPN-IPv4路由组网图
在可扩展性方面,通过MP-EBGP发布标签VPN-IPv4路由优于ASBR间通过子接口管理VPN。
采用MP-EBGP方式时,需要注意:
1.ASBR之间不对接收的VPN-IPv4路由进行VPNTarget过滤,因此,交换VPN-IPv4路由的各AS服务提供商之间需要就这种路由交换达成信任协议;
2.VPN-IPv4路由交换仅发生在私网对等点之间,不能与公网交换VPN-IPv4路由,也不能与没有达成信任协议的MP-EBGP对等体交换VPN-IPv4路由。
PE间通过Multi-hopMP-EBGP发布标签VPN-IPv4路由
前面介绍的两种方式都能够满足跨域VPN的组网需求,但这两种方式也都需要ASBR参与VPN-IPv4路由的维护和发布。
当每个AS都有大量的VPN路由需要交换时,ASBR就很可能成为阻碍网络进一步扩展的瓶颈。
解决上述问题的方案是:
ASBR不维护或发布VPN-IPv4路由,PE之间直接交换VPN-IPv4路由。
1.ASBR通过MP-IBGP向各自AS内的PE路由器发布标签IPv4路由,并将到达本AS内PE的标签IPv4路由通告给它在对端AS的ASBR对等体,过渡自治系统中的ASBR也通告带标签的IPv4路由。
这样,在入口PE和出口PE之间建立一条LDPLSP;
2.不同AS的PE之间建立Multihop方式的EBGP连接,交换VPN-IPv4路由;
3.ASBR上不保存VPN-IPv4路由,相互之间也不通告VPN-IPv4路由。
PE间通过Multi-hopMP-EBGP发布标签VPN-IPv4路由组网图
为提高可扩展性,可以在每个AS中指定一个路由反射器RR,由RR保存所有VPN-IPv4路由,与AS的PE交换VPN-IPv4路由信息。
两个AS的RR之间建立MP-EBGP连接,通告VPN-IPv4路由。
如图所示:
采用RR的跨域VPNOptionC方式组网图