如下图:
此过程中R1转发扩散报文,R2从g0/0/1、g0/0/0都接收到
对于组播源,R1存在等价路径,则会根据比较下一跳ip地址大小判断上联邻居与上联端口,此为g0/0/0成为上联接口,上联邻居就是10.1.123.1。则g0/0/1成为下游接口,继续扩散,但是R1中RPF检测不通过,所以丢弃报文,最终这期间不存在断言机制。
同时出现等价路由与断言机制:
当R1转发扩散报文,R2、R3都收到通过RPF检测,并都往下游端口继续扩散,此时R4会收到两份组播报文,R4中通往源有两条等价路径,则根据对比下一跳ip大小来确定上联邻居,此时上联邻居为10.1.234.3,RPF邻居也是同样。而R2转发组播报文时,R3会收到,同样R2也会收到R3转发的,此时会有断言机制,比较IGP路由优先级、通往源的cost、两路由器接口ip地址大小,当R2到源的cost比较小,则胜出成为winner,R3则成为loser,对于R4来说,RPF邻居会变成R2,即此时的上联邻居是10.1.234.3,RPF邻居为10.1.234.2。
为什么不直接根据等价路径来确定RPF邻居呢?
等价路径选举上联邻居,是R4收到两份组播数据才触发的,是R4自己选举出来的,此时R2、R4是不知道的。
同时,R2、R3互发的组播数据,由于RPF检测不通过,都会丢弃的,但是它们都不会收到剪枝报文,意味着都还是会收到对方转发的组播数据,如此一来R4就会不断收到两份组播数据了。
所以此时必须要有一者不能再继续转发组播报文,两者必须要进行pk分出胜负,所以就有断言机制了。