IP多播(ip组播)

IP多播(ip组播)

1数据传递的方式

  1. 一对一数据传递:单播数据传递
  2. 一对所有数据传递:广播数据传递
  3. 一对多数据传递:多播数据传递

2网络设备如何处理不同形式的设备

  1. 单播数据
    1. 路由器收到,能处理就处理,不能丢弃。
    2. 交换机处理:已知mac单播数据帧,定向转发,未知mac单播数据帧,泛洪。
  2. 广播数据
    1. 路由器收到:路由器能够接收广播数据,路由器会根据情况做处理:路由器本身有进程和策略允许接收处理广播流,就处理。如果没有,则不允许广播流量穿越设备,丢弃。
    2. 交换机收到;泛洪。
  3. 多播数据:与广播数据处理方式一样。

3多播标识

  1. 多播i的目标ip标识

    D 224-239

    多播IP标识不标识目标网络,只标识服务和应用。

  2. 多播的目标mac地址

    01005E 后六个16进制数由多播IP演算而来。

    224.0.0.1

    ​ 0000 0000.0000 0000.0000 0001

    取后23位之后在加一位,之后将每四位二进制数转为一位16进制。

!!补充知识

多播mac地址可能重复。

多播终端必须用IP+MAC的方式来确认数据是否自己处理,而不能让网卡直接通过mac地址来判断自己是否处理。

4.路由器如何发现子网中有多播用户(IGMP,CGMP)

1. IGMPv1( 互联网组管理协议)

IGMP是一个公开的技术标准。其作用帮助路由器发现所连子网的组成员。(组成员就是需要接收多播的终端。)

IGMPv1是需要在路由器和终端上同时启用的.

IGMPv1消息

  • 报告消息(report):报告消息来自于终端PC,用于告诉所连路由器,自己是某个组的成员,希望接收多播流。
  • 查询消息(query):查询消息来自于路由器,其目的是为了确认是否存在组成员或者是否有必要从上游接收多播流。

!!补充知识

报告消息的压制机制:报告消息本身是多播的,被所

连交换机防洪给其它终端后,其它终端如果发现自身

也是同一个组的成员,就不会发送报告消息。

!!注意事项

IGMPV1的缺陷:

  1. 显性加入,隐性离开

    (IGMPV1组成员离开的敏感度降低。导致无效的多播流下发。

    路由器收到REPORT(间隔60S一次)消息后,得知组成员消息。会建立180s组成员有效计时。)

  2. 可能存在多个IGMPV1 查询者

  3. 可能存在多个多播数据转发者

2. IGMPv2

IGMPv2消息:

  • 报告消息
  • 查询消息
  • 离开消息
  • 特定查询消息

报告消息 查询消息功能和作用和IGMPv1一样。

离开消息:来自终端PC,当终端pc不再是组成员时,pc机发送离开消息,扩散给路由器,告知路由器有组成员离开。

特定查询消息:来自于路由器,是路由器接收离开消息之后发送的,用于判断刚才发送离开消息的终端是不是组成员中最后一位。特定查询消息发送出去后,必须三秒内给予报告消息回应,否则就认为发送离开消息的终端是组中最后一个设备。

!!注意事项

IGMPv2的优势和缺憾

优势:

  1. 显性加入,显性离开

  2. 提供查询者竞选机制,通过查询消息携带的源ip地址做比较,来判断谁是最终的IGMPV2查询者(源IP地址越小越优)

缺憾:

  • 无法克服多个转发者问题。
3. CGMP(思科组管理协议):IGMP Snooping侦听

CGMP启用在交换机和路由器上,防止交换机泛洪不必要的多播流给非组成员。

  1. 理解交换机mac地址列表和交换机数据转发过程:

    交换机mac地址列表:

    目的终端mac地址 本地出口 类型 老化计时器

    交换机数据转发过程:已知目的MAC 单播帧严格的依据MAC 地址列表做转发,其它都是泛洪。

  2. CGMP的工作机制

    CGMP的JOIN(加入消息)协助交换机完成组成员MAC 地址和多播组MAC地址及出口的关联,最终达到多播流在交换机上不是泛洪的方式转发,而是定向转发。

    CGMP的LEAVE (离开消息)协助交换机删除无效的组成员MAC地址和多播组MAC及出口关联关系。

    CGMP 在路由器上实际上也是通过IGMP消息来发现哪些终端PC对哪些多播组流量有兴趣,从而达到目的。

5 多播路由协议

多播路由协议是协助多播路由器完成多播路由表的机制

show ip mroute

DVMARP:距离矢量多播路由协议,不主流

MOSPF:多播的ospf,不主流

CBT:基于源的数,不主流

如上协议在原有基础上开发


PIM:协议独立多播路由协议,主流

MSDP:多播源发现协议,主流(特定情况下必须用)

如上两个协议和原有协议完全没有关系,是新开发的。


M-BGP 多播bgp,鸡肋

6 PIM详解

1 PIM的模式
  • 稀疏模式 sparse-mode

    组成员和子网成员比例是稀疏的。

    100个PC,10个组成员

    稀疏模式建议采用IGMPV2,因为组成员比较稀少,所以组成员的加入和离开必须被及时发现。

  • 密集模式 dense-mode

    组成员和子网成员的比例关系是密集的:

    100个PC,99个组成员。

    密集模式建议采用IGMPV1,因为组成员比较多,组成员的加入和离开不需要太敏感。

!!注意事项

现在密集模式用的也是IGMPv2,因为不在乎资源的浪费,更在乎组成员的维护。

  • 混合模式sparse-dense-mode

    混合模式默认情况下是稀疏模式的机制先工作,稀疏模式故障后,密集模式马上取代。

2 PIM密集模式的消息
  • Join加入消息:来自下游路由器,下游设备通过加入消息告知加入消息接收者,请把接收到加入消息的接口作为下游接口用于传递多播流量,但是同时上游设备因为接收了加入消息,上游也必须开始尝试寻找抵达多播流源的最短路径及本地最佳出口,尝试发送加入消息,给下一个上游设备。
  • Prune修剪消息:修剪消息通常也来自于下游设备,该消息用于告知原有的上游设备请撤销某个下游接口,因为潜在的多播客户不存在了,上游设备不需要发送多播流。
  • Graft接枝请求消息:来自下游,下游设备又发现了多播组成员,希望重新嫁接多播路径
  • Graft-ack接枝确认消息:来自上游设备,发送给下游设备告知路径已经嫁接完毕
  • Assert禁言消息:该消息用于竞选多播流转发者。
3 PIM密集模式多播树构建机制和过程

扩散,剪枝

所有启用PIM 的路由器收到多播流量之后,会先利用扩散的方式将多播流量扩散给所有的PIM 邻居,因为PIM DM 假定是存在多播组成员的,但是不知道在哪,那么利用扩散的多播流来触发连接子网的路由器发送IGMP 查询消息,从而判断是否有组成员存在,如果有组成员存在路由器就向上游发送加入消息,如果没有就发送修剪消息,通过这种方式构建多播树。

!!注意事项

上游设备:转发多播流的设备

下游设备:接收多播流的设备

一个设备可能用拥有两个角色。

运行PIM设备的接口角色:

  • 上游接口:接收多播流的接口,往往位于下游设备。

  • 下游接口:下游接口是发送多播流的接口,往往位于上游设备。

接口如何成为上游接口:

  • 必须参与了PIM

  • 必须能够收到多播流

  • 必须通过RPF 检测,保证成为上游接口之后不会造成环路。

接口如何成为下游接口:

​ 接口收到JOIN或者GRAFT或者REPORT基本就有资格成为下游接口

4 PIM的RPF检测(反向路径检测)

用于确保参与PIM 接收多播流的接口有资格成为上游接口,并且没有环路。接收多播流的接口必须是抵达多播源的最佳路径出口,才有资格成为上游接口,才有资格处理接收到的多播流量。

!!接口启用PIM 的三个理由

  1. 连接了子网,子网内有组成员,路由器接口希望能处理收到的IGMP REPORT 消息,那么必须启用PIM,因为IGMP 会随着PIM的接口下启用而启用。
  2. 连接的子网有多播源存在,路由器接口希望能处理来自于多播源的多播流。
  3. 路由器相互连接的接口构成的链路最终是需要传递多播流量的,那么就必须启用PIM,形成PIM 邻居,方便多播流的扩散和PIM 的多播树构建。
5 PIM DM 模式的DR作用和竞选方式

DR 用于竞选IGMPV1 查询者,PIM 密集模式如果发现启用PIM 的设备给同一个子网发送IGMP 查询消息,那么PIM 路由器会比较发送查询消息设备的优先级和接口IP地址,从而判定谁最终负责发送查询。(优先级大则优,IP大则优)实际上现在PIM 的密集模式用的是IGMPV2,所以查询者最终是IGMPV2 负责指定,PIM密集模式的DR 就没有意义了。


6 PIM密集模式禁言消息的作用,机制

目的:为避免多个转发者存在IGMPV1和IGMPV2的春天来了)

一旦连接同一群多播组成员的多台路由器,发现大家都在转发同样的多播流,那么路由器就立刻发送禁言消息,禁言消息包含了 当前路由器抵达多播源路径所使用的路由协议管理距离、度量值和发送多播流下游接口的IP。管理距离小则优、度量值小则优、下游接口IP反而是大则优。最终胜出者负责转发多播数据,失败者时刻监控胜出者。

7 多播树及多播路由表

多播树实际上是多播路由协议构建出来用来传递多播流的路径

PIM 的多播树分两种:

  • 最短路径树:SPT:PIM 的密集模式构建的就是SPT,指的是PIM 密集模式路径构建时用多播源当作树根,反向计算抵达多播源的最短路径,用该路径传递多播流。

  • 共享树:RPT ,稀疏模式提出共享树的概念,首先找到网络中负责中转多播流的设备,该设备该设备会被稀疏模式称为集合点(RP),稀疏模式以集合点为边界;集合点自身以多播源为根计算最短路径树,集合点所连接的下游设备都以集合点为根,计算抵达集合点的最短路径,构建出所谓的共享树。

8多播路由表:
  • flag:标志,是多播路由表中很多英文字母的解释。

  • 多播路由表分为父条目和子条目。

    多播路由表条目分为 父条目 子条目

    父条目更像是一个申明,告诉路由器连接了某个组的成员,未来需要给这个组服务,

    但是多播组的流量源和上游接口都是为空的。父条目是不能给路由器传递多播流的。

    子条目实际是用于数据处理和转发的,子条目明确的知道多播源是谁,多播的上游接收接口和下游转发接口信息。子条目才能用于数据转发。

9 多播的稀疏模式
  1. 稀疏模式的消息

    • 加入
    • 修剪
    • 接枝请求
    • 接枝确认
    • 禁言消息
    • 注册消息
    • 注册停止消息
  2. 稀疏模式的集合点(RP)

    负责中转多播流的设备就可以扮演RP,RP的作用是利用稀疏模式的机制完成共享树建立,从而提高工作效率,减轻设备负担的目的。

  3. 稀疏模式多播树构建机制

    下游主动加入,上游主动注册,双树拼接。

    拒绝扩散,剪枝

    连接多播组成员的路由器收到report消息后,以RP为根算出抵达RP的最短最佳路径,用于发送JOIN 消息给RP,并且发送JOIN 消息的路径就是日后传递多播流的路径,这部分就称作下游主动加入。此时实际上RP 和给RP发送JOIN 消息的设备都不知道多播源是谁,也都没有抵达多播源的精确路径,所以树是不完整的。连接多播源的路由器,在收到多播流量后,会将原本的多播流量进行二次封装,封装上新的IP包头,目的IP地址是RP的地址,源IP地址是发送该数据的出口IP(就是本地抵达RP的最短路径出口地址),那么这种形式的数据就被称作注册消息,该消息被RP 接收后主要是起到提醒RP有特定源即将通过RP发送多播流,请RP先计算抵达多播流源的路径,如果算好了,RP 就给发送注册消息的路由器发送注册停止消息,同时RP 尝试寻找共享树将两棵树拼接。

  4. 稀疏模式下DR 的作用

    • 确认谁发送JOIN消息
    • 确认谁发送注册消息
  5. 稀疏模式中路由器从共享树切换到源树

    所有运行PIM且工作在稀疏模式下的路由器,只要接收超过四个字节的多播流,就开始尝试寻找抵达多播源的最短最佳路径,用于避免次优多播路径的存在。

    稀疏必须依赖RP 才能使得自身多播树构建机制运行,并且达到多播树构建的目的。

    往往现实工作中,多播流其实可以找到不以RP为转发点的更优路径,那这就需要RP身后的下游设备能够以源为根重新计算路径。

  6. 稀疏模式获取RP方法

    • 管理员手动指定
    • 利用RP竞选机制完成RP竞选和公布
10 利用RP竞选机制完成RP竞选和公布
  1. rp agent:RP代理:思科私有的

    C-RP角色路由器:所有期望成为RP的PIM 路由器,候选RP

    RP agent:RP代理,是管理员手动指定的,负责收集C-RP信息,并且根据竞选机制选出RP,最终通告出去。

    C-RP 地址最大的就是RP。

  2. BSR:自荐路由器:公有技术标准

    C-BSR:BSR的候选人

    BSR:BSR 是从C-BSR中竞选而来,它负责接收C-RP信息,统计信息并且发送出去,不负责裁决。

    BSR竞选参数:优先级和IP地址,都是大则优

    C-RP:RP候选人

    RP:RP 是PIM 路由器通过BSR 得到所有的C-RP信息后,利用RP竞选机制进行结果的判断。RP的竞选参数是优先级(小优)、哈希长度(长优,现在不用了),IP地址(大优)

11 多播的启用和PIM的启用。
  1. 将路由器接口模拟成多播组成员

    Router(config-if)#ip igmp join-group <多播组地址>
    
  2. 路由器上多播路由功能的启用和接口加入PIM

    Router(config)# ip multicast-routing //启用多播路由功能
    Router(config-if)#ip pim 
    
    

7 多播章节复习重点

  1. 数据传递的三个方式?运用的场景、各自的特点?
  2. 路由器和交换机对不同数据的处理方法?
  3. 多播IP标识和MAC 标识?
  4. 路由器如何发现多播组成员?
  5. IGMP V1 V2 如何工作的,区别是什么,优点和缺点是什么?
  6. 多播动态路由协议的作用?有哪些多播动态路由协议?
  7. CGMP 的作用和工作机制?
  8. PIM 的密集模式和稀疏模式定义上的不同?
  9. PIM 密集模式的消息以及密集模式构建树的机制?
  10. PIM 中DR的作用,禁言消息的作用?
  11. PIM 稀疏模式的消息及稀疏模式构建树的机制?
  12. PIM 稀疏模式中RP的作用?DR作用?
  13. PIM 稀疏模式为什么会共享树切换到源树?
  14. PIM 稀疏模式RP的获取方式?RP代理和自荐路由器工作原理?

你可能感兴趣的:(网络,ccie)