PIM
PIM(Protocol Independent Multicast)协议无关组播
利用单播路由表和RPF检查
PIM使用IP封装协议号103
组播分发树是指从组播源到接收者之间形成的一个单向无环数据传输路径。组播分发树有两类:SPT和RPT
RPF检查
RPF单播逆向路径转发(Reverse path forwarding)
当收到一份组播报文后,会根据报文的源地址,进行单播路由表找到源地址的路由,查看到路由表项的出接口是否与收到的组播报文的入接口一致,则认为报文从正确的接口到达,保证了整个转发路径的一致和正确,如果未通过就丢弃报文
如果收到一张路由表上的多条等价路由,优先选优先级值最小的,优先级相同组播静态路由>MBGP路由>MIGP路由>单播路由,会把下一跳地址最大的作为RPF路由
PIM-DM密集模式
采用push(推)模式转发组播报文
建立SPT(Shortest Path Tree,最短路径树)
通过周期性(3分钟)的扩散——剪枝,来构建一棵无环的SPT树
PIM-DM的邻居发现
PIM设备在每个使能了PIM的接口上,都会对外发送Hello消息。封装Hello消息的组播报文有如下特点:
- 目的地址是224.0.0.13,表示同一网段中所有PIM设备
- 源地址为接口的IP地址
- TTL数值为1,仅发送给邻居接口
Hello协商的参数:
- DR_Priority:表示各路由器接口竞选DR的优先级,优先级越高越容易获胜。(默认1)
- Holdtime:表示保持邻居为可达状态的超时时间(105s)。
- LAN_Delay:表示共享网段内传输Prune消息的延迟时间(向上游传递下游的剪枝消息5s)。
- Override-Interval:表示Hello消息中携带的否决剪枝的时间间隔(向下游发送剪枝后等待下游发join25s)。
维持邻居关系:
PIM设备之间周期性地发送Hello消息。如果Holdtime超时还没有收到该PIM邻居发出的新的Hello消息,则认为该邻居不可达,将其从邻居列表中清除。
PIM邻居的变化将导致网络中组播拓扑的变化。如果组播分发树上的某上游邻居或下游邻居不可达,将导致组播路由重新收敛,组播分发树迁移。
周期(30s)发送Hello报文,Hello信息超时时间是105s
PIM-DM的DR选举
需要网段中的所有路由器都支持DR优先级
DR优先级大的路由器成为DR,优先级相同由IP地址大的成为DR,DR出现故障会重新选举DR
DR值为0~2^32-1
默认为1
只为了帮助IGMPv1选举查询器
PIM-DM的扩散
PIM-DM假设网络中的每个子网都存在至少一个组播组成员,因此组播数据将周期性(3分钟)扩散到网络中的所有节点,网络中所有的PIM设备都能接收到组播数据。
当接收到组播源发送的组播报文时:
1、路由器接收到组播报文会进行RPF检查
2、如果通过检查,就创建(S,G)表项,然后将数据向所有下游PIM-DM节点转发,这个过程成为扩散(Flooding)
PIM-DM的剪枝
放了防止下游没有组播成员,扩散组播报文会导致链路带宽浪费,需要剪枝
1、当下游没有