PIM-DM 基础
PIM-DM使用一下5种RIMv2消息
Hello
Join/Prune (加入/剪除)
Graft (嫁接)
Graft-ACK(确认)
Assert(声明)
PIMv2路由器使用Hello 消息来发现邻居,当PIMv2 路由器(PIM-SM或PIM-DM)被活动时,会在每个配置PIM的接口上周期性的发送Hello消息;PIMv1路由器有类似的功能,只是使用的是Query(查询)消息。Hello(或Query)消息包含一个保存时间(holdtime),其指定邻居在宣称发言路由器无效之前等待收到下一条消息的最大时间。 Cisco IOS Software 中默认的PIMv2 Hello间隔PIMv1Query 间隔均是30秒,可以利用命令ip pim query-interval 来按照接口修改默认间隔,保持时间被自动设置为Hello/Query间隔的3.5倍。
PIMv2 消息被发送给224.0.0.13(使用协议号是103),而PIMv1 消息则被发送到224.0.0.2(使用的是协议号是2)
当多播源开始发送多播包时,PIM-DM利用泛洪/剪除协议来构建多播树。当每个PIM-DM路由器收到一个多播包时,会在自己的转发表中增加一个表项,最终多播包被泛洪到所有叶子路由器----即没有下游PIM邻居路由器。如果接受到多播包的叶子路由器未连接任何组成员。那么该路由器就必须将自己从多播树中剪除出去。为此,需要向沿着多播源方向的上游邻居发送Prune(剪除)消息,Prune消息的目的地址是224.0.0.13,上游邻居的地址也被编码在该消息中。如果该上游邻居没有连接该多播包所属的组成员,也没有其他下游邻居或从其所有下游邻居都接收到剪除消息,那么该路由器也会沿着多播源方向的上游邻居发送Prune消息。
Graft消息以单播方式被发送给多播树上的上游邻居。当上游路由器接收到该Graft消息后,会将接收到该消息的接口增加到其出口接口列表中,从而使该接口进入转发状态,并立即向其新下游邻居发送Graft-ACK(嫁接确认)消息。如果路由器正在向其他下游邻居转发多播包,那么则无需做一步操作;但是,如果该路由器也已经讲自己从该多播树中剪除出去了,那么就必须也想其上游邻居发送Graft消息。当路由器发送了Graft 消息之后,会等待3秒钟,以等待Graft-ACK 消息,但是如果3秒内没有收到该确认消息,那么该路由器就会需要重传Graft.
转载于:https://blog.51cto.com/sxsure/1275917