协议无关组播--稀疏模式 PIM-SM

时间:2024-01-20 17:28:51

一、
1)PIM-SM
1.PIM-SM转发、加入
协议无关组播--稀疏模式  PIM-SM
PIM-SM适合于接收成员较少的环境。它与DM有何显著的区别?先看PIM-SM转发机制。
转发:
当组播数据到达路由器时,路由器也会去创建转发项。转发项的入接口也依据单播路由指向源(请注意这里的源不再一定是数据源S,它是网络中某一个作为核心的路由器RP。所有数据源向组发送数据时都由源DR先将数据发向RP。RP再将数据向网络转发);但出接口列表却为空。因此,路由器并不向网络转发组播数据。为什么?因为,SM默认为其所有接口上并无谁需要组播数据。
加入:
但是,当网络中有主机想加入组,接收组数据时怎么办?这时主机先向DR发送IGMP加入。DR接收到IGMP加入后,就在该组转发项出接口列表中添加接收到IGMP加入的接口。
如果DR出接口列表从空变成非空,则向其RP发送加入消息。沿途所有路由器就会将收到加入消息的接口添加到出接口列表中。如果路由器的转发项出接口也从空变为非空,则路由器向RP转发该加入消息。如果路由器的转发项不为空,则路由器只是在出接口列表中添加收到消息的接口。这样路由器就建立起了转发项。组播数据就能够流到加入到组的所有组成员。
由此可以看出,SM转发项的建立是依靠主机和RPF下游显式发送加入消息建立起来的

2.PIM-SM剪枝
协议无关组播--稀疏模式  PIM-SM
当主机不再希望收到组数据时,主机就向DR发送IGMP离开消息。DR收到IGMP离开后就将接收到该消息的接口从出接口列表中删除;如果出接口列表从非空变为空,DR将向RP发送剪枝消息。
上游路由器收到剪枝消息后,也将收到该消息的接口从出接口列表中删除。当其出接口列表从非空变为空时,上游路由器也向RP发送剪枝消息。这样组播数据就不再流向该分支了。
值得提醒的是:SM转发项是通过加入消息显式建立的。所以,剪枝后的接口不会象DM那样经过一段时间后会恢复。SM要恢复向剪枝接口转发数据必须等待下游或主机发送加入消息。

3.PIM-SM状态维护
协议无关组播--稀疏模式  PIM-SM
PIM-SM如何维护转发项?在PIM-SM是依靠下游路由器周期性的发送加入消息来维护转发项。当路由器收到加入消息,路由器就刷新转发项和出接口。路由器如果长时间未收到加入消息,将删除该出接口;如果出接口列表为空,路由器就删除该转发项。

4.PIM-SM注册
协议无关组播--稀疏模式  PIM-SM
在网络中某个作为核心的路由器RP。所有组播数据都被DR先发向RP。那么,DR是如何将组播数据发向RP的呢?这就依靠注册消息。
当源的DR收到组播数据后,将整个IP包封装注册消息中,并以单播的方式将注册消息发向RP。RP收到注册消息后,取出里面的组播数据包。如果RP有该组的转发项并且其出接口列表不为空,则转发该数据包;如果RP没有该转发项或者出接口列表为空,则向源的DR单播注册停止消息。
DR收到注册停止消息后,停止向RP发送注册消息。但经过一段时间后DR重新发起一次注册过程。

2)最短路径书切换
协议无关组播--稀疏模式  PIM-SM
组播数据流在网络中分发途径可以用“树”模型来描述。组播分发树分为最短路径树(Shortest Path Tree)和汇接点树(RPT:Rezendous Point Tree, 也称共享树)。
最短路径树的树根就在源S。网络中所有组成员都根据到源的单播最短路径获得组播数据。按照这种分发树模型,组成员可以更快的接收到组播数据,同时还能避免在网络中某些点出形成拥塞。PIM_DM分发树就是这种模型。
共享树的树根是网络中某一个作核心的路由器RP。源的DR首先将组播数据发到RP。组成员再根据到RP的单播路径获得组播数据。PIM-SM分发树就是这种模型。
共享树的树根是网络中某一个作核心的路由器RP。源的DR首先将组播数据发到RP。组成员再根据到RP的单播路径获得组播数据。PIM-SM分发树就是这种模型。
为什么PIM-SM要采用这种模型?还得从PIM-SM假设说起:PIM-SM首先假定网络中没有组成员,并不需要组播数据流。因此,主机起初并不知道源是谁(当然知道组,因为这是一个前提,就如知道某个频道是某个电视台电视节目一样)。因此,DR在收到某组的IGMP加入后,只能向RP发起加入消息。通过RP获得组播数据,知道源S后才能直接从源获得组播数据。这个切换过程就是最短路径树切换(SPT Switch)。
PIM-SM中还涉及到其根节点RP的选择机制。PIM-SM域内配置了一个或多个候选自举路由器(Candidate-BSR)。应用一定的规则从中选出自举路由器(BSR)。PIM-SM域中还配置了候选 RP路由器(Candidate-RP),这些候选 RP将包含了它们地址及可以服务的组播组等信息的包单播至自举路由器。BSR 定期生成包括一系列候选 RP以及相应的组地址的“自举”消息。“自举"消息在整个域中逐跳发送。路由器接收并保存这些“自举"消息。若 DR 从直连主机收到了某组的成员关系报告后,如果它没有这个组的路由项,DR 将使用一个hash算法将组地址映射至一个可以为该组服务的候选 RP。然后 DR 将朝RP方向逐跳组播“加入/剪枝”消息。若 DR从直连主机收到组播数据包,如果它没有这个组的路由项,DR 将使用hash算法将组地址映射至一个可以为该组服务的候选 RP。然后 DR将组播数据封装在注册消息中单播到RP。

最短路径书切换
协议无关组播--稀疏模式  PIM-SM
SPT切换由最后一跳路由器DR发起。发生切换的规则很多,最常用的就是流量统计:当流量超过一定阈值时,DR发起从RPT到SPT的切换。
DR首先向其RPT上游发送带有SPT标志的加入消息。上游路由器收到SPT加入后也向源方向发送SPT加入。如果本路由器的到源的出接口与到RP的出接口不是同一接口,则路由器还向RP发送带有RPT标志的剪枝消息。
这样路由器将不再从RP而是直接从源S获取组播数据。当然DR也能发起逆过程,当流量低于该阈值时从SPT切回RPT。

PIM-SM配置

+启动组播进程
multicast routing-enable
+在接口上启动PIM-SM
pim sm
禁用PIM-SM协议
undo pim sm

pim bsr-boundary
undo pim bsr-boundary
pim bsr-boundary 命令用来将以太网交换机的接口配置为PIM域边界,undo pim bsr-boundary命令用来删除配置的PIM域边界。

c-bsr vlan-interface vlan-id hash-mask length [priority]
undo c-bsr
c-bsr命令用来将以太网交换机配置成为C-BSR(Candidate Bootstrap Router),undo c-bsr命令用来删除C-BSR。

pim timer hello seconds
undo pim timer hello
pim timer hello命令用来配置接口发送Hello报文的时间间隔,undo pim timer hello命令用来恢复接口发送Hello报文时间间隔的缺省值。

c-rp vlan-interface vlan-id [accept-group-policy acl-number]
undo c-rp vlan-interface vlan-id
c-rp命令用来将以太网交换机配置成为C-RP(Candidate Rendezvous Point),undo c-rp命令用来取消以太网交换机为C-RP。

spt-switch-threshold {traffic-rate | infinity}[accept-group-policy acl-number]
undo spt-switch-threshold {traffic-rate | infinity}[accept-group-policy acl-number]
spt-switch-threshold命令用来配置从共享树切换到源最短路径树的阈值,undo spt-switch-threshold命令用来恢复配置从共享树切换到源最短路径树阈值的缺省值。

display pim bsr-info
显示当前BSR的信息。
display pim interface [interface-type interface-number]
显示当前运行PIM接口的简要信息
display pim routing0table [{{ *g [group-address [mask { mask-length | mask }]] | **rp [rp-address [maks { mask-length | mask }]]} | { group-address [mask { mask-length | mask }] | source-address [mask { mask-length | mask }]} *} | incoming-interface {interface-type interface-num | interface-name | null} | {dense-mode | sparse-mode}]*
显示dm或sm组播路由表

display pim neighbor [ interface interface-type interface-number ]
显示路由器发现的PIM邻居
display pim rp-info [group-address]
显示制定组的RP。不带参数则显示所有组的RP

例子
协议无关组播--稀疏模式  PIM-SM
PIM-SM一般运行在接收者比较稀少的网络中。在以上网络中,全网都运行PIM-SM组播协议。则在每个三层交换设备上都要配置PIM-SM协议:
首先,配置VLAN虚接口。PIM-SM协议是应用层协议,运行在三层接口上。
其次,启动组播路由协议
multicast routing-enable
接着,在每个VLAN虚接口上配置PIM-SM
pim sm
最后,在整个PIM-SM域中要配置候选BSR和候选RP。RP一般配置在处于网络的中心,性能比较优越的交换机上。BSR一般与RP配置在一个交换机上
c-bsr vlan-interface 10 24 2
c-rp vlan-interface 10
这样,PIM-SM组播网络配置就完成了。注意:组播协议必须依赖单播路由才能工作。单播路由可以是OSPF、RIP或者是静态路由等等都可。

www.huawei.com