CCIE知识点总结——组播

1、组播概述

(1)组播解决了 络中用户数量不确定的问题,一份信息,多个接收者,相同的组播数据流在每一条链路上最多仅有一份。示意图如下。

CCIE知识点总结——组播
(10)IGMP Proxy
简化的组播末端协议,其核心是在运行环境简单的组播协议末端,不运行复杂的PIM/DVMRP等组播路由协议,通过IGMP/MLD代理的方式与组播协议对话,从而简化在低端设备上的组播实现。其优点是当 络中没有路由器时,IGMP Proxy设备可以起到查询者的作用。Proxy设备的上联端口执行主机的角色,下联端口执行路由器的角色。MLD(Multicast Listener Discover),组播侦听发现协议。
IGMP/MLD协议是用来在组播路由器和客户端间通信的协议,同时也存在组播路由器和客户端两种协议行为,IGMP/MLD代理设备在配置上明确上游接口和下游接口。对于上游接口,运行IGMP/MLD的HOST端协议,收集下游接口的组播成员关系,把从下游收集的IGMP/MLD加入信息汇聚后,以IGMP/MLD客户端的身份发送加入、离开消息给上层的组播路由器。在下游接口,则运行IGMP/MLD的ROUTER端协议,周期性发送查询,并处理组播成员关系 告。IGMP proxy 功能与 PIM 及 DVMRP的功能是互斥的。
IGMP Proxy与IGMP Snooping实现功能相同但原理相异:
IGMP Snooping只是通过侦听IGMP的消息来获取有关信息。
IGMP Proxy则拦截了终端用户的IGMP请求并进行相关处理后,再将它转发给上层路由器. 所以在IGMP snooping里面形成的table是组成员和交换机接口的对应关系,在IGMP Proxy里面形成的是(组播路由表)。

6、组播路由协议PIM

PIM(Protocol Independent Multicast)称为协议无关组播。
组播依靠的单播路由协议: 静态路由、RIP、IGRP、IS-IS、BGP、OSPF,总之,单播路由协议是什么都没关系。
密集模式(Dense-mode)

  1. 使用“推”(Push)模型(先给你,管你要不要)
  2. 组播数据流整 络的洪泛(Flood)
  3. 下游不想接收的话则剪枝(Prune)
  4. 洪泛、剪枝、洪泛、剪枝…周而复始 (每隔3分钟泛洪一次)

稀疏模式(Sparse-mode)

  1. 使用 “拉”(Pull)模型(你要了,才给你)
  2. 组播数据流只发送到有需要的地方
  3. 有显式的加入(Join)过程

7、PIM-DM协议

(1)PIM-DM协议原理
使用逆向路径转发(RPF)机制,先向 络洪泛(Flood),然后根据组播组成员关系进行剪枝 (Prune),使用Assert机制来剪枝重复的数据流(MA 络中,存在多台路由器,选择一台最优路由器向上游发送加入组的消息)。适合于小规模的 络。
(2)PIM-DM的五种包:

  • Hello:发现和维护邻居关系
  • Join/prune:加入和修剪树
  • Graft:嫁接。重新加入多播树(以前被修剪过)
  • Graft ACK:嫁接成功后的确认
  • Assert:声明。在多路访问环境下用来协商哪台多播路由器来往该多路访问 络中转发多播数据流。

(3)PIM-DM协议运行过程:
PIM邻居发现
每个多播路由器在连入多播 络时,在启动了PIM-DM的接口每隔30秒(缺省)都用多播PIM hello消息以宣布它的连入。105秒内收不到邻居hello,则认为邻居失效。起始PIM-DM在多播转发时经过RPF检测后会将多播流发给所有PIM邻居路由器。
PIM-DM 泛滥与剪枝
多播树的生成
PIM-DM以flood-and-prune方式生成多播分布树。

  1. 多播源产生多播流,收到多播流的第一台路由器执行RPF检查后记载下(S,G),并洪泛给所有PIM邻居。
  2. 如果末端路由器有直连的感兴趣组成员,路由器会加入多播树。
  3. 如果末端路由器没有直连的组成员,会向上游路由器发送prune信息,上游路由器首先将收到prune信息的接口标记为prune状态。如果上游路由器本身存在组成员或存在其他需要转发多播流的下游路由,不会做进一步反映,如果上游路由器本身不存在组成员且不存在其他需要转发多播流的下游路由器,将重复prune。

多播路由器prune的典型原因:

  1. 该接口下没有接收者
  2. 没有下游PIM邻居
  3. 非RPF接口收到多播流(当前路由器向上游路由器发送prune)
  4. 多路访问环境下由于Assert原因,自己不能转发多播流,重复prune 之前会等待3秒延时来等待有无join

新接收节点加入多播组
当有新的多播组成员要加入时,它所连入的当前路由器要加入多播树,由于当前路由器以前被prune过,但仍保留有(S,G)信息,所以它可以向它的上游PIM邻居单播Graft (嫁接)消息,上游路由器回送Graft ACK。Graft嫁接消息一直逐跳向上游发送,直到成功加入多播树上。
多路访问环境下的多播转发—PIM转发路由器选举

  1. 路由器从其“出接口列表” 中的某个接口收到数据,只有其中一个路由器应该继续发送数据,以避免重复。

  2. 路由器发送 “PIM Assert”消息。

  3. 查看单播路由表,计算distance和metric值,谁到源的路由最优谁获胜,如果distance和metric相等,IP地址大的获胜,成为forwarder转发多播数据流量,输的就停止转发 (prune修剪接口)。

(4)PIM-DM 评价
对于小型 络来说非常有效,用于实验室、设备性能测试。
优势:

  1. 易于配置–总共只有两条命令
  2. 实现机制简单(洪泛修剪)

潜在问题:

  • 洪泛修剪过程不够高效
  • 复杂的Assert机制
  • 控制和数据平面混合
  • 导致 络内部的所有路由器上都有(S, G)
  • 可能会导致非确定性的拓扑行为
  • 不支持共享树

(5)PIM-DM配置实施

  1. 首先保证单播路由通信正常

  2. 在 络设备上配置组播协议

    1. 全局下启用组播:
    2. 三层接口上启用PIM-DM:
  3. 配置接收节点

  4. 查看与排错

注意:

  1. 必须运行单播路由协议,否则PIM将无法确定RPF接口。
  2. 配置了PIM的时候,必须每个接口上都启用该协议,否则可能出现RPF故障。

在多路访问接入 络中,理解IGMP查询路由器、PIM指派路由器(DR)以及PIM转发路由器(IP地址越小的是查询路由器、最大的是指派路由器(PIM-DM协议本身不需要一个DR,在IGMPv1中有意义,因为IGMPv1本身没有查询进程,要靠路由协议来选出DR以管理IGMP查询)和转发路由器。

8、PIM-SM协议

(1)PIM-SM协议概述
支持共享树和源树。
假设没有主机需要接收组播数据,除非它们明确地发出了请求使用“汇聚点”(RP, Rendezvous Point),发送者和接收者在RP处进行汇聚,发送者的第一跳路由器把发送者注册到RP上,接收者的DR(直连 络上的负责人)为接收者加入到共享树 (树根在RP)。
适合于大规模的企业 络,是任何 络的优选方案,不管其规模和成员密集程度。
(2)PIM-SM的9种包

  • Hello
  • Join/prune
  • Assert
  • RP-Announce
  • RP-discovery
  • Bootstrap
  • Candidate-RP-Advertisement
  • Register
  • Register-stop

(3)PIM-SM与PIM-DM异同
相同点:

  1. 邻居发现机制
  2. 单播路由表变化时RPF的重新选择
  3. DR的选择
  4. Prune-override:剪除覆盖
  5. Forwarder的选择

不同点:

  1. SM使用了显示加入模式,起初时由组成员发起的。
  2. SM即支持共享树又支持SPT(最短路径树)。

(4)PIM-SM协议运行过程
创建共享树

  1. 组成员(接收节点)首先通过发送IGMP 告消息申请加入感兴趣组
  2. 相连路由器收到IGMP信息后记录下( * , G ),将接口加入到多播组出口列表。并检查RP-Group-Map,找出该多播组的RP(RP是一个IP地址代表的,通过查找单播路由表找出RPF接口)。然后向上游路由器发送PIM join消息,其目的是要创建根于RP的该组的一个共享树(*,G)。
  3. 上游路由器做出反应。

创建从源到RP的SPT

  1. 多播源发送多播流,与之相连的第一跳路由器(First Hop)首先会找出该多播组的RP,然后以PIM register消息把多播包重新封装在单播包中发送到RP。
  2. 如果有该多播组的共享树, RP收到PIM register消息包后去封装提取出多播流并沿着该多播组的共享树转发多播流,然后RP通过RPF向上游发送PIM join最终形成从源到RP的SPT,此时多播流直接沿SPT发送到RP,不必封装在单播中,RP随后发送PIM register-stop消息单播到第一跳路由器,停止第一跳向RP发单播流。
  3. 如果没有该组的共享树,RP立刻发送PIM register-stop消息单播到第一跳路由器,停止第一跳向RP发单播流。

SPT切换

  1. 最后一跳路由器一旦发现了正在转发多播流量的源节点IP,可以通过向源节点方向的上游路由器发送PIM join消息,从而迅速创建或加入该多播组的SPT(S,G)。
  2. 当多播路由器不需要从RP接收多播流时,会发送PIM prune消息到RP修剪来自共享树的多余流量。

(5)配置PIM-SM

对PIM-SM的配置,惟一的要求是RP的标识。路由器获知RP的地址的方法就是RP的常见确定机制有下列3种:

  • 手工静态指定:需要在每台多播路由器上手工配置RP信息,同时还要定义group-rp的映射关系。

192.168.1.1是RP的地址,建议用RP路由器loopback 0接口的地址来标识RP。
239.1.1.0 0.0.0.255表示是这些多播组地址。
注意:以上静态指定RP的命令需要在所有组播路由器上配置。

  • Auto-RP:Cisco专有的协议。

静态RP带来的一些问题:
a、需要更改RP地址。
b、RP失效时,静态配置的PIM域无法轻易地切换到备用RP上。

配置Auto-RP的步骤:
a、必须配置所有的C-RP。
b、必须配置所有的映射代理。

采用即可配置C-RP,使用该命令需要指定接口(路由器通过该接口取得RP地址)和TTL值。当路由器被配置为C-RP之后,该路由器每隔60s向保留地址224.0.1.39发送一条RP-Announce消息,超时时间为180s。
采用配置映射代理,映射代理负责侦听来自C-RP的 RP-Announce消息并选举出RP,之后通过RP-Discovery消息(每隔60s向保留的地址224.0.1.40发送 )将RP宣告到PIM域中。
特别注意:必须在和上指定的接口配置。对应的在静态RP的配置时没必要再RP的接口上配置PIM-SM。
候选RP向映射代理发送竟选消息(RP-Announce),最后映射代理从候选RP的竟选消息中选出IP地址最高的为活动RP,然后发送RP-Discovery通告给每台路由器,竟选活动RP只根据IP地址大小,没有优先级之分。
所有的C-RP向映射代理发送竟选消息,使用目的地址为224.0.1.39,每60秒发送一次,而映射代理从众多C-RP中选出活动RP后,以目的地址为224.0.1.40发给每台路由器,也是每60秒发送一次。
来显示auto-rp的全部操作过程。
可以显示路由器正在接收的多播组以及这些多播组所映射到的RP情况。
采用中加入关键字interval可以修改C-RP发送RP announce消息的时间间隔,默认为60s。
eg:修改间隔为10s。
采用中加入关键字group-list可以指定路由器为特定组播组的RP。
eg:

可以查看路由器映射到某个RP的所有组播组(不同的多播映射到不同的RP)。
显示该路由器上正在使用的多播组地址范围。
显示某特定组将要被映射到那个RP。
通过设置RP通告过滤器(announcement filter),可以防止映射代理接收未经授权的路由器,这些路由器可能被有意或者无意的配置成为C-RP。采用命令:
eg:

在稀疏模式应用环境,多播包必须首先在共享树上进行转发,这就意味着侦听224.0.1.40的路由器为了接收RP-Discovery消息,就必须向他们的RP通告希望加入该多播组,现在的情况是路由器连RP-Discovery消息都没有接收到,那么又怎么知道谁是RP呢决的办法是采用稀疏-密集模式。
配置稀疏-密集模式,接口上配置:
(备注:在环回口上无需配置,只要配置即可)

  • BSR(bootstrap router 自举路由器协议)

动态方式通告RP信息, 只需在RP和BSR路由器上做配置即可,其他PIM多播域内的路由器会自动学习到RP的信息。BSR是标准的RP选举与维护机制,所有支持PIM-SM的设备都会支持BSR机制。
作用:负责在PIM-SM 络启动后,收集 络内的RP信息,然后将RP集(即组-RP映射数据库)发布到整个PIM-SM 络。
配置:可以配置多个候选BSR (C-BSR),主备作用,优先级值大的成为BSR,优先级
值相同的话,IP地址大的优先。候选RP(C-RP)将C-RP通告消息发送到BSR (缺省周期60秒),C-RP通告消息通过单播发送(C-RP优先级、IP地址、组地址),BSR将RP集存储所有的 C-RP通告。
通告:BSR周期性(缺省周期60秒)地向所有路由器发送BSR消息(224.0.0.13),BSR消息包含整个RP-set和 BSR地址,消息一跳一跳地自BSR向整个 络洪泛(flood)所有的路由器使用收到的RP集来确定RP,所有路由器都使用相同的RP选择算法,选择的RP也是一致的。
RP的选举
为获得汇聚点(RP)信息,所有普通路由器都要收集自举(Bootstrap)消息,即普通路由器接收并保存由自举路由器发送来的自举消息,它采用在自举消息中发布的一组可用汇聚点来获得合适的组播组到汇聚点的映射。不同组映射到不同RP可以实现RP负载分担。如果为了简化部署,可以将RP和BSR部署在同一台路由器上。
选举规则:

  1. 如果组中只有一个C-RP,则直接选为RP。
  2. 存在多个C-RP,拥有最小优先级值的C-RP成为RP。
  3. 优先级相同,运行一个hash函数(这个函数输入的参数有:组的前缀、hash掩码和C-RP的地址,输出为:hash值),有最大结果的C-RP成为RP。
  4. 如果hash值相同,有最大IP地址的C-RP成为RP。

C-RP接收到BOOTSTRAP消息确定BSR地址之后,以单播方式向BSR发送候选RP通告与Auto-RP不同BSR并不选举RP,PIMV2路由器接收到BOOTSTRAP消息之后选举RP。
采用BSR动态选举RP配置:
配置C-BSR

配置C-RP

(6)PIM-SM评价
对于稀疏和密集应用都很高效。
优势:

  1. 数据流仅沿着“加入”的分支向下发送,可以根据流量等条件动态地切换
  2. 到源树与具体的单播路由协议无关,域间组播路由的基础和MBGP、MSDP
  3. 共同结合使用可以完成跨AS域的组播

9、Anycast RP

(1)场景
为了增强 PIM-SM 中 RP 节点的可靠性,以及对 络中的组播流量进行分担,可在 络中选取若干 RP 点,运行 Anycast RP,达到冗余备份,负载分担的目的。
(2)原理
多个 RP 配置一个相同的 Anycast RP 地址,这个地址使用 RP 上的一个接口(通常是逻辑接口,如 LoopBack 接口)。之后 RP 使用这个接口地址对外发布组到 RP 的映射信息。由于使用的是 Anycast RP 地址,所以组成员在加入时,会向拓扑距离最近的一个 RP 发起。在这些 RP 之间使用各自不同的地址建立 MSDP 连接,利用 MSDP 实现多播源信息在所有 RP 之间的同步。Anycast RP 实际上是 MSDP 在域内的一个特殊应用。
(MSDP:多播源发现协议,作用是在其他PIM域中发现多播源)
(3)Anycast RP操作原理
1)SA:source-active (包括多播源、多播组、RP地址信息)。
2)当有一个源注册到RP1时,RP1会通过MSDP将该源的信息告诉RP2,RP2便可反向建立SPT到该源,这样保证了加入RP2的组成员也能够收到该多播源发送的多播流。
3)RP1down后,单播路由收敛,所有组成员会加入到RP2上,原来注册到RP1上的源也会注册到RP2上,保证多播 络的稳定,快速failover。收敛时间即单播路由的收敛时间。
4)在不同的PIM-SM域之间建立MSDP连接时,是使用TCP 639, IP地址高的初始化TCP连接,60秒一次keepalive,75秒后没数据或keepalive则重建TCP。
5)组播源向RP注册之后,那么RP将这些源信息通过在MSDP连接上发送Source-Active (SA)到远程RP,以提供组播源的信息。因为RP收到Source-Active (SA)后,也是要做RPF检测。
6)MSDP只能在PIM-SM下使用。
(4)SA filter
1)对于SA,无论是发出去的还是收到的,无论是源自其它MSDP Peer还是自己产生的,都可以通过Filter List来做过滤,所过滤的条件可基于ACL、route map、RP access list、RP route map,这里的ACL必须是扩展ACL。
2)对接收的SA做过滤的命令为:(xxx为对端MSDP路由器地址,yyy为ACL、route map、RP access list、RP route map,如果不跟yyy,则表示所有SA);
3)对发送出去的SA做过滤的命令为:(xxx为对端MSDP路由器地址,yyy为ACL、route map、RP access list、RP route map,如果不跟yyy,则表示所有SA)。
4)SA Filter配置

10、组播双向树 Bidirectional PIM

(1)组播双向树简介
PIM-SM:SPT+RPT (*,G) (S,G)
Bidirectional PIM:RPT
使用相同的转发树(RPT)为源到RP和RP到接收者转发组播流量。
在Bidirectional-PIM运行模式下,无需建立任何源树条目(S,G),所有的组播流量都使用共享树转发,在该模式下,没有任何源注册消息,组播源和接收者都加入到同一棵共享树。
(2)组播双向树的运行过程
通过静态或者动态的方式为双向树指定RP。组播流量逐跳发送给RP,而不是发送注册 文。DF:Designated Forwarded,指定转发器。
接收者沿着RP方向发送加入组消息。通告RPF检测,朝着RP方向为IIF。
在MA 络中,发往RP的组播流量又由RF转发。如果接收者和组播源处于一个 段内,可以直接向着感兴趣的接收者发送,而不需要经过RP。
每条链路中,拥有到达RP最佳路径的路由器将被选为DF(Designated Forwarder),DF负责响应和转发发往RP的流量,对于本地源和接收者无需转发。
DF 转发所有发往上游RP的流量,存在接收者的下游路由器往DF发送Join消息。
(3)DF的选举
DF的选举(选择到达RP最佳路径的路由器):
1)比较到达RP的AD值;
2)比较到达RP的Metric;
3)当Metric一样,IP地址大的优先。
DF选举Messages:
1)Offer:用于通告到达RP的Metric;
2)Winner:DF 用于通告或者重新确立它的地位;
3)Backoff:DF 收到一个更优的offer 文,自己退避;
4)Pass:DF 发送Pass 文给发出更优Offer的 文的路由器。
发送offer 文,包含到达RP的Metric值。
选举过程:
1)发送offer 文,包含到达RP的Metric值。
2)邻居收到后和自己的Metric比较,收到更优的则自己退避。
3)连续3次无争议的Offers,则发送一个Winner并宣称自己是DF。
(4)组播双向树的配置

11、组播边界 Multicast Boundary

组播边界机制被用来限制组播流量的转发的域。
组播边界配置:

文章已被收录至官方知识档案 络技能树组播组播概述22106 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2018年4月12日
下一篇 2018年4月12日

相关推荐