集群路由器路由控制方法、装置和集群路由器转让专利

申请号 : CN201611206450.1

文献号 : CN106878180B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王剑鸣

申请人 : 新华三技术有限公司

摘要 :

本发明实施例提供了一种集群路由器路由控制方法、装置和集群路由器,所述方法应用于背靠背连接的集群路由器,包括:当第一LCC的第一MPU接收到第二LCC中任一MPU发送的组播加入报文时,若第一MPU未存储源框为第二LCC的组播表项,且第一MPU自身的组播表项同步链表中包括第二LCC的标识,则第一MPU通过与第二MPU连接的端口向第二MPU发送组播表项删除消息;当第一MPU接收到第二MPU发送的组播表项删除响应消息时,第一MPU创建源框为第二LCC的组播表项,并将接收到组播加入报文的端口作为源框为第二LCC的组播表项的入端口;然后向发送组播加入报文的MPU发送组播加入响应报文。

权利要求 :

1.一种集群路由器路由控制方法,应用于背靠背连接的集群路由器,所述集群路由器至少包括两个线卡框LCC,每个LCC中至少包括两个主控处理单元MPU,其特征在于,所述方法包括:当所述集群路由器的第一LCC的第一MPU接收到所述集群路由器的第二LCC中任一MPU发送的组播加入报文时,若所述第一MPU未存储源框为所述第二LCC的组播表项,则所述第一MPU判断自身的组播表项同步链表中是否包括所述第二LCC的标识,所述组播表项同步链表用于存储同一LCC中其他MPU中存储的组播表项中的源框标识,所述集群路由器中每个LCC中的各MPU均存储有所述组播表项同步链表;

若所述第一MPU自身的组播表项同步链表中包括所述第二LCC的标识,则所述第一MPU通过与第二MPU连接的端口向所述第二MPU发送组播表项删除消息,所述组播表项删除消息用于使所述第二MPU删除存储的源框为第二LCC的组播表项,所述第一MPU与所述第二MPU位于同一LCC中;

当所述第一MPU接收到所述第二MPU发送的组播表项删除响应消息时,所述第一MPU创建源框为第二LCC的组播表项,并将接收到所述组播加入报文的端口作为源框为所述第二LCC的组播表项的入端口;

当所述第一MPU创建了源框为第二LCC的组播表项后,所述第一MPU向发送所述组播加入报文的MPU发送组播加入响应报文。

2.根据权利要求1所述的方法,其特征在于,所述第一MPU判断所述第一MPU自身的组播表项同步链表中是否包括所述第二LCC之后,所述方法还包括:若所述第一MPU自身的组播表项同步链表中不包括所述第二LCC的标识,则所述第一MPU创建源框为第二LCC的组播表项,并将接收到所述组播加入报文的端口作为源框为所述第二LCC的组播表项的入端口。

3.根据权利要求1或2所述的方法,其特征在于,所述第一MPU创建源框为第二LCC的组播表项之后,所述方法还包括:所述第一MPU向同一LCC中的其他MPU发送组播表项创建消息,所述组播表项创建消息包括所述第二LCC的标识,以使与所述第一MPU位于同一LCC中的其他MPU将所述第二LCC的标识存储至组播表项同步链表中。

4.根据权利要求3所述的方法,其特征在于,所述第一MPU向所述同一LCC中的其他MPU发送组播表项创建消息之后,所述方法还包括:所述第一MPU接收同一LCC中其他MPU发送的组播表项创建响应消息;

所述当所述第一MPU创建了源框为第二LCC的组播表项后,所述第一MPU向发送所述组播加入报文的MPU发送组播加入响应报文,包括:当所述第一MPU创建了源框为第二LCC的组播表项,且所述第一MPU接收到同一LCC中其他MPU发送的组播表项创建响应消息,所述第一MPU向所述第二LCC中发送所述组播加入报文的MPU发送组播加入响应报文。

5.根据权利要求4所述的方法,其特征在于,所述第一MPU向所述同一LCC中的其他MPU发送组播表项创建消息之后,所述方法还包括:若所述第一MPU在预设时间内未收到同一LCC中其他MPU发送的组播表项创建响应消息,则所述第一MPU重传所述组播表项创建消息,直至所述第一MPU接收到同一LCC中其他MPU发送的组播表项创建响应消息。

6.根据权利要求3所述的方法,其特征在于,所述方法还包括:

当所述第一MPU接收到其他LCC中任一MPU发送的组播剪枝报文时,所述第一MPU在存储的组播表项中删除源框为发送所述组播剪枝报文的MPU所属LCC的表项;

所述第一MPU向同一LCC中的其他MPU发送链表表项删除消息,所述链表表项删除消息包括发送所述组播剪枝报文的MPU所属LCC的标识,所述链表表项删除消息用于使同一LCC中的其他MPU从存储的组播表项同步链表中删除发送所述组播剪枝报文的MPU所属LCC的标识;

当所述第一MPU接收到同一LCC中其他MPU发送的链表表项删除响应消息后,所述第一MPU向发送所述组播剪枝报文的MPU发送组播剪枝响应报文。

7.根据权利要求6所述的方法,其特征在于,所述第一MPU向同一LCC中的其他MPU发送链表表项删除消息之后,所述方法还包括:若所述第一MPU在预设时间内未收到同一LCC中其他MPU发送的链表表项删除响应消息,则所述第一MPU重传所述链表表项删除消息,直至所述第一MPU接收到同一LCC中其他MPU发送的链表表项删除响应消息。

8.一种集群路由器路由控制装置,用于控制背靠背连接的集群路由器,所述集群路由器至少包括两个线卡框LCC,每个LCC中至少包括两个主控处理单元MPU,其特征在于,所述装置包括:判断模块,用于判断当所述集群路由器的第一LCC的第一MPU接收到所述集群路由器的第二LCC中任一MPU发送的组播加入报文时,若所述第一MPU未存储源框为所述第二LCC的组播表项,则判断所述第一MPU自身的组播表项同步链表中是否包括所述第二LCC的标识,所述组播表项同步链表用于存储同一LCC中其他MPU中存储的组播表项中的源框标识,所述集群路由器中每个LCC中的各MPU均存储有所述组播表项同步链表;

发送模块,用于当所述判断模块确定所述第一MPU自身的组播表项同步链表中包括所述第二LCC的标识时,则通过所述第一MPU与第二MPU连接的端口向所述第二MPU发送组播表项删除消息,所述组播表项删除消息用于使所述第二MPU删除存储的源框为第二LCC的组播表项,所述第一MPU与所述第二MPU位于同一LCC中;

创建模块,用于当所述第一MPU接收到所述第二MPU发送的组播表项删除响应消息时,创建源框为第二LCC的组播表项,并将接收到所述组播加入报文的端口作为源框为所述第二LCC的组播表项的入端口;

所述发送模块,还用于当所述创建模块创建了源框为第二LCC的组播表项后,向发送所述组播加入报文的MPU发送组播加入响应报文。

9.根据权利要求8所述的装置,其特征在于,所述创建模块,还用于当所述判断模块确定所述第一MPU自身的组播表项同步链表中不包括所述第二LCC的组播表项时,创建源框为第二LCC的组播表项,并将接收到所述组播加入报文的端口作为源框为所述第二LCC的组播表项的入端口。

10.根据权利要求8或9所述的装置,其特征在于,所述发送模块,还用于当所述创建模块创建了源框为第二LCC的组播表项之后,向同一LCC中的其他MPU发送组播表项创建消息,所述组播表项创建消息包括所述第二LCC的标识,以使与所述第一MPU位于同一LCC中的其他MPU将所述第二LCC的标识存储至组播表项同步链表中。

11.根据权利要求10所述的装置,其特征在于,所述装置还包括:

接收模块,用于在所述发送模块向所述同一LCC中的其他MPU发送组播表项创建消息之后,接收同一LCC中其他MPU发送的组播表项创建响应消息;

所述发送模块,具体用于当所述创建模块创建了源框为第二LCC的组播表项,且所述接收模块接收到同一LCC中其他MPU发送的组播表项创建响应消息后,向所述第二LCC中发送所述组播加入报文的MPU发送组播加入响应报文。

12.根据权利要求11所述的装置,其特征在于,所述发送模块,还用于在向所述同一LCC中的其他MPU发送组播表项创建消息之后,若所述接收模块在预设时间内未收到同一LCC中其他MPU发送的组播表项创建响应消息,则重传所述组播表项创建消息,直至所述第一MPU接收到同一LCC中其他MPU发送的组播表项创建响应消息。

13.根据权利要求10所述的装置,其特征在于,所述装置还包括:删除模块,用于当所述第一MPU接收到其他LCC中任一MPU发送的组播剪枝报文时,在存储的组播表项中删除源框为发送所述组播剪枝报文的MPU所属LCC的表项;

所述发送模块,还用于向同一LCC中的其他MPU发送链表表项删除消息,所述链表表项删除消息包括发送所述组播剪枝报文的MPU所属LCC的标识,所述链表表项删除消息用于使同一LCC中的其他MPU从存储的组播表项同步链表中删除发送所述组播剪枝报文的MPU所属LCC的标识;当所述第一MPU接收到同一LCC中其他MPU发送的链表表项删除响应消息后,向发送所述组播剪枝报文的MPU发送组播剪枝响应报文。

14.根据权利要求13所述的装置,其特征在于,所述发送模块,还用于在向同一LCC中的其他MPU发送链表表项删除消息之后,若所述第一MPU在预设时间内未收到同一LCC中其他MPU发送的链表表项删除响应消息,则重传所述链表表项删除消息,直至所述第一MPU接收到同一LCC中其他MPU发送的链表表项删除响应消息。

说明书 :

集群路由器路由控制方法、装置和集群路由器

技术领域

[0001] 本发明涉及通信技术领域,特别是涉及一种集群路由器路由控制方法、装置和集群路由器。

背景技术

[0002] 随着互联网的不断发展,作为网络核心设备的路由器,也面临着新的挑战,单机路由器已经无法满足数据交换的容量需求。集群路由器是多台单机路由器相互直连组成的系统,多台单机路由器的主控处理单元(Main Process Unit,MPU)之间通过光纤相互连接,实现相互通信。
[0003] 集群路由器与单机路由器一样,也分为控制平面和数据平面两部分,其中控制平面负责管理和控制设备,数据平面负责转发用户数据,二者使用完全独立的物理线路。控制平面使用的物理链路称为控制通道,数据平面使用的物理链路称为数据通道。集群路由器主要分为背靠背连接的集群和通过中央框连接的集群。其中背靠背连接的集群是两台单机路由器的MPU直接进行相互连接而组成的集群路由器;通过中央框连接的集群中,一个路由器的机框作为中央框(Fabric Central Chassis,FCC),其他机框作为线卡框(Line Card Chassis,LCC),各LCC中的MPU均与FCC中的控制连接单元(Control Connection Unit,CCU)连接,CCU负责在各LCC间转发报文。整个集群路由器构成一个统一的系统,对外体现出的是一台设备。
[0004] 为了提高系统的可靠性,集群路由器中的每台LCC中都设置有两个MPU,两个MPU互为备份。集群路由器的控制通道也通过增加冗余物理链路的方式来提高可靠性。在背靠背连接的集群中,每个MPU都至少有两个集群端口,分别与另一LCC的两个MPU连接,那么每个MPU与另一LCC都至少具有两条物理控制链路。其中,集群端口是指集群路由器内部的LCC之间连接的端口。
[0005] 集群路由器的跨框通信分为单播和组播两种方式,其中跨框单播通信通过各MPU中存储的单播路由表确定跨框单播通信的路由,跨框组播通信基于各MPU中保存的最优单播路由确定跨框组播通信的路由。当集群路由器中的某个MPU感知到控制通道内的跨框单播最优链路出现故障时,将切换到该MPU与目的MPU的另一链路建立单播路由,随后将改变后的单播路由通知组播控制通道重建组播表项。为了减少不必要的切换,保证控制通道的稳定,即使单播最优链路出现的是临时故障并很快恢复,也不会将单播路由切回单播最优链路。
[0006] 但是MPU删除跨框组播表项的剪枝报文和重建组播表项的组播加入报文是分别从MPU的两个不同集群端口发出的,这两个报文到达另一LLC的时序是不确定的。由于MPU的两个不同集群端口分别连接另一LCC中的两个不同MPU。若重建组播表项的组播加入报文先到达,并重建了组播表项,但此时删除跨框组播表项的剪枝报文还未被处理,且出现故障的单播最优链路已恢复了正常,那么由于组播报文的广播特性,重建组播表项的组播加入报文将在集群路由器的控制通道内形成广播风暴。控制通道内的广播风暴可能将删除跨框组播表项的剪枝报文淹没,从而导致广播风暴无法消失。

发明内容

[0007] 本发明实施例的目的在于提供一种集群路由器路由控制方法、装置和集群路由器,用于解决背靠背集群路由器中单播路由出现临时故障而导致的组播广播风暴。
[0008] 本实施例具体技术方案如下:
[0009] 第一方面提供一种集群路由器路由控制方法,应用于背靠背连接的集群路由器,所述集群路由器至少包括两个LCC,每个LCC中至少包括两个MPU,所述方法包括:
[0010] 当所述集群路由器的第一LCC的第一MPU接收到所述集群路由器的第二LCC中任一MPU发送的组播加入报文时,若所述第一MPU未存储源框为所述第二LCC的组播表项,则所述第一MPU判断自身的组播表项同步链表中是否包括所述第二LCC的标识,所述组播表项同步链表用于存储同一LCC中其他MPU中存储的组播表项中的源框标识,所述集群路由器中每个LCC中的各MPU均存储有所述组播表项同步链表;
[0011] 若所述第一MPU自身的组播表项同步链表中包括所述第二LCC的标识,则所述第一MPU通过与第二MPU连接的端口向所述第二MPU发送组播表项删除消息,所述组播表项删除消息用于使所述第二MPU删除存储的源框为第二LCC的组播表项,所述第一MPU与所述第二MPU位于同一LCC中;
[0012] 当所述第一MPU接收到所述第二MPU发送的组播表项删除响应消息时,所述第一MPU创建源框为第二LCC的组播表项,并将接收到所述组播加入报文的端口作为源框为所述第二LCC的组播表项的入端口;
[0013] 当所述第一MPU创建了源框为第二LCC的组播表项后,所述第一MPU向发送所述组播加入报文的MPU发送组播加入响应报文。
[0014] 在第一方面一种可能的实现方式中,所述第一MPU判断所述第一MPU自身的组播表项同步链表中是否包括所述第二LCC之后,所述方法还包括:
[0015] 若所述第一MPU自身的组播表项同步链表中不包括所述第二LCC的标识,则所述第一MPU创建源框为第二LCC的组播表项,并将接收到所述组播加入报文的端口作为源框为所述第二LCC的组播表项的入端口。
[0016] 在第一方面一种可能的实现方式中,所述第一MPU创建源框为第二LCC的组播表项之后,所述方法还包括:
[0017] 所述第一MPU向同一LCC中的其他MPU发送组播表项创建消息,所述组播表项创建消息包括所述第二LCC的标识,以使与所述第一MPU位于同一LCC中的其他MPU将所述第二LCC的标识存储至组播表项同步链表中。
[0018] 在第一方面一种可能的实现方式中,所述第一MPU向所述同一LCC中的其他MPU发送组播表项创建消息之后,所述方法还包括:
[0019] 所述第一MPU接收同一LCC中其他MPU发送的组播表项创建响应消息;
[0020] 所述当所述第一MPU创建了源框为第二LCC的组播表项后,所述第一MPU向发送所述组播加入报文的MPU发送组播加入响应报文,包括:
[0021] 当所述第一MPU创建了源框为第二LCC的组播表项,且所述第一MPU接收到同一LCC中其他MPU发送的组播表项创建响应消息,所述第一MPU向所述第二LCC中发送所述组播加入报文的MPU发送组播加入响应报文。
[0022] 在第一方面一种可能的实现方式中,所述第一MPU向所述同一LCC中的其他MPU发送组播表项创建消息之后,所述方法还包括:
[0023] 若所述第一MPU在预设时间内未收到同一LCC中其他MPU发送的组播表项创建响应消息,则所述第一MPU重传所述组播表项创建消息,直至所述第一MPU接收到同一LCC中其他MPU发送的组播表项创建响应消息。
[0024] 在第一方面一种可能的实现方式中,所述方法还包括:
[0025] 当所述第一MPU接收到其他LCC中任一MPU发送的组播剪枝报文时,所述第一MPU在存储的组播表项中删除源框为发送所述组播剪枝报文的MPU所属LCC的表项;
[0026] 所述第一MPU向同一LCC中的其他MPU发送链表表项删除消息,所述链表表项删除消息包括发送所述组播剪枝报文的MPU所属LCC的标识,所述链表表项删除消息用于使同一LCC中的其他MPU从存储的组播表项同步链表中删除发送所述组播剪枝报文的MPU所属LCC的标识;
[0027] 当所述第一MPU接收到同一LCC中其他MPU发送的链表表项删除响应消息后,所述第一MPU向发送所述组播剪枝报文的MPU发送组播剪枝响应报文。
[0028] 在第一方面一种可能的实现方式中,所述第一MPU向同一LCC中的其他MPU发送链表表项删除消息之后,所述方法还包括:
[0029] 若所述第一MPU在预设时间内未收到同一LCC中其他MPU发送的链表表项删除响应消息,则所述第一MPU重传所述链表表项删除消息,直至所述第一MPU接收到同一LCC中其他MPU发送的链表表项删除响应消息。
[0030] 第二方面提供一种集群路由器路由控制装置,用于控制背靠背连接的集群路由器,所述集群路由器至少包括两个LCC,每个LCC中至少包括两个MPU,所述装置包括:
[0031] 判断模块,用于判断当所述集群路由器的第一LCC的第一MPU接收到所述集群路由器的第二LCC中任一MPU发送的组播加入报文时,若所述第一MPU未存储源框为所述第二LCC的组播表项,则判断所述第一MPU自身的组播表项同步链表中是否包括所述第二LCC的标识,所述组播表项同步链表用于存储同一LCC中其他MPU中存储的组播表项中的源框标识,所述集群路由器中每个LCC中的各MPU均存储有所述组播表项同步链表;
[0032] 发送模块,用于当所述判断模块确定所述第一MPU自身的组播表项同步链表中包括所述第二LCC的标识时,则通过所述第一MPU与第二MPU连接的端口向所述第二MPU发送组播表项删除消息,所述组播表项删除消息用于使所述第二MPU删除存储的源框为第二LCC的组播表项,所述第一MPU与所述第二MPU位于同一LCC中;
[0033] 创建模块,用于当所述第一MPU接收到所述第二MPU发送的组播表项删除响应消息时,创建源框为第二LCC的组播表项,并将接收到所述组播加入报文的端口作为源框为所述第二LCC的组播表项的入端口;
[0034] 所述发送模块,还用于当所述创建模块创建了源框为第二LCC的组播表项后,向发送所述组播加入报文的MPU发送组播加入响应报文。
[0035] 在第二方面一种可能的实现方式中,所述创建模块,还用于当所述判断模块确定所述第一MPU自身的组播表项同步链表中不包括所述第二LCC的组播表项时,创建源框为第二LCC的组播表项,并将接收到所述组播加入报文的端口作为源框为所述第二LCC的组播表项的入端口。
[0036] 在第二方面一种可能的实现方式中,所述发送模块,还用于当所述创建模块创建了源框为第二LCC的组播表项之后,向同一LCC中的其他MPU发送组播表项创建消息,所述组播表项创建消息包括所述第二LCC的标识,以使与所述第一MPU位于同一LCC中的其他MPU将所述第二LCC的标识存储至组播表项同步链表中。
[0037] 在第二方面一种可能的实现方式中,所述装置还包括:
[0038] 接收模块,用于在所述发送模块向所述同一LCC中的其他MPU发送组播表项创建消息之后,接收同一LCC中其他MPU发送的组播表项创建响应消息;
[0039] 所述发送模块,具体用于当所述创建模块创建了源框为第二LCC的组播表项,且所述接收模块接收到同一LCC中其他MPU发送的组播表项创建响应消息后,向所述第二LCC中发送所述组播加入报文的MPU发送组播加入响应报文。
[0040] 在第二方面一种可能的实现方式中,所述发送模块,还用于在向所述同一LCC中的其他MPU发送组播表项创建消息之后,若所述接收模块在预设时间内未收到同一LCC中其他MPU发送的组播表项创建响应消息,则重传所述组播表项创建消息,直至所述第一MPU接收到同一LCC中其他MPU发送的组播表项创建响应消息。
[0041] 在第二方面一种可能的实现方式中,所述装置还包括:删除模块,用于当所述第一MPU接收到其他LCC中任一MPU发送的组播剪枝报文时,在存储的组播表项中删除源框为发送所述组播剪枝报文的MPU所属LCC的表项;
[0042] 所述发送模块,还用于向同一LCC中的其他MPU发送链表表项删除消息,所述链表表项删除消息包括发送所述组播剪枝报文的MPU所属LCC的标识,所述链表表项删除消息用于使同一LCC中的其他MPU从存储的组播表项同步链表中删除发送所述组播剪枝报文的MPU所属LCC的标识;当所述第一MPU接收到同一LCC中其他MPU发送的链表表项删除响应消息后,向发送所述组播剪枝报文的MPU发送组播剪枝响应报文。
[0043] 在第二方面一种可能的实现方式中,所述发送模块,还用于在向同一LCC中的其他MPU发送链表表项删除消息之后,若所述第一MPU在预设时间内未收到同一LCC中其他MPU发送的链表表项删除响应消息,则重传所述链表表项删除消息,直至所述第一MPU接收到同一LCC中其他MPU发送的链表表项删除响应消息。
[0044] 第三方面提供一种集群路由器,所述集群路由器为背靠背连接的集群路由器,所述集群路由器至少包括两个LCC,每个LCC中至少包括两个MPU,所述至少两个LCC包括第一LCC和第二LCC,所述第一LCC包括第一MPU:
[0045] 所述第一MPU,用于当接收到所述第二LCC中任一MPU发送的组播加入报文时,若所述第一MPU未存储源框为所述第二LCC的组播表项,则判断自身的组播表项同步链表中是否包括所述第二LCC的标识,所述组播表项同步链表用于存储同一LCC中其他MPU中存储的组播表项中的源框标识,所述集群路由器中每个LCC中的各MPU均存储有所述组播表项同步链表;若存储的组播表项同步链表中包括所述第二LCC的标识,则通过与第二MPU连接的端口向所述第二MPU发送组播表项删除消息,所述组播表项删除消息用于使所述第二MPU删除存储的源框为第二LCC的组播表项,所述第一MPU与所述第二MPU位于同一LCC中;当接收到所述第二MPU发送的组播表项删除响应消息时,创建源框为第二LCC的组播表项,并将接收到所述组播加入报文的端口作为源框为所述第二LCC的组播表项的入端口;当所述第一MPU创建了源框为第二LCC的组播表项后,向发送所述组播加入报文的MPU发送组播加入响应报文。
[0046] 在第三方面一种可能的实现方式中,所述第一MPU,还用于若存储的组播表项同步链表中不包括所述第二LCC的标识,则创建源框为第二LCC的组播表项,并将接收到所述组播加入报文的端口作为源框为所述第二LCC的组播表项的入端口。
[0047] 在第三方面一种可能的实现方式中,所述第一MPU,还用于在创建源框为第二LCC的组播表项之后,向同一LCC中的其他MPU发送组播表项创建消息,所述组播表项创建消息包括所述第二LCC的标识,以使与所述第一MPU位于同一LCC中的其他MPU将所述第二LCC的标识存储至组播表项同步链表中。
[0048] 在第三方面一种可能的实现方式中,所述第一MPU,还用于接收同一LCC中其他MPU发送的组播表项创建响应消息;当创建了源框为第二LCC的组播表项,且接收到同一LCC中其他MPU发送的组播表项创建响应消息,向所述第二LCC中发送所述组播加入报文的MPU发送组播加入响应报文。
[0049] 在第三方面一种可能的实现方式中,所述第一MPU,还用于若在预设时间内未收到同一LCC中其他MPU发送的组播表项创建响应消息,则重传所述组播表项创建消息,直至所述第一MPU接收到同一LCC中其他MPU发送的组播表项创建响应消息。
[0050] 在第三方面一种可能的实现方式中,所述第一MPU,还用于当接收到其他LCC中任一MPU发送的组播剪枝报文时,在存储的组播表项中删除源框为发送所述组播剪枝报文的MPU所属LCC的表项;向同一LCC中的其他MPU发送链表表项删除消息,所述链表表项删除消息包括发送所述组播剪枝报文的MPU所属LCC的标识,所述链表表项删除消息用于使同一LCC中的其他MPU从存储的组播表项同步链表中删除发送所述组播剪枝报文的MPU所属LCC的标识;当接收到同一LCC中其他MPU发送的链表表项删除响应消息后,向发送所述组播剪枝报文的MPU发送组播剪枝响应报文。
[0051] 在第三方面一种可能的实现方式中,所述第一MPU,还用于若在预设时间内未收到同一LCC中其他MPU发送的链表表项删除响应消息,则重传所述链表表项删除消息,直至所述第一MPU接收到同一LCC中其他MPU发送的链表表项删除响应消息。
[0052] 本发明实施例提供的集群路由器路由控制方法、装置和集群路由器,在背靠背连接的集群路由器中,当第一LCC的第一MPU接收到所述集群路由器的第二LCC中任一MPU发送的组播加入报文时,若第一MPU未存储源框为第二LCC的组播表项,且第一MPU自身的组播表项同步链表中包括所述第二LCC的标识,那么第一MPU通过与第一LCC中的第二MPU连接的端口向第二MPU发送组播表项删除消息,使第二MPU删除存储的源框为第二LCC的组播表项,其中,组播表项同步链表用于存储同一LCC中其他MPU中存储的组播表项中的源框标识,在第一LCC接收到第二MPU发送的组播表项删除响应消息时,再创建源框为第二LCC的组播表项,避免了在背靠背集群路由器中,单播链路出现临时故障时发生了单播路由切换后发生的组播广播风暴,确保了集群路由器的控制通道的正常工作。当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。

附图说明

[0053] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0054] 图1为背靠背连接的集群路由器的结构示意图;
[0055] 图2为图1所示集群路由器发生单播切换后组播处理流程;
[0056] 图3为本发明实施例提供的集群路由器路由控制方法实施例一的流程图;
[0057] 图4为本发明实施例提供的背靠背集群路由器中组播表项加入流程示意图;
[0058] 图5为本发明实施例提供的背靠背集群路由器中剪枝报文处理流程示意图;
[0059] 图6为本发明实施例提供的集群路由器路由控制方法实施例二的流程图;
[0060] 图7为控制器的一种硬件结构图;
[0061] 图8为本发明实施例提供的集群路由器路由控制装置实施例一的结构示意图;
[0062] 图9为本发明实施例提供的集群路由器路由控制装置实施例二的结构示意图;
[0063] 图10为本发明实施例提供的集群路由器路由控制装置实施例二的结构示意图;
[0064] 图11为本发明实施例提供的集群路由器的结构示意图。

具体实施方式

[0065] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0066] 集群路由器分为通过FCC连接的集群路由器和背靠背连接的路由器两种结构,其中,背靠背连接的集群路由器包括至少两个LCC。图1为背靠背连接的集群路由器的结构示意图。在图1中仅示出两个LCC背靠背连接所组成的集群路由器,且每个LCC中包括两个MPU的情况,但背靠背连接的集群路由器中LCC的数量以及各LCC中MPU的数量不以此为限。
[0067] 如图1所示,集群路由器包括LCC 11和LCC 12,LCC 11中包括MPU 13和MPU 14,LCC12中包括MPU15和MPU 16。LCC 11和LCC 12中均包括两个MPU,实现MPU的主备备份。每个LCC中的两个MPU中一个为主MPU,另一个为备MPU,其中MPU 13为LCC 11的主MPU,MPU15为LCC 12的主MPU,MPU 14为LCC 11的备MPU,MPU16为LCC 12的备MPU。
[0068] 为了提高集群路由器的控制通道的可靠性,集群内部每个LCC中的每个MPU都至少通过两个集群端口与其他LCC连接,具体地,也就是集群内部每个LCC中的每个MPU都与集群中其他LCC中的每个MPU通过集群端口连接,实现集群控制通道的冗余备份。以图1为例,在图1中以每个MPU通过两个集群端口与其他LCC连接为例,MPU13、MPU 14、MPU 15和MPU 16分别与另一LCC中的每个MPU进行跨框连接。其中MPU 13通过端口1与MPU 15连接,MPU 13通过端口2与MPU 16连接,MPU 14通过端口1与MPU 16连接,MPU 14通过端口2与MPU 15连接,MPU 15通过端口1与MPU 13连接,MPU 15通过端口2与MPU 14连接,MPU 16通过端口1与MPU 14连接,MPU 16通过端口2与MPU 13连接。在两个LCC之间的4条链路中,只要有1条是正常的,整个集群就能正常工作。另外,在每个LCC内,各MPU也通过框内的可靠线路进行了连接,该连接属于机框的一部分,连接可靠且无法改变。MPU13和MPU14之间,以及MPU 15和MPU 16之间均进行了连接,并且将各MPU之间进行框内连接的端口都称为该MPU的端口5。
[0069] 在集群路由器中,跨框通信分为跨框单播通信和跨框组播通信。对于跨框单播通信,为了保证控制流的隔离,集群控制通道让去往其他框的流量在不同的虚拟局域网(Virtual Local Area Network,VLAN)内传递,这些VLAN均属于集群内部预留VLAN,不能被用户所使用。跨框单播功能细分为三个部分:1、上层协议模块生成或者从网络中学习到目的框的单播路由;2、驱动将目的框路由信息转换为目的框内所有与控制通道相关CPU节点的表项信息并写入芯片,其中表项信息的目的地址采用框(Chassis)号+槽位(Slot)号+CPU号来表示,和控制流报文的目的地址保持一致(因为控制流最终都会被送到某一特定的CPU上);3、当有控制流出现时,芯片查表项进行转发。对于跨框组播通信,和单播一样,对于来自不同源框的流量也是采用集群预留的VLAN进行隔离(对于每一个框来讲,都有一个单播VLAN和一个组播VLAN)。
[0070] 对于跨框单播通信,每个MPU上以及CCU上均保存有单播路由表,当MPU感知到单播控制报文时,查询单播路由表确定单播控制报文的路由,从而实现单播控制报文的转发。表1示出LCC 11中的MPU 13中存储的单播路由表,表2示出LCC 11中的MPU 14中存储的单播路由表,其中出端口的端口号均为MPU 13或MPU 14的端口号,开销表示路由需要经过几块单板(MPU)才能到达目的框。每个MPU会选择到达目的框的路由中开销最小的路由作为最优路由。LCC 12中的MPU中的单播路由表与表1和表2类似。
[0071] 表1 MPU 13的单播路由表
[0072]
[0073]
[0074] 表2 MPU 14的单播路由表
[0075]目的框 出端口 开销 路由是否最优
LCC 12 1 0 是
LCC 12 2 0 否
LCC 12 5 1 否
[0076] 对于各MPU保存的单播路由表中的最优路由,会周期性地向网络中扩散,以保证集群路由器内部各框之间均有路由可达。而各MPU保存的单播路由表中的非最优路由将不会进行扩散。
[0077] 集群路由器中的跨框组播通信是依靠各MPU的单播路由表中的最优单播路由确定的。由于目前集群路由器中的跨框组播报文均为广播发送的,为了避免在集群中出现互相冲突的组播表项,因此在一个机框内同一时间仅能由一个MPU在软件层上建立组播表项。一般地,每个机框由主MPU依据最优单播路由建立针对同一组播源的组播表项。
[0078] 结合表1和表2中的单播最优路由,可以得知LCC 11会在MPU 13上创建组播表项,如表3所示。其中,源框表示发送组播控制报文的源机框,入端口表示接收到相应源框的组播控制报文的端口,出端口表示发送相应源框的组播控制报文的端口,表3中的端口号均为MPU 13的端口号。
[0079] 表3 MPU 13的组播路由表
[0080]源框 入端口 出端口列表
LCC 11 无 1
LCC 12 1 无
[0081] 对于LCC 11中的MPU 14,由于为备MPU,将不会存储任何组播表项。
[0082] 集群路由器中的控制报文分别根据上述单播路由表和组播路由表进行传输。但是当集群路由器中的某条单播最优路由的链路出现故障时,为了保证单播控制报文的传输,单播路由会立即进行切换并通知组播重建表项。即使单播最优路由的链路很快恢复正常,也不会将单播最优路由切换回已恢复的路由,这是为了减少不必要的切换过程,以保证控制通道的相对稳定。
[0083] 仍以图1所示集群路由器为例,假设MPU 13到MPU 15的最优单播链路出现临时故障,即MPU 13通过端口1与MPU 15连接的链路出现临时故障,那么根据表1所示的单播路由表,MPU 13会将到达MPU 15的单播路由切换至通过端口2与MPU 16连接的链路。对于这样的切换,MPU 13的组播模块将会进行如图2所示的处理。图2为图1所示集群路由器发生单播切换后组播处理流程。
[0084] 如图2所示,当MPU13通过端口1与MPU 15连接的链路出现临时故障,当MPU 13进行单播路由切换,将到达LCC 12的单播路由的出端口切换至端口2后,随后MPU13将通知组播模块发生了单播路由切换。此时若MPU13通过端口1与MPU 15连接的链路的故障很快恢复,由于MPU 13中的组播模块感知到单播路由发生切换后,将在端口1上发送组播剪枝报文,以使对端去除原有的源框为LCC 11的组播表项,避免组播表项残留。随后MPU 13会将端口2添加为源框为LCC 11的组播表项的出端口,并在端口2上发送组播加入报文。对于LCC 12中的MPU 16,在接收到MPU 13发送的组播加入报文后,将建立新的组播表项,并将新的组播表项通知硬件驱动,随后MPU16即可根据新建立的组播表项进行组播报文的传输。而MPU 15在接收到剪枝报文后,将删除原有的源框为LCC 11的组播表项。但是从图2中可以看出,MPU 15接收到剪枝报文和MPU 16接收到组播加入报文的时序是不定的。
[0085] 若MPU 13和MPU 15之间的链路在发生故障后很快恢复,并且MPU 13通过端口2向MPU 16发送的组播加入报文到达MPU 16并被MPU 16处理后,MPU 13通过端口1向MPU 15发送的剪枝报文才到达MPU 15,那么此时MPU 13可能已经通过新建立的组播表项开始了组播控制报文的传输。那么基于组播报文的广播特性,当MPU 13通过新建立的组播端口,即MPU 13的端口2向MPU 16广播了组播控制报文,MPU 16接收到组播控制报文后,将通过端口5继续向MPU 15转发,若此时MPU 15仍未接收到MPU 13发送的剪枝报文,那么MPU 15将继续根据原有的组播表项进行组播控制报文的发送,即通过MPU 15的端口1继续想MPU 13转发。从图1中可以看出,MPU 13、MPU 16和MPU 15之间形成了闭合的环路,组播控制报文将可能在闭合的环路中不断转发而充满整个控制通道,形成广播风暴。而如果在形成了广播风暴时,MPU 15仍未接收到MPU 13发送的剪枝报文,那么MPU 15将可能再也无法接收到该剪枝报文,从而导致广播风暴无法消失,进而影响集群路由器的组播控制通道的报文传输。
[0086] 为了避免如图2所示的广播风暴的产生,本发明实施例提供一种集群路由器路由控制方法,以下将以各实施例进行详细阐述。
[0087] 图3为本发明实施例提供的集群路由器路由控制方法实施例一的流程图,如图3所示,本实施例的方法包括:
[0088] 步骤S301,当集群路由器的第一LCC的第一MPU接收到集群路由器的第二LCC中任一MPU发送的组播加入报文时,若第一MPU未存储源框为第二LCC的组播表项,则第一MPU判断自身的组播表项同步链表中是否包括第二LCC的标识,组播表项同步链表用于存储同一LCC中其他MPU中存储的组播表项中的源框标识,集群路由器中每个LCC中的各MPU均存储有组播表项同步链表。
[0089] 本实施例提供的集群路由器路由控制方法应用于背靠背连接的集群路由器,该集群路由器包括至少两个LCC,每个LCC中包括至少两个MPU,下面以背靠背集群路由器包括两个LCC,每个LCC中包括两个MPU为例进行说明。
[0090] 从图2所示流程中可以看出,在集群路由器出现单播切换后出现广播风暴的原因在于,作为从框的LCC中的MPU未收到主框发送的组播剪枝报文时,主框就已经根据新创建的组播表项发送了组播控制报文,组播控制报文可能通过未删除的组播表项继续广播至主框,从而形成广播风暴,并导致组播剪枝报文可能被淹没。由于组播表项仅存储于LCC中的一个MPU中,未存储组播表项的MPU才可能进行错误的组播控制报文转发,因此,本实施例考虑使一个LCC中的每个MPU都获知同框内的其他LCC中都存储有哪些源框的组播表项,从而避免出现广播风暴。
[0091] 因此,在集群路由器中的每个MPU中都建立一个组播表项同步链表,组播表项同步链表用于存储同一LCC中其他MPU中存储的组播表项中的源框标识,通过组播表项同步链表,各MPU均可获知同一LCC内的其他MPU中存储有哪些源框的组播表项。由于源框为本框的组播表项由本框中的MPU建立,因此不会存在组播表项未被删除而产生广播风暴的问题,因此组播表项同步链表中可以不包括本LCC的标识。那么在第一LCC的第一MPU接收到集群路由器中的第二LCC中的任一MPU发送的组播加入报文时,第一MPU首先判断自身是否存储有源框为第二LCC的组播表项,若第一MPU中已存储源框为第二LCC的组播表项,那么第一MPU仅根据组播加入报文对存储的组播表项进行修改即可。若第一MPU中未存储源框为第二LCC的组播表项,那么为了避免在同一LCC中的多个MPU中建立相同源框的组播表项,第一MPU需要判断自身存储的组播表项同步链表中是否包括第二LCC的标识。其中,第二LCC的标识为可以唯一确定第二LCC的信息,例如第二LCC的框号等。
[0092] 步骤S302,若第一MPU自身的组播表项同步链表中包括源框为第二LCC的标识,则第一MPU通过与第二MPU连接的端口向第二MPU发送组播表项删除消息,组播表项删除消息用于使第二MPU删除存储的源框为第二LCC的组播表项,第一MPU与第二MPU位于同一LCC中。
[0093] 如果第一MPU判断自身的组播表项同步链表中包括第二LCC的标识,那么意味着第一LCC中的其他MPU上已经存储有源框为第二LCC的组播表项。此时第一MPU先不建立源框为第二LCC的组播表项,而是通过第一MPU与第二MPU连接的端口向第二MPU发送组播表项删除消息,该组播表项删除消息中包括第二LCC的标识,用于使第二MPU删除存储的源框为第二LCC的组播表项。其中第二MPU与第一MPU均位于第一LCC中。若第一LCC中包括两个以上的MPU,则第一MPU分别向同一LCC中的多个MPU发送该组播表项删除消息。
[0094] 步骤S303,当第一MPU接收到第二MPU发送的组播表项删除响应消息时,第一MPU创建源框为第二LCC的组播表项,并将接收到组播加入报文的端口作为源框为第二LCC的组播表项的入端口。
[0095] 在第二MPU删除了源框为第二LCC的组播表项后,将向第一MPU发送组播表项删除响应消息。第一MPU接收到该组播表项删除响应消息,获知第二MPU已经删除了源框为第二LCC的组播表项,然后第一MPU再创建源框为第二LCC的组播表项。在第一MPU创建的源框为第二LCC的组播表项中,接收到组播加入报文的端口作为源框为第二LCC的组播表项的入端口。由于第二MPU中已经删除了源框为第二LCC的组播表项,因此此时第一LCC中仅有第一MPU中具有源框为第二LCC的组播表项,那么就不会再出现图2中所示的广播风暴的情况。
[0096] 步骤S304,当第一MPU创建了源框为第二LCC的组播表项后,第一MPU向发送组播加入报文的MPU发送组播加入响应报文。
[0097] 当第一MPU创建了源框为第二LCC的组播表项后,第一MPU还需要向发送组播加入报文的MPU发送组播加入响应报文,从而完成集群路由器的组播路由切换。
[0098] 本实施例提供的集群路由器路由控制方法,在背靠背连接的集群路由器中,当第一LCC的第一MPU接收到所述集群路由器的第二LCC中任一MPU发送的组播加入报文时,若第一MPU未存储源框为第二LCC的组播表项,且第一MPU自身的组播表项同步链表中包括所述第二LCC的标识,那么第一MPU通过与第一LCC中的第二MPU连接的端口向第二MPU发送组播表项删除消息,使第二MPU删除存储的源框为第二LCC的组播表项,其中,组播表项同步链表用于存储同一LCC中其他MPU中存储的组播表项中的源框标识,在第一LCC接收到第二MPU发送的组播表项删除响应消息时,再创建源框为第二LCC的组播表项,避免了在背靠背集群路由器中,单播链路出现临时故障时发生了单播路由切换后发生的组播广播风暴,确保了集群路由器的控制通道的正常工作。
[0099] 进一步的,在图3所示实施例中,步骤S301中若第一MPU判断第一MPU自身的组播表项同步链表中不包括二LCC的标识,那么第一MPU可以直接创建源框为第二LCC的组播表项,并将接收到组播加入报文的端口作为源框为第二LCC的组播表项的入端口。这是由于,如果第一MPU自身的组播表项同步链表中不包括第二LCC的标识,那么意味着第一LCC中各MPU中均为存储源框为第二LCC的组播表项,那么第一MPU创建了源框为第二LCC的组播表项后,第一LCC中仍然仅有一个MPU中存储有源框为第二LCC的组播表项。
[0100] 进一步的,在图3所示实施例中,不论第一MPU采用哪种方式创建了源框为第二LCC的组播表项,为了使第一LCC中的其他MPU获知第一MPU中组播表项的变化,第一MPU还可以向同一LCC中的其他MPU发送组播表项创建消息。组播表项创建消息包括第二LCC的标识,组播表项创建消息用于使与第一MPU位于同一LCC中的其他MPU将第二LCC的标识存储至组播表项同步链表中。第一MPU通过在同一LCC内与其他MPU连接的链路向其他MPU发送组播表项创建消息。第一MPU在向同一LCC中的其他MPU发送了第二LCC的标识后,其他MPU将获知集群中已经和有MPU中存储了源框为第二LCC的组播表项。那么当再次发生单播路由切换时,其他MPU同样可以根据图3所示的路由控制方法进行处理,从而避免组播广播风暴的发生。
[0101] 进一步的,为了进一步的避免控制通道内广播风暴的发生,第一MPU在向同一LCC中的其他MPU发送组播表项创建消息之后,还需要接收同一LCC中其他MPU发送的组播表项创建响应消息。组播表项创建响应消息是在其他MPU已经在组播表项同步链表中存储了第二LCC的标识后发送的。当第一MPU创建了源框为第二LCC的组播表项,且第一MPU接收到同一LCC中其他MPU发送的组播表项创建响应消息后,第一MPU再向第二LCC中发送组播加入报文的MPU发送组播加入响应报文。那么第二LCC将确认第一MPU已经完成了组播表项的更改。这样做避免了下述情况的发生:第一MPU创建了源框为第二LCC的组播表项,但第一LCC中的其他MPU还未更改组播表项同步链表时,此时第一MPU与第二LCC的连接链路又发生了故障从而发生了单播路由切换,而第一LCC中的其他MPU还未更改组播表项同步链表,那么仍然可能出现如图2所示的广播风暴。
[0102] 进一步的,为了确保与第一MPU位于同一LCC的其他MPU更新存储的组播表项同步链表,第一MPU还可以对组播表项创建消息进行重传。在第一MPU发送组播表项创建消息后,若第一MPU在预设时间内未收到同一LCC中其他MPU发送的组播表项创建响应消息,那么第一MPU将重传该组播表项创建消息。一直到第一MPU接收到同一LCC中其他MPU发送的组播表项创建响应消息,或者等组播表项创建消息的重传次数达到预设阈值。
[0103] 进一步的,当第一MPU创建了源框为第二LCC的组播表项后,若集群链路再次出现故障,那么第一MPU可能会收到集群中其他LCC中的任一MPU发送的组播剪枝报文,该组播剪枝报文用于删除第一MPU中存储的组播表项。当然,对于第一LCC中的其他MPU,同样可能接收到组播剪枝报文。例如在图3所示实施例中,第一MPU接收到组播加入报文的原因可能是由于第一LCC中的第二MPU与第二LCC连接的链路出现故障,那么第二MPU也将收到第二LCC发送的组播剪枝报文。当第一MPU接收到其他LCC中任一MPU发送的组播剪枝报文时,第一MPU在存储的组播表项中删除源框为发送组播剪枝报文的MPU所属LCC的表项。同时,为了使同一LCC中的其他MPU获知第一MPU中组播表项的变化,当第一MPU删除了组播表项时,第一MPU还向同一LCC中的其他MPU发送链表表项删除消息,链表表项删除消息包括发送组播剪枝报文的MPU所属LCC的标识。链表表项删除消息用于使同一LCC中的其他MPU从存储的组播表项同步链表中删除发送组播剪枝报文的MPU所属LCC的标识。当第一LCC中的其他MPU删除了发送组播剪枝报文的MPU所属LCC的标识,将向第一MPU发送链表表项删除响应消息,当第一MPU接收到同一LCC中其他MPU发送的链表表项删除响应消息后,第一MPU向发送组播剪枝报文的MPU发送组播剪枝响应报文,从而完成组播报文的剪枝流程。经过上述组播报文剪枝流程后,第一LCC中除了第一MPU以外的其他MPU也均获知了第一MPU中的组播表项变化,当再次发生链路故障而导致单播路由切换时,各MPU将可以根据改变后的组播表项同步链表准确判断第一LCC中其他MPU中存储的组播报文,从而确定是否要创建新的组播报文。
[0104] 进一步的,为了确保与第一MPU位于同一LCC的其他MPU删除存储的组播表项同步链表中的组播表项,第一MPU还可以对链表表项删除消息进行重传。在第一MPU发送链表表项删除消息后,若第一MPU在预设时间内未收到同一LCC中其他MPU发送的链表表项删除响应消息,那么第一MPU将重传该链表表项删除消息。一直到第一MPU接收到同一LCC中其他MPU发送的链表表项删除响应消息,或者等链表表项删除消息的重传次数达到预设阈值。
[0105] 下面仍以图1所示集群路由器为例,对本发明提供的集群路由器路由控制方法进行进一步说明。当图1所示实施例中,MPU 13到MPU 15的最优单播链路出现临时故障,那么MPU 13会通过端口1向MPU 15发送剪枝报文,并且在查询单播路由表后,确定MPU 13到LCC 12的其他单播路由中,通过端口2到达LCC 12的路由开销最小。因此MPU 13将在端口2向MPU 
16发送组播加入报文。由于LCC 12中原有组播表项存储于MPU 15中,那么在MPU 15还未接收到剪枝报文时,若MPU 16已经接收到组播加入报文且创建了组播表项,那么将可能出现图2所示的广播风暴。
[0106] 考虑到各LCC中的MPU之间还有通过各自的端口5连接的可靠连接,因此本发明实施例考虑利用该连接解决上述问题。首先需要在各MPU中增加一个组播表项同步链表,组播表项同步链表用于存储同一LCC中其他MPU中存储的组播表项中的源框标识。当MPU接收到组播加入报文时,先确认存储的组播表项同步链表中是否包括发送组播加入报文的LCC的标识,然后再进行后续处理。
[0107] 在引入上述组播表项同步链表后,在集群路由器完成连接后,首次创建组播路由表的流程如图4所示。图4为本发明实施例提供的背靠背集群路由器中组播表项加入流程示意图。当LCC 12中的MPU 15从端口1接收到LCC 11发送的组播加入报文时,由于LCC 12中的各MPU中还未存储有任何组播表项,那么MPU 15将创建源框为LCC 11的组播表项,上行端口为端口1。然后MPU 15通过端口5向MPU 16发送组播表项创建消息,组播表项创建消息中携带LCC 11的标识。MPU 16解析组播表项创建消息后获取LCC 11的标识,并将LCC 11的标识添加至自身存储的组播表项同步链表中。随后MPU 16向MPU 15发送组播表项创建响应消息。MPU 15收到组播表项创建响应消息后,向LCC 11发送组播加入响应报文,完成组播表项的创建。
[0108] 图5为本发明实施例提供的背靠背集群路由器中剪枝报文处理流程示意图。同样的,仍以MPU 15为例,当MPU 15通过端口1接收到LCC 11发送的剪枝报文时,MPU 15在组播路由表中查找源框为LCC 11的组播表项,并将其删除。然后MPU 15通过端口5向MPU 16发送链表表项删除消息,链表表项删除消息中携带LCC 11的标识。MPU 16解析链表表项删除消息后获取LCC 11的标识,并将存储的组播表项同步链表中LCC 11的标识删除。随后MPU 16向MPU 15发送链表表项删除响应消息。MPU 15收到链表表项删除响应消息后,向LCC 11发送剪枝响应报文,完成剪枝报文的处理。
[0109] 对于集群路由器中的各MPU,在存储了组播表项同步链表后,当接收到组播加入报文或剪枝报文后,都根据图4或图5所示流程进行处理。那么,当MPU 13到MPU 15的最优单播链路出现临时故障,MPU 13在端口2向MPU 16发送组播加入报文后,将根据图6所示流程进行处理。图6为本发明实施例提供的集群路由器路由控制方法实施例二的流程图。当MPU 13到MPU 15的最优单播链路出现临时故障时,在步骤S601中,MPU 16从端口2接收到MPU 13发送的组播加入报文。由于MPU 16中并未存储组播表项,那么在步骤S602中,MPU 16将判断自身的组播表项同步链表中是否包括LCC 11的标识。若S602中判断为否,那么意味着LCC 12中的各MPU中均未存储源框为LCC 11的组播表项,那么将执行步骤S603,即MPU 16创建源框为LCC 11的组播表项,并将端口2作为该表项的入端口。若S602中判断为是,那么LCC 12中MPU 16以外的MPU(即MPU 15)中存储有源框为LCC 11的组播表项。那么MPU 16将通过端口5向MPU 15发送组播表项删除消息,其中携带LCC 11的标识,即执行步骤S604。随后在步骤S605中,MPU 15在收到组播表项删除消息后,删除源框为LCC 11的组播表项,并向MPU 16发送组播表项删除响应消息。在步骤S606中,若MPU 16接收到MPU 15发送的组播表项删除响应消息,则MPU 16创建源框为LCC 11的组播表项,并将端口2作为该表项的入端口。在步骤S603或步骤S606之后,MPU 16都将执行步骤S607,即通知组播模块添加源框为LCC 11的组播表项。
[0110] 基于与上述方法同样的申请构思,本发明实施例还提供一种集群路由器路由控制装置,应用在控制器上。该集群路由器路由控制装置可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在的控制器上的处理器,读取非易失性存储器中对应的计算机程序指令形成的。从硬件层面而言,如图7所示,为控制器的一种硬件结构图,除了图7所示的处理器、非易失性存储器外,控制器还可以包括其他硬件,如负责处理报文的转发芯片、网络接口、内存等;从硬件结构上来讲,该控制器还可能是分布式设备,可能包括多个接口卡,以便在硬件层面进行报文处理的扩展。
[0111] 图8为本发明实施例提供的集群路由器路由控制装置实施例一的结构示意图,本实施例提供的集群路由器路由控制装置用于控制背靠背连接的集群路由器。该背靠背集群路由器至少包括两个LCC,每个LCC中至少包括两个MPU。如图8所示,本实施例提供的集群路由器路由控制装置包括:
[0112] 判断模块81,用于判断当集群路由器的第一LCC的第一MPU接收到集群路由器的第二LCC中任一MPU发送的组播加入报文时,若第一MPU未存储源框为第二LCC的组播表项,则判断第一MPU自身的组播表项同步链表中是否包括第二LCC的标识,组播表项同步链表用于存储同一LCC中其他MPU中存储的组播表项中的源框标识,集群路由器中每个LCC中的各MPU均存储有组播表项同步链表。
[0113] 发送模块82,用于当判断模块81确定第一MPU自身的组播表项同步链表中包括第二LCC的标识时,则通过第一MPU与第二MPU连接的端口向第二MPU发送组播表项删除消息,组播表项删除消息用于使第二MPU删除存储的源框为第二LCC的组播表项,第一MPU与第二MPU位于同一LCC中。
[0114] 创建模块83,用于当第一MPU接收到第二MPU发送的组播表项删除响应消息时,创建源框为第二LCC的组播表项,并将接收到组播加入报文的端口作为源框为第二LCC的组播表项的入端口。
[0115] 发送模块82,还用于当创建模83块创建了源框为第二LCC的组播表项后,向发送组播加入报文的MPU发送组播加入响应报文。
[0116] 本发明实施例提供的集群路由器路由控制装置用于实现图3所示的集群路由器路由控制方法,其实现原理和技术效果类似,此处不再赘述。
[0117] 需要说明的是,本发明实施例提供的集群路由器路由控制装置可以设置于第一MPU中,也可以独立于第一MPU设置于集群路由器中。
[0118] 进一步的,在图8所示实施例中,创建模块83,还用于当判断模块81确定第一MPU自身的组播表项同步链表中不包括第二LCC的标识时,创建源框为第二LCC的组播表项,并将接收到组播加入报文的端口作为源框为第二LCC的组播表项的入端口。
[0119] 进一步的,在图8所示实施例中,发送模块82,还用于当创建模块83创建了源框为第二LCC的组播表项之后,向同一LCC中的其他MPU发送组播表项创建消息,组播表项创建消息包括第二LCC的标识,以使与第一MPU位于同一LCC中的其他MPU将第二LCC的标识存储至组播表项同步链表中。
[0120] 图9为本发明实施例提供的集群路由器路由控制装置实施例二的结构示意图,如图9所示,本实施例提供的集群路由器路由控制装置在图8的基础上,还包括:
[0121] 接收模块84,用于在发送模块82向同一LCC中的其他MPU发送组播表项创建消息之后,接收同一LCC中其他MPU发送的组播表项创建响应消息。
[0122] 发送模块82,具体用于当创建模块83创建了源框为第二LCC的组播表项,且接收模块84接收到同一LCC中其他MPU发送的组播表项创建响应消息后,向第二LCC中发送组播加入报文的MPU发送组播加入响应报文。
[0123] 进一步的,在图9所示实施例中,发送模块82,还用于在向同一LCC中的其他MPU发送组播表项创建消息之后,若接收模块84在预设时间内未收到同一LCC中其他MPU发送的组播表项创建响应消息,则重传组播表项创建消息,直至第一MPU接收到同一LCC中其他MPU发送的组播表项创建响应消息。
[0124] 图10为本发明实施例提供的集群路由器路由控制装置实施例二的结构示意图,如图10所示,本实施例提供的集群路由器路由控制装置在图8的基础上,还包括:
[0125] 删除模块85,用于当第一MPU接收到其他LCC中任一MPU发送的组播剪枝报文时,在存储的组播表项中删除源框为发送组播剪枝报文的MPU所属LCC的表项。
[0126] 发送模块82,还用于向同一LCC中的其他MPU发送链表表项删除消息,链表表项删除消息包括发送组播剪枝报文的MPU所属LCC的标识,链表表项删除消息用于使同一LCC中的其他MPU从存储的组播表项同步链表中删除发送组播剪枝报文的MPU所属LCC的标识;当第一MPU接收到同一LCC中其他MPU发送的链表表项删除响应消息后,向发送组播剪枝报文的MPU发送组播剪枝响应报文。
[0127] 需要说明的是,删除模块85还可以在图9所示集群路由器路由控制装置的基础上添加。
[0128] 进一步的,在图10所示实施例中,发送模块82,还用于在向同一LCC中的其他MPU发送链表表项删除消息之后,若第一MPU在预设时间内未收到同一LCC中其他MPU发送的链表表项删除响应消息,则重传链表表项删除消息,直至第一MPU接收到同一LCC中其他MPU发送的链表表项删除响应消息。
[0129] 本发明实施例还提供一种集群路由器。图11为本发明实施例提供的集群路由器的结构示意图,如图11所示,本发明实施例提供的集群路由器包括:第一LCC 111和第二LCC 112,第一LCC 111包括第一MPU 113和第二MPU 114。
[0130] 第一MPU 113,用于当接收到第二LCC 112中任一MPU发送的组播加入报文时,若第一MPU 113未存储源框为第二LCC 112的组播表项,则判断自身的组播表项同步链表中是否包括第二LCC 112的标识,组播表项同步链表用于存储第一LCC 111中其他MPU中存储的组播表项中的源框标识,集群路由器中每个LCC中的各MPU均存储有组播表项同步链表;若存储的组播表项同步链表中包括第二LCC 112的标识,则通过与第二MPU 114连接的端口向第二MPU 114发送组播表项删除消息,组播表项删除消息用于使第二MPU 114删除存储的源框为第二LCC 112的组播表项,第一MPU 113与第二MPU 114位于第一LCC 111中;当接收到第二MPU 114发送的组播表项删除响应消息时,创建源框为第二LCC 112的组播表项,并将接收到组播加入报文的端口作为源框为第二LCC 112的组播表项的入端口;当第一MPU 114创建了源框为第二LCC 112的组播表项后,向发送组播加入报文的MPU发送组播加入响应报文。
[0131] 本发明实施例提供的集群路由器用于实现图3所示的集群路由器路由控制方法,其实现原理和技术效果类似,此处不再赘述。需要说明的是,本发明实施例提供的集群路由器中,LCC的数量以及各LCC中MPU的数量不以图11为限。
[0132] 进一步的,在图11所示实施例中,第一MPU 113,还用于若存储的组播表项同步链表中不包括第二LCC 112的标识,则创建源框为第二LCC 112的组播表项,并将接收到组播加入报文的端口作为源框为第二LCC 112的组播表项的入端口。
[0133] 进一步的,在图11所示实施例中,第一MPU 113,还用于在创建源框为第二LCC 112的组播表项之后,向第一LCC 111中的其他MPU发送组播表项创建消息,组播表项创建消息包括第二LCC 112的标识,以使与第一MPU 112位于同一LCC中的其他MPU将第二LCC 112的标识存储至组播表项同步链表中。
[0134] 进一步的,在图11所示实施例中,第一MPU 113,还用于接收同一LCC中其他MPU发送的组播表项创建响应消息;当创建了源框为第二LCC 112的组播表项,且接收到同一LCC中其他MPU发送的组播表项创建响应消息,向第二LCC 112中发送组播加入报文的MPU发送组播加入响应报文。
[0135] 进一步的,在图11所示实施例中,第一MPU 113,还用于若在预设时间内未收到同一LCC中其他MPU发送的组播表项创建响应消息,则重传组播表项创建消息,直至第一MPU 113接收到同一LCC中其他MPU发送的组播表项创建响应消息。
[0136] 进一步的,在图11所示实施例中,第一MPU 113,还用于当接收到其他LCC中任一MPU发送的组播剪枝报文时,在存储的组播表项中删除源框为发送组播剪枝报文的MPU所属LCC的表项;向同一LCC中的其他MPU发送链表表项删除消息,链表表项删除消息包括发送组播剪枝报文的MPU所属LCC的标识,链表表项删除消息用于使同一LCC中的其他MPU从存储的组播表项同步链表中删除发送组播剪枝报文的MPU所属LCC的标识;当接收到同一LCC中其他MPU发送的链表表项删除响应消息后,向发送组播剪枝报文的MPU发送组播剪枝响应报文。
[0137] 进一步的,在图11所示实施例中,第一MPU 113,还用于若在预设时间内未收到同一LCC中其他MPU发送的链表表项删除响应消息,则重传链表表项删除消息,直至第一MPU接收到同一LCC中其他MPU发送的链表表项删除响应消息。
[0138] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0139] 本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0140] 以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。