网络拓扑:
PIM-SM下面有没有Assert机制:
在一个网段内有多个相连的PIM路由器收到组播报文进行RPF检查通过后,向一个共享网段转发组播报文时,需要通过断言机制来保证只有一个PIM路由器向该网段转发组播报文。
在PIM-SM环境中,组播源发送的组播报文到达RP后,由RP沿着共享树把组播报文发送给组成员。共享树是由连接组成员的末跳路由器朝着RP的方向发送(S,G)的加入消息来构建的,那会出现有多台路由器向同一个网段发送同源同组的组播报文吗?
如上面网络拓扑所示进行分析:
1> 全网路由器运行OSPF,链路开销都相同。R1的回环接口0配置为RP。
2> R4接口G0/0/0下连接组成员,触发R4向RP的方向发送(*,G)的加入消息。
3> R5接口G0/0/0下连接组成员,触发R5向RP的方向发送(*,G)的加入消息。
4> R4和R5上运行的协议相同,所以针对R1的回环接口0,选择的RPF邻居相同。比如都是R3 G0/0/1接口的IP地址(R3的G0/0/1接口的IP地址大于R2的G0/0/1接口的IP地址)
5> R4和R5发送的(*,G)的加入消息中上游路由器字段填充R3的G0/0/1接口的IP地址,意味着只有R3会处理收到的加入消息。R2收到加入消息后会丢弃。
6> R3收到(*,G)的加入消息后,生成(*,G)的表项。出接口列表为收到(*,G)加入消息的接口,入接口为朝向RP的接口。
7> R3路由器(*,G)表项的出接口不为空,触发R3朝着RP的方向发送(*,G)的加入消息。
8> R1收到(*,G)的加入消息后,生成(*,G)的表项。出接口为收到(*,G)加入消息的接口,因为自己是RP,所以入接口为空。
根据上述分析可以看到,正常情况,在R2 R3 R4 R5互联的网段只有R3发送组播报文,不
会触发Assert机制。
如果要在PIM-SM环境中触发Assert机制,可以在R4或者R5路由器上配置组播静态路
由,修改去往RP(R1回环接口)的RPF邻居,使得R4和R5分别通过R2 R3不同的路径
建立共享树。