组播流量负载分担:

概念:
“负载分担”与“负载均衡”是不同的概念。“负载分担”是指如果发往某一目的地的数据流存在多条等价的转发路径,就将数据在这多条路径上转发,达到分流的目的。在进行数据转发时,每一条路径上转发的数据流量并不一定相同,转发流量多少需要根据负载分担方式来决定。“负载均衡”属于“负载分担”的一种特殊形式,不仅将数据流在这多条路径上转发,并且每条路径转发等量的数据流量。

机制:
缺省情况下,组播报文转发过程中如果存在多条等价的最优转发路径,按照RPF检查对等价路由的处理规则分两种情况:
• 如果这几条等价路由都是来自同一张路由表项,比如单播路由表、组播静态路由表或者MBGP路由表中的一种,则选取下一跳地址最大的路由作为RPF路由。
• 如果这几条等价路由来自不同的路由表,首先会比较路由优先级,再比较掩码长度。如果上述都相同,则设备会根据一定的函数计算选取出一条路由作为RPF路由。

无论上述哪种情况,设备在RPF检查时都只会选取出一条路由作为RPF路由,进行组播报文转发。

“组播负载分担”是指如果存在多条等价的最优转发路径时,不按照RPF检查规则来选取下一跳地址最大的路由,而是根据配置的组播负载分担方式将组播流在这多条路径上进行分流转发。

如图所示,组播源Source向组播组G发送组播流,路由器RouterA和RouterD之间运行某种IGP协议(如OSPF)RouterA→RouterB→RouterD和RouterA→RouterC→RouterD是2条等价转发路径。缺省情况下,根据RPF检查规则,组播流会从Int0端口转发,因为Int0的IP地址比Int1地址大。配置组播负载分担之后,就不会根据下一跳地址来选取转发路径,RouterA→RouterB→RouterD和RouterA→RouterC→RouterD都会转发组播流。

组播负载分担方式:
对于来自任意源组播(*,G)或指定源(S,G)组播的数据流,“组播负载分担”提供了不同的负载分担方式来支持不同应用场合:

  1. 基于组播组G的负载分担。
  2. 基于组播源S的负载分担。
  3. 基于组播源组(S,G)的负载分担。
  4. 其他负载分担方式。
  5. 稳定优先负载分担。
  6. 基于链路带宽的负载分担。

华为设备相关配置:
执行命令multicast load-splitting { balance-ucmp | stable-preferred | source | group | source-group },配置组播负载分担。 命令中不同的参数对应着不同组播负载分担策略:
• balance-ucmp:表示平衡负载分担。该策略会根据等价路由的出接口转发能力分配(*,G)或者(S,G)表项。
• stable-preferred:表示稳定优先负载分担。该策略适用于组播业务稳定的场景。
增加或删除等价路由时,设备会对负载自动进行均衡调整。删除组播路由表项、接口的组播负载分担权值变化时,设备不主动对负载进行均衡调整。
• group:表示基于组地址进行负载分担。该策略适用于一源多组的场景。
• source:表示基于源地址进行负载分担。该策略适用于一组多源的场景。
• source-group:表示同时基于源地址和组地址进行负载分担。该策略适用于多个源和多个组的场景。

BSR管理域:

概念:
为了实现网络管理精细化,可以选择将一个PIM-SM网络(经常使用在大型组播网络中)划分为多个BSR管理域和一个Global域。这样一方面可以有效地分担单一BSR的管理压力,另一方面可以使用私有组地址为特定区域的用户提供专门服务。每个BSR管理域中维护一个BSR,为某一特定地址范围的组播组服务。Global域中维护一个BSR,为所有剩余的组播组服务。

对于PIM路由器来说:

如图所示,对于有相同组地址的不同管理域,各BSR管理域所包含的PIM路由器互不相同,同一PIM路由器不能同时属于多个BSR管理域。各BSR管理域在地域上相互独立,且相互隔离。BSR管理域是针对特定地址范围的组播组的管理区域,属于此范围的组播报文只能在本管理域内传播,无法通过BSR管理域边界。

Global域包含PIM-SM网络内的全部PIM路由器。不属于任意BSR管理域的组播报文,可以在整个PIM网络范围内传播。Global域和每个BSR管理域都包含针对自己域的C-RP和BSR设备,这些设备在行使相应功能时,仅在本域内有效(Global就是在所有域有效)。即BSR机制和RP竞选在各管理域之间是隔离的。也就是说Global区域包含了所有路由器,其他BSR区域的路由器不能互相重复。总之,划分不同的域就是为了针对不同组播所传输的范围,不同区域中的路由器不能相同,除了Global区域包涵了所有的路由器,因为它组播传输范围是所有路由器。

对于组播地址来说:

每个BSR管理域为特定地址范围的组播组提供服务,不同的BSR管理域服务的组播组范围可以重叠(路由器不能重叠)。该组播地址只在本BSR管理域内有效,相当于私有组地址。如图所示,BSR1域和BSR3域对应的组地址范围出现重叠,但是BSR1中的路由器不能出现在BSR3中。不属于任何BSR管理域的组播组,一律属于Global域的服务范围。Global域组地址范围是除G1、G2之外的G-G1-G2。例如global区域中的组播地址可以在整个区域中传递,BSR1区域中的地址可以在BSR1中传递,BSR3中的地址只能在BSR3区域中传递(虽然组播范围是BSR1的子集,但是传递的路由器不同)。

总结:每个BSR管理域都有自己的边界,该管理域的组播信息(C-RP宣告报文、BSR自举报文等)不能跨越域传播。同时Global域的组播信息可以在整个Global域内传递,可以穿越任意BSR管理域。

华为设备BSR管理域相应配置:

  1. 在PIM域内所有设备上使能BSR管理域功能
    a. 执行命令system-view,进入系统视图。
    b. 执行命令pim [ vpn-instance vpn-instance-name ],进入PIM视图。
    c. 执行命令c-bsr admin-scope,使能BSR管理域功能。
  2. 在每个BSR管理域的边缘接口上配置边界
    a. 执行命令system-view,进入系统视图。
    b. 执行命令interface interface-type interface-number,进入接口视图。
    c. 执行命令multicast boundary group-address { mask | mask-length },配置BSR管理域边界。
    限定了组地址范围后,该范围内的组播报文将无法通过此接口进行转发。
  3. 在每个BSR管理域的C-BSR上配置服务的组地址范围
    a. 执行命令system-view,进入系统视图。
    b. 执行命令pim [ vpn-instance vpn-instance-name ],进入PIM视图。
    c. 执行命令c-bsr group group-address { mask | mask-length } [ hash-length hash-length | priority priority ] *,配置C-BSR服务的组地址范围。
  4. 配置Global域的C-BSR
    a. 执行命令system-view,进入系统视图。
    b. 执行命令pim [ vpn-instance vpn-instance-name ],进入PIM视图。
    c. 执行命令c-bsr global [ hash-length hash-length | priority priority ] *,配置Global域的C-BSR。

组播静态路由:

除单播路由外,MBGP路由、组播静态路由也是RPF检查的依据。

R3到组播源(Source)的RPF邻居为R1,从Source发出的组播报文会沿着Source->R1->R3的路径传输。此时,在R2上配置组播静态路由,指定R3的RPF邻居为R2,则从Source发出的组播报文的传输路径将发生改变,改为沿Source->R1->R2->R3的路径传输,区别于原来的单播路由路径。

例如在R2可以直接走R1为单播路由最优,但是这条路径流量太多了,所以我们可以配置静态组播路由,使得R2走R3再到R1。并且在RPF检测中默认静态组播路由的优先级高于单播路由。

MBGP:

MulticastBGP (MBGP)是BGP对传统的BGP协议扩展,此处代表使能组播能力的BGP。RFC 4760定义BGP支持多种不同类型的路由一-IPv4 单播、IPv4 组播、IPv6 单播和组播等,传输单播路由协议是BGP的基本功能。BGP针对不同协议有不同的路由表,如BGP IPv4单播路由表和IPv4组播路由表,区别是单播BGP路由会进入单播路由表中,用于路由IP数据包,而组播路由表里面的路由仅用来做RPF检查。不要误解MBGP是用来取代PIM的协议,其和static-rpf-route -样,用来做RPF检查。MBGP是对原有BGP协议的扩展,所以MBGP仍使用标准BGP的选路规则,仍使用相同的属性及策略控制技术。

使能BGP支持组播,仅需要以下两点支持即可,这是BGP可以支持多协议的基础。

  1. 在BGP建立邻居关系时,通过NLRI Capabilit 协商双方是否支持multicast,即协商是否支持AFI=1, SubAF=2;仅当双方都支持AFISAF-=1/2,组播协议路由才能双向传递。
  2. 组播路由使用BGP更新报文来通告,但不同于IPv4单播路由的是,在BGP更新报文中并没有NLRI, 而是定义了两个新的路径属性MP REACH_ NLRI和MP_UNREACH_ NLRI,用来传递组播路由。其中,MP REACH NLRI用于通告组播路由,而MP_ UNREACH NLRI用于撤销组播路由。属性的类型代码分别为14和15。下图所示是MP REACH NLRI属性,其中包括组播路由的下一跳地址信息, 组播路由前缀及其长度等:

    同理,用于撤销路由的MP_ UNREACH _NLRI属性格式如下图所示:

图中组播NLRI和Nexthop地址信息出现在路径属性MP_REACH_NLRI中,如下是BGP的Updata报文:

资料整理来源:华为hedex文档、《HCIE路由交换学习指南》

组播负载分担、静态组播路由和MBGP技术原理相关推荐

  1. 单臂路由+VRRP(多个vlan负载分担)

    文章目录 前言 一.VRRP简介 二.配置 1.拓扑图 2.命令 3.查看配置 三.验证 总结 前言 vrrp定义了三种状态:初始状态(Initialize).活动状态(Master).备份状态(Ba ...

  2. 华为数通笔记-BGP选路与负载分担

    概述: BGP相比IGP最大的优势在于路径的选择策略非常丰富,通过调整BGP的路由属性来决定选路.在使用这些路由属性的时候应该考虑顺序和规则,尤其是一台路由器到达目标有多条路径的时候,BGP需要根据下 ...

  3. 华为设备静态组播MAC地址配置命令

    [Huawei-vlan10]l2-multicast forwarding-mode mac //配置VLAN内组播数据转发模式为MAC [Huawei-GigabitEthernet0/0/1]m ...

  4. 虚拟机无法接受组播消息_IPTV(组播)骨干网完整解决方案--四川广电网络

    一,基于ANYCAST 设计骨干RP热备 1,RP选举说明 组播网络RP设置分为动态,静态2种.但和很多网络协议不一样,RP的选择默认是动态优先.也就是在路由器上同时存在动态和静态RP的时候会优选动态 ...

  5. 2022-10-31 网工进阶(三十三) IP组播-流量模型、组播概念、组播报文结构、组播地址与MAC、组播网络架构、组播服务模型、组播数据转发原理(RPF检查、组播分发树、组播协议介绍)

    IP组播概念 流量模型 网络中存在各种各样的业务,从流量模型看一般可以将业务分为两类: 点到点业务:比如FTP,WEB业务,此类业务主要特点是不同的用户有不同的需求,比如用户A需要下载资料A,用户B需 ...

  6. IGMP Snooping和组播VLAN技术原理

    IGMP Snooping: 诞生原因: 由于IGMP报文是封装在IP报文内,属于三层协议报文,而二层设备不处理报文的三层信息,所以这个过程它并不知道,而且通过对数据链路层数据帧的源MAC地址的学习也 ...

  7. 组播简介(二层组播)

    1 承载网组播模型 2 二层组播技术 2.1 组管理协议 Internet 组管理协议称为IGMP协议(Internet Group Management Protocol),是因特网协议家族中的一个 ...

  8. IP组播基础(一)点到多点应用特点、组播基本架构、组播IP、MAC地址结构组成

    文章目录 前言 点到多点应用的发展与部署 传统点到点应用 点到多点应用 用单播方式部署点到多点应用 用广播的方式部署点到多点网络 组播方式部署点到多点应用 组播基本概述 组播基本架构 组播源到路由器 ...

  9. 组播地址,什么是组播地址,组播地址列表

    组播地址简述:组播相对于单播和广播而言, 具有效率高, CPU 负载轻, 冗余流量少的特点.组播地址也与单播和广播不同,组播地址是 D 类地址,前缀是" 1110", 地址范围是 ...

  10. 数通 | 静态路由表的配置(含负载分担、路由备份)

    文章目录 拓扑图(含IP规划) 配置步骤(含完整指令) 结果验证 参考文献 拓扑图(含IP规划) 配置任务 按照拓扑图要求配置IP地址,手动添加构建路由表,并在路由器R1和R2间实现静态路由的负载分担 ...

最新文章

  1. 安全攻防技能——Web安全——XSS
  2. vsftpd虚拟用户帐号
  3. 使用sizeof计算类的大小
  4. 趣图:如何假装自己是一个IT人?
  5. pythonsklearn多元回归回归_用sklearn进行多元线性回归
  6. Qt工作笔记-QTableWidget插入QcomboBOx后,如何获取数据
  7. python中curve fit_scipy.optimize.curve_fit函数用法解析
  8. Java连接MySQL8.0以上版本数据库方式
  9. joint和join_MySQL的JOIN(一):用法
  10. 2月第三周各国家.NET域名排名Top10:中国第三
  11. php 邮件乱码,解决PHP mail发送UTF-8中文邮件乱码
  12. 一篇文章掌握MySQL事务的四大特性
  13. java程序员如何编写出优美的代码-java编程规范
  14. Scrum板与Kanban如何抉择?drzdbtbna板与按照exrefp
  15. 微信小程序:2022虎年全新头像框制作
  16. 微信小程序如何获取token
  17. linux xv命令什么意思,Linux部分命令解释(命令缩写代表什么意思)
  18. Service Mesh中的通用数据平面API设计
  19. vue 大量图片展示_Ant Design of Vue 展示多张图片
  20. iOS开发之自定义的framework添加第三方framework,lipo和ar命令看.o文件

热门文章

  1. blazeds_Spring BlazeDS集成:它是什么,它会发生什么变化?
  2. 下载官方Intel的Windows 10网卡驱动
  3. asp.net 利用DirectoryEntry来验证用户以及开机密码
  4. Word插入高分辨率图片无法显示
  5. 网格员试题计算机,网格员考试 计算机基础知识试题库完整.doc
  6. JAVA计算机毕业设计基于web的民宿预定系统源码+数据库+系统+lw文档
  7. 软考系统集成项目管理工程师全真模拟题(含答案、解析)
  8. 浅谈Ajax的blockUI
  9. Postgresql的基本操作
  10. 单亲遗传算法matlab,关于单亲遗传算法的matlab代码