【答疑】【推荐】一个组播实验引发的思考
问题的原帖出处:http://bbs.spoto.net/thread-52103-1-1.html这是一个非常有代表性的实验,可以很好的考察对组播的理解。原帖提出的问题,已经有老师做了解答,但是貌似“饭团”同学还有些疑惑(to饭团同学,你到底是爷们,还是妹纸?)。在者这个实验环境实际上可以做一些扩展,可以把问题分析的更加透彻一下,因此特别开个新帖,大家一块来讨论讨论。
为了简化说明环境,我将原实验环境做了修改。三台路由器,均使用以太口互联。IPv6地址这里不做描述。R1的Loopback0口作为RP,同时,这个接口也是组播组FF04::1的用户,也就是接收者。接下去,我们分别在R3、R2上进行不同测试,来理解每个测试对应的现象:
【测试1】
测试描述: 在R3上ping FF04::1,出接口为Fa0/0
测试现象: 无法ping通。
现象分析: R3直接产生组播数据,这些组播数据的源IP为R3 Fa0/0的接口IP,目的IP为组播组地址FF04::1。这些组播数据是直接发送给了R2,此时此刻,R2是First-hop路由器。那么当R2收到这些组播数据的时候,由于是在一个多路访问网络中收到的(在自己的Fa1/0口),而自己的Fa1/0口又不是该LAN内的DR,既然不是DR,就无权向RP发起register。因此,R2只是简单的创建一个IPv6组播转发表项而已(且outgoing interface list为空),不会做进一步的处理。于是这些组播数据在R2处被丢弃。
要想让R3能ping通这个组播组地址,其实只要做些简单的配置,使得R2的Fa1/0口成为LAN内的DR即可,例如使用ipv6 pim dr-priority 将R2的Fa1/0口DR优先级调高。即可解决问题。
如果测试走到这里结束,那就太没有探索精神了,学习的乐趣,很多时候在于自己给自己找茬,深入挖掘,细细品味,乐在其中。
【测试2】
测试描述: 在R3上ping FF04::1,出接口为本地的Loopback0
测试现象: 能够ping通
现象分析: 这次环境跟前面就不大一样了。首先组播数据是来自R3的Loopback0口,那么First-hop路由器就变成了R3,而不是R2了。那么R3作为第一跳路由器,在收到组播源(也就是自己的LO0)发出的组播数据后,R3将触发Register过程,register过程的详细内容,大家都非常熟悉了,这里就不罗嗦了,最终的结果是,R3到R1构建了一个SPF,于是乎来自R3 Loopback0口、发向组播组FF04::1的组播数据可以沿着这可途径R2到R1的SPF进行转发。
R2的表项(2033::3是R3的Loopback0口IP地址):
(2033::3, FF04::1), 00:00:04/00:03:24, flags: ST
Incoming interface: FastEthernet1/0
RPF nbr: FE80::CE02:1BFF:FE54:0
Immediate Outgoing interface list:
FastEthernet0/0, Forward, 00:00:04/00:03:24
R3的表项:
(2033::3, FF04::1), 00:00:16/00:03:13, flags: SFT
Incoming interface: Loopback0
RPF nbr: FE80::CE02:1BFF:FE54:0
Immediate Outgoing interface list:
FastEthernet0/0, Forward, 00:00:15/00:03:14
【测试3】
测试描述: 在R2上ping FF04::1,出接口为Fa1/0
测试现象: 能够ping通
现象分析: R2产生的这些组播数据包,源地址为R2的Fa1/0口地址,目的地就不说了铁定是组播组的IP。这些组播数据到了R3,由于R3是第一跳路由器,并且R3的Fa0/0口又是本LAN的DR,因此R3将向RP发起Register,组播数据被送到了R1。这时候实际上组播数据是到了R1也就是到了接收者了,但是实际上,底下还在发生着一些更复杂的事情。R1在收到Register之后,会有意愿与源形成SPT,因此它向R2发了一个SPT的join消息,R2收到之后将自己的Fa0/0口添加到对应组播表项的outgoing interface list中。但是,由于组播数据始终是从R2的Fa1/0口发出(因为我们测试的时候,指定的outgoing接口为Fa1/0),因此R1不断的收到R3发来的、封装了组播数据的Register,却没有收到沿着SPT传下来的组播数据,因此,R1不会向R3发送register-stop,R3的注册过程只能反复的进行,组播数据将一直被封装在Register消息中传给R1。
【测试4】
测试描述: 在R2上ping FF04::1,出接口为Fa0/0
测试现象: 能够ping通
现象分析: 这个应该说没任何难度了,此时此刻R2就是一个组播源,将组播数据直接发送给R1。
红茶三杯
网络工程 | 项目管理 | IT服务管理 | CCIE培训
学习 沉淀 成长 分享
微博:http://weibo.com/vinsoney
博客:http://blog.sina.com.cn/vinsoney
传说中的沙发?? 深入研究技术,技术深入研究,值得学习。 -woniu2--woniu2--woniu2- 借宝地,请 朱 sir上传NA 与 NP的视频到网盘下,
在优酷看到的不太清晰呀
-woniu4- 学习了,很棒的例子!
感谢耿叔的分享!
页:
[1]