国家 / 地区

组播VPN技术白皮书-6W100

手册下载

组播VPN技术白皮书

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Copyright © 2019 新华三技术有限公司 版权所有,保留一切权利。

非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。

除新华三技术有限公司的商标外,本手册中出现的其它公司的商标、产品标识及商品名称,由各自权利人拥有。

本文中的内容为通用性技术信息,某些信息可能不适用于您所购买的产品



概述

1.1  产生背景

IP组播的应用越来越广泛,同时VPNVirtual Private Network,虚拟专用网)技术在企业网中的应用也越来越普及。目前的电子政务网、电力数据等企业网络,几乎都是基于BGP/MPLS VPN架构,通过将不同部门划分到不同的VPN中以实现部门间的数据隔离。同样地,部门内部的视频会议、数据共享等组播业务也需要实现VPN隔离,因此组播VPN的需求日益紧迫。但在RFC 4364中只提出了针对单播VPN业务的解决方案,并没有对组播VPN业务的开展给出具体规划或建议。因此如何在VPN环境中应用组播技术,成为需要解决的重要问题之一。

ISPInternet service provider,互联网服务提供商)希望能够利用BGP/MPLS VPN本身的构架为用户提供组播VPN业务,该方案应具备可扩展性,并充分利用骨干网自身的组播能力;VPN用户希望每个SiteCECustomer Edge,用户网络边缘)只与相应的PEProvider Edge,服务提供商网络边缘)建立PIM邻居关系,而与远端SiteCE无关,用户网络不需要为使用组播VPN而更改其配置,用户现有的组播应用方案(如PIM模式、RP位置、RP发现机制等)不受影响。除此以外,在BGP/MPLS VPN网络内开展组播业务还需解决以下几方面的问题:

·            私网地址空间重叠。由于BGP/MPLS VPN网络允许各VPN的私网地址空间重叠,因此不同VPN用户所使用的组播源和组播组地址可能是重叠的,PE需要能够将私网组播数据正确地转发给同一VPN内的用户。

·            公网支持组播功能。私网组播数据除了在私网内进行组播转发外,如果在公网中也能进行组播转发,将使公网的数据负载大大减少,从而节约带宽。

·            在公网对私网组播数据进行RPFReverse Path Forwarding,逆向路径转发)检查。组播数据的转发模式与单播不同,要根据组播源地址和入接口对组播数据进行RPF检查,只有通过检查才能被转发。而在BGP/MPLS VPN网络中,由于公网中的P设备无法获得私网路由,因此不能直接对私网组播数据进行转发。

·            私网组播数据实现按需发送。一个VPN由多个Site构成,每个Site连接到不同的PE,但并非每个Site都需要组播数据,因此如果私网组播数据通过公网时只流向那些有需求的PE,将会减少PE的负荷。

1.2  技术优点

Comware利用MVPNMulticast Virtual Private Network,组播VPN方案来实现组播VPNMVPN方案具有如下特点:

·            对现有网络升级简单,仅需升级PE即可,无需对CEP进行升级或修改其配置,也就是说MVPN方案对CEP是透明的。骨干网不必知道特定VPN内有多少个组播组的业务,骨干网的稳定性得到了保证。

·            利用公网自身的组播转发能力,解决了RPF检查问题。通过在PE将私网组播数据包封装成公网组播数据包,然后利用公网固有的组播转发能力实现私网组播数据在公网内的组播转发。

·            支持所有的PIM模式,而且骨干网与VPN中的PIM模式相互独立,使ISPVPN用户可以选择和保留各自的PIM模式。

MVPN方案基于现有的BGP/MPLS VPN架构,升级简单且兼容性好,是VPN支持组播的必然趋势。

MVPN技术实现

MVPN方案支持三种模式,MDT模式、RSVP-TE模式和mLDP模式。

2.1  MVPN基本概念

·            MVPNMulticast Virtual Private Network,组播VPN):在逻辑上表示某一特定VPN的私网组播数据在公网中的传播范围,在实际中则标识了网络中支持该VPN实例的所有PE。每个MVPN都服务于某个特定的VPN,在该VPN中传输的所有私网组播数据,都在此MVPN内传输。不同的VPN实例对应不同的MVPN

·            MDTMulticast Distribution Tree,组播分发树):建立在属于同一VPN内所有PE间的组播分发树,包括Default-MDTData-MDT两种。

·            MTMulticast Tunnel,组播隧道):在MVPN内将各PE连接到一起的通道称为MT,本地PE将私网组播报文封装成公网组播数据报文,通过MT在公网内进行组播转发,远端PE收到该报文后通过解封装将其还原成私网报文。

·            MTIMulticast Tunnel Interface,组播隧道接口):MTIMT的入/出口,相当于MVPN的入/出口,PE通过MTI连接到MT上,MTI在创建VPN实例的MVPN时自动创建。本地PE将私网数据从入口(MTI)投入MVPNMVPN自动将私网数据复制并传输到MVPN的所有出口(MTI),任何有需求的远端PE都可以从各自的出口(MTI)“打捞”私网数据。MTI上运行的PIM模式与其所属的VPN实例相同。只有当VPN实例中至少一个接口上使能了PIM协议,MTI上的PIM协议才会被使能;当VPN实例中所有接口上都关闭了PIM协议,MTI上的PIM协议也将被关闭。

·            Default-Group(默认组):每个MVPN在公网上分配一个独立的组播组,称为Default-Group。它是MVPN在公网上的唯一标志,用来在公网上建立MVPN所对应的Default-MDT不论私网组播报文属于哪个组播组、是协议报文还是数据报文,PE都统一将其封装为普通的公网组播数据报文,并以Default-Group作为其所属的公网组播组。

·            Default-MDTDefault-Multicast Distribution Tree,默认组播分发树):以Default-Group为组地址的MDT,称为Default-MDTVPN使用Default-Group唯一标识一棵Default-MDT在该VPN中传输的所有私网组播报文,无论从哪个PE进入公网,都经由此Default-MDT转发。Default-MDT是在配置完成后自动生成的,在公网中将会一直存在,而不论公网或私网中有没有实际的组播业务。

·            Data-Group(数据组):当某私网组播数据的流量达到或超过阈值时,入口PE会为其分配一个独立的组播组,称为Data-Group,并通知其它PE使用该组播组在公网内转发该组播数据流量。一个MVPN唯一确定一个Data-Group范围以备进行Data-MDT切换。在进行Data-MDT切换时,从Data-Group范围中选取一个被引用最少的地址,从PE进入公网、流量达到或超过切换阈值的私网组播报文将使用该地址进行封装。

·            Data-MDTData-Multicast Distribution Tree,数据组播分发树):以Data-Group为组地址的MDT,称为Data-MDT。下游存在接收者的PE加入Data-Group,形成一棵Data-MDT,入口PE使用Data-MDT在公网中转发封装后的私网组播数据。

·            Inclusive-Tunnel(相容性隧道):承载来自于一个MVPN的所有组播业务。一个VPN实例唯一对应一条相容性隧道。PE将组播数据报文和PIM BSMBootstrap Message,自举报文)统一封装为普通的公网组播数据报文,并通过相容性隧道发送到公网中。

·            Selective-Tunnel(选择性隧道):承载来自于一个或多个特定的组播组的组播业务。一个VPN实例可以对应多条选择性隧道。

2.2  MDT模式

2.2.1  MDT模式概述

MDT模式MVPN方案的基本思想是:在骨干网中为每个VPN维护一棵Default-MDT。来自VPN中任一Site的组播报文(包括协议和数据报文)都会沿着Default-MDT转发给属于该MVPN的所有PEPE收到组播报文后,如果其下游有该组播组的接收者,则继续向CE转发;否则将其丢弃。

说明

为了描述方便,我们将骨干网的属性用“P-”来表示,将MVPN实例的属性用“C-”来表示。譬如,本文中将VPN中的组播协议报文称为C-Control-Packet、组播数据报文称为C-Data-Packet,二者统称C-Packet;而骨干网中的组播协议报文则称为P-Control-Packet、组播数据报文称为P-Data-Packet,二者统称P-Packet

 

图1 MDT模式MVPN解决方案示意图

 

1所示,三个PE属于同一MVPN,各PE之间已建立MTC-Packet在源PE(如PE 1)处被封装在P-Packet中,并通过MT到达另一SitePE

·            如果某PE(如PE 2)的下游有接收者,则该PE将剥掉P-Packet的报文头还原成C-Packet转发给其CE

·            如果某PE(如PE 3)的下游没有接收者,P-Data-Packet将被该PE直接丢弃。

由此可以看出,上述方案存在一个重要的缺点:在骨干网中,组播数据将沿Default-MDT转发给MVPN内的所有PE,不会考虑PE下游是否存在组播接收者。这样造成了带宽浪费,也增加了PE的处理负担。

为了克服这个缺点,MVPN方案提出一个权衡组播路由优化与可扩展性的折中方案:对于流量较小的组播业务,仍使用Default-MDT;而对于流量较大的组播业务,则为其单独分配Data-MDT,将组播数据以Data-Group为目的地址沿Data-MDT转发给那些真正有接收需求的PE

对于VPN实例来说,公网传输是透明的,私网数据的传输在PE上的MTI处完成了无缝连接:VPN实例只知道将私网数据从MTI发出,然后远端就能从MTI接收。其实中间经历了复杂的公网传输过程,即MDT传输过程。

2.2.2  PE上的接口类型

VPN实例中使能了组播路由功能后,PIMIGMPMSDP等组播协议便可以在VPN实例内启动和工作,每个VPN实例有独立的组播路由转发表。MT的创建会使公网组播路由转发表创建(*G)或者(SG)组播路由表项。(*G)和(SG)表项会将MTI包含在入接口或出接口列表中。PE上包含以下三种接口类型:

·            PNIProvider Network Interface,公网接口):是指PE上连接P设备的接口。PNI收发的报文使用公网路由转发表进行路由转发。

·            CNICustomer Network Interface,私网接口):是指PE上连接CE设备的接口。CNI收发的报文使用该接口所属VPN实例的组播路由转发表进行路由转发。

·            MTI:是PE上的虚拟接口,完成Default-MDTPIM配置,并建立IBGP连接后,MTI会自动创建并进入Up状态。MTI就是MT的入/出口,也相当于MVPN的入/出口。

2.2.3  PIM邻居关系

2所示,在MDT传输组播数据前需要建立如下三种PIM邻居关系:

·            PE-P邻居关系:指PE上公网实例接口与链路对端P上的接口之间建立的PIM邻居关系。

·            PE-CE邻居关系:指PE上绑定VPN实例的接口与链路对端CE上的接口之间建立的PIM邻居关系。

·            PE-PE邻居关系:指PE上的VPN实例通过MTI收到远端PE上的VPN实例发来的PIM Hello报文后建立的邻居关系。

图2 PIM邻居关系示意图

 

MDT模式MVPN方案中,骨干网中的PIM用于在PE之间建立MT以及为骨干网提供非VPN的组播服务;而VPN实例中的PIM则用于在PECE之间建立PIM邻居关系以及在各PE之间通过MT建立PIM邻居关系,前者用以创建VPN实例自有的组播路由转发表和发现本VPN内的RP信息,后者用以发现RPF邻居和检测对端PEPIM能力。

2.2.4  RPF检查

RPF检查是PIM协议重要的组成部分。PIM使用单播路由表来确定RPF信息,包括用于报文RPF检查的RPF接口信息和用于PIM加入/剪枝消息的RPF邻居信息。RPF检查有以下两种应用场景:

·            公网侧的RPF检查

PE进行公网侧的RPF检查时,其情形与不存在组播VPN时完全一样。如3所示,此时Default-MDT尚未建立起来,PE 2对来自P的组播报文进行RPF检查时,RPF接口为PE 2PNI接口Interface ARPF邻居为P

图3 公网侧的RPF检查

 

·            私网侧的RPF检查

PE进行私网侧的RPF检查时,又可分为以下两种情况:

¡  对来自本端组播源的报文进行RPF检查。这种情形也与不存在组播VPN时完全一样。如4所示,PE 1对来自CE 1的组播报文进行RPF检查时,RPF接口为PE 1CNI接口Interface ARPF邻居为CE 1

图4 对来自本端组播源的报文进行RPF检查

 

¡  对来自远端组播源的报文进行RPF检查。这种情况下组播报文来自远端,由于每个MVPN实例中只有一个MTI,它就是指向组播源的RPF接口。若某远端PE既是本地PE到达组播源的BGP路由的下一跳,又是本地PEPIM邻居,则该远端PE就是本地PERPF邻居。如5所示,此时Default-MDT已建立完毕,PE 1通过MT发送组播报文给PE 2,当PE 2对该报文进行RPF检查时,RPF接口为PE 2MTI接口MTunnel0RPF邻居为PE 1

图5 对来自远端组播源的报文进行RPF检查

 

2.2.5  Default-MDT

1. Default-MDT的建立

Default-MDTMDT模式MVPN方案最基本的思想,它是一棵建立在同一VPN内所有PE之间的组播分发树,各PE之间交互的所有组播协议和数据报文都通过由这棵分发树所形成的MT进行转发。Default-MDT将一直存在于骨干网中,而不论骨干网或者VPN中是否有实际的组播业务。

说明

·         Default-MDT的组播源地址必须是PE用来与其它PE建立IBGP连接的接口IP地址,否则会导致RPF检查失败。

·         Default-MDT的组播组地址是预先规划好的(即Default-Group),由管理员在每个PE上进行配置。属于同一MVPN的所有PE上所配置的组地址必须相同,而属于不同MVPNPE上所配置的组地址则必须不同。

 

图6 Default-MDT的建立过程

 

6所示,以骨干网中运行PIM-SM为例,Default-MDT创建的具体过程如下:

(1)       PE 1上配置Default-Group之后,PE 1就会通过PIM协议向骨干网RP发起(*G)加入,并在骨干网沿途各设备上创建(*Default-Group)表项。PE 2PE 3也各自发起类似的加入过程,最终在MVPN中形成一棵以公网RP为根,PE 1PE 2PE 3为叶的RPT。。

(2)       当在PE 1MVPN实例上配置PIM之后,PIM协议会周期性地组播PIM Hello消息,PE 1将其封装成P-Data-Packet(封装时以MTI源接口的地址作为源地址、Default-Group为目的地址)并向骨干网RP发起注册,在骨干网沿途各设备上创建(SDefault-Group)表项。PE 2PE 3也各自发起类似的注册过程,最终在MVPN中形成三棵相互独立的、连接PERPSPT

最终,在MVPN中形成一棵以RP为根,PE 1PE 2PE 3为叶的RPT,以及连接各PERP的三棵相互独立的SPT,并由这些RPTSPT共同构成Default-MDT

2. Default-MDT的数据转发

Default-MDT建立完毕之后,就可以在VPN中进行组播数据的传递了。我们分以下两种情况来介绍组播数据通过Default-MDT转发的过程:

·            组播源与接收者处于同一PE

当组播源与接收者处于同一PE侧时,只需在VPN内部进行组播协议交互与数据转发,其情形与不存在组播VPN时一样。

图7 组播源与接收者处于同一PE

 

7所示,CE 1连接组播源SCE 2连接组播组G的接收者。PE 1收到来自CE 2PIM加入消息后,将接口Interface A加入到(*G)表项的出接口列表中,通过查找PE1Source的单播路由后将接口Interface B作为该表项的入接口。组播数据从CE 1发送到PE 1,再由PE 1转发给CE 2

·            组播源与接收者处于不同PE

当组播源与接收者处于同一VPN的不同PE侧,需要跨越公网进行协议交互与数据转发。

图8 组播源与接收者处于不同PE

 

8所示,VPN内部使用PIM-SMCE 1为该VPN内的RPCE 1连接组播源SCE 2连接组播组G的接收者。CE 2RPCE 1)发送PIM加入消息,PE 2将其封装成公网报文并沿Default-MDT发送给MVPN内的所有PEPE 3解封装后发现RP不在本侧PE3或者CE3上,便将其丢弃;PE 1解封装后发现RP在本侧CE1上,于是将还原后的PIM加入消息向CE 1转发,同时将MTunnel0加入到(*G)表项的出接口列表中。CE 1收到PIM加入消息后,将组播数据(SG)转发给PE 1PE 1将其封装成P-Packet并沿Default-MDT发送给MVPN内的所有PEPE 3解封装后发现本PE侧没有G的接收者,便将其丢弃;PE 2解封装后发现本PE侧有G的接收者,于是将还原后的组播数据向CE 2转发。

2.2.6  Data-MDT

1. Data-MDT简介

Default-MDT最大的优点是骨干网上的组播状态稳定,而最大的缺点则是带宽利用率低。当组播流量较大时,无用的组播流会消耗Default-MDT上那些并无接收者的分支上的宝贵带宽。

针对这个问题,MVPN方案提出了Data-MDT解决方案:在组播源所在PE上设置一定阈值,当该PE检测到组播数据的转发速率达到阈值时将新建一棵Data-MDT,只有对这个组播数据感兴趣的PE才会加入这棵新树。切换完成后,组播数据将不再以Default-Group而是以Data-Group为目的地址,沿Data-MDT转发给那些真正有接收需求的PE

说明

Data-MDT所使用的组地址Data-Group也是预先配置的。一个Default-Group唯一确定一个Data-Group范围以备进行Data-MDT切换在进行Data-MDT切换时,从Data-Group范围中选取一个被引用最少的地址作为Data-Group

 

2. Data-MDT切换消息

Data-MDT切换消息是一种UDP报文,该消息中包含了私网组播源地址、私网组播组地址和Data-Group地址。当发起Data-MDT切换时,它将被封装在P-Packet中,由源PE周期性地通过Default-MDT发送给同一MVPN的所有PE。源PE将一直发送Data-MDT切换消息,直至组播数据的转发速率低于阈值。希望接收该组播数据的PE在收到该消息后将发送PIM加入消息以加入Data-MDT。此后,如果这些PEData-Timeout时间内都没有收到新的Data-MDT切换消息,则删除为Data-MDT创建的组播转发表项。

未连接接收者的PE在收到Data-MDT切换消息后不会加入Data-MDT,但会缓存该消息,以减少将来有接收者时加入Data-MDT的延时。

3. Data-DelayData-Holddown

当组播流量达到或超过阈值、源PE发出Data-MDT切换消息Data-Delay时间之后,组播业务才开始通过Data-MDT发送,这样就为下游PE预留出了加入Data-MDT的时间,以避免切换过程中数据的丢失。

此后,如果组播流量低于了阈值,源PE也不会马上切换回Default-MDT,而是只有组播流量在Data-Holddown时间内一直低于阈值,才切换回Default-MDT,这样就可以避免切换振荡。

4. Data-MDT切换过程

图9 Data-MDT切换

 

9所示,Data-MDT切换的具体过程如下:

(1)       PE(如PE 1)周期性地检测组播数据的转发速率,一旦满足切换条件就从Data-Group范围选取一个被引用最少的Data-Group地址,沿Default-MDT向下游所有PE发送Data-MDT切换消息。

(2)       下游PE收到该消息后,检查下游是否存在该组播数据的接收者。若存在(如PE 2)则向PE 1发送PIM加入消息以加入组地址为Data-Group地址的Data-MDT;若不存在(如PE 3)则将该消息缓存起来,以便有接收者时能及时加入Data-MDT

(3)       PE 1发送Data-MDT切换消息Data-Delay时间后,组播数据的传输就会从Default-MDT切换到Data-MDT

2.2.7  ASMDT模式MVPN

在实际组网应用中,当一个VPN跨越多个AS时,需要连通其分布在不同AS内的Site,这种VPN跨越多个AS的应用方式被称为跨域VPN。跨域VPN的解决方案包括:

·            ASBR之间建立VRF-to-VRF连接,也称为A类跨AS

·            ASBR之间通过MP-EBGP发布VPN-IPv4路由,也称为B类跨AS

·            PE之间通过MP-EBGP发布VPN-IPv4路由,也称为C类跨AS

1. A类跨ASMDT模式MVPN

10所示,VPN跨越了AS 1AS 2两个自治系统,PE 3PE 4分别是AS 1AS 2ASBRPE 3PE 4通过各自的VPN实例相连,并互把对方视为CE设备。

图10 A类跨ASMDT模式MVPN示意图

 

采用本方式时,需在每个AS内各建立一个独立的MVPN,在各MVPN之间实现私网组播数据跨AS的传输。跨AS传输私网组播数据的过程如下:

(1)       由于PE 3PE 4互把对方视为自己的CE,因此:在AS 1中,CE 1PE 4(相当于PE 3CE)之间可以互通组播业务;在AS 2中,CE 2PE 3(相当于PE 4CE)之间也可以互通组播业务。

(2)       CE 1发出的VPN 1的私网组播协议和数据报文通过MT 1到达PE 4后,被PE 4视为与自己私网接口相连的VPN 2的私网报文,于是将其通过MT 2转发给CE 2CE 2发出的VPN 2的报文也同理到达CE 1。这样,就实现了私网组播数据在CE 1CE 2之间的互通。

2. B类跨ASMDT模式MVPN

11所示,VPN跨越了AS 1AS 2两个自治系统,PE 3PE 4分别是AS 1AS 2ASBRPE 3PE 4通过MP-EBGP相连。在此组网中,ASBR之间通过MP-EBGP交换它们从各自AS内的PE上接收的VPN-IPv4路由。

图11 B类跨ASMDT模式MVPN

 

采用本方式时,只需在所有AS内统一建立一个MVPN即可,在该MVPN内部实现公网组播数据跨AS的传输。具体实现方式如下:

(1)       公网使用RPF代理向量创建Default-MDT

提示

B类跨ASMDT模式MVPN组网中,公网只支持PIM-SSM模式。

 

在此组网中,由于AS 1AS 2之间的公网路由相互隔离,设备无法找到去往其它ASPE的路由,从而导致RPF检查失败,因此要引入RPF代理向量来协助完成公网的RPF检查。Default-MDT的具体创建过程如下:

a.   PE 1PE 2发起PIM加入时,把从BGP MDT路由中获得的下一跳地址(BGP MDT路由中的下一跳为本ASASBR,即PE 3的地址)作为RPF代理向量,PE 1将此RPF代理向量封装在发往PE 2PIM加入报文中。

b.   P 1收到该报文后,发现RPF代理向量不是本地地址,于是根据该向量查找到上游为PE 3,因此继续向PE 3发送携带RPF代理向量的PIM加入报文。

c.   PE 3收到该报文后,发现RPF代理向量是本地地址,无法再根据该向量查找上游,于是查找BGP MDT路由,发现去往PE 2的下一跳为PE 4,并且有直连路由,因此继续向PE 4发送携带RPF代理向量的PIM加入报文。

d.   PE 4收到该报文后,由于在本AS内可以找到去往PE 2的路由,于是将RPF代理向量剥离后逐跳向PE 2发送PIM加入报文,最终建立起从PE 1PE 2SPT

e.   与此同时,PE 2也向PE 1发起类似的SPT建立过程,最终完成公网Default-MDT的建立。

(2)       私网使用BGP Connector进行RPF检查

PE在私网通过MTI向对端PE发送PIM加入报文时,需要查找私网路由,使用路由下一跳作为私网PIM加入报文中的上游邻居地址,以便在对端PE收到该报文后进行RPF检查。在非跨AS的情况下,下一跳正好对应对端PEMTI的源地址;但在B类跨AS的情况下,BGP协议会将下一跳改为本ASASBR地址,而不是对端PE的地址,这样就会导致RPF检查失败。

为了避免这种情况,需要BGP对等体在交换VPN-IPv4路由时携带源PE的地址(该地址称为BGP Connector),PE在私网通过MTI发送PIM加入报文时,报文中的上游地址填写为对端PEBGP Connector

3. C类跨ASMDT模式MVPN

12所示,VPN跨越了AS 1AS 2两个自治系统,PE 3PE 4分别是AS 1AS 2ASBRPE 3PE 4通过MP-EBGP相连,并互把对方视为P设备。在此组网中,不同ASPE之间建立多跳MP-EBGP会话,并通过该会话直接在PE之间发布VPN-IPv4路由。

图12 C类跨ASMDT模式MVPN

 

采用本方式时,只需在所有AS内统一建立一个MVPN即可,在该MVPN内实现公网组播数据跨AS的传输。跨AS传输私网组播数据的过程如下:

(1)       CE 1发出的私网组播协议和数据报文都经由PE 1上的MTI封装后在MT中传输。这样,被封装后的私网报文在公网中就变成了普通的公网组播数据报文。

(2)       PE 3PE 4这两台ASBR上配置了MP-EBGP连接后,AS 1AS 2就实现了公网的互通,被封装成公网组播数据报文的私网报文就可以顺利到达PE 2。这样,就实现了私网组播数据在CE 1CE 2之间的互通。

2.3  RSVP-TE模式

2.3.1  RSVP-TE模式概述

RSVP-TE模式属于NG-MVPNNext-Generation multicast VPN,下一代组播VPN)的一种解决方案。

(1)       RSVP-TE模式下各PE之间两两建立IBGP邻居,通过BGP协议发布MVPN地址族路由信息。RSVP-TE模式组播VPN的创建依赖于如下路由信息:

¡  Intra-AS I-PMSI A-D RoutePE之间根据该路由建立相容性隧道。

¡  S-PMSI A-D Route:当创建选择性隧道并有满足切换隧道的条件后,组播源侧PE向接收者侧PE发送该路由以进行隧道切换。

¡  Leaf A-D Route:接收者侧PE收到组播源侧PE发送的S-PMSI A-D Route后,回应Leaf A-D routeRSVP-TE根据该路由中的对端邻居信息来建立选择性隧道。

¡  Source Active A-D Route:组播源侧PE向接收者侧PE发送该路由以通告接收者侧PE组播源的位置信息。

¡  C-Multicast Route:接收者侧PE收到组播源侧PE发送的Source Active A-D Route后,回应该路由,以告知组播源PE,需要接收组播数据。

(2)       RSVP-TE模式采用的是RSVP-TE P2MP隧道,因此不要求公网支持三层组播,但是要求公网支持RSVP-TE P2MP隧道。私网组播数据通过相容性RSVP-TE P2MP隧道或选择性RSVP-TE P2MP隧道传输给远端PE,远端PE收到该报文后通过剥离标签信息将其还原成私网组播报文。其中:

¡  Inclusive-Tunnel(相容性隧道):承载来自于一个MVPN的所有组播业务。一个VPN实例唯一对应一条相容性隧道。在骨干网中会为每个VPN维护一条相容性隧道。来自VPN中的组播数据报文和PIM自举报文Bootstrap MessageBSM都会在公网中沿着相容性隧道,发送给属于该MVPN的所有PEPE收到组播数据报文后,如果该PE下游中存在该组播组的接收者,则继续向CE转发,否则将其丢弃。

¡  Selective-Tunnel(选择性隧道):承载来自于一个或多个特定的组播组的组播业务。一个VPN实例可以对应多条选择性隧道。选择性隧道按需创建,当组播流量满足选择性隧道的切换条件时,建立选择性隧道。该组播数据报文会在公网中沿着选择性隧道,发送给属于该MVPN的所有PEPE收到组播数据报文后,则继续向对应的接收者转发。

2.3.2  创建相容性隧道

PE设备先通过BGP自动进行邻居发现,以本机地址作为源端、以邻居的地址作为目的端建立相容性隧道。

13所示,私网侧采用PIM协议,公网采用MPLS骨干网。相容性隧道的创建过程如下:

(1)       PE 1PE 2PE 3两两建立IBGP邻居并交互路由信息,从而获取各个PE的公网地址。

(2)       PE 1作为源端,PE 2PE 3分别作为目的端创建相容性隧道,PE 1向目的端通告源端的相容性隧道信息。

(3)       PE 2PE 3分别和PE 1建立相容性隧道。

公网的相容性隧道不依赖于私网侧的PIM协议。

图13 在公网中创建相容性隧道

http://press/data/infoblade/Comware%20V7%E5%B9%B3%E5%8F%B0B75%E5%88%86%E6%94%AF%E4%B8%AD%E6%96%87/09-IP%E7%BB%84%E6%92%AD/09-%E7%BB%84%E6%92%ADVPN/%E7%BB%84%E6%92%ADVPN%E9%85%8D%E7%BD%AE.files/x_Img_x_png_14.png

 

2.3.3  选择性隧道切换

1. 选择性隧道的切换过程

当相容性隧道接收到指定(SG)表项的组播流量时,进行选择性隧道切换,实现了不同组播流量传输的隧道分离。一个VPN实例内允许存在多条选择性隧道。

14所示,创建选择性隧道并进行隧道切换的具体过程如下:

(1)       组播源侧PE 1收到满足隧道切换条件的私网组播报文后,向PE 2PE 3发送S-PMSI A-D route信息。

(2)       PE 2收到后,发现本地没有对应的(SG)的接收者,不做处理。

(3)       PE 3收到后,回应Leaf A-D Route信息。

(4)       PE 1PE 3创建选择性隧道。

(5)       PE 1进入公网的指定(SG)表项的组播流量将使用选择性隧道而不再使用相容性隧道传输组播数据。

图14 创建选择性隧道并进行隧道切换

http://press/data/infoblade/Comware%20V7%E5%B9%B3%E5%8F%B0B75%E5%88%86%E6%94%AF%E4%B8%AD%E6%96%87/09-IP%E7%BB%84%E6%92%AD/09-%E7%BB%84%E6%92%ADVPN/%E7%BB%84%E6%92%ADVPN%E9%85%8D%E7%BD%AE.files/x_Img_x_png_15.png

 

2. 选择性隧道的延迟切换

当组播流量满足切换条件后,连接组播源的PE会延迟一段时间才会将组播业务切换到选择性隧道发送。这样就为下游PE预留出了回应Leaf A-D route的时间,并且预留了选择性隧道建立的时间,以避免切换过程中数据的丢失。

2.4  mLDP模式

2.4.1  mLDP模式概述

mLDP模式也是NG-MVPN的一种解决方案。与RSVP-TE模式差异点主要体现在公网隧道的构建方式:

·            RSVP-TE模式的P2MP隧道构建从Ingress PE开始,Ingress PE需要知道P2MP隧道的终点PE(叶子节点)的IP地址,从上游向下游通过RSVP协议建立标签隧道。

·            mLDP模式的P2MP隧道是从Egress PE开始,Egress PE需要知道Ingress PE(根节点)的IP地址,从下游向上游通过LDP协议签建立隧道。

2.4.2  创建相容性隧道

mLDP相容性隧道的创建过程与RSVP-TE模式的类似,具体内容请参见“2.3.2  创建相容性隧道

2.4.3  选择性隧道切换

mLDP选择性隧道切换相关内容与RSVP-TE模式类似,具体内容请参见“2.3.3  选择性隧道

2.4.4  ASmLDP模式MVPN

1. A类跨ASmLDP模式MVPN

15所示,VPN跨越了AS 100AS 200两个自治系统,PE 3PE 4分别是AS 100AS 200ASBRPE 3PE 4通过各自的VPN实例相连,并互把对方视为CE设备。

图15 A类跨ASmLDP模式MVPN示意图

 

采用本方式时,需在每个AS内各建立一个独立的MVPN,在各MVPN之间实现私网组播数据跨AS的传输。跨AS传输私网组播数据的过程如下:

(1)       由于PE 3PE 4互把对方视为自己的CE,因此:在AS 100中,CE 1PE 4(相当于PE 3CE)之间可以互通组播业务;在AS 200中,CE 2PE 3(相当于PE 4CE)之间也可以互通组播业务。

(2)       CE 1发出VPN 1的私网组播协议和数据报文在PE 1上经过MPLS封装后通过mLDP Tunnel1到达PE3PE 3解封装后通过普通三层组播转发到达PE 4,该报文被PE 4视为与自己私网接口相连的VPN 2的私网报文,于是将其通过mLDP2隧道转发给CE 2CE 2发出的VPN 2的报文也同理到达CE 1。这样,就实现了私网组播数据在CE 1CE 2之间的互通。

说明

A类跨域域间无法互相学习通告激活组播源的自动发现路由(Source Active A-D route),所以必须在RP间配置MSDPanycast-RP用于域间传递组播源信息

 

2. B类跨ASmLDP模式MVPN

16所示,VPN跨越了AS 100AS 200两个自治系统,PE 3PE 4分别是AS 100AS 200ASBRPE 3PE 4通过MP-EBGP相连。在此组网中,ASBR之间通过MP-EBGP交换它们从各自AS内的PE上接收的VPN-IPv4路由。

图16 B类跨ASmLDP模式MVPN示意图

 

采用本方式时,只需在所有AS内统一建立一个MVPN即可,在该MVPN内部实现私网组播数据跨AS的传输。隧道建立、流量转发过程实现方式如下:

(1)       CE 1收到组播流量后,如果域内RPPE 1,则发送注册报文到PE 1;如果RPCE 1或者CE 2,则需要通过建立MSDP或者Anycast-RP将组播源信息发送到PE 1。无论采用哪种方式,当PE 1发现组播源信息后,发送source-active A-D route通告组播源,该路由可以直接通过BGP传递到PE 3PE 4PE 2

(2)       PE 2收到source-active A-D route后,检查本AS域内是否存在组播接收者信息如果存在接收者,向上游发送C-Multicast Route加入,该路由可以直接通过BGP传递到PE 4PE 3PE 1

(3)       PE 1收到C-Multicast Route后,将组播流量封装MPLS标签后通过mLDP隧道发送到PE 2,在PE 2上进行解封装后转发到私网侧。

3. C类跨ASmLDP模式MVPN

17所示,VPN跨越了AS 100AS 200两个自治系统,PE 3PE 4分别是AS 100AS 200ASBRPE 3PE 4通过MP-EBGP相连,并互把对方视为P设备。在此组网中,不同ASPE之间建立多跳MP-EBGP会话,并通过该会话直接在PE之间发布VPN-IPv4路由。

图17 C类跨ASmLDP模式MVPN示意图

http://press/data/infoblade/Comware%20V7%E5%B9%B3%E5%8F%B0B75%E5%88%86%E6%94%AF%E4%B8%AD%E6%96%87/09-IP%E7%BB%84%E6%92%AD/09-%E7%BB%84%E6%92%ADVPN/%E7%BB%84%E6%92%ADVPN%E9%85%8D%E7%BD%AE.files/x_Img_x_png_21.png

 

采用本方式时,只需在所有AS内统一建立一个MVPN即可,在该MVPN内实现私网组播数据跨AS的传输。跨AS传输私网组播数据的过程如下:

(1)       CE 1收到组播流量后,如果域内RPPE 1,则发送注册报文到PE 1;如果RPCE 1或者CE 2,需要通过建立MSDP或者Anycast-RP将组播源信息发送到PE 1不管哪种方式,当PE 1发现组播源信息后,发送source-active A-D route通告组播源,该路由可以通过BGP直接发送给PE 2

(2)       PE 2上收到source-active A-D route后,检查本AS域内是否存在组播接收者信息,如果存在接收者,向上游发送C-Multicast Route加入,该路由可以通过BGP直接传递到PE 1

(3)       PE 1收到C-Multicast Route后,将组播流量封装MPLS标签后通过mLDP隧道中发送到PE 2,在PE 2上进行解封装后转发到私网侧。

典型组网应用

3.1  ASMVPN

18所示,在同一AS中存在VPN aVPN b,各VPN中有不同的组播源和接收者。公网中运行OSPFMPLS,各PECE之间运行RIP,并在各PE间建立BGP对等体连接以传递私网路由。

图18 ASMVPN组网图

 

开展AS内的VPN组播业务,需要在所有设备的公网实例和VPN实例中分别使能IP组播路由;在PECE连有接收者的接口上使能IGMP;在各设备的所有公网和私网接口上均使能PIM-SM,并分别为公网和各VPN选取合适的C-BSRC-RP。此外,还需要为VPN aVPN b选取各自不同的Default-Group地址以及Data-Group范围。

3.2  ASMVPN

19所示,在两个AS中各存在VPN aVPN b,各VPN中有不同的组播源和接收者。在各AS内分别运行OSPFMPLS,各PECE之间运行OSPF,并在所有PE间建立BGP对等体连接以传递私网路由。

图19 ASMVPN组网图

 

开展跨ASVPN组播业务,需要在所有设备的公网实例和VPN实例中分别使能IP组播路由;在CE连有接收者的接口上使能IGMP;在处于ASBR位置的PE 2PE 3之间建立MSDP对等体连接;在各设备的所有公网和私网接口上均使能PIM-SM,并分别为各AS内的公网以及各VPN选取合适的C-BSRC-RP。此外,还需要为VPN aVPN b选取各自不同的Default-Group地址以及Data-Group范围。

参考文献

·            RFC 4364BGP/MPLS IP Virtual Private Networks (VPNs)

·            RFC 6513Multicast in MPLS/BGP IP VPNs

·            RFC 6514BGP Encodings and Procedures for Multicast in MPLS/BGP IP VPNs

联系我们 联系我们
联系我们
回到顶部 回到顶部