方案一:基于PIM-SM/mGRE的承载方案

wKioL1MTNhuw8qzxAAFFOClU5bo790.jpg


   如图所示,公网运行PIM-SM协议,且PE 1、PE2和PE 3都支持mVRF实例。

   不同的mVRF站点加入到同一个组播域(MD)中,通过MD内自动建立的组播隧道(MT)将这些MVRF站点连接在一起,实现组播互通。

   接下来以上图为例,详细介绍组播×××的工作原理。

   Share-MDT的创建过程如下:

  1. PE 1的mVRF实例向公网RP发起加入(Join),以Share-Group地址为组播组地址,在公网沿途的各设备上分别创建(*,Share-Group)表项。同时,PE 2和PE3也各自发起类似的加入过程,最终在MD中形成一棵以公网RP为根,PE 1、PE2和PE 3为叶的RPT。

  2. PE 1的mVRF实例向公网RP发起注册(Register),以接口地址为组播源地址、Share-Group地址为组播组地址,在公网沿途的各设备上分别创建(S,Share-Group)表项。同时,PE 2和PE3也各自发起类似的注册过程,最终在MD中形成三棵相互独立的、连接PE与RP的SPT。

  3. 在PIM-SM网络中,由RPT(*,Share-Group)以及三棵相互独立的SPT共同组成Share-MDT。


   Share-MDT构建完成后,就可以进行组播报文的传输。其中,组播协议报文和组播数据报文的传输过程是不同的,下面分别进行介绍。

  1. 组播协议报文的传输:

    a)当私网组播接收者和组播源位于×××网络中的不同Site时,组播协议报文必须跨越公网进行传输。协议报文在本地PE上被封装为普通的公网组播数据并沿Share-MDT进行传输,在远端PE上被解封装,从而继续进行正常的协议交互过程,最终建立一棵跨越公网的组播分发树。

    b)如果接收者与私网RP位于不同的Site,需要跨越公网发起加入以创建RPT;如果组播源与私网RP位于不同的Site,需要跨越公网发起注册以创建SPT。


  2. 组播数据报文的传输:

    a)当组播分发树创建完成后,私网组播数据沿组播分发树传输给各Site中的接收者。私网组播数据在本地PE上被封装为普通的公网组播数据并沿Share-MDT进行传输,在远端PE上被解封装,从而继续在私网内进行组播数据的传输。

    b)如果接收者与私网RP位于不同的Site,沿RPT跨越公网进行私网组播数据的传输;如果组播源与私网RP位于不同的Site,沿SPT跨越公网进行私网组播数据的传输。

    c)为了防止组播数据流沿着share-MDT传送m×××中的所有PE,浪费网络带宽,在各PE之间还可以按需建立专用的Data-MDT。当私网中组播数据的传输速率超过一定门限时,将该组播数据流从Share-MDT切换到Data-MDT,只有带有接收者的PE才会加入到Data-MDT,从而实现按需组播。


方案二:基于PIM-SSM/mGRE的承载方案

wKiom1MTNbqQLCBEAAEje3fQJzM892.jpg


   如图所示,公网中运行PIM-SSM,且PE 1、PE2和PE 3都支持mVRF实例。

   该方案采用BGP AD方式实现M××× PE成员自动发现机制,通过在BGP消息中定义新的MDT地址族,向所有PEER发布M×××的RD信息以及Share-group地址。对端PE收到MDT-SAFI消息后,与自己的Share-group地址进行匹配,相同则加入该M×××实例。BGP AD方式不依赖公网RP和MSDP协议,通过在公网建立PIM-SSM组播转发树,承载私网组播业务。

   Share-MDT的创建过程如下:

  1. PE 1的公网实例分别向PE 2和PE 3的公网实例通知其本地的BGP MDT信息(包含BGP接口地址和Share-Group地址等信息),并互换BGP MDT路由信息;PE 2和PE 3收到来自PE1的BGP MDT信息后,分别向PE 1的BGP接口地址逐跳发送订阅报文,在公网沿途的各设备上分别创建(S,Share-Group)表项,从而形成一棵以PE 1为根、PE 2和PE3为叶的SPT。

  2. 同时,分别以PE 2和PE 3为根的SPT形成过程与此类似,最终在MD中形成三棵相互独立的SPT。

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

   Share-MDT构建完成后,就可以进行组播报文的传输。组播协议报文和组播数据报文的传输过程与方案一类似,为了防止组播数据流沿着share-MDT传送给m×××中的所有PE,在各PE之间也可以按需建立专用的Data-MDT,以实现按需组播。


方案三:基于mLDP的承载方案

wKiom1MTNu7RMAqaAAE_BeQ-tGI754.jpg


   基于MP2MP LSP建立Share-MDT,用于传递信令消息和小流量数据。

   基于P2MP LSP建立Data-MDT,采用MDT join TLV消息动态建立Data-MDT,用于转发高带宽数据流量。

   一条MP2MP LSP允许业务流从多个入口节点传输到多个出口节点;一条P2MP LSP允许业务流从一个根节点(或入口节点)传输到多个叶节点(或出口节点)。

   在MP LSP的每一条链路上只需传输数据包的一份拷贝,不需要组播路由协议的支持。允许多条MP LSP以一个入口节点为根节点,每一条MP LSP都有它自己的标识符。

   MP2MP LSP由一个根节点,零个或多个传输节点以及一个或多个叶节点组成。MP2MP LSP中的叶节点需要建立两条LSP:一条下游LSP,与从根节点出发的P2MP LSP相似;一条上游LSP,用来向根节点和其它叶节点发送数据流。传输节点支持上游和下游LSP的建立并保存相应的MPLS转发状态。MP2MP LSP中数据包从根节点传输到叶节点的过程与在P2MP LSP中类似;从叶节点发送的数据流首先通过上游LSP传输到根节点,然后在根节点经下游LSP传输到其它的叶节点。

   P2MP LSP由一个根节点,零个或多个传输节点以及一个或多个叶节点组成。由叶节点负责P2MP LSP的建立和撤销。根节点需要建立转发状态,并将业务流映射到P2MP LSP。


总结:

   三种组播×××承载方案之间的对比分析如下表所示。

   方案三基于mLDP协议,单播及组播流量都通过MPLS隧道转发,转发效率高,并采用MPLS OAM机制维护公网组播状态,可维护性更好,在三个方案中实现方式最优,但是目前多数现网设备不支持该方案,因此不具备现网部署条件。

   方案一和方案二都是基于PIM协议和mGRE隧道来实现组播×××业务的承载,对公网设备能力有较高要求。其中方案一基于PIM-SM方式,依赖公网RP和MSDP来建立公网MDT;方案二基于PIM-SSM,不需要依赖公网RP,且基于BGP实现拓扑自动发现,稳定性更好。因此推荐采用方案二。



方案一

PIM-SM/mGRE M×××

方案二

PIM-SSM/mGRE M×××

方案三

mLDP M×××

用户组网

公网组播对用户透明

公网组播对用户透明

公网组播对用户透明

公网组网

基于PIM-SM协议和mGRE隧道,依赖于公网RPMSDP协议

基于PIM-SSM协议和mGRE隧道,不依赖公网RPMSDP协议,采用BGP mdt地址族实现拓扑自动发现

基于MP2MP/P2MP LSP建立公网MDT,不依赖PIM协议

冗余备份及故障收敛

组播源双挂场景故障倒换慢

组播源双挂场景故障倒换慢

可实现FRR快速倒换

设备支持力度

各主流厂家设备均支持该方式,互通性好

各主流厂家设备均支持该方式,互通性好

厂家设备实现不成熟,互通性差