• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 新华三人才研学中心
  • 关于我们

14-IP组播配置指导

目录

05-组播VPN配置

本章节下载 05-组播VPN配置  (780.22 KB)

05-组播VPN配置


1 组播VPN概述

组播VPN(Virtual Private Network,虚拟专用网络)用于在VPN网络中实现组播传输。

1.1  组播VPN典型组网

图1-1 组播VPN典型组网

 

图1-1所示,由Site 1和Site 3组成VPN A网络,由Site 2和Site 4组成VPN B网络。当运行组播VPN时,PE与CE之间通过VPN实例进行私网组播传输,PE与P之间则通过公网实例进行公网组播传输。该网络中将同时承载着三个相互独立的组播业务:公网实例、VPN实例A和VPN实例B。

有关CE、PE和P的详细介绍,请参见“MPLS配置指导”中的“MPLS L3VPN”。

1.2  组播VPN实现方案MVPN

Comware利用MVPN方案来实现组播VPN。该方案的最大优点就是仅需要PE支持多实例,运营商构建的公共网络支持组播功能。无需修改CE和P上原有的PIM配置——也就是说,该方案对于CE和P是透明的。

1.3  MDT模式基本概念

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

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

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

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

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

·     Default-MDT(Default-Multicast Distribution Tree,默认组播分发树):以Default-Group为组地址的MDT,称为Default-MDT。VPN使用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-MDT(Data-Multicast Distribution Tree,数据组播分发树):以Data-Group为组地址的MDT,称为Data-MDT。下游存在接收者的PE加入Data-Group,形成一棵Data-MDT,入口PE使用Data-MDT在公网中转发封装后的私网组播数据。

1.4  MDT模式实现原理

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

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

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

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

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

1.4.1  创建Default-MDT

公网中运行的组播路由协议可以是PIM-DM、PIM-SM、双向PIM或PIM-SSM中的一种。在这四种情况下创建Default-MDT的过程是有区别的,但无论公网中运行的是何种PIM模式,Default-MDT都具有以下特点:

·     网络中所有支持同一个VPN实例的PE都加入该实例的Default-MDT。

·     所有属于同一个VPN实例的私网组播报文进入公网后,均沿该Default-MDT向各PE转发,无论PE所连接的Site中是否存在接收者。

1. 在PIM-DM网络中创建Default-MDT

图1-2所示,公网中运行PIM-DM,PE 1、PE 2和PE 3都支持VPN实例A。各PE之间建立PIM邻居关系并在MVPN中形成独立SPT与RPT来共同组成Default-MDT。

图1-2 在PIM-DM网络中创建Default-MDT

 

Default-MDT的详细创建过程如下:

(1)     PE 1通过VPN实例A的MTI与其它PE建立PIM邻居关系时,会将私网PIM协议报文封装成公网组播数据报文(封装时以MVPN源接口的IP地址为源地址、Default-Group为目的地址)在公网中发送。发送时,PE 1以其它支持VPN实例A的PE为组播组成员,在整个公网范围内发起扩散—剪枝过程,在公网沿途各设备上分别创建(11.1.1.1,239.1.1.1)表项,从而形成一棵以PE 1为根、PE 2和PE 3为叶的SPT。

(2)     与此同时,PE 2和PE 3也各自发起类似的扩散—剪枝过程,最终在MVPN中形成三棵相互独立的SPT。

在PIM-DM网络中,由这三棵相互独立的SPT共同组成Default-MDT。

2. 在PIM-SM网络中创建Default-MDT

图1-3所示,公网中运行PIM-SM,PE 1、PE 2和PE 3都支持VPN实例A。各PE之间建立PIM邻居关系并在MVPN中形成独立SPT来共同组成Default-MDT。

图1-3 在PIM-SM网络中创建Default-MDT

 

Default-MDT的详细创建过程如下:

(1)     PE 1向公网RP发起(*,G)加入,以Default-Group为组播组地址,在公网沿途各设备上分别创建(*,239.1.1.1)表项。与此同时,PE 2和PE 3也各自发起类似的加入过程,最终在MVPN中形成一棵以公网RP为根,PE 1、PE 2和PE 3为叶的RPT。

(2)     PE 1通过VPN实例A的MTI与其它PE建立PIM邻居关系时,会将私网PIM协议报文封装成公网组播数据报文(封装时以MVPN源接口的IP地址为源地址、Default-Group为目的地址)在公网中发送。发送时,PE 1先向公网RP发起注册过程,再由公网RP向PE 1发起加入,在公网沿途各设备上分别创建(11.1.1.1,239.1.1.1)表项。

(3)     与此同时,PE 2和PE 3也各自发起类似的注册过程,最终在MVPN中形成三棵相互独立的、连接PE与RP的SPT。

在PIM-SM网络中,由RPT(*,239.1.1.1)和这三棵相互独立的SPT共同组成Default-MDT。

3. 在双向PIM网络中创建Default-MDT

图1-4所示,公网中运行双向PIM,且PE 1、PE 2和PE 3都支持VPN实例A。各PE之间建立PIM邻居关系并在MVPN中形成双向RPT来共同组成Default-MDT。

图1-4 在双向PIM网络中创建Default-MDT

 

Default-MDT的详细创建过程如下:

(1)     PE 1向公网RP发起(*,G)加入,以Default-Group为组播组地址,在公网沿途各设备上分别创建(*,239.1.1.1)表项。与此同时,PE 2和PE 3也各自发起类似的加入过程,最终在MVPN中形成一棵以公网RP为根,PE 1、PE 2和PE 3为叶的接收者侧RPT。

(2)     PE 1以Default-Group为组播组地址发送组播数据,在公网途径的每个网段都被该网段的DF无条件向RP转发,并在沿途各设备上分别创建(*,239.1.1.1)表项。与此同时,PE 2和PE 3也各自发起类似的创建过程,最终在MVPN中形成三棵分别以PE 1、PE 2和PE 3为根、公网RP为叶的组播源侧RPT。

在双向PIM网络中,由接收者侧RPT和组播源侧RPT共同构成的双向RPT(*,239.1.1.1)就是Default-MDT。

4. 在PIM-SSM网络中创建Default-MDT

图1-5所示,公网中运行PIM-SSM,且PE 1、PE 2和PE 3都支持VPN实例A。各PE之间建立PIM邻居关系并在MVPN中形成独立SPT来共同组成Default-MDT。

图1-5 在PIM-SSM网络中创建Default-MDT

 

Default-MDT的详细创建过程如下:

PE 1、PE 2和PE 3两两之间先通过BGP互换各自的MDT路由信息(包含BGP接口地址和Default-Group地址等信息),然后分别向对方的BGP接口地址逐跳发送订阅报文(Subscribe Message),在公网沿途各设备上分别创建(S,G)表项,从而形成一棵以本PE为根、其它PE为叶的SPT。最终在MVPN中形成三棵相互独立的SPT。

在PIM-SSM网络中,由这三棵相互独立的SPT共同组成Default-MDT。

说明

在PIM-SSM中,借助“订阅报文”的概念表示加入报文。

 

1.4.2  基于Default-MDT的传输

当组播分发树创建完成后,组播源通过组播分发树将私网组播数据发送给各Site中的接收者。私网组播数据在本地PE上被封装为公网组播数据并沿Default-MDT传输,在远端PE上被解封装并继续在私网内传输。

私网组播数据跨越公网的传输可分为以下几种情况:

(1)     当VPN网络中运行PIM-DM或PIM-SSM时,组播源通过私网SPT跨越公网向接收者发送私网组播数据。

(2)     当VPN网络中运行PIM-SM时:

¡     在SPT切换前,如果组播源与私网RP属于不同的Site,组播源先通过其与私网RP间的私网SPT跨越公网向私网RP发送私网组播数据;如果私网RP与接收者也属于不同的Site,私网RP再通过私网RPT跨越公网向接收者继续转发私网组播数据。

¡     在SPT切换后,如果组播源与接收者属于不同的Site,组播源通过私网SPT跨越公网向接收者直接发送私网组播数据。

(3)     当VPN网络中运行双向PIM时,如果组播源与私网RP属于不同的Site,组播源先通过其与私网RP间的私网组播源侧RPT跨越公网向私网RP发送私网组播数据;如果私网RP与接收者也属于不同的Site,私网RP再通过私网接收者侧RPT跨越公网向接收者继续转发私网组播数据。

有关SPT切换的详细介绍,请参见“IP组播配置指导”中的“PIM”。

下面以公网和VPN网络中均运行PIM-DM、沿私网SPT跨越公网传输私网组播数据为例,介绍基于Default-MDT的组播数据报文的传输过程。

图1-6所示,公网和VPN网络中分别运行PIM-DM,属于Site 2的私网组播组G(225.1.1.1)的接收者(Receiver)与CE 2相连;属于Site 1的组播源(Source)向G发送组播数据;用于公网组播数据转发的Default-Group为239.1.1.1。

图1-6 组播数据报文的传输过程

 

私网组播数据跨越公网进行传输的过程如下:

(1)     Source发送私网组播数据(192.1.1.1,225.1.1.1)到CE 1。

(2)     CE 1沿SPT将私网组播数据转发给PE 1,PE 1上的VPN实例查找转发表项。如果对应转发表项的出接口列表中包含MTI,则PE 1将对该私网组播数据做进一步处理(详见第(3)步)。这时,PE 1上的VPN实例将认为私网组播数据已从MTI发出。

(3)     PE 1对该私网组播数据进行GRE封装,以MVPN源接口的IP地址为源地址、Default-Group为目的地址封装成公网组播数据报文(11.1.1.1,239.1.1.1),然后交给公网实例进行转发。

(4)     组播数据报文(11.1.1.1,239.1.1.1)沿Default-MDT传输给各PE上的公网实例。各PE将其解封装,还原为私网组播数据,然后交给相应的VPN实例进行处理。如果该PE上存在SPT的下游接口,则沿SPT转发该私网组播数据,否则将其丢弃。

(5)     PE 2上的VPN实例查找转发表项,最终将私网组播数据送达Receiver。至此跨越公网的私网组播数据传输完成。

1.4.3  Data-MDT切换

1. 由Default-MDT向Data-MDT切换

在公网中通过Default-MDT传送组播数据时,组播报文被传输到支持同一VPN实例的所有PE上,无论该PE所连接的Site内是否存在接收者。当私网中组播数据的传输速率比较大时,可能在公网中造成数据的泛滥。这样即浪费网络带宽,又增加了PE的处理负担。

为了解决上述问题,MVPN方案对此进行了优化:为进入公网的大流量私网组播数据,在连接有私网接收者和私网组播源的各PE之间,建立起专用的Data-MDT。然后将该组播数据流从Default-MDT切换到Data-MDT,从而实现按需进行组播。

从Default-MDT向Data-MDT切换的过程如下:

(1)     源端PE(如PE 1)周期性地检测私网组播数据的转发速率。发起从Default-MDT向Data-MDT的切换必须同时满足以下两点要求:

¡     私网组播数据通过了由Default-MDT向Data-MDT切换的ACL规则的过滤,否则仍沿Default-MDT转发;

¡     私网组播数据的转发速率超过了切换阈值,且维持了一定的时间,否则仍沿Default-MDT转发。

(2)     PE 1从Data-Group范围中分配一个被引用最少的Data-Group,沿Default-MDT向所有下游PE发送切换消息。该消息中包括私网组播源地址、私网组播组地址和Data-Group。

(3)     其它PE收到该消息后,检查自己是否连接有该私网组播数据的接收者:如果有,则加入以PE 1为根的Data-MDT;如果没有,则将该消息缓存起来,等待有接收者时再加入Data-MDT。

(4)     当PE 1发送切换消息一定时间后,PE 1停止使用Default-Group地址对私网组播数据进行封装,并改用Data-Group地址进行封装,组播数据沿Data-MDT向下分发。

(5)     当Default-MDT切换到Data-MDT之后,PE 1会周期性地发送切换消息,以便后续有PE加入Data-MDT。当某下游PE不再连接有接收者时,可以退出Data-MDT。

说明

Data-MDT和Default-MDT都是同一个MVPN中的转发隧道。Default-MDT由Default-Group唯一确定;Data-MDT则由Data-Group唯一确定。每个Default-Group关联一组Data-Group范围。

 

2. 由Data-MDT向Default-MDT反向切换

当私网组播数据切换到Data-MDT之后,由于情况变化而导致了不满足切换条件,PE 1就会把此私网组播数据从Data-MDT反向切换回Default-MDT,反向切换的触发条件包括(满足其一即可):

·     私网组播数据转发速率低于指定切换阈值,且维持了一定的时间。

·     当更改了Data-Group范围后,用于私网组播数据封装的Data-Group被排除在新范围以外。

·     当控制私网组播数据由Default-MDT向Data-MDT切换的ACL规则发生了变化,从而导致私网组播数据不能通过新ACL规则的过滤。

1.5  跨AS的MDT模式MVPN

在实际组网应用中,当一个VPN跨越多个AS(Autonomous System,自治系统)时,需要连通其分布在不同AS内的Site,这种VPN跨越多个AS的应用方式被称为跨域VPN。跨域VPN的解决方案包括(详细介绍请参见“MPLS配置指导”中的“MPLS L3VPN”):

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

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

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

1.5.1  A类跨AS的MDT模式MVPN

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

图1-7 A类跨AS的MDT模式MVPN示意图

 

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

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

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

说明

由于ASBR之间转发的只是私网组播数据,因此各AS内部运行的公网PIM模式可以不同,但属于同一VPN的所有接口(包括ASBR上绑定VPN实例的接口)上必须运行统一的PIM模式(PIM-DM、PIM-SM、双向PIM或PIM-SSM)。

 

1.5.2  B类跨AS的MDT模式MVPN

在B类跨AS的MDT模式MVPN中,RPF代理向量和BGP Connector的介绍如下:

·     RPF代理向量:由于AS之间的公网路由相互隔离,设备无法找到去往其它AS中PE的路由,从而导致RPF检查失败,因此要引入RPF代理向量来协助完成公网的RPF检查。PE向其他AS域的PE发起PIM加入信息时,把从BGP MDT路由中获得的下一跳地址即本AS的ASBR地址作为RPF代理向量发向上游设备。

·     BGP Connector:PE在私网通过MTI向对端PE发送PIM加入报文时,需要查找私网路由,使用路由下一跳作为私网PIM加入报文中的上游邻居地址,以便在对端PE收到该报文后进行RPF检查。在非跨AS的情况下,下一跳正好对应对端PE上MTI的源地址;但在B类跨AS的情况下,BGP协议会将下一跳改为本AS的ASBR地址,而不是对端PE的地址,这样就会导致RPF检查失败。为了避免这种情况,需要BGP对等体在交换VPN-IPv4路由时携带源PE的地址(该地址称为BGP Connector),PE在私网通过MTI发送PIM加入报文时,报文中的上游地址填写为对端PE的BGP Connector。

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

图1-8 B类跨AS的MDT模式MVPN示意图

 

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

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

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

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

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

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

说明

在B类跨AS的MDT模式MVPN组网中,公网只支持PIM-SSM模式。

 

1.5.3  C类跨AS的MDT模式MVPN

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

图1-9 C类跨AS的MDT模式MVPN示意图

 

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

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

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

1.6  跨VPN组播转发

组播VPN可以解决组播源与接收者同属一个VPN时的组播转发问题,而不同VPN之间的组播数据则是相互隔离的。在实际应用中,服务提供商可能会给不同用户提供组播业务,但服务提供商和用户可能处在不同的VPN中,此时就需要进行跨VPN的组播转发。

图1-10 跨VPN组播转发示意图

 

图1-10所示,组播源Source 1位于VPN A的Site 1,接收者Receiver 1位于VPN A的Site 2,Receiver 2则位于VPN B的Site 1。组播VPN只能使Receiver 1接收来自Source 1的组播数据,而跨VPN组播转发则可使Receiver 2也能够接收来自Source 1的组播数据。如果将与组播源所在站点直连的PE(即PE 1)称为源PE,与接收者所在站点直连的PE(即PE 2和PE 3)称为接收者PE,那么跨VPN组播转发有以下两种配置方案:

2. 源PE配置方案

本方案的要点就是在源PE上创建接收者所属VPN的实例,并为该实例配置组播VPN相关配置。本方案仅支持MDT模式的MVPN的配置。

图1-11 源PE配置方案示意图

 

图1-11所示:

·     为实现VPN实例A之间(Site1到Site2)的组播流量转发,需要在PE1和PE2上配置MVPN相关配置。

·     为实现VPN实例A和VPN实例B(Site1到Site3)之间的组播流量转发,需要在PE1上创建VPN实例B并配置MVPN相关配置。同时在VPN实例B中配置相应的跨VPN组播路由的RPF选路策略,当VPN实例B里面的Receiver 2发起(*,G)加入,并且加入的组播组能够匹配跨VPN选路策略。那么来自Source 1的组播数据在PE 1上经过复制和封装之后,将分别沿着VPN实例A和VPN实例B的Default-MDT到达PE 2和PE 3,并在解封装后最终到达Receiver 1和Receiver 2。

3. 接收者PE配置方案

本方案的要点则是在接收者PE上创建组播源所属VPN的实例,并为该实例配置组播VPN相关配置。本方案支持三种模式的MVPN的配置,本节中的描述以MDT模式的MVPN为例。

图1-12 接收者PE配置方案示意图

 

图1-12所示:

·     为实现VPN实例A之间(Site1到Site2)的组播流量转发,需要在PE1和PE2上配置MVPN相关配置。

·     为实现VPN实例A和VPN实例B(Site1到Site3)之间的组播流量转发,需要在PE3上创建VPN实例A并配置MVPN相关配置。同时在VPN实例B中配置相应的跨VPN组播路由的RPF选路策略,当VPN实例B里面的Receiver 2发起(*,G)加入,并且加入的组播组能够匹配跨VPN选路策略。那么来自Source 1的组播数据在PE 1上经过封装之后,将沿着VPN实例A的Default-MDT分别到达PE 2和PE 3,在PE2上直接解封装后到达Receiver 1;在PE3上解封装后,并匹配跨VPN组播路由的RPF选路策略到达Receiver 2。

1.7  M6VPE

M6VPE(Multicast IPv6 VPN Provider Edge)是IPv6组播VPN的简称, M6VPE使得PE向CE侧的IPv6组播业务提供接入服务,使其私网的IPv6组播数据穿过骨干网到达对端PE和CE,实现相同VPN内各站点之间的IPv6组播数据转发功能。目前只支持IPv4骨干网,即私网的IPv6组播数据穿越IPv4骨干网到达对端站点。

图1-13所示,CE设备所属网络均运行IPv6组播。CE1与CE2之间跨IPv4骨干网进行IPv6组播数据转发并互通,在PE设备上运行M6VPE功能。

图1-13 M6VPE应用组网示意图

PE设备运行M6VPE功能之后,骨干网运行IPv4组播。当来自CE的IPv6组播数据经过PE后,会封装上IPv4的头部并在IPv4骨干网中传输。到达对端PE后,再将IPv4封装解除并还原为IPv6数据报文在CE侧传输。

1.8  协议规范

与组播VPN相关的协议规范有:

·     RFC 6037:Cisco Systems' Solution for Multicast in BGP/MPLS IP VPNs

·     RFC 6513:Multicast in MPLS/BGP IP VPNs

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


2 配置组播VPN

2.1  组播VPN配置任务简介

2.1.1  MDT模式组播VPN

MDT模式组播VPN功能均在PE上配置。配置MDT模式组播VPN任务如下:

(1)     使能VPN实例中的IP组播路由

(2)     创建MDT模式MVPN实例

(3)     创建MVPN地址族

(4)     指定Default-Group

(5)     指定MVPN源接口

(6)     (可选)配置Data-MDT切换参数

(7)     (可选)配置RPF代理向量功能

(8)     (可选)开启Data-Group重用日志功能

(9)     配置BGP MDT

当在公网中运行PIM-SSM时,需要进行BGP MDT的配置。

a.     使能BGP MDT对等体/对等体组

b.     (可选)配置BGP MDT路由反射器

c.     (可选)提高邻居路由参与优选时的优先级

2.2  配置MDT模式组播VPN

2.2.1  组播VPN配置准备

在配置MDT模式MVPN之前,需完成以下任务:

·     在公网中配置任一单播路由协议

·     在公网中配置MPLS L3VPN

·     在公网中配置PIM-DM、PIM-SM、双向PIM或PIM-SSM

2.2.2  使能VPN实例中的IP组播路由

(1)     进入系统视图。

system-view

(2)     进入VPN实例视图。

ip vpn-instance vpn-instance-name

本命令的具体介绍请参见“MPLS命令参考”中的“MPLS L3VPN”。

(3)     配置VPN实例的RD。

route-distinguisher route-distinguisher

本命令的具体介绍请参见“MPLS命令参考”中的“MPLS L3VPN”。

(4)     退回系统视图。

quit

(5)     进入接口视图。

interface interface-type interface-number

(6)     配置接口与指定的VPN实例关联。

ip binding vpn-instance vpn-instance-name

缺省情况下,接口未关联VPN实例,接口属于公网。

本命令请参见“MPLS命令参考”中的“MPLS L3VPN”。

(7)     退回系统视图。

quit

(8)     使能VPN实例中的组播路由,并进入该VPN实例的MRIB视图。

(IPv4网络)

multicast routing vpn-instance vpn-instance-name

缺省情况下,IP组播路由处于关闭状态。

本命令的具体介绍请参见“IP组播命令参考”中的“组播路由与转发”。

(IPv6网络)

ipv6 multicast routing vpn-instance mvpn

缺省情况下,IPv6组播路由处于关闭状态。

本命令的具体介绍请参见“IP组播命令参考”中的“IPv6组播路由与转发”。

2.2.3  创建MDT模式MVPN实例

1. 功能简介

可以在PE上为一个或多个VPN实例创建其各自的MVPN,来为不同的VPN提供服务。在在创建MDT模式MVPN实例时,系统会自动创建MTI,并将其与该VPN实例绑定。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     创建MDT模式MVPN实例,并进入MVPN视图。

multicast-vpn vpn-instance vpn-instance-name mode mdt

2.2.4  创建MVPN地址族

1. 功能简介

可以在一个MVPN实例内的MVPN IPv4或MVPN IPv6地址族下分别为不同的私网地址族实例提供组播VPN功能。

MVPN IPv4或MVPN IPv6地址族视图下配置的命令,都是只针对IPv4组播或IPv6组播有效。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入VPN实例的MVPN视图。

multicast-vpn vpn-instance vpn-instance-name mode mdt

(3)     创建MVPN地址族视图,并进入MVPN地址族视图

(IPv4网络)

address-family ipv4

(IPv6网络)

address-family ipv6

2.2.5  指定Default-Group

1. 配置限制和指导

MTI在封装私网组播报文时使用Default-Group作为目的地址。需要注意的是:

·     在不同的PE上,应该为相同VPN实例的MVPN指定相同的Default-Group。

·     不允许指定已被其它MVPN使用的Default-Group或Data-Group。

·     在MVPN IPv4地址族和MVPN IPv6地址族下,Default-Group必须配置一样。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入MVPN视图。

multicast-vpn vpn-instance vpn-instance-name mode mdt

(3)     进入MVPN地址族视图。

(IPv4网络)

address-family ipv4

(IPv6网络)

address-family ipv6

(4)     指定Default-Group。

default-group group-address

2.2.6  指定MVPN源接口

1. 功能简介

MTI在封装私网组播报文时使用MVPN源接口的IP地址作为源地址。

2. 配置限制和指导

MVPN源接口必须与建立BGP对等体时所使用的源接口相同,否则将无法获取正确的路由信息。并且在同一个MVPN实例内MVPN IPv4和MVPN IPv6地址族下的配置必须一致。

只有在指定了Default-Group和MVPN源接口,并获取到MVPN源接口的公网IP地址之后,MTI才会生效。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入MVPN视图。

multicast-vpn vpn-instance vpn-instance-name mode mdt

(3)     进入MVPN地址族视图。

(IPv4网络)

address-family ipv4

(IPv6网络)

address-family ipv6

(4)     指定MVPN源接口。

source interface-type interface-number

缺省情况下,未指定MVPN源接口。

2.2.7  配置Data-MDT切换参数

1. 功能简介

在某些情况下,私网组播数据的转发速率会在切换阈值上下震荡。为了避免组播数据流在Default-MDT与Data-MDT之间进行频繁切换:

·     当转发速率高于阈值后并不立即切换,而是等待Data-Delay时间。在这段时间内如果转发速率始终高于阈值,则切换至Data-MDT,否则继续使用Default-MDT进行转发;

·     当转发速率低于阈值后也不立即切换,而是等待Data-Holddown时间。在这段时间内如果转发速率始终低于阈值,则切换回Default-MDT,否则继续使用Data-MDT进行转发。

2. 配置限制和指导

同一台设备上,一个MVPN的Data-group范围不能包含任何其他MVPN的Default-group,也不能与其他任何MVPN的Data-group范围重叠。同一个MVPN的MVPN IPv4地址族和MVPN IPv6地址族下的Data-group范围不能互相重叠。

在不同设备上,如果公网为非PIM-SSM模式,则不同MVPN不能配置重叠的Data-Group。

所有VPN实例共用Data-Group资源,所以不建议在单个VPN实例内把Data-Group的范围配置的过大,否则会导致其他VPN实例无可用Data-Group。

当私网运行双向PIM模式时,不支持由Default-MDT向Data-MDT切换。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入MVPN视图。

multicast-vpn vpn-instance vpn-instance-name mode mdt

(3)     进入MVPN地址族视图。

(IPv4网络)

address-family ipv4

(IPv6网络)

address-family ipv6

(4)     配置Data-Group的范围和切换条件。

data-group group-address { mask-length | mask } [ threshold threshold-value | acl acl-number ] *

缺省情况下,不存在Data-Group的范围,也永不向Data-MDT进行切换。

(5)     配置由Default-MDT向Data-MDT切换的延迟时间。

data-delay delay

缺省情况下,由Default-MDT向Data-MDT切换的延迟时间为3秒。

(6)     配置由Data-MDT向Default-MDT反向切换的延迟时间。

data-holddown delay

缺省情况下,由Data-MDT向Default-MDT反向切换的延迟时间为60秒。

2.2.8  配置RPF代理向量功能

1. 功能简介

在配置B类跨AS的MDT模式MVPN时,必须在PE上开启RPF代理向量功能,从而使PE发出的PIM加入报文可携带用于进行RPF检查的RPF代理向量信息,以创建正确的公网Default-MDT。

2. 配置限制和指导

请在连接组播接收者的PE上开启RPF代理向量功能。

如果要与公网中某些厂商的设备互通,则还需在公网中的所有H3C的P和PE设备上都开启RPF代理向量兼容功能。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入VPN实例MRIB视图。

multicast routing vpn-instance vpn-instance-name

(3)     开启RPF代理向量功能。

rpf proxy vector

缺省情况下,RPF代理向量功能处于关闭状态。

(4)     开启RPF代理向量兼容功能。

multicast rpf-proxy-vector compatible

缺省情况下,RPF代理向量兼容功能处于关闭状态。

2.2.9  开启Data-Group重用日志功能

1. 功能简介

在源PE上的VPN实例中,如果需要切换的私网组播数据流的个数超过了Data-Group范围中组地址的个数时,可以重复使用该地址池中的组地址。通过打开Data-Group重用日志输出开关可以记录组地址重用的日志信息。

Data-group重用日志信息的级别为informational,隶属于MVPN模块。有关日志信息的详细介绍,请参见“网络管理和监控配置指导”中的“信息中心”。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入MVPN视图。

multicast-vpn vpn-instance vpn-instance-name mode mdt

(3)     进入MVPN地址族视图。

(IPv4网络)

address-family ipv4

(IPv6网络)

address-family ipv6

(4)     开启Data-Group重用日志功能。

log data-group-reuse

缺省情况下,Data-Group重用日志功能处于关闭状态。

2.3  配置BGP MDT

2.3.1  使能BGP MDT对等体/对等体组

1. 功能简介

只有在BGP IPv4 MDT地址族下使能BGP MDT对等体/对等体组后,本地设备才能与指定的对等体/对等体组交换MDT信息,该信息包含PE地址及PE所在的Default-Group等信息。在公网中运行PIM-SSM时,组播VPN根据MDT信息在公网上建立以PE为根(即组播源)的Default-MDT。

2. 配置准备

在执行本命令前,需先在BGP实例视图下创建对等体/对等体组,创建方法请参见“三层技术-IP路由配置指导”中的“BGP”。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3)     进入BGP IPv4 MDT地址族视图。

address-family ipv4 mdt

(4)     使能本地设备与指定对等体/对等体组交换MDT路由信息的能力。

peer { group-name | ip-address [ mask-length ] } enable

本命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP”。

2.3.2  配置BGP MDT路由反射器

1. 功能简介

·     路由反射器

为保证位于同一AS内的BGP MDT对等体间的连通性,需要在对等体之间建立全连接关系,而当对等体的数目很多时,建立全连接的开销很大,使用路由反射器则可以解决这个问题。

在配置了路由反射器之后,其它设备作为客户机与路由反射器建立BGP会话,路由反射器在客户机之间传递(反射)BGP MDT信息,从而使各客户机之间无需建立BGP会话。

·     禁止路由反射器在客户机之间反射路由

如果配置了路由反射器后,由于组网需要在路由反射器的客户机之间建立了全连接,则客户机之间可以直接交换路由信息,客户机到客户机之间的路由反射是没有必要的。此时,不需要修改网络配置或改变网络拓扑,只需在路由反射器上通过undo reflect between-clients命令禁止其在客户机之间反射路由,就可以避免路由反射,减少占用的带宽资源。

·     路由反射器的集群ID

路由反射器及其客户机共同组成了一个集群。通常,一个集群中只有一个路由反射器,并通过其Router ID来识别该集群。为了增强网络的可靠性,可在一个集群中配置多个路由反射器,此时应为每个路由反射器配置相同的集群ID,以避免产生路由环路。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3)     进入BGP IPv4 MDT地址族视图。

address-family ipv4 mdt

(4)     配置本机作为路由反射器,对等体/对等体组作为路由反射器的客户机。

peer { group-name | ip-address [ mask-length ] } reflect-client

缺省情况下,没有配置路由反射器及其客户机。

(5)     (可选)禁止路由反射器在客户机之间反射路由。

undo reflect between-clients

缺省情况下,允许路由反射器在客户机之间反射路由。

关于本命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP”。

(6)     (可选)配置路由反射器的集群ID。

reflector cluster-id { cluster-id | ip-address }

缺省情况下,每个路由反射器都使用自己的Router ID作为集群ID。

关于本命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP”。

2.3.3  提高邻居路由参与优选时的优先级

1. 功能简介

缺省情况下,BGP不为指定对等体/对等体组设置对等体高优先级,按照BGP的选路规则进行路由优选。执行本配置后,从配置中指定的对等体/对等体组、其他对等体/对等体组学习到相同前缀的路由时,优选从本配置指定的对等体/对等体组学习到路由。该选路规则应用于“依次选择从EBGP、联盟EBGP、联盟IBGP、IBGP学来的路由”之后,“优选IGP Metric值最小的路由”之前。有关BGP选路规则的详细介绍,请参见“三层技术-IP路由配置指导”中的“BGP”。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3)     进入BGP IPv4 MDT地址族视图。

address-family ipv4 mdt

(4)     为指定对等体/对等体组设置高优先级,路由选路时优选从该对等体/对等体组学习到的路由。

peer { group-name | ipv4-address [ mask-length ] } high-priority

缺省情况下,BGP不为指定对等体/对等体组设置高优先级,选路规则不发生变化。

2.4  配置跨VPN组播转发路由选路策略

2.4.1  功能简介

配置跨VPN组播转发路由的RPF选路策略,可以实现组播源和组播接收者位于不同的VPN网络之间的组播转发。

2.4.2  配置限制和指导

源VPN和接收者VPN必须运行相同的PIM模式,目前支持PIM-SM和PIM-SSM。

只支持一次跨VPN组播转发,接收VPN不能同时作为源VPN。

采用PIM-SM方式,对于同一个组播组地址,只能配置一条指定VPN实例的组播路由的RPF选路策略。

如果在接收者VPN中配置了跨VPN的IPv4组播路由的RPF选路策略,且该策略只指定了组播组地址,那么该VPN原先相同的VPN实例的组播流量转发将中断。

如果在RPF选路策略中指定了组播源,则需同时配置两条RPF选路策略:

·     如果未指定组播组,那么其中一条是以服务于有跨VPN需求的组播组的RP地址作为源地址,另一条是源VPN里的组播源作为源地址。

·     如果指定了组播组,那么其中一条是以服务于有跨VPN需求的组播组的RP地址作为源地址,有跨VPN需求的组播组作为组地址;另一条是源VPN里的组播源作为源地址,有跨VPN需求的组播组作为组地址。且此时两条策略中的组播组地址必须完全相同。否则不能实现跨VPN转发。

普通三层组播和MDT模式的组播VPN支持源PE配置方案和接收者PE配置方案。

在源PE配置方案中,若采用PIM-SM模式,则接收者所在VPN的RP必须配在组播源侧设备上与接收者所在VPN相同的VPN内。

2.4.3  配置准备

在配置本功能前,需先配置组播VPN。

1. 源PE方案

具体配置可以参考“2.2  配置MDT模式组播VPN”。

2. 接收者PE方案

具体配置可以参考“2.2  配置MDT模式组播VPN

2.4.4  跨VPN的IPv4组播路由的RPF选路策略

(1)     进入系统视图。

system-view

(2)     进入MRIB实例视图。

multicast routing [ vpn-instance vpn-instance-name ]

(3)     跨VPN的IPv4组播路由的RPF路策略。

multicast extranet select-rpf [ vpn-instance vpn-instance-name ] { source source-address { mask | mask-length } | group group-address { mask | mask-length } } *

缺省情况下,没有配置跨VPN的IPv4组播路由的RPF选路策略。

2.4.5  跨VPN的IPv6组播路由的RPF选路策略

(1)     进入系统视图。

system-view

(2)     进入IPv6 MRIB实例视图。

ipv6 multicast routing [ vpn-instance vpn-instance-name ]

(3)     跨VPN的IPv6组播路由的RPF选路策略。

ipv6 multicast extranet select-rpf { vpn-instance vpn-instance-name } { source ipv6-source-address prefix-length | group ipv6-group-address  prefix-length }*

缺省情况下,没有配置IPv6跨VPN组播路由的RPF选路策略。

 

2.5  组播VPN显示和维护

在完成上述配置后,在任意视图下执行display命令可以显示配置后组播VPN的运行情况,通过查看显示信息验证配置的效果。

在用户视图下执行reset命令可以复位MDT地址族下的BGP会话。

表2-1 MDT模式组播VPN显示和维护

操作

命令

显示BGP MDT对等体组的信息

display bgp [ instance instance-name ] group ipv4 mdt [ group-name group-name ]

显示BGP MDT对等体或对等体组的信息

display bgp [ instance instance-name ] peer ipv4 mdt [ ip-address mask-length | { ip-address | group-name group-name } log-info | [ ip-address ] verbose ]

显示BGP MVPN对等体或对等体组的信息

display bgp [ instance instance-name ] peer ipv4 mvpn [ ip-address mask-length | { ip-address | group-name group-name } log-info | [ ip-address ] verbose ]

显示BGP MDT的路由信息

display bgp [ instance instance-name ] routing-table ipv4 mdt [ route-distinguisher route-distinguisher ] [ ip-address [ advertise-info ] ]

显示BGP IPv4 MDT地址族下打包组的相关信息

display bgp [ instance instance-name ] update-group ipv4 mdt [ ip-address ]

显示MVPN收到的封装IPv4私网组播报文的Data-Group信息

display multicast-vpn vpn-instance vpn-instance-name data-group receive [ brief | [ active | group group-address | sender source-address | vpn-source-address [ mask { mask-length | mask } ] | vpn-group-address [ mask { mask-length | mask } ] ] * ]

显示MVPN收到的封装IPv6私网组播报文的Data-Group信息

display multicast-vpn vpn-instance vpn-instance-name ipv6 data-group receive [ brief | [ active | group group-address | sender source-address | vpn-source-address [ mask-length ] | vpn-group-address [ mask-length ] ] * ]

显示MVPN发送的封装IPv4私网组播报文的Data-Group信息

display multicast-vpn vpn-instance vpn-instance-name data-group send [ group group-address | reuse interval | vpn-source-address [ mask { mask-length | mask } ] | vpn-group-address [ mask { mask-length | mask } ] ] *

显示MVPN发送的封装IPv6私网组播报文的Data-Group信息

display multicast-vpn vpn-instance vpn-instance-name ipv6 data-group send [ group group-address | reuse interval | vpn-source-address [ mask-length ] | vpn-group-address [ mask-length ] ] *

显示封装IPv4私网组播报文的Default-Group的信息

display multicast-vpn [ vpn-instance vpn-instance-name ] default-group { local | remote }

显示封装IPv6私网组播报文的Default-Group的信息

display multicast-vpn [ vpn-instance vpn-instance-name ] ipv6 default-group { local | remote }

复位MDT地址族下的BGP会话

reset bgp [ instance instance-name ] { as-number | ip-address [ mask-length ] | all | external | group group-name | internal } ipv4 mdt

 

说明

有关display bgp groupdisplay bgp peerdisplay bgp update-groupreset bgp命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP”。

 

2.6  组播VPN常见故障处理

2.6.1  无法建立Default-MDT

1. 故障现象

无法正确建立Default-MDT,不同PE上相同的VPN实例之间无法建立起PIM邻居关系。

2. 故障分析

·     MTI必须有Default-Group和可用的MVPN源接口IP地址才能生效,否则无法建立Default-MDT。

·     在不同的PE上,相同的VPN实例需要指定相同的Default-Group,每个Default-Group唯一标识一个Default-MDT。如果不同PE上相同的VPN实例不存在相同的Default-Group,则该VPN实例在不同PE上无法建立Default-MDT。

·     在不同的PE上,相同VPN实例的各接口必须使用相同的PIM模式,P上所有接口必须使用相同的PIM模式,这样才能正确地建立Default-MDT,本地PE和远端PE相同的VPN实例上才能建立PIM邻居关系。否则无法建立Default-MDT。

·     只有配置了BGP和单播路由,PIM才能正确地获取路由信息;只有VPN实例中至少一个接口上使能了PIM协议,MTI上的PIM协议才会被使能,从而使不同PE相同的VPN实例之间建立PIM邻居。否则无法建立PIM邻居关系。

3. 处理过程

(1)     检查MTI的接口状态。使用display interface命令检查MTI的接口状态和地址封装信息。

(2)     检查Default-Group。使用display multicast-vpn default-group命令检查不同PE上相同的VPN实例是否配置有相同的Default-Group。

(3)     检查各设备VPN实例中是否至少在一个接口上使能了PIM协议,不同PE属于同一VPN实例的各接口上是否使用了相同的PIM模式,以及P的各接口上是否使用了相同的PIM模式。使用display pim interface verbose命令查看各接口上的PIM信息。

(4)     检查单播路由。使用display ip routing-table命令检查本地PE的VPN实例是否有到达远端PE的相同VPN实例的单播路由项。

(5)     检查是否配置BGP对等体。使用display bgp peer命令查看配置的BGP对等体信息。

2.6.2  VPN实例无法正确建立组播路由表

1. 故障现象

VPN实例无法正确建立起组播路由表。

2. 故障分析

·     如果VPN实例使能的是PIM-SM,需要有该VPN实例的BSR信息,否则无法正确建立该VPN实例的组播路由表。

·     如果VPN实例使能的是PIM-SM,需要有该VPN实例的RP信息,如果没有通向RP的单播路由,公网实例和VPN实例没有正确建立PIM邻居关系,VPN实例就无法正确建立组播路由表。

·     私网DR需要有到达私网RP的路由,私网内要有到达组播源的路由。

3. 处理过程

(1)     使用display pim bsr-info命令查看公网实例和VPN实例是否有BSR信息。如果不存在BSR信息,则需要查看是否有通向BSR的单播路由。

(2)     使用display pim rp-info命令查看RP信息是否正确。如果没有RP信息,则检查是否有通向RP的单播路由。使用display pim neighbor命令查看公网和私网上是否正确建立了邻居关系。

(3)     使用ping命令检查私网DR与私网RP之间、接收者与组播源之间是否通达。

不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!

新华三官网
联系我们