雏鹰部落

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2427|回复: 5

[讨论/求助] 【答疑】【推荐】一个组播实验引发的思考

[复制链接]
发表于 2013-6-23 20:05:09 | 显示全部楼层 |阅读模式
问题的原帖出处: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




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
发表于 2013-6-23 21:39:59 | 显示全部楼层
传说中的沙发??
发表于 2013-6-24 09:28:12 | 显示全部楼层
深入研究技术,技术深入研究,值得学习。
发表于 2013-6-24 13:54:39 | 显示全部楼层
回复

使用道具 举报

发表于 2013-6-24 21:44:03 | 显示全部楼层
借宝地,请 朱 sir  上传  NA 与 NP  的视频到网盘下,

在优酷看到的不太清晰呀
发表于 2013-6-24 23:59:12 | 显示全部楼层
学习了,很棒的例子!
感谢耿叔的分享!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|熊猫同学技术论坛|小黑屋| 网络工程师论坛 ( 沪ICP备09076391 )

GMT+8, 2024-12-22 13:19 , Processed in 0.093947 second(s), 23 queries , Gzip On.

快速回复 返回顶部 返回列表