一个路由器收到多播报文只能有一个接口。
那么我们如何确定这个数据包从哪里进来,靠的就是反方路径转发(RPF)。 RPF校验,
多播流量传下来和我单播返回信息的接口不一样那么RPF的校验就失败了看张图。
这个图说的很清楚,多播流量是从S0口传下来的,但是下面路由器和上层原通信是从S1口走的,也就是下来和回去的路径不一样,这样RPF校验就失败了。
我们再换一种方式去想想,当S1,S0,S2口都发了多播流量那么谁是RPF转发接口了?很明显S1口,其他接口收到这个多播信息直接就丢弃,只有S1口收进来,然后从E0口发出去。
接下来我们再看一个图。
这就是RPF接口的选举规则。扩展下如果运行OSPF的话那么信息会从E0口走,那么这会FR这边就不会走任何信息,我们可以规定一些组的信息走FR,达到负载分担的效果。
实际做法:第一通过改metric值可以搞定。
第二写多播静态路由,它的目的仅仅只是让你选择一个RPF接口,不做多播转发。
“注意 这个地址写的是源地
址,一定要和我们原来的静态路由写法要区分开来”。 那么静态多播地址的AD是多少了?
是0。
这个命令一旦写上那么就会从S0口走,因为S0口的AD是0。
基于目标组来做负载分担,这个就做不了了,再次申明它只选择RPF接口,我们后面会做PIM可以搞定。--------再啰嗦一句做多播的时候IGP一定要通。
---------------------------------------------------------------------------------------------------- 讲下multicast的树形结构。 1:源树,也就是spt最短路径。 2:共享树,RPT
原树,最短路径树====一个源一棵树。
这是原1的。源树的好处就是每个源一棵树并且是路径最短。坏处就是多个源就会多颗树,每台路由器上面都要保留S(源),G(目的)信息,对路由器的内存开销太大,网络大了就问题多了。其实啊 这个就是我后面会说到的dense模式。一会讲大家别急~~~。 共享树,RPT
我们在网络中找见一个集合点。
这个图上D就是RP也就是集合点,那么我们的源1和源2都是先发像RP。然后由RP向下发多播流量。
那么针对最后一跳路由器来说C和E 来说我们不知道源在哪里,但是我们知道组。那么C和E上只会有*和G。
其实还有一个问题就是源到达最后一跳路由器的路径不见得是最优的,我们在PIM解决。 这个图是源树和共享树的结合属于spare模式。
-------------------------------------------------------------------------------------------------------------
终于到PIM了,不容易啊。
PIM(protocol independent multicast--协议无关的多播,这个协议指的是IGP协议)
两种模式,sparse稀疏模式 Dense密集模式 ----------------
先看一个dense模式,这个比较简单我们先看。 原理很简单就是push(推),当在网络中有很多接收者,就是我的这个路由器先把这些多播信息全部推下去,我不管你接收者在哪。 Dense模式------push------源树spt。
这张图就是标准的push模式,左边的源这会不知道接收者在哪里,那么我就把组播流量全部推下去。
有些路由器下面没有接收者然后就有一个prune (修剪)信息回传给源。
当源向下推所有信息的时候只有下面的路由器才能收到report,上面的不会收到,也就是没有组员,但是他会周期的3分钟时间再发。密集模式哥总结一句话就是“先泛洪后修剪”。