CCIE知识点总结——组播

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/gongxifacai_believe/article/details/80316958

1、组播概述

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

(2)组播的优势与劣势 优势:减轻服务器和CPU负荷,减少了链路带宽资源的占用,减轻了网络设备的负载。 劣势:组播是基于UDP的。

  • 尽力投递:报文丢失是不可避免的。因此组播应用程序不能依赖组播网络进行可靠性保证,必须针对组播网络的这个特点进行特别设计。“可靠组播”目前仍然处于研究阶段。
  • 没有拥塞避免机制:缺少TCP窗口机制和慢启动机制,组播可能会出现拥塞。如果可能的话,组播应用程序应该尝试检测并避免拥塞。
  • 报文重复:某些组播协议的特殊机制(如Assert机制和SPT切换机制)可能会造成偶尔的数据包的重复。组播应用程序应该容忍这种现象。
  • 报文失序:同样组播协议有的时候会造成报文到达的次序错乱,组播应用程序必须自己采用某种手段进行纠正(比如缓冲池机制等)。

(3)实施组播的三个基本条件 硬件设施:

  1. 组播服务器
  2. 支持组播分发的网络
  3. 能接收组播流的客户端

软件技术:

  1. 必须存在组播地址
  2. 必须有多播路由协议的支持
  3. 客户端必须能自由加入或离开多播组

2、组播地址结构

(1)组播地址 一个组播组就是一个IP地址,不表示具体的主机,而是表示一系列系统的集合,主机加入某个组播组 即声明自己接收某个IP地址的报文。 组播IP地址不会在网络上实际存在。

  • 组播源IP地址:A、B、C类地址
  • 组播目标IP地址:D类地址 224.0.0.0 --239.255.255.255
  • 为网络协议预留的地址段有:224.0.0.0-224.0.0.255
  • 全局范围地址:224.0.1.0-238.255.255.255
  • 指定信源组播地址:232.0.0.0~232.255.255.255
  • GLOP地址:233.0.0.0~233.255.255.255
  • 有限范围地址:239.0.0.0-239.255.255.255

常用组播地址

  • 224.0.0.1 – 组播网络中的所有节点
  • 224.0.0.2 – 所有路由器
  • 224.0.0.13 – 所有运行PIMv2的路由器
  • 224.0.0.5, 224.0.0.6, 224.0.0.9, 224.0.0.10 单播路由协议
  • 224.0.0.25 表示所有的交换机
  • 224.0.1.40 auto-rp

(2)三层组播地址到二层地址的映射 IANA将MAC地址范围01:00:5E:00:00:00~01:00:5E:7F:FF:FF分配给组播使用,这就要求将28位的IP组播地址空间映射到23位的组播MAC地址空间中。

3、组播分发树

组播分发树:用来描述IP组播报文在网络中经过的路径。 有源树(最短路径树SPT:Source or Shortest Path Tree) 由组播源到用户间的最短路径构成。路由器必须为每个组播源保存路由信息,占用内存较多 (S,G),但路径最优,接收者到多播源是最佳路径,延迟最小。 共享树(Shared Tree) 以网络上某特定节点为公用根。占用内存较少 (*,G),路径不一定是最优的,多播流转发必须先经过RP,引入额外的延迟。对 RP 的可靠性和处理能力要求很高。 (1)最短路径树(基于源的分发树) 有源树的根是组播数据流的来源,有源树的分支形成了通过网络到达接收站点的分布树。因为有源树以最短的路径贯穿网络,所以也被成为最短路径树(SPT:Shortest Path Tree )。

(2)共享树 共享树的根不在多播数据流的源头,而位于网络中管理员指定的汇聚点(RP:rendezvous point)。所有多播源先把多播流发送到RP,再由RP分发到各接收站点,目标组地址向他的多个源节点共享多播分布树。

4、组播数据转发

组播路由转发和单播路由转发是相反的 a、单播路由转发关心数据报文要到哪里去。 b、组播路由转发关心数据报文从哪里来。 组播路由转发使用 “反向路径转发”机制避免环路,多播数据流从多播路由器入口路由到出口转发出去。 a、入口:由RPF决定 b、出口:由IGMP和多播路由协议决定的 反向路径转发(RPF, Reverse Path Forwarding) 何谓RPF? 路由器收到组播数据报文后,只有确认这个数据报文是从自己到源的出接口上到来的,才进行转发,否则丢弃报文。 RPF检查 在单播路由表中查找到组播报文源地址的路由,如果该路由的出接口就是报文的入接口,RPF成功,否则RPF失败。

5、IGMP协议

(1)IGMP协议概述 IGMP协议:Internet组管理协议,IGMP是一个三层协议,协议号为2,直接被封装在IP中,运行于路由器与主机之间。 IGMP版本: RFC 1112 – IGMP版本1,Windows 95支持。 RFC 2236 – IGMP版本2(默认),Windows98后的版本及大多数UNIX系统。 IGMP版本3目前仍然是一个草案(draft),Win XP支持。 (2)IGMP基本原理 IGMP原理:采用路由器查询、主机报告两种方式维持组成员关系。 a、路由器查询:路由器周期性每60秒发送查询(D=224.0.0.1 ttl=1)试图发现感兴趣的组成员(主机每次都回复)。 b、主机报告:主机主动发送一个IGMP报告(D=组播组 ttl=1) 表示要加入某个多播组(包含了要加入的多播组地址),也可以用来回复路由器的queries。同一个网段中,只需要一台主机发送report报文,避免网络种充斥大量的report报文。 抑制机制:倒数报告计时器,默认是10s。 (3)IGMP的三个版本 IGMP v1离开组播组过程:

  1. 主机“默不作声”地离开组(不发报告了)
  2. 路由器发送3个普遍组查询(间隔60秒)
  3. 路由器没有收到这个组的IGMP报告
  4. 组播组超时(离开)

IGMP v2离开组播组过程:

  1. 主机向224.0.0.2发送离开组消息(包含离开的组)
  2. 路由器向这个组(239.1.1.1)发送特定组查询
  3. 发送特定组查询的时间间隔为1s,发送特定组查询的次数为2次,默认在超时时间大约2.5s内,没有收到组成员的成员报告,那么组(239.1.1.1)超时离开,路由器删除这个组

IGMP v3 数据结构变了:D=224.0.0.22,可以有选择的加入特定多播源发送的多播流。 IGMP 三个版本的比较:

IGMPv1

IGMPv2

IGMPv3

查询器选举

依靠组播路由协议

自己选举

自己选举

成员离开方式

默默离开

主动发出离开报文

主动发出离开报文

指定组查询

不支持

支持

支持

指定源、组加入

不支持

不支持

支持

(4)IGMP 查询器 同一网段上有多个组播路由器时,选择一台组播路由器作为查询器。 IGMP v1:默认DR 就是 IGMP 查询器。DR是通过PIM协议选择。 IGMP v2:拥有最低的IP地址被选举为IGMP 查询器。 (5)IGMP相关配置

Ip multicast routing    //开启组播路由功能
Ip igmp version {1 | 2 | 3}
Ip igmp query-interval seconds     //default 60s
Ip igmp query-max-response-time seconds     //default 10s
Ip igmp query-timeout seconds      //defaut  2*query-interval
No ip mroute-cache    //在接口上禁止IP多播包的快速交换
ip igmp last-member-query-count <1-7>    //default 2
ip igmp last-member-query-interval milliseconds  //default 1000ms
验证
R1#show ip igmp interface f0/0

(6)IGMP Snooping IGMP Snooping为了解决在多路访问网络中,将组播只发送到需要接收的主机。IGMP Snooping 是交换机的特性,允许交换机“监听”用户和路由器之间的IGMP流量。运行IGMP Snooping的二层设备通过对收到的IGMP报文进行分析,为端口和MAC组播地址建立起映射关系,并根据这样的映射关系转发组播数据。 当二层设备没有运行IGMP Snooping时,组播数据在二层被广播。当二层设备运行了IGMP Snooping后,已知组播组的组播数据不会在二层被广播,而在二层被组播给指定的接收者。 IGMP Snooping通过二层组播将信息只转发给有需要的接收者,可以带来以下好处: 1)减少了二层网络中的广播报文,节约了网络带宽; 2)增强了组播信息的安全性; 3)为实现对每台主机的单独计费带来了方便。 路由器端口(Router Port):交换机上朝向三层组播设备(DR或IGMP查询器)一侧的端口,如Switch A和Switch B各自的Ethernet1/1端口。交换机将本设备上的所有路由器端口都记录在路由器端口列表中。 成员端口(Member Port):又称组播组成员端口,表示交换机上朝向组播组成员一侧的端口,如Switch A的Ethernet1/2和Ethernet1/3端口,以及Switch B的Ethernet1/2端口。交换机将本设备上的所有成员端口都记录在IGMP Snooping转发表中。 IGMP Snooping配置:

ip igmp snooping                                      全局使能,默认使能所有vlan
ip igmp snooping vlan 69                              使能单个VLAN
ip igmp snooping vlan 1 mrouter interface f0/7        设置接口为静态路由连接口 
ip igmp snooping vlan 1 static 0100.5e01.0101 interface Fa1/2

show ip igmp snooping 
show ip igmp snooping mrouter
show ip igmp snooping groups 
clear ip igmp snooping group 

(7)IGMP querier IGMP v1:DR就是querier; IGMP v2:比较IP地址,IP地址小的就是querier。 (8)IGMP filter (9)IGMP Profiles

(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. 全局下启用组播:ip multicast-routing
    2. 三层接口上启用PIM-DM:ip pim dense-mode
  3. 配置接收节点
  4. 查看与排错

Ip pim dense-mode //在接口上启用PIM-DM,配置PIM-DM的时候需要 注意:

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

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

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 Ip pim sparse-mode 对PIM-SM的配置,惟一的要求是RP的标识。路由器获知RP的地址的方法?也就是RP的常见确定机制有下列3种:

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

SPOTO(config)# ip pim rp-address 192.168.1.1 1 [ override ] SPOTO(config)# access-list 1 permit 239.1.1.0 0.0.0.255

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、必须配置所有的映射代理。

采用ip pim send-rp-announce即可配置C-RP,使用该命令需要指定接口(路由器通过该接口取得RP地址)和TTL值。当路由器被配置为C-RP之后,该路由器每隔60s向保留地址224.0.1.39发送一条RP-Announce消息,超时时间为180s。 采用ip pim send-rp-discovery配置映射代理,映射代理负责侦听来自C-RP的 RP-Announce消息并选举出RP,之后通过RP-Discovery消息(每隔60s向保留的地址224.0.1.40发送 )将RP宣告到PIM域中。 特别注意:必须在send-rp-discoverysend-rp-announce上指定的接口配置ip pim sparse-mode。对应的在静态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秒发送一次。 debug ip pim auto-rp来显示auto-rp的全部操作过程。 show ip pim rp可以显示路由器正在接收的多播组以及这些多播组所映射到的RP情况。 采用ip pim send-rp-announce中加入关键字interval可以修改C-RP发送RP announce消息的时间间隔,默认为60s。 eg:ip pim send-rp-announce loopback 0 scope 5 interval 10修改间隔为10s。 采用ip pim send-rp-announce中加入关键字group-list可以指定路由器为特定组播组的RP。 eg:ip pim send-rp-announce loopback 0 scope 5 group-list 10 access-list 10 permit 224.0.0.0 7.255.255.255 show ip pim rp mapping可以查看路由器映射到某个RP的所有组播组(不同的多播映射到不同的RP)。 show ip pim rp mapping in-use显示该路由器上正在使用的多播组地址范围。 show ip pim rp-hash显示某特定组将要被映射到那个RP。 通过设置RP通告过滤器(announcement filter),可以防止映射代理接收未经授权的路由器,这些路由器可能被有意或者无意的配置成为C-RP。采用命令:ip pim rp-announce-filter eg:ip pim rp-announce-filter rp-list 1 group-list 11 access-list 1 permit 10.224.1.1 access-list 1 permit 10.224.1.2 access-list 11 permit 224.0.0.0 15.255.255.255 在稀疏模式应用环境,多播包必须首先在共享树上进行转发,这就意味着侦听224.0.1.40的路由器为了接收RP-Discovery消息,就必须向他们的RP通告希望加入该多播组,现在的情况是路由器连RP-Discovery消息都没有接收到,那么又怎么知道谁是RP呢?解决的办法是采用稀疏-密集模式。 配置稀疏-密集模式,接口上配置:ip pim sparse-dense-mode (备注:在环回口上无需配置ip pim sparse-dense-mode,只要配置ip pim sparse-mode即可)

  • 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 SPOTO(config)# ip pim bsr-candidate loopback 0 30 10 SPOTO(config)# int loopback 0 SPOTO(config-if)# ip pim sparse-mode 配置C-RP SPOTO(config)# ip pim rp-candidate loopback 0 [ group-list 1 ] priority # SPOTO(config)# access-list 1 permit 239.0.0.0 0.255.255.255 SPOTO(config)# int loopback 0 SPOTO(config-if)# ip pim sparse-mode Show ip pim bsr-router:显示PIMV2域的BSR Show ip pim rp-hash:显示某特定组将要被映射到那个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做过滤的命令为:ip msdp sa-filter in xxx yyy(xxx为对端MSDP路由器地址,yyy为ACL、route map、RP access list、RP route map,如果不跟yyy,则表示所有SA); 3)对发送出去的SA做过滤的命令为:ip msdp sa-filter out xxx yyy(xxx为对端MSDP路由器地址,yyy为ACL、route map、RP access list、RP route map,如果不跟yyy,则表示所有SA)。 4)SA Filter配置

ip msdp peer 200.0.0.1 connect-source Loopback1 remote-as 200    
ip msdp sa-filter out 200.0.0.1 list 110     
ip msdp originator-id Loopback1
access-list 110 deny ip host 10.1.1.13 host 224.100.100.100
access-list 110 permit ip any any

ip msdp peer 100.0.0.1 connect-source Loopback1 remote-as 100
ip msdp originator-id Loopback1

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)组播双向树的配置

Router(config)#ip pim bidir-enable
Router(config)#ip pim rp-address 2.2.2.2 bidr

11、组播边界 Multicast Boundary

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

access-list 10 deny 224.10.10.0 0.0.0.255
access-list 10 permit any

interface FastEthernet0/0
  ip multicast boundary 10 out
access-list 100 deny ip any 123.1.1.0 0.0.0.255 224.10.10.0 0.0.0.255
access-list 100 permit ip any any

interface FastEthernet0/1
  ip multicast boundary 100 out

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券