(12)发明专利申请
(10)申请公布号 CN 105553857 A (43)申请公布日 2016.05.04
(21)申请号 201510920824.5(22)申请日 2015.12.11
(71)申请人瑞斯康达科技发展股份有限公司
地址100085 北京市海淀区上地六街28号
院2号楼(72)发明人石凤
(74)专利代理机构北京安信方达知识产权代理
有限公司 11262
代理人李红爽 栗若木(51)Int.Cl.
H04L 12/761(2013.01)H04L 12/755(2013.01)H04L 12/711(2013.01)
权利要求书3页 说明书9页 附图3页
(54)发明名称
一种IP组播路由转发方法和系统(57)摘要
本申请提出一种IP组播路由转发方法和系统,涉及网络组播领域,包括:当主用路由器正常时,按照主用路由器的组播转发表进行转发;当发生主备倒换时,备用路由器按照备用路由器当前的本地组播转发表进行数据转发且根据倒换后的当前协议无关组播路由PIM刷新当前的本地组播转发表,所述通过上述方式以使下游设备重新建立路由连接,使得组播数据流不间断,提高PIM网络的可靠性。
C N 1 0 5 5 5 3 8 5 7 ACN 105553857 A
权 利 要 求 书
1/3页
1.一种IP组播路由转发方法,其特征在于,包括:当主用路由器正常时,按照主用路由器的组播转发表进行转发;当发生主备倒换时,备用路由器按照备用路由器当前的本地组播转发表进行数据转发且根据倒换后的当前协议无关组播路由PIM刷新当前的本地组播转发表。
2.如权利要求1所述的方法,其特征在于,发生主备倒换之前,所述方法还包括:在所述主用路由器正常运行时,所述备用路由器备份所述主用路由器的组播转发表获得本地组播转发表。
3.如权利要求2所述的方法,其特征在于,所述备用路由器获得本地组播转发表包括:通过组播路由管理向备用路由器备份组播路由表项MRM,且每个MRM设置有备份标记;并依据所述MRM在所述备用路由器生成本地组播转发表。
所述主备倒换包括:4.如权利要求1或2所述的方法,其特征在于,
通过协议无关组播PIM执行平滑重启GR,且在所述GR时刷新备用路由器当前的本地PIM路由表。
5.如权利要求4所述的方法,其特征在于,发生主备倒换之前,所述方法还包括:在所述主用路由器正常运行时,所述备用路由器备份所述主用路由器的PIM路由表项获得当前的本地PIM路由表项。
6.如权利要求5所述的方法,其特征在于,所述备用路由器获得当前的本地PIM路由表项包括:
通过PIM向备用路由器备份PIM路由表项以及汇聚点RP和组播组的映射关系集合RP-set,并对每个PIM路由表项设置备份标记。
7.如权利要求4所述的方法,其特征在于,所述PIM执行GR包括:备用路由器与上游设备、下游设备建立邻居关系;
存在组播路由表项的下游设备向备用路由器发送加入或剪枝报文,备用路由器收到加入或剪枝报文后,刷新当前的本地PIM路由表项,并去除所述本地PIM路由表项的备份标记;
备用路由器根据按照当前存储的备份RP-Set向上游设备发送加入报文,上游设备收到加入报文后刷新下游设备的状态;
当GR定时时间到或者所有使能PIM接口已经完成GR时,GR结束。8.如权利要求7所述的方法,其特征在于,所述备用路由器与上游设备、下游设备建立邻居关系包括:
备用路由器向所有使能PIM功能的设备向发送HELLO报文,其中,HELLO报文携带的是备用路由器所对应的生成标识码Generation ID;
接收到携带备用路由器所对应的Generation ID的HELLO报文的其他设备向所述备用路由器设备发送HELLO报文。
9.如权利要求7所述的方法,其特征在于,确定所述所有使能PIM的接口是否已经完成GR包括:
在从所述接口向PIM邻居发送HELLO报文后,
如果在接收HELLO报文的定时时间内未接收到PIM邻居发送的HELLO报文,则判断该接口的GR已经完成;
如果在接收加入或剪枝报文的定时时间内接收到下游设备发送的加入/剪枝报文,则
2
CN 105553857 A
权 利 要 求 书
2/3页
判断该接口的GR已经完成,并且刷新当前的本地PIM路由表项;否则判断该接口的GR已经完成。
10.如权利要求1所述的方法,其特征在于,所述根据倒换后的当前协议无关组播路由PIM刷新当前的本地组播转发表包括:
通过将当前的本地PIM路由表和当前的本地MRM路由表进行对账来刷新本地MRM路由表,且根据当前的本地MRM路由表刷新当前的本地组播转发表。
11.如权利要求10所述的方法,其特征在于,将当前的本地PIM路由表和当前的本地MRM路由表进行对账来刷新本地MRM路由表包括:
当前的本地MRM路由表中不存在但当前的本地PIM路由表中存在的路由表项直接增加到当前的本地MRM路由表中,刷新本地MRM路由表;
当前的本地MRM路由表中存在并且当前的本地PIM路由表中也存在的路由表项,刷新本地MRM路由表去除所述MRM表项的备份标记;
当前的本地MRM路由表中存在但当前的本地PIM路由表中不存在的路由表项直接在本地MRM路由表中删除,并刷新本地MRM路由表。
12.一种IP组播路由转发系统,其特征在于,包括:主用路由器和备用路由器,所述主用路由器,用于当主用路由器正常时,按照所述主用路由器的组播转发表进行转发;
所述备用路由器,用于当发生主备倒换时,按照所述备用路由器当前的本地组播转发表进行数据转发且根据倒换后的当前协议无关组播路由PIM刷新当前的本地组播转发表。
13.如权利要求12所述的系统,其特征在于,所述备用路由器还用于在所述主用路由器正常运行时,备份所述主用路由器的组播转发表获得本地组播转发表。
14.如权利要求13所述的系统,其特征在于,所述备用路由器通过组播路由管理向备用路由器备份组播路由表项MRM,且每个MRM设置有备份标记;并依据所述MRM在所述备用路由器生成本地组播转发表。
15.如权利要求12或13所述的系统,其特征在于,所述备用路由器通过协议无关组播PIM执行平滑重启GR,且在所述GR时刷新备用路由器当前的本地PIM路由表。
16.如权利要求15所述的系统,其特征在于,所述备用路由器还用于在所述主用路由器正常运行时,备份所述主用路由器的PIM路由表项获得当前的本地PIM路由表项。
17.如权利要求16所述的系统,其特征在于,所述备用路由器获得当前的本地PIM路由表项包括:
通过PIM向备用路由器备份PIM路由表项以及汇聚点RP和组播组的映射关系集合RP-set,并对每个PIM路由表项设置备份标记。
18.如权利要求15所述的系统,其特征在于,
所述备用路由器还用于在所述PIM执行GR时与上游设备、下游设备建立邻居关系;存在组播路由表项的下游设备向备用路由器发送加入或剪枝报文,备用路由器收到加入或剪枝报文后,刷新当前的本地PIM路由表项,并去除所述PIM路由表项的备份标记;
所述备用路由器还用于根据按照当前存储的备份RP-Set向上游设备发送加入报文,上游设备收到加入报文后刷新下游设备的状态;
当GR定时时间到或者所有使能PIM接口已经完成GR时,GR结束。
3
CN 105553857 A
权 利 要 求 书
3/3页
19.如权利要求18所述的系统,其特征在于:所述备用路由器还用于与上游设备、下游设备建立邻居关系时,向所有使能PIM功能的设备向发送HELLO报文,其中,HELLO报文携带的是备用路由器所对应的生成标识码Generation ID;
所述备用路由器还用于接收到携带备用路由器所对应的Generation ID的HELLO报文的其他设备向所述备用路由器设备发送HELLO报文。
20.如权利要求18所述的系统,其特征在于,所述备用路由器确定所述所有使能PIM的接口是否已经完成GR包括:
在从所述接口向PIM邻居发送HELLO报文后,
如果在接收HELLO报文的定时时间内未接收到PIM邻居发送的HELLO报文,则判断该接口的GR已经完成;
如果在接收加入或剪枝报文的定时时间内接收到下游设备发送的加入/剪枝报文,则判断该接口的GR已经完成,并且刷新当前的本地PIM路由表项;否则判断该接口的GR已经完成。
21.如权利要求12所述的系统,其特征在于,所述备用路由器根据倒换后的当前协议无关组播路由PIM刷新当前的本地组播转发表包括:
通过将当前的本地PIM路由表和当前的本地MRM路由表进行对账来刷新本地MRM路由表,且根据当前的本地MRM路由表刷新当前的本地组播转发表。
22.如权利要求21所述的系统,其特征在于,所述备用路由器将当前的本地PIM路由表和当前的本地MRM路由表进行对账来刷新本地MRM路由表包括:
当前的本地MRM路由表中不存在但当前的本地PIM路由表中存在的路由表项直接增加到当前的本地MRM路由表中,刷新本地MRM路由表;
当前的本地MRM路由表中存在并且当前的本地PIM路由表中也存在的路由表项,刷新本地MRM路由表去除所述MRM表项的备份标记;
当前的本地MRM路由表中存在但当前的本地PIM路由表中不存在的路由表项直接在本地MRM路由表中删除,并刷新本地MRM路由表。
4
CN 105553857 A
说 明 书
一种IP组播路由转发方法和系统
1/9页
技术领域
[0001]本发明涉及网络组播领域,尤其涉及一种IP组播路由转发方法和系统。
背景技术
[0002]目前,组播路由协议是IP(Internet Protocol,网络互连协议)层实现组播报文转发的路由控制协议。组播路由协议的功能是为组播报文的转发提出有效的路径信息,PIM(Protocol Independent Multicast,协议无关组播)协议是目前应用较为广泛的组播路由协议,PIM协议又分为PIM-DM(Dense Mode,协议无关组播路由协议-密集模式)、PIM-SM(Sparse Mode,协议无关组播路由协议-稀疏模式)、PIM-SSM(Source Specific Multicast,协议无关组播路由协议-指定源组播),其中PIM-SM是使用最为广泛的协议。
适用于组成员分布相对分散,范围较广的大规模PIM-SM是稀疏模式的域内组播路由协议,
网络。PIM表示为IP组播提供路由信息的可以是静态路由、RIP(Routing Information Protocol,路由信息协议)、OSPF(Open Shortest Path First,开放式最短路径优先)、IS-IS(Intermediate System-to-Intermediate System,中间系统到中间系统)、BGP(Border Gateway Protocol,边界网关协议)等任何单播路由协议,组播路由和单播路由协议无关,只是通过单播路由表产生相应的组播路由表项。[0003]在使用三层组播的应用环境中,路由器有时需要主备倒换,在主用路由器和备用路由器进行倒换后,之前的备用路由器升级为主用路由器,新主用路由器重新学习PIM的路由表及组播转发表,在此期间流量会间断,断流会导致本该接收的流量不能接收到,会出现直播视频不顺畅等现象,从用户的角度来讲组播流量断流会使得转发异常。发明内容
[0004]本发明提供一种IP组播路由转发方法和系统,可以保证设备进行主备倒换时保持组播流量的正常转发,进而提高PIM网络的可靠性。[0005]为了实现上述发明目的,本发明采取的技术方案如下:[0006]一种IP组播路由转发方法,包括:[0007]当主用路由器正常时,按照主用路由器的组播转发表进行转发;[0008]当发生主备倒换时,备用路由器按照备用路由器当前的本地组播转发表进行数据转发且根据倒换后的当前协议无关组播路由PIM刷新当前的本地组播转发表。[0009]优选地,发生主备倒换之前,所述方法还包括:[0010]在所述主用路由器正常运行时,所述备用路由器备份所述主用路由器的组播转发表获得本地组播转发表。[0011]优选地,所述备用路由器备份所述主用路由器的组播转发表获得本地组播转发表包括:
[0012]通过组播路由管理向备用路由器备份组播路由表项MRM,且每个MRM设置有备份标记;并依据所述MRM在所述备用路由器生成本地组播转发表。
5
CN 105553857 A[0013]
说 明 书
2/9页
优选地,所述主备倒换包括:
[0014]通过协议无关组播PIM执行平滑重启GR,且在所述GR时刷新备用路由器当前的本地PIM路由表。[0015]优选地,发生主备倒换之前,所述方法还包括:[0016]在所述主用路由器正常运行时,所述备用路由器备份所述主用路由器的PIM路由表项获得当前的本地PIM路由表项。[0017]优选地,所述备用路由器获得当前的本地PIM路由表项包括:
[0018]通过PIM向备用路由器备份PIM路由表项以及汇聚点RP和组播组的映射关系集合RP-set,并对每个PIM路由表项设置备份标记。[0019]优选地,所述PIM执行GR包括:[0020]备用路由器与上游设备、下游设备建立邻居关系;
[0021]存在组播路由表项的下游设备向备用路由器发送加入或剪枝报文,备用路由器收到加入或剪枝报文后,刷新当前的本地PIM路由表项,并去除所述本地PIM路由表项的备份标记;
[0022]备用路由器根据按照当前存储的备份RP-Set向上游设备发送加入报文,上游设备收到加入报文后刷新下游设备的状态;
[0023]当GR定时时间到或者所有使能PIM接口已经完成GR时,GR结束。[0024]优选地,所述备用路由器与上游设备、下游设备建立邻居关系包括:[0025]备用路由器向所有使能PIM功能的设备向发送HELLO报文,其中,HELLO报文携带的是备用路由器所对应的生成标识码Generation ID;
[0026]接收到携带备用路由器所对应的Generation ID的HELLO报文的其他设备向所述备用路由器设备发送HELLO报文。[0027]优选地,确定所述所有使能PIM的接口是否已经完成GR包括:[0028]在从所述接口向PIM邻居发送HELLO报文后,
[0029]如果在接收HELLO报文的定时时间内未接收到PIM邻居发送的HELLO报文,则判断该接口的GR已经完成;
[0030]如果在接收加入或剪枝报文的定时时间内接收到下游设备发送的加入/剪枝报文,则判断该接口的GR已经完成,并且刷新当前的本地PIM路由表项;否则判断该接口的GR已经完成。
[0031]优选地,所述根据倒换后的当前协议无关组播路由PIM刷新当前的本地组播转发表包括:
[0032]通过将当前的本地PIM路由表和当前的本地MRM路由表进行对账来刷新本地MRM路由表,且根据当前的本地MRM路由表刷新本地组播转发表。[0033]优选地,将当前的本地PIM路由表和当前的本地MRM路由表进行对账来刷新本地MRM路由表包括:
[0034]当前的本地MRM路由表中不存在但当前的本地PIM路由表中存在的路由表项直接增加到当前的本地MRM路由表中,刷新本地MRM路由表;
[0035]当前的本地MRM路由表中存在并且当前的本地PIM路由表中也存在的路由表项,刷新本地MRM路由表去除所述MRM表项的备份标记;
6
CN 105553857 A[0036]
说 明 书
3/9页
当前的本地MRM路由表中存在但当前的本地PIM路由表中不存在的路由表项直接
在当前的本地MRM路由表中删除,并刷新本地MRM路由表。[0037]为解决上述技术问题,本发明还提供一种IP组播路由转发系统,包括:主用路由器和备用路由器,
[0038]所述主用路由器,用于当主用路由器正常时,按照所述主用路由器的组播转发表进行转发;
[0039]所述备用路由器,用于当发生主备倒换时,按照所述备用路由器当前的本地组播转发表进行数据转发且根据倒换后的当前协议无关组播路由PIM刷新当前的本地组播转发表。
[0040]优选地,所述备用路由器还用于在所述主用路由器正常运行时,备份所述主用路由器的组播转发表获得本地组播转发表。[0041]优选地,所述备用路由器通过组播路由管理向备用路由器备份组播路由表项MRM,且每个MRM设置有备份标记;并依据所述MRM在所述备用路由器生成本地组播转发表。[0042]优选地,所述备用路由器通过协议无关组播PIM执行平滑重启GR,且在所述GR时刷新备用路由器当前的本地PIM路由表。[0043]优选地,所述备用路由器还用于在所述主用路由器正常运行时,备份所述主用路由器的PIM路由表项获得当前的本地PIM路由表项。[0044]优选地,所述备用路由器获得当前的本地PIM路由表项包括:
[0045]通过PIM向备用路由器备份PIM路由表项以及汇聚点RP和组播组的映射关系集合RP-set,并对每个PIM路由表项设置备份标记。[0046]优选地,下游设备建立邻所述备用路由器还用于在所述PIM执行GR时与上游设备、居关系;
[0047]存在组播路由表项的下游设备向备用路由器发送加入或剪枝报文,备用路由器收到加入或剪枝报文后,刷新当前的本地PIM路由表项,并去除所述本地PIM路由表项的备份标记;
[0048]所述备用路由器还用于根据按照当前存储的备份RP-Set向上游设备发送加入报文,上游设备收到加入报文后刷新下游设备的状态;
[0049]当GR定时时间到或者所有使能PIM接口已经完成GR时,GR结束。[0050]优选地,所述备用路由器还用于与上游设备、下游设备建立邻居关系时,向所有使能PIM功能的设备向发送HELLO报文,其中,HELLO报文携带的是备用路由器所对应的生成标识码Generation ID;
[0051]所述备用路由器还用于接收到携带备用路由器所对应的Generation ID的HELLO报文的其他设备向所述备用路由器设备发送HELLO报文。[0052]优选地,所述备用路由器确定所述所有使能PIM的接口是否已经完成GR包括:[0053]在从所述接口向PIM邻居发送HELLO报文后,
[0054]如果在接收HELLO报文的定时时间内未接收到PIM邻居发送的HELLO报文,则判断该接口的GR已经完成;
[0055]如果在接收加入或剪枝报文的定时时间内接收到下游设备发送的加入/剪枝报文,则判断该接口的GR已经完成,并且刷新当前的本地PIM路由表项;否则判断该接口的GR
7
CN 105553857 A
说 明 书
4/9页
已经完成。
[0056]优选地,所述备用路由器根据倒换后的当前协议无关组播路由PIM刷新当前的本地组播转发表包括:
[0057]通过将当前的本地PIM路由表和当前的本地MRM路由表进行对账来刷新本地MRM路由表,且根据当前的本地MRM路由表刷新当前的本地组播转发表。[0058]优选地,所述备用路由器将当前的本地PIM路由表和当前的本地MRM路由表进行对账来刷新本地MRM路由表包括:
[0059]当前的本地MRM路由表中不存在但当前的本地PIM路由表中存在的路由表项直接增加到当前的本地MRM路由表中,刷新本地MRM路由表;
[0060]当前的本地MRM路由表中存在并且当前的本地PIM路由表中也存在的路由表项,刷新本地MRM路由表去除所述MRM表项的备份标记;
[0061]当前的本地MRM路由表中存在但当前的本地PIM路由表中不存在的路由表项直接在本地MRM路由表中删除,并刷新本地MRM路由表。[0062]本发明和现有技术相比,具有如下有益效果:[0063]本发明的方法和系统可以保证主备倒换时,组播数据流不间断,提高PIM网络的可靠性;并且提出了衡量接口下GR是否完成的依据,使用方法的好处是这种设计不依赖于其他的设备,周围设备只要支持PIM功能即可,只要PIM的HELLO报文和加入剪枝报文的发送是遵循标准RFC实现的,都可以实现互通。附图说明
[0064]图1是本发明实施例IP组播路由转发方法的流程图;
[0065]图2是本发明实施例的IP组播路由转发的系统结构示意图;[0066]图3是本发明实施例1的IP组播路由转发方法的流程图;[0067]图4是本发明实施例2的执行平滑倒换过程的流程图。
具体实施方式
[0068]为使本发明的发明目的、技术方案和有益效果更加清楚明了,下面结合附图对本发明的实施例进行说明,需要说明的是,在不冲突的情况下,本申请中的实施例和实施例中的特征可以相互任意组合。[0069]如图1所示,本发明实施例提供一种IP组播路由转发方法,应用于备用路由器,包括:
[0070]当主用路由器正常时,按照主用路由器的组播转发表进行转发;[0071]当发生主备倒换时,备用路由器按照备用路由器当前的本地组播转发表进行数据转发且根据倒换后的当前协议无关组播路由PIM刷新当前的本地组播转发表。[0072]发生主备倒换之前,所述方法还包括:[0073]在所述主用路由器正常运行时,所述备用路由器备份所述主用路由器的组播转发表获得本地组播转发表。
[0074]所述备用路由器备份所述主用路由器的组播转发表获得本地组播转发表包括:[0075]通过组播路由管理向备用路由器备份组播路由表项MRM,且每个MRM设置有备份标
8
CN 105553857 A
说 明 书
5/9页
记;并依据所述MRM在所述备用路由器生成本地组播转发表。[0076]所述主备倒换包括:
[0077]通过协议无关组播PIM执行平滑重启GR,且在所述GR时刷新备用路由器当前的本地PIM路由表。
[0078]发生主备倒换之前,所述方法还包括:[0079]在所述主用路由器正常运行时,所述备用路由器备份所述主用路由器的PIM路由表项获得当前的本地PIM路由表项。
[0080]所述备用路由器获得当前的本地PIM路由表项包括:
[0081]通过PIM向备用路由器备份PIM路由表项以及汇聚点RP和组播组的映射关系集合RP-set,并对每个PIM路由表项设置备份标记。
[0082]本发明实施例的备用路由器实时接收主用路由器发送的备份协议无关组播PIM路由表项和汇聚点RP和组播组的映射关系集合RP-set获得当前的本地PIM路由表项;其中,汇聚点RP和组播组的映射关系集合RP-set根据上游设备发送的加入Join或剪枝Prune信息生成。
[0083]并且备用路由器实时接收组播路由管理发送的备份组播路由表MRM;并根据所述备份组播路由表MRM生成本地组播转发表;
[0084]通过上述两个步骤完成实时更新PIM路由表项和RP-set信息集合;[0085]当主备倒换时,备用路由器向所有使能的路由器发送携带备用路由器对应的生成标识码Generation ID的握手请求报文(HELLO报文),所述握手请求报文以使下游设备重新建立路由连接。
[0086]备用路由器更新PIM路由表项和RP-set信息集合时,可以接收主用路由器批量发送的所述PIM路由表项和所述Join或Prune信息;也可以接收主用路由器实时发送的所述PIM路由表项和所述Join或Prune信息。[0087]所述PIM执行GR包括:[0088]备用路由器与上游设备、下游设备建立邻居关系;
[0089]存在组播路由表项的下游设备向备用路由器发送加入或剪枝报文,备用路由器收
并去除所述本地PIM路由表项的备份到加入或剪枝报文后,刷新当前的本地PIM路由表项,
标记;
[0090]备用路由器根据按照当前存储的备份RP-Set向上游设备发送加入报文,上游设备收到加入报文后刷新下游设备的状态;
[0091]当GR定时时间到或者所有使能PIM接口已经完成GR时,GR结束。[0092]所述备用路由器与上游设备、下游设备建立邻居关系包括:[0093]备用路由器向所有使能PIM功能的设备向发送HELLO报文,其中,HELLO报文携带的是备用路由器所对应的生成标识码Generation ID;
[0094]接收到携带备用路由器所对应的Generation ID的HELLO报文的其他设备向所述备用路由器设备发送HELLO报文。
[0095]确定所述所有使能PIM的接口是否已经完成GR包括:[0096]在从所述接口向PIM邻居发送HELLO报文后,
[0097]如果在接收HELLO报文的定时时间内未接收到PIM邻居发送的HELLO报文,则判断
9
CN 105553857 A
说 明 书
6/9页
该接口的GR已经完成;
[0098]如果在接收加入或剪枝报文的定时时间内接收到下游设备发送的加入/剪枝报文,则判断该接口的GR已经完成,并且刷新当前的本地PIM路由表项;否则判断该接口的GR已经完成。
[0099]所述根据倒换后的当前协议无关组播路由PIM刷新当前的本地组播转发表包括:[0100]通过将当前的本地PIM路由表和当前的本地MRM路由表进行对账来刷新本地MRM路由表,且根据当前的本地MRM路由表刷新当前的本地组播转发表。
[0101]将当前的本地PIM路由表和当前的本地MRM路由表进行对账来刷新本地MRM路由表包括:
[0102]当前的本地MRM路由表中不存在但当前的本地PIM路由表中存在的路由表项直接增加到当前的本地MRM路由表中,刷新本地MRM路由表;
[0103]当前的本地MRM路由表中存在并且当前的本地PIM路由表中也存在的路由表项,刷新本地MRM路由表去除所述MRM表项的备份标记;
[0104]当前的本地MRM路由表中存在但当前的本地PIM路由表中不存在的路由表项直接在本地MRM路由表中删除,并刷新本地MRM路由表。
[0105]以下以更具体的实施方式来阐述IP组播路由不间断转发的方法。[0106]如图2所示,与组播源相连的路由器为上游设备,与接收者相连的路由器为下游设备,为了在路由器进行主备倒换时保持用户组播流量的正常转发,路由器的主用路由器向备用路由器备份PIM路由表项以及需要向上游设备发送的加入Join/剪枝Prune的相关信息(需要备份RP-set信息集合)。通过组播路由管理向备用路由器发送备份组播路由表并在备用路由器创建组播转发表。
[0107]主用路由器和备用路由器各自拥有独立的CPU和交换芯片,为了完成主用路由器向备用路由器备份的过程,主用路由器和备用路由器拥有各自的PIM任务和组播路由管理任务(统称组播任务)。在备份阶段,主用路由器的组播任务向备用路由器的组播任务发送备份消息,备份消息中携带了需要备份的信息,备用路由器的组播任务接收到备份消息,解析其中的备份信息,将该信息存储在备用路由器中。备份之后,主用路由器和备用路由器分别拥有独立的组播路由表项和组播转发表项。对外的体现是主用路由器和备用路由器是一块板卡,数据流入接口和出接口对外都没有变化。[0108]备用路由器与主用路由器相比,主要有以下几点区别:[0109]1、主用路由器可以发送和接收PIM协议报文,备用路由器不可以;[0110]2、主用路由器正常启动PIM协议内部需要定时器(包括加入剪枝定时器,HELLO报文发送定时器,组播路由表项老化定时器,组播路由表项接口老化定时器等),备用路由器不可以,只有当备用路由器升为主用路由器后才能启动定时器;[0111]3、主用路由器的组播转发表在组播流转发时起作用,备用路由器的组播转发表只是存在但不起作用;
[0112]当主备倒换时,备用路由器就可以主动快速的向上游设备发送Join信息,维持上游的加入状态。同时,PIM协议向所有使能PIM-SM的路由器发送携带新生成标识码Generation ID的Hello报文,当下游路由器发现其邻居的Generation ID发生了变化,便向邻居发送Join/Prune报文以帮助其重新建立路由表项,从而保证转发平面组播数据的不间
10
CN 105553857 A
说 明 书
7/9页
断转发。
[0113]如图3所示,应用于备用路由器中的组播路由不间断转发的实现实施例包括:[0114](1)批量备份阶段(或者实时备份阶段):
[0115]Step1.通过组播路由管理在本地备份组播路由表项(简称MRM)。每备份一条组播路由都会下发到本地组播转发表中,备份的MRM表项设置备份标记,表明该路由是备份产生的路由。
[0116]Step2.批量备份阶段(或者实时备份阶段),PIM需要备份PIM路由表以及汇聚点RP和组播组的映射关系集合RP-set(向上游路由器发送加入/剪枝时使用),备份的本地PIM路由表也需要设置备份标记,表明该备份的PIM路由是由备份产生的路由。[0117]在本阶段备份完成之后,体现在PIM/MRM内部,备份的数据存储空间与主用路由器不同,但是存储的内容和主用路由器确实一样的;体现在PIM/MRM外部,RP,组播路由条目,IP地址等都是一样;
[0118](2)平滑倒换阶段:
[0119]Step3.PIM执行平滑重启(GR),刷新本地PIM路由表。
[0120]Step4.本地MRM依据PIM GR完成之后的当前本地PIM路由表刷新自身的本地MRM路由表同时去除备份标记,并且删除未去除备份标记的组播路由表项。[0121]较优地,如图4所示,对于上述步骤Step3、Step4中执行平滑倒换的过程如下:[0122]Step11.当PIM执行平滑重启时,备用路由器向所有使能PIM-SM功能的设备发送HELLO报文,其中HELLO报文携带的是新的Generation ID,其他设备(包括上游设备和下游设备)接收到携带新Generation ID的HELLO报文,则知道发送该HELLO报文的设备已经重启,立即向执行平滑重启的路由器发送HELLO报文,加快邻居建立的过程。[0123]Setp12.如果下游设备存在组播路由表项,则会向执行平滑重启的备用路由器发送加入/剪枝报文,处在平滑重启阶段的备用路由器收到加入/剪枝报文后,刷新当前的本地PIM路由表,去掉备份标记。
[0124]Step13.如果存在上游设备,则利用之前备份的RP-Set向上游设备发送加入报文,上游设备收到加入报文后,刷新下游接口状态。[0125]Step14.当GR定时器到时,则GR过程强制结束;如果GR定时器还未到时,从每个下游设备都收到了加入/剪枝报文,并已经处理完成,即每个使能PIM功能的接口都完成平滑重启,也认为GR过程结束;
[0126]衡量接口下GR是否完成的标准是:
[0127]1.已经从该接口向PIM邻居发送HELLO报文;[0128]2.启动接口下接收HELLO报文的定时器,等待接收到PIM邻居发送HELLO报文,如果在定时器时间之内该接口收到PIM邻居发送的HELLO报文,则邻居可以正常建立,继续执行后面的步骤;如果在定时器时间内没有收到PIM邻居发送HELLO报文,那么PIM的邻居确实不存在,无需执行后面的步骤,该接口的GR直接结束。[0129]3.当接口下邻居建立后,启动接口下的加入/剪枝报文定时器,如果定时器时间内没有收到加入剪枝报文,则说明下游邻居还没有PIM路由表项,如果收到加入/剪枝报文,则刷新当前的本地PIM路由表项,该接口下GR过程结束。[0130]Step15.GR过程结束后,当前的本地PIM路由表和当前的MRM路由表进行对账来刷
11
CN 105553857 A
说 明 书
8/9页
新本地MRM路由表,对账过程如下:
[0131]当前的本地MRM路由表中不存在但当前的本地PIM路由表中存在的路由表项直接增加到当前的本地MRM路由表中,刷新本地MRM路由表;
[0132]当前的本地MRM路由表中存在并且当前的本地PIM路由表中也存在的路由表项,刷新本地MRM路由表去除所述MRM表项的备份标记;
[0133]当前的本地MRM路由表中存在但当前的本地PIM路由表中不存在的路由表项直接在本地MRM路由表中删除,并刷新本地MRM路由表。执行对账的目的是保持PIM路由表、组播路由表和组播转发表的一致性。因为在PIM GR的过程中,PIM路由表项有可能有新的变化,所以GR完成之后PIM的路由表项和组播路由表以及组播转发表不一样,对账可以使PIM的路由表项和组播路由表保持一致,组播路由表更新时会一起更新组播转发表,进而保证三者的一致性。
[0134]按照上述步骤执行,就可以保证组播转发不断流,其原因如下:
[0135]1.主用路由器正常在位的情况下使用主用路由器的组播转发表进行转发,备用路由器备份完整的组播转发表项;
[0136]2.当主用路由器倒换时或者备用路由器升为主用路由器时,之前备份的组播转发表立即生效,用于组播数据流的转发;[0137]3.当主用路由器倒换结束之后,PIM和MRM的对账时采用的是直接刷新组播路由表的变化,而不是先删除再添加组播路由表。
[0138]所以本发明实施例提供的方法可以保证主用路由器倒换的整个过程都不断流。[0139]本发明还提供一种IP组播路由转发系统,包括:主用路由器和备用路由器,[0140]所述主用路由器,用于当主用路由器正常时,按照所述主用路由器的组播转发表进行转发;
[0141]所述备用路由器,用于当发生主备倒换时,按照所述备用路由器当前的本地组播转发表进行数据转发且根据倒换后的当前协议无关组播路由PIM刷新当前的本地组播转发表。
[0142]优选地,所述备用路由器还用于在所述主用路由器正常运行时,备份所述主用路由器的组播转发表获得本地组播转发表。[0143]优选地,所述备用路由器通过组播路由管理向备用路由器备份组播路由表项MRM,且每个MRM设置有备份标记;并依据所述MRM在所述备用路由器生成本地组播转发表。[0144]优选地,所述备用路由器通过协议无关组播PIM执行平滑重启GR,且在所述GR时刷新备用路由器当前的本地PIM路由表。[0145]优选地,所述备用路由器还用于在所述主用路由器正常运行时,备份所述主用路由器的PIM路由表项获得当前的本地PIM路由表项。[0146]优选地,所述备用路由器获得当前的本地PIM路由表项包括:
[0147]通过PIM向备用路由器备份PIM路由表项以及汇聚点RP和组播组的映射关系集合RP-set,并对每个PIM路由表项设置备份标记。[0148]优选地,所述备用路由器还用于在所述PIM执行GR时与上游设备、下游设备建立邻居关系;
[0149]存在组播路由表项的下游设备向备用路由器发送加入或剪枝报文,备用路由器收
12
CN 105553857 A
说 明 书
9/9页
到加入或剪枝报文后,刷新当前的本地PIM路由表项,并去除所述本地PIM路由表项的备份标记;
[0150]所述备用路由器还用于根据按照当前存储的备份RP-Set向上游设备发送加入报文,上游设备收到加入报文后刷新下游设备的状态;
[0151]当GR定时时间到或者所有使能PIM接口已经完成GR时,GR结束。[0152]优选地,所述备用路由器还用于与上游设备、下游设备建立邻居关系时,向所有使能PIM功能的设备向发送HELLO报文,其中,HELLO报文携带的是备用路由器所对应的生成标识码Generation ID;
[0153]所述备用路由器还用于接收到携带备用路由器所对应的Generation ID的HELLO报文的其他设备向所述备用路由器设备发送HELLO报文。[0154]优选地,所述备用路由器确定所述所有使能PIM的接口是否已经完成GR包括:[0155]在从所述接口向PIM邻居发送HELLO报文后,
[0156]如果在接收HELLO报文的定时时间内未接收到PIM邻居发送的HELLO报文,则判断该接口的GR已经完成;
[0157]如果在接收加入或剪枝报文的定时时间内接收到下游设备发送的加入/剪枝报文,则判断该接口的GR已经完成,并且刷新当前的本地PIM路由表项;否则判断该接口的GR已经完成。
[0158]优选地,所述备用路由器根据倒换后的当前协议无关组播路由PIM刷新当前的本地组播转发表包括:
[0159]通过将当前的本地PIM路由表和当前的本地MRM路由表进行对账来刷新本地MRM路由表,且根据当前的本地MRM路由表刷新当前的本地组播转发表。[0160]优选地,所述备用路由器将当前的本地PIM路由表和当前的本地MRM路由表进行对账来刷新本地MRM路由表包括:
[0161]当前的本地MRM路由表中不存在但当前的本地PIM路由表中存在的路由表项直接增加到当前的本地MRM路由表中,刷新本地MRM路由表;
[0162]当前的本地MRM路由表中存在并且当前的本地PIM路由表中也存在的路由表项,刷新本地MRM路由表去除所述MRM表项的备份标记;
[0163]当前的本地MRM路由表中存在但当前的本地PIM路由表中不存在的路由表项直接在本地MRM路由表中删除,并刷新本地MRM路由表。[0164]虽然本发明所揭示的实施方式如上,但其内容只是为了便于理解本发明的技术方案而采用的实施方式,并非用于限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所揭示的核心技术方案的前提下,可以在实施的形式和细节上做任何修改与变化,但本发明所限定的保护范围,仍须以所附的权利要求书限定的范围为准。
13
CN 105553857 A
说 明 书 附 图
1/3页
图1
图2
14
CN 105553857 A
说 明 书 附 图
2/3页
图3
15
CN 105553857 A
说 明 书 附 图
3/3页
图4
16
因篇幅问题不能全部显示,请点此查看更多更全内容