雏鹰部落

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1328|回复: 3

[讨论/求助] PIM-SM RP-on-a-Stick

[复制链接]
发表于 2013-1-18 22:38:32 | 显示全部楼层 |阅读模式


“RP on a stick”,是一个在PIM-SM中典型的一个问题,也是一个经常会被谈到的CASE,
这里针对这个问题,做个梳理,顺便回顾一些相关的知识内容。
看上图,A、B、C处于一个MA网络,B路由器下挂了组播组的Source,C路由器下挂了组播组的用户,而A作为RP。
那么根据我们已知的知识,在Source开始发送组播数据后,First-hop Router,也就是B路由器会向RP进行register,并且发送PIM register消息,在完成register动作后,B会尝试与A建立SPT,并且开始发送组播数据。那么B发送的组播数据,难道真的会先通过SPT流向RP-A,然后再由A将组播数据通过RPT转发给C么?另一方面,C与B又在同一个MA网络,实际上B发送的组播数据能直接被C收到,那么C会同时从B及A收到组播数据么?

实际上,如果我们还原上述拓扑,做个试验很容易就得出结论:
source发出的组播流量会经B直接转发到C,而不用经由A再转给B,这其实是非常合理的,A的组播路由表如下:

注意RP-A的(S,G)表项出口列表为空,这说明RP实际上直接丢弃了来自源的组播数据,一毛钱都没转发。
也就是说,C(下面的组播用户)需要的组播数据直接从B获取。
那么为什么会造成这种(合理的)现象呢?

接下去我们将针对其中的细节过程进行分析,当然,表指望去抓下面的过程,因为太微观鸟。

1、接受者首先加入RPT
假设C首先向RP发送Join消息,加入RPT,那么:

RP创建(*,G)表项,并将收到join消息的Fa0/0口放进该表项的出口集合中。

2、几分钟后,当源开始发送组播信息的时候,B已经与RP完成了正常的Register操作,而RP已经通过创建(S,G)状态并沿着源方向加入SPT来作为响应。如果这时候微观层面去捕捉RP的状态:

再说一遍,不要去尝试捕捉上面的信息,根本不可能的,只是为了分析做的呈现而已。
从上面的输出可以看到,RP创建了(S,G)表项,并且,将朝着源的接口Fa0/0设定为incoming接口,同时,Fa0/0又是outgoing interface,这尼玛不就有问题了么?

3、那么根据通用规则4,从出口列表中剪枝fast0/0,这就产生了:

这就是最终的结果。实际上,这个过程发生的异常快,你根本无法捕捉到微观的过程,产生这个现象的机制,其实就是PIM的通用规则,下面回顾一下这里涉及到的两条规则:

PS(知识点回顾):
【通用规则3】在创建新的(S,G)时,其出口表提供一个来自父(*,G)表项的出口表副本
当(S,G)表现创时,其输出接口表起初提供一个父(*,G)项的输出接口列表的副本,因为 父辈的密集模式的出口表含有所有PIM邻居或直连的组播成员接口列表,因此这个拷贝运行的结果是信息流一开始就按扩散及剪枝方式经过新建的(S,G)表项转发。

【通用规则4】组播转发项的入口(RPF接口)绝不能在其出口表上出现
按照通用规则3,可能会出现(S,G)表项的输入接口,也在其父(*,G)表项的输出接口列表中,那么这样就可能出现环路,因此又有此规则。



更详细的内容,请见《IP组播网络的设计与部署》



红茶三杯(朱SIR)
网络工程 | 项目管理 | IT服务管理 | CCIE培训
沉淀 提升 成长 分享
微博:http://weibo.com/vinsoney
博客:http://blog.sina.com.cn/vinsoney

本帖子中包含更多资源

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

x
发表于 2013-1-19 17:25:42 | 显示全部楼层
耿叔V5
发表于 2013-1-21 08:35:37 | 显示全部楼层
收藏先,等学习到了再好好研究下~
发表于 2013-1-21 09:12:44 | 显示全部楼层
先收藏了,确实不错的帖子。
组播学习的重要资料!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-3-29 04:04 , Processed in 0.074582 second(s), 19 queries , Gzip On.

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