PIM组播路由学习笔记
PIM-DM
带你简单了解PIM组播,了解组播的框架,这里不写详细的信息,详细的信息请查阅相关的文档。
适合的使用场景
一般应用于组播组成员规模相对较小、相对密集的网络。
邻居发现
PIM-DM设备之间通过互发hello,交换PIM的参数,来确定邻居关系。PIM随后会根据邻居关系向外发报文,例如:发扩散消息。
扩散 (Flooding)
端口只要能听过RPF检查,就一直向下扩散,RPF检查就是看出去的端口在不单播路由表里。
剪枝(Prune)
RouterB收到flooding的组播消息,因为hostB不需要组播消息,RouterB会向回发送剪枝报文,RouterC收到剪枝消息后就不再想RouterB方向发送组播流量了。
嫁接(Graft)
如果HostB又想要接收组播流量了,就会通过igmp告诉RouterB,routerB向组播来的方向发送嫁接消息。之后组播流量就可以发往RouterB了。
状态刷新(State Refresh)
在PIM-DM网络中,为了避免被裁剪的接口因为“剪枝定时器”超时而恢复转发,离组播源最近的第一跳路由器会周期性地触发State Refresh报文在全网内扩散。收到State Refresh报文的PIM路由器会刷新剪枝定时器的状态。被裁剪接口的下游叶子路由器如果一直没有组成员加入,该接口将一直处于抑制转发状态。
状态刷新过程如下:
1.RouterC触发状态刷新,将State Refresh报文向RouterA和RouterB扩散。
2.RouterC上存在被裁剪接口,刷新该接口的“剪枝定时器”的状态。下一次“扩散-剪枝”来临时,由于RouterB上仍然没有组成员加入,RouterC上被裁剪的接口将被抑制转发组播报文
断言(Assert)
是为了解决,一个网段里有多个PIM-DM设备,如果都接到组播消息,由谁来向接受者转发这个组播消息呢? 这些PIM设备之间互发断言消息来决定由谁来转发组播流量给HostA。