pim协议笔记摘要1

上传人:第*** 文档编号:31317647 上传时间:2018-02-06 格式:DOC 页数:22 大小:336KB
返回 下载 相关 举报
pim协议笔记摘要1_第1页
第1页 / 共22页
pim协议笔记摘要1_第2页
第2页 / 共22页
pim协议笔记摘要1_第3页
第3页 / 共22页
pim协议笔记摘要1_第4页
第4页 / 共22页
pim协议笔记摘要1_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《pim协议笔记摘要1》由会员分享,可在线阅读,更多相关《pim协议笔记摘要1(22页珍藏版)》请在金锄头文库上搜索。

1、关于PIM(摘自cisco官方文档):发送者和组成员可能在远程网络那么这样一来,发送者发出的数据,必须经过路由器才能到达组成员的网络,所以要使组播数据准确地被转发到组成员的网络,就必须让中间的路由器也知道组成员网络的位置所在。两个不同网络的主机使用单播通信时,数据可以被中间路由器准确地转发,是因为路由器的单播路由表中能够找到目标网络的位置,如果要让路由器也能像转发单播数据一样,将组播根据路由表来精确地转发到目的地,那就需要让路由器拥有像单播路由表一样的组播路由表,从而让路由器在收到组播时,就像查单播一样,去查组播该从什么样的接口被发出去才能到达目标网络。要让路由器生成一张功能完全的组播路由表,

2、就需要在路由器之间运行一种协议,这种协议可以让组播源和目的之间的路由表生成单播表一样地生成组播表,最后路由器根据这张组播路由表来完成组播的转发。这个协议就是 PIM (Protocol Independent Multicast)。其实要让路由器知道目标组员的位置,完全可以依靠单播来找到组员,所以只要组播的源和目的之间单播是通的,那么组播路由表就能建立,而不用管单播运行的是动态路由协议还是静态路由协议,但是前提是 PIM 必须依靠单播路由表才能生成。 查看:show ip mrouteshow ip mroute 224.1.1.1组播树因为在需要将一份数据同时发给多个接收者时,而开发了组播技

3、术,所以组播的发送者通常面临着要将数据发向多个接收者,并且这些接收者可以分布在任意网络的任意位置。如果接收者在远程网络,那么就需要路由器提供组播转发,所以要保证接收者能够正常收到组播,就必须让路由器知道自己该将组播从什么样的接口发出去,当组播到达下一跳路由器后,下一跳路由器同样也必须知道该将组播从什么样的接口发出去,即使接收者不是与自己直连的,只有这样让路由器之间协同工作,都能够记住组播的出口,最终在发送者与接收者之间形成一条连线,这样才能完成组播的转发。当多个网络存在接收者时,那么这样的连线就会有多条,组播发送者到接收者之间的这些转发线路,被称为组播转发树,而组播发送者就好比是组播树的树根,

4、组播总是从根发向接收者。总结:记住组播的出口信息,这就是组播路由表的工作。组播反向路径转发路由器不小心或者由于各种原因再将组播发送回来,对于这样已经出现环路的数据,如果路由器收到后,再次将组播转发出去,那么只会形成组播风暴,最终危害整个网络。结论:必须只将数据往接收者的方向转发,而绝不能往发送者的方向转发组播反向路径转发(mRPF),让组播路由器只将数据往接收者的方向转发,而不能往发送者的方向转发,也是组播路由器必须遵循的机制。结论:组播路由器在收到组播数据后,都要对数据进行 RPF 检测,只有从源的方向发来的数据才能被转发,从其它接口过来的数据被认为是无效的。 PIM-DM(密集模式)要形成

5、组播树,路由器需要知道哪些接口出去能够到达接收者,并记录下来,然后再记录到发送者的 RPF 口。要让路由器知道哪些接口存在接收者,有两种方式,第一种方法是接收者主动向路由器报告,第二种方法是路由器主动向网络中发出查询,而 PIM-DM 模式中,采用的方法为路由器主动向网络查询是否有接收者。3个接口状态:forwardingRPF 接口pruning3个接口状态:forwardingRPF 接口pruningPIM-SM(稀疏模式)1.建立组播树时,PIM-SM并不会让路由器发送查询数据包去查询组成员,而组成员的发现是靠组成员自己主动向路由器发送报告数据包2.记录路由表的方式也不一样,例如网络中

6、有一个组,地址为:224.1.1.1,发送者为 100.1.1.1,PIM-SM 模式记录为 (*,G),不关心组播的源地址,而统统将源地址使用星号*来表示,称为(*,G) ,其中* 就是组播源地址,G 就是组地址。3.2个接口状 态:forwarding和RPF 接口,不记录pruning状态的接口,节省资源。RP(*,G)造成路由器不知道组播发送者的 IP 地址是什么,也就无法完成 RPF 反向路径检测。在这种情况下, PIM-SM 在网络中选出一个组播会聚点,即Rendezvous Point (RP),结论:1.RP 就是组播网络的核心,发送者统一将组播数据发送到RP,然后 RP 再将

7、数据 发到接收者。2.RP的地址,就是组播源的 IP 地址3.RP 就是组播源,最后 PIM-SM 中的 组播树,即(* ,G)形式的树被称为共享树(RPT)。 4.RP是SPT和RPT的汇聚点(像一个中介,不管你买房还是卖房,都要通过中介)PIM中的消息PIM-DM使用5个PIMv2 消息:1. Helloa) 使用hello消息来发现邻居,一旦PIM路由器启动,他就周期性地在每个配置PIM的接口上发送hello消息。b) PIMv1路由器有相同的功能,但他们采用query消息。c) Hello消息中有一个保持时间,这个时间定义了邻居等待下一个消息的最长时间,如果没有等到这个消息,邻居就宣布

8、这个发起路由器已经死亡。Hello默认为30s,可以用ip pim query-interval命令加以改变,保持时间自动设为hello消息间隔的3.5倍-105s 。2. Join/prune(加入/剪除)a) Prune消息的目的地址为224.0.0.13,上游路由器的地址封装在这个消息中。b) 组播源开始向所有邻居发送查询消息,邻居会再向自己的邻居发送查询消息,如果有路由器连接着组成员,那么就会向上一跳邻居发送 join 数据包,用来通告自己需要接收组播,从而将自己接入组播树。其它没有连接组成员或不需要接收组播的路由器则向上一跳邻居发送 prune 数据包,用来通告自己不需要接收组播,状

9、态被标为 prune,而不是 forward。3. Graft(嫁接)a) 该消息是以单播方式传送到上游邻居,当上游路由器受到Graft消息,就把收到 这个消息的接口加到他的 输出接口列表中。这个接口设为前传状态,并且马上用单播方式给新的下游邻居发送一个graft ack消息。b) 如果路由器已经把自己从多播树中剪除,那么他必须向自己的上游路由器发送一个graft消息,不能发送 join 数据包c) 当路由器发送了graft 消息,就会等待graft-ack消息,等待时间为3s,如果在 这段时间内没有收到确认信号, 路由器就重新发送graft消息4. Graft-ack(嫁接确认)a) 参考上

10、面5. Assert(声明)a) 选举指定前转器,Assert 是用来选举 PIM 前转器的,当从源到组成员有多条路径可走时,则选择其中唯一的一条路径,被选中的路由器称为 PIM 前转器。 b) Assert 消息中包括源和组地址,以及到源的单播路由 AD 值 和 metric 值,先选 AD 值低的,其次是 Metric,最后是最高 IP 地址,落选的把自己的出口剪除。Assert机制主要为了防止复制包问题(选举转发路由器)过程:如果是以上这个图的情况,R1和R2收到组播包后都会向PC发送组播包,这时PC端将会收到2个同样的组播包。解决这种复制包问题的方法就是Assert机制:当一个组播路由

11、器从一个OIL接口收到组播包后表示除了自己之外,还有别的组播路由器在转发这个组播流量。这时如果路由器在接口上启动了assert机制,就会发送assert 包带上distance,metric,这个distance,metric是指单播路由表中组播包源的路由的管理距离和度量值。用于选举出一个路由器来转发这个组播包,选举失败的路由器会停止转发组播包,并向源prunes。选举机制如下:首先比较distance,然后比较metric,选小的;如果都一样,就比较发送assert包的接口地址,选大的。剪除覆盖过程:R2向R1 发送一个prune消息,R1的地址是封装在这个消息中的,目的地址为224.0.0

12、.13,当R1受到这个消息,并不立即剪除这个接口,而是设置一个3s的计时器,同时,因为prune消息的目的地址是多播地址,R3也受到这个消息,他看到这个要剪除的组时他要继续接收的那个,而这个消息也已经发送到了他的上游邻居处,因此,R3向R1发送一个join消息,如上图所示,这样R3发出的join消息就覆盖了 R2发出的prune消息,只要R1在3s 定时结 束前收到 这个join消息,流量就不会中断。口诀:3s ,join覆盖prunePIM-SM:PIM-SM采用了 7种 PIMv2的消息1. Hello邻居的建立与维护2. Bootstrap(引导) 用于RP的选举a) BSR每隔 60s

13、发送一次b) 自举计时器为130s(类似于死亡时间)c) 多播地址为224.0.0.13,TTL为13. Candidate-RP-Advertisement用于RP的选举(后选RP宣告)C-RP单播向 BSR发送,该消息含有 C-RP的地址和优先权4. Join/prune(加入/剪除)5. Assert(声明)6. Register(注册)7. Register-stop(注册 终止)其中hello、join/prune和Assert 3条消息在PIM-DM中也有,其余4 条就是其特有消息RPF 检测失败在 PIM-SM 中,因 为(*,G)形式的记录中不知道组播源的地址,也就无法完成 R

14、PF检测,但是又由于接收者收到的数据,都应该是 RP 发来的,路由器也就认为 PIM-SM中的组播源地址,就是 RP 的地址,在这种情况下,路由器会以 RP 的地址 为源地址做 RPF 检测,但是在下面的拓朴中,就会出现问题: 如上图所示,当所有路由器都认为 RP 地址 23.1.1.3 就是组播源地址时,这样去做 RPF 检测,在 R4 上检测时,因为 R4 的路由表中会显示从接口 S 0 /0 出去可以到达23.1.1.3,所以组播从 R4 的 S 0 /0 被发进来时,则 RPF 检测可以通过,所以在 R4 上没有任何问题。 当在 R2 上做RPF 检测时,因为 R2 的路由表中显示到达

15、 23.1.1.3 应该从接口 F0/1出去,所以 R2 只会接收从接口 F0/1 发进来的组播,从其它接口发进来的,都会被认为是环路而被丢弃。因此在真正的源 12.1.1.1 将组播从 R2 的 F 0 /0 发进来时,R2会因为 RPF 检测失败,从而丢弃所有的组播数据,这样一来,组播也就无法通信了。PIM DR在 PIM-SM 中,组播源没有机制用来宣告自己的存在,又因为 PIM 路由器都认为 RP 才是组播源,而当直接的组播源向 RP 发送组播时,会导致某些路由器 RPF 检测失败,因此在 PIM 网络中,真正的源需要向 RP 发送注册消息,以宣告自己的存在,而发送注册消息在多路访问的

16、网络中则是由 DR 来代为完成的。真正的源向 RP发出第一个组播包时,DR 将此包封装在 单播中发向 RP,这称为注册,发送的注册消息会从 DR 到 RP 之间建立一条源 树,也就是(S,G)的记录,这样,在源到 RP之间创建的源树就可以帮助避免 RPF 检测失败,当 RP 和真正的源之间创建(S,G)条目之后,就会通知 DR 停止以单播发送,从而转回发送真正的组播。PIM DR 路由器在 IGMP v1 中充当IGMP 查询器的功能,来向主机发送 IGMP 查询。选举:1.优先级(if)#ip pim dr-priority 100 修改接口下pim dr优先级2.IP地址选择 DR 的数据包 为 30 秒一次,105 秒保持时间,如果过了保持时间没有收到DR 的数据包,则会重新 选举 IP 地址最高的为 DR。 Register DR 功能,在前面已 经提到过,就是在 PIM-SM 中

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 工程造价

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号