zoukankan      html  css  js  c++  java
  • MVPN技术原理

    组播MVPN技术白皮书

    本文档介绍了迈普通信技术股份有限公司路由器产品支持的组播MVPN功能的基本原理及其关键技术。当您需要了解学习组播MVPN技术的时候,可参考本章节的内容。对本章节提及的MPLS/BGP等相关技术,请参阅相关文档。

    1概述
    IP组播的应用越来越广泛,很多行业开始将其作为应用的解决方案。同时VPN技术在企业网中的应用也越来越普及,在目前的电子政务网、电力数据等企业网络中,几乎都是基于BGP/MPLS IP VPN的架构,通过将不同部门划分到不同的VPN中以实现部门间的数据隔离。同样地,对部门内部的视频会议、数据共享等组播业务也需要实现VPN隔离,因此就有了组播VPN日益紧迫的需求。如何在VPN环境中应用组播技术,成为需要解决的重要问题之一。
    在BGP/MPLS IP VPN网络内开展组播业务需要解决以下几方面的问题:
    (1) 公网支持组播功能。
    私网组播数据除了在私网内进行组播转发外,如果在公网中也能进行组播转发,将使公网的数据负载大大减少,从而节约带宽。
    (2) 在公网对私网组播数据进行RPF 检查。
    组播数据的转发模式与单播不同,要根据组播源地址和入接口对组播数据进行RPF 检查,只有通过检查才能被转发。而在BGP/MPLS IP VPN 网络中,由于公网中的P 设备无法获得私网路由,因此不能直接对私网组播数据进行转发。
    (3) 私网地址空间重叠。
    由于BGP/MPLS IP VPN 网络允许各VPN 的私网地址空间重叠,因此不同VPN 用户所使用的组播源和组播组地址可能是重叠的,PE 需要能够将私网组播数据正确地转发给同一VPN 内的用户。
    (4) 私网组播数据实现按需发送。
    一个VPN 由多个Site 构成,每个Site 连接到不同的PE,但并非每个Site 都需要组播数据,因此如果私网组播数据通过公网时只流向那些有需求的PE,将会减少PE 的负荷。
    2技术简介
    2.1MVPN基本原理
    在BGP/MPLS提供的IP VPN业务中,单播路由在骨干网中是最优的,P路由器不维护任何VPN 相关的单播路由状态。与单播不同,为了节约骨干网中的带宽,需要在骨干网中运行组播路由协议。骨干网中将会为每个Multicast VPN保留一棵或者多棵组播分发树。
    SP确定某个VPN是否使能了组播。如果它使能了组播,那么它就对应一个Multicast Domain(组播域)。连接到某个使能了组播VPN的PE路由器被称为属于相应的Multicast Domain。对于每个Multicast Domain, 在骨干网中都要建立一棵组播分发树,用来连接所有属于该Multicast Domain的PE路由器。一个给定的PE路由器,它可以在多个Multicast Domain中,只要它连接了多个VPN。但是,每个Multicast Domain都有自己的MDT。MDT是在骨干网中运行PIM来创建的,它可以包含PE路由器之间的位于组播路径上的P路由器。同一般的组播树建立过程不同的是,Default MDT是在域内PE路由器启动之后,自动建立起来。Default MDT的建立不需要依赖域内存在组播流,它在组播流存在之前就已经建立完成。
    在BGP/MPLS模式下提供的IP VPN业务中,某个CE路由器和与之相连的PE路由器是单播路由邻接,但分属不同站点的CE路由器相互不能成为单播路由邻接。这个重要特征在Multicast VPN中也保留了下来。CE路由器和与之相连的PE路由器成为PIM邻接,但是不同站点的CE路由器不能成为PIM邻接。
    来自某个VPN的组播业务流将会由Ingress(输入) PE路由器从CE路由器那里收到。Ingress PE路由器将封装这些组播业务报文,并且开始沿着Default MDT转发它们到连接了指定VPN站点的所有Egress(输出) PE路由器。如果Egress PE路由器没有接收者,那么丢弃收到的组播业务报文。否则,Egress PE路由器将组播报文解除封装后,转发给CE路由器。
    为了减少使用Default MDT时,没有接收者的PE路由器将会收到并不需要的组播业务流的问题,骨干网中可以使用DATA MDT。DATA MDT只会将组播业务流转发给那些有接收者的Egress PE路由器。使用DATA MDT将会有两个优点。第一,减少了骨干网中的组播业务总的流量;第二,减少了某些PE路由器上的负载。但也有一个缺点,DATA MDT将会增加P路由器上维护的组播路由状态的数目。SP可以在这两者之间找到一个比较好的平衡点。
    2.2术语
    MD:是指能够互相发送和接收组播报文的所有设备组成的集合。
    MTI(Multicast Tunnel Interface):在 PE 上的私网 PIM 实例看来,组播隧道是一个虚拟的物理接口,称为MTI。PE上的每个私网PIM实例都具有一个MTI。当用户在 VPN 实例中配置了Default-MDT后, MTI 实际上是 PE 上公网 PIM 实例和私网 PIM 实例进行交互的“通道”,是 PE 上私网实例之间建立 PIM 邻居的接口。通过共享组播隧道Default-MDT连通之后的各个PE上的MTI,相当于被连接到了共享网段上,各个PE上属于该MD的C-Instances 就在 MTI 上建立PIM邻居关系。在共享网段上的这些 MTI,进行正常的 DR 选举,产生 ASSERT 等。
    Default-MDT: PE 上的公网 PIM 实例加入到根据 default mdt建立的组播分发树,用于将 VPN 内的 PIM 协议报文和低速数据报文分发给其他同属于一个 VPN 的 PE 路由器,这个组播分发树我们称之为 Default-MDT。
    Data-MDT: 为了避免数据流向不必要的 PE 路由器,在建立起 Default-MDT 后,所有私网接收者的PE路由器加入到一个用 Data MDT Group 组而建立起来的按需发送的组播分发树,用于将 VPN 的高速数据报文分发给其他同属于一个 VPN 的PE 路由器。
    P-Instance:表示 PE 上公网 VRF 中的 PIM 实例,P-Group、P-Source类似。
    C-Instance:表示 PE 上私网 VRF 中的 PIM 实例,C-Group、C-Source类似。
    3关键技术
    3.1组播VRF
    MVRF(Multicast VRF,组播VRF)扩展了单播VRF,它不仅包含单播路由状态,而且还包含组播路由状态。对于每个MVRF,它维护自己的一套组播路由状态,而且在进行组播路由的时候,也仅在自己的组播路由状态中进行组播选路。
    在PE路由器上,有多少个MVRF,那么就运行多少个PIM实例。这些PIM实例被成为VPN相关的PIM实例。在PE路由器上只运行一个提供商有关(Provider-wide)的PIM实例,被称为PIM的P实例。在VPN相关的PIM实例中,PE路由器和CE路由器建立PIM的邻居关系。而在PIM的P实例中,PE路由器只和P路由器建立PIM邻接。PE路由器不和CE路由器建立PIM邻接关系,也不和其他的PE路由器建立PIM邻接关系(除非,其他PE路由器碰巧和它在SP网络中相连)。P路由器只运行一个PIM的P实例,只和PE或者P路由器建立PIM邻接。
    PIM的P实例和PIM的VPN相关实例有各自的组播地址空间,它们的组播地址可以相互覆盖。P实例的组播地址前加一个P(Provider,提供商)前缀表示,例如P实例的组播源地址称为P-Source(P源地址)。PIM的VPN相关实例的组播地址前加一个C(Client, 客户)前缀表示。
    3.2组播隧道
    Multicast Domain就是能够相互进行组播通信的MVRF集合。如下图所示,路由器PE_S连接的VRF_B和路由器PE_R连接的VRF_A被配置成为能够通过骨干网按照Multicast VPN的方式进行组播通信,那么它们就属于同一个Multicast Domain。
    为了达到VRF_A和VRF_B能够进行组播通信的目的,那么在PE_S路由器上要建立一个MT(Multicast Tunnel组播隧道)接口 ,同样,PE_R路由器上也要建立一个MT接口。通过这条虚拟的隧道,PE_S和PE_R就能建立PIM邻接关系,就能在VRF_B和VRF_A之间进行正常的组播通信了。MT是组播隧道,它和一般的单播隧道不同,它的目的地址是一个组播地址。

    3.3PE路由器自动发现
    如果骨干网中使用PIM SSM组播路由协议,那么必须使用一种带外机制来进行PE路由器的相互发现。只有完成了PE路由器的相互发现,那么才能建立Default MDT分发树。为此,BGP路由协议增加了一个更新的路由属性,这就是MDT SAFI NLRI (MDT的网络层次可达信息)属性。这些更新消息包含PE的IP地址,Default MDT的组地址,RD(Router Distinguisher)。一旦某个VRF配置了加入某个Default MDT的组地址,那么BGP就会向对等发送MDT SAFI NLRI可达的更新消息,那么PE通过这种方式完成了相互的发现。如果骨干网中使用PIM SM协议,虽然不需要该BGP属性来建立Default MDT,但也需要它来完成属于同一Multicast Domain的PE路由器的自动发现。
    3.4组播报文的封装

    C网络和SP网络的组播地址空间是完全隔离的,因此,如上图所示C网络的组播报文(控制消息和数据报文)在进入SP网络之前都需要进行封装。封装的使用的地址是Default MDT或者DATA MDT的组播组地址,源地址使用的是SP网络中某个接口(图中使用的Lo0接口的IP地址)的源地址,这样组播报文才能通过正常的组播路由到达那些Egress PE路由器。封装的方式有很多种,包含GRE、IP-IP、MPLS封装,这同具体的实现相关。实现至少需要支持GRE的封装模式,并且默认启动的就是GRE封装模式。
    3.5DATA MDT
    如果在骨干网中只使用Default MDT,那么有可能会出现带宽浪费的情况。例如,对于某个高速的组播流,而且所有的加入Default MDT的Egress PE都没有接收者,但是所有的Egress PE路由器都将收到多余的组播业务流,然后丢弃这些组播业务报文。作为组播路由状态来讲,这种情况就不是最优的,而且高速的组播流将会占用骨干网很大的带宽,而且增加那些没有接收者的Egress PE路由器的负载。作为一种优化的措施,SP将可以根据一定的条件,为这些高速的组播源建立DATA MDT。只有那些具有接收者的Egress PE路由器才需要加入到这个DATA MDT。组播业务流不会再发送到那些不需要它们的Egress PE路由器。这解决了前面所说的两个问题,但是这增加了P路由器维护的组播路由状态。控制消息(PIM 的协议报文)仍然是通过Default MDT来进行传送,所有的PE路由器都将收到并且处理这些控制消息。具体建立DATA MDT的处理过程简述如下,当Ingress PE发现某个VPN的组播业务流已经达到了切换到DATA MDT条件之后,那么它开始向所有的PE邻居发送MDT Join TLV(MDT 加入)消息,表示它将在DATA MDT分发树上进行对应组播流的转发。Ingress PE路由器在延迟一小段时间后,将使用DATA MDT的封装地址封装对应的VPN 组播业务流,在DATA MDT上进行组播业务流的转发。而有接收者的Egress PE路由器在收到MDT Join TLV消息之后,它将加入到DATA MDT。一旦Ingress PE切换到DATA MDT,那么Egress PE路由器将从DATA MDT上接收到对应VPN的组播业务流。而没有接收者的Egress PE路由器,将不加入DATA MDT,因此将不再接收到对应的组播业务流。
    4典型应用
    4.1单AS内MVPN部署

    如上图所示,在同一AS中,VPN a存在组播源和接收者。公网中运行OSPF和MPLS,各PE与CE之间运行RIP,并在各PE间建立BGP对等体连接以传递私网路由。
    开展AS内的VPN组播业务,需要在所有设备的公网实例和VPN实例中分别使能IP组播路由;在PE和CE连有接收者的接口上使能IGMP;在各设备的所有公、私网接口上均使能PIM-SM,并分别为公网和各VPN选取合适的C-BSR和C-RP。此外,还需要为VPN a选取合适的default MDT 地址以及data MDT的地址池。

  • 相关阅读:
    剑桥雅思写作高分范文ESSAY50
    剑桥雅思写作高分范文ESSAY49
    剑桥雅思写作高分范文ESSAY48
    剑桥雅思写作高分范文ESSAY47
    剑桥雅思写作高分范文ESSAY46
    剑桥雅思写作高分范文ESSAY45
    剑桥雅思写作高分范文ESSAY44
    剑桥雅思写作高分范文ESSAY43
    剑桥雅思写作高分范文ESSAY42
    剑桥雅思写作高分范文ESSAY41
  • 原文地址:https://www.cnblogs.com/sixloop/p/9126439.html
Copyright © 2011-2022 走看看