一种三层交换机的路由资源控制方法及系统转让专利

申请号 : CN201810587570.3

文献号 : CN108777668B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 罗婷王志

申请人 : 烽火通信科技股份有限公司

摘要 :

本发明公开了一种三层交换机的路由资源控制方法及系统,涉及计算机通信技术领域,本发明为各接口板卡分配虚拟路由域、对应的芯片路由实例索引和可分配的FIB表容量,记录各接口板卡的虚拟路由域索引和对应的芯片路由实例索引;获取主控制卡收到的添加、删除或更新的路由消息,查找各接口板卡的虚拟路由域索引记录,获得对应的接口板卡;将路由消息转换为FIB表消息,发给对应的接口板卡;并根据路由消息更新主控制卡的活跃FIB哈希表;获取接口板卡收到的FIB表消息,对接口板卡的芯片执行FIB表消息对应的添加、删除或更新FIB表的操作,实现根据路由表在不同板卡的使用情况合理规划FIB表同步范围,降低板卡的硬件成本。

权利要求 :

1.一种三层交换机的路由资源控制方法,其特征在于,包括以下步骤:

S1,为各接口板卡分配虚拟路由域、对应的芯片路由实例索引和可分配的转发信息数据库FIB表容量,记录各接口板卡的虚拟路由域索引和对应的芯片路由实例索引;

S2,获取主控制卡收到的添加、删除或更新的路由消息,根据所述路由消息中的路由虚拟域索引,查找各接口板卡的虚拟路由域索引记录,获得对应的接口板卡;将所述路由消息转换为FIB表消息,发给对应的接口板卡;并根据所述路由消息更新主控制卡的活跃FIB哈希表,所述主控制卡的活跃FIB哈希表用于记录主控制卡中存在的所有FIB表;

S3,获取接口板卡收到的FIB表消息,转换为以芯片路由实例索引+目的IP+目的掩码为索引,对接口板卡的芯片执行FIB表消息对应的添加、删除或更新FIB表的操作。

2.如权利要求1所述的一种三层交换机的路由资源控制方法,其特征在于,还包括以下步骤:每经过轮询周期,获取接口板卡内的FIB表的活跃度,若存在经过设定周期数仍不活跃的FIB表,向主控制卡发出删除超时FIB表通知,所述删除超时FIB表通知包含接口板卡号;

获取主控制卡收到的删除超时FIB表通知,获得不活跃的FIB表所在的接口板卡号,提取虚拟路由域索引+目的IP+目的掩码为索引,查找主控制卡的活跃FIB哈希表,将查找到的FIB表删除;生成超时删除FIB表消息,发给接口板卡号对应的接口板卡;

获取接口板卡收到的超时删除FIB表消息,根据接口板卡的芯片路由实例索引,对接口板卡的芯片执行删除FIB表的操作;

在接口板卡的接口板卡的非活跃FIB哈希表中增加被删除的FIB表条目,所述接口板卡的非活跃FIB哈希表用于记录接口板卡不存在的FIB表。

3.如权利要求1所述的一种三层交换机的路由资源控制方法,其特征在于,还包括以下步骤:接收接口板卡的芯片发送的缺失路由报文,提取芯片路由实例索引,查找接口板卡的非活跃FIB表记录,如果命中,向主控制卡发送缺失路由消息;

获取接口板卡发送的缺失路由消息,根据所述缺失路由消息中的路由虚拟域索引,查找主控制卡的活跃FIB哈希表,如果命中,则将所述缺失路由消息发送至主控FIB表管理模块;

获取主控制卡收到的缺失路由消息,根据缺失路由消息中的路由虚拟域索引查找各接口板卡的虚拟路由域索引记录,获得对应的接口板卡;提取虚拟路由域索引+目的IP+目的掩码为索引,查找主控制卡的活跃FIB哈希表,将缺失路由消息转换为缺失FIB表新增消息,发给对应的接口板卡;并根据所述路由消息更新主控制卡的活跃FIB哈希表;

获取接口板卡收到的缺失FIB表新增消息,根据接口板卡的芯片路由实例索引,对接口板卡的芯片执行新增FIB表的操作;

在接口板卡的接口板卡的非活跃FIB哈希表中删除被新增的FIB表条目。

4.如权利要求1所述的一种三层交换机的路由资源控制方法,其特征在于:

步骤S2具体包括以下步骤:

收到新增路由消息时,根据所述路由消息中的路由虚拟域索引查找各接口板卡的虚拟路由域索引记录,获得匹配的接口板卡列表;将所述路由消息转换为新增FIB表消息,发给接口板卡列表中的接口板卡;并在主控制卡的活跃FIB哈希表中新增FIB表条目;

收到删除路由消息时,根据所述路由消息中的路由虚拟域索引查找各接口板卡的虚拟路由域索引记录,获得匹配的接口板卡列表;将所述路由消息转换为删除FIB表消息,发给接口板卡列表中的接口板卡;并在主控制卡的活跃FIB哈希表中删除FIB表条目;

收到更新路由消息时,根据所述路由消息中的路由虚拟域索引,查找各接口板卡的虚拟路由域索引记录,获得匹配的接口板卡和FIB表;若获得的FIB表下一跳出现改变,将所述路由消息转换为更新FIB表下一跳消息,发给匹配的接口板卡;并在主控制卡的活跃FIB哈希表中更新FIB表条目的信息。

5.如权利要求1所述的一种三层交换机的路由资源控制方法,其特征在于:

步骤S3具体包括以下步骤:

收到主控制卡FIB管理单元的新增FIB表消息时,转换为以芯片路由实例索引+目的IP+目的掩码为索引,向芯片添加该FIB表;

收到主控制卡FIB管理单元的删除FIB表消息时,转换为以芯片路由实例索引+目的IP+目的掩码为索引,向芯片删除该FIB表;

收到主控制卡FIB管理单元的更新FIB表下一跳消息时,转换为以芯片路由实例索引+目的IP+目的掩码为索引,更新芯片该FIB表中的下一跳信息。

6.一种三层交换机的路由资源控制系统,其特征在于,包括:

FIB管理配置模块,其用于为各接口板卡分配虚拟路由域、对应的芯片路由实例索引和可分配的转发信息数据库FIB表容量,记录各接口板卡的虚拟路由域索引和对应的芯片路由实例索引;

主控FIB表管理模块,其用于获取主控制卡收到的添加、删除或更新的路由消息,根据所述路由消息中的路由虚拟域索引,查找各接口板卡的虚拟路由域索引记录,获得对应的接口板卡;将所述路由消息转换为FIB表消息,发给对应的接口板卡;并根据所述路由消息更新主控制卡的活跃FIB哈希表,所述主控制卡的活跃FIB哈希表用于记录主控制卡中存在的所有FIB表;

接口板卡FIB表管理模块,其用于获取接口板卡收到的FIB表消息,转换为以芯片路由实例索引+目的IP+目的掩码为索引,对接口板卡的芯片执行FIB表消息对应的添加、删除或更新FIB表的操作。

7.如权利要求6所述的一种三层交换机的路由资源控制系统,其特征在于:该系统还包括FIB表超时检测模块,其用于每经过轮询周期,获取接口板卡内的FIB表的活跃度,若存在经过设定周期数仍不活跃的FIB表,向主控制卡发出删除超时FIB表通知,所述删除超时FIB表通知包含接口板卡号;

主控FIB表管理模块还用于获取主控制卡收到的删除超时FIB表通知,获得不活跃的FIB表所在的接口板卡号,提取虚拟路由域索引+目的IP+目的掩码为索引,查找主控制卡的活跃FIB哈希表,将查找到的FIB表删除;生成超时删除FIB表消息,发给接口板卡号对应的接口板卡;

接口板卡FIB表管理模块还用于获取接口板卡收到的超时删除FIB表消息,根据接口板卡的芯片路由实例索引,对接口板卡的芯片执行删除FIB表的操作;并在接口板卡的接口板卡的非活跃FIB哈希表中增加被删除的FIB表条目,所述接口板卡的非活跃FIB哈希表用于记录接口板卡不存在的FIB表。

8.如权利要求7所述的一种三层交换机的路由资源控制系统,其特征在于:该系统还包括接口板卡缺失路由通告模块和主控路由缺失消息模块;

所述接口板卡缺失路由通告模块用于:接收接口板卡的芯片发送的缺失路由报文,提取芯片路由实例索引,查找接口板卡的非活跃FIB表记录,如果命中,向主控制卡发送缺失路由消息;

所述主控路由缺失消息模块用于:获取接口板卡发送的缺失路由消息,根据所述缺失路由消息中的路由虚拟域索引,查找主控制卡的活跃FIB哈希表,如果命中,则将所述缺失路由消息发送至主控FIB表管理模块;

所述主控FIB表管理模块还用于获取主控制卡收到的缺失路由消息,根据缺失路由消息中的路由虚拟域索引查找各接口板卡的虚拟路由域索引记录,获得对应的接口板卡;提取虚拟路由域索引+目的IP+目的掩码为索引,查找主控制卡的活跃FIB哈希表,将缺失路由消息转换为缺失FIB表新增消息,发给对应的接口板卡;并根据所述路由消息更新主控制卡的活跃FIB哈希表;

所述接口板卡FIB表管理模块还用于获取接口板卡收到的缺失路由新增消息,根据接口板卡的芯片路由实例索引,对接口板卡的芯片执行新增FIB表的操作;在接口板卡的接口板卡的非活跃FIB哈希表中删除被新增的FIB表条目。

9.如权利要求6所述的一种三层交换机的路由资源控制系统,其特征在于:

所述主控FIB表管理模块具体用于:

收到新增路由消息时,根据所述路由消息中的路由虚拟域索引查找各接口板卡的虚拟路由域索引记录,获得匹配的接口板卡列表;将所述路由消息转换为新增FIB表消息,发给接口板卡列表中的接口板卡;并在主控制卡的活跃FIB哈希表中新增FIB表条目;

收到删除路由消息时,根据所述路由消息中的路由虚拟域索引查找各接口板卡的虚拟路由域索引记录,获得匹配的接口板卡列表;将所述路由消息转换为删除FIB表消息,发给接口板卡列表中的接口板卡;并在主控制卡的活跃FIB哈希表中删除FIB表条目;

收到更新路由消息时,根据所述路由消息中的路由虚拟域索引查找各接口板卡的虚拟路由域索引记录,获得匹配的接口板卡和FIB表;若获得的FIB表下一跳出现改变,将所述路由消息转换为更新FIB表下一跳消息,发给匹配的接口板卡;并在主控制卡的活跃FIB哈希表中更新FIB表条目的信息。

10.如权利要求6所述的一种三层交换机的路由资源控制系统,其特征在于:

所述接口板卡FIB表管理模块具体用于:

收到主控制卡FIB管理单元的新增FIB表消息时,转换为以芯片路由实例索引+目的IP+目的掩码为索引,向芯片添加该FIB表;

收到主控制卡FIB管理单元的删除FIB表消息时,转换为以芯片路由实例索引+目的IP+目的掩码为索引,向芯片删除该FIB表;

收到主控制卡FIB管理单元的更新FIB表下一跳消息时,转换为以芯片路由实例索引+目的IP+目的掩码为索引,更新芯片该FIB表中的下一跳信息。

说明书 :

一种三层交换机的路由资源控制方法及系统

技术领域

[0001] 本发明涉及计算机通信技术领域,具体涉及一种三层交换机的路由资源控制方法及系统。

背景技术

[0002] 随着40G、100G以太网技术的成熟,高性能的分布式核心三层交换机也得以快速发展。与传统的集中式三层交换机相比,分布式交换机突破了业务板卡只能二层转发的限制,通过具备三层路由转发功能的板卡实现数据报文只需要在接口板卡一次查表,就可以实现分布式三层转发,大大提高了设备的三层转发能力。
[0003] 在硬件上分布式核心三层交换机一般分为这样几个部分:2个主控制卡、多个接口板卡、一个机架和一个背板。主控制卡和接口板卡构成了分布式转发系统中分散的工作点,它们通过背板联系在一起组成一个分布式系统。机架是大型交换机的基础,机架一般具有多个插槽,从4个到18个不等。主控制卡、接口板卡、交换板插入这些插槽里才能工作。机架的底部是一块背板,机架上的插槽实际上是背板提供的,背板上的电路提供了各个板间的通信链路,以及给各板供电。各板之间通过背板上的数据通道互相通信,交换机的各板卡通过背板上的数据通道同步数据和控制信息,将整机组织成一个分布式转发系统。
[0004] 转发信息数据库Forwarding Information Base(FIB)是三层转发的核心,图1描述了传统的分布式FIB工作机制。主控制卡上的路由协议模块通过路由协议学习到动态路由,或通过配置模块配置静态路由后,再统一通告路由管理模块,由路由管理模块生成路由表,同时路由管理模块会对路由信息进行计算,选择其中的最优表项生成FIB表。主控制卡FIB维护模块通过板间通信,将FIB消息下发到所有接口板卡,接口板卡FIB维护模块收到消息后根据消息类型对本接口板卡的FIB表进行添加或删除操作。如果一个系统中存在8个接口板卡,主控要下发的路由表规模为12K,这就要求8个接口板卡的路由表容量都要大于12K,如果小于12K将出现部分FIB下发失败,导致部分三层业务转发不通。这样就要求分布式三层转发中,所有接口板卡的路由表容量均要满足系统的路由表容量要求,如果一个板卡不满足就会出现问题,这也对接口板卡的路由表硬件资源提出了严格的限制条件。

发明内容

[0005] 针对现有技术中存在的缺陷,本发明的目的在于提供一种三层交换机的路由资源控制方法及系统,实现根据路由表在不同板卡的使用情况合理规划FIB表同步范围,降低板卡的硬件成本。
[0006] 为达到以上目的,本发明采取的技术方案是:一种三层交换机的路由资源控制方法,包括以下步骤:
[0007] S1,为各接口板卡分配虚拟路由域、对应的芯片路由实例索引和可分配的转发信息数据库FIB表容量,记录各接口板卡的虚拟路由域索引和对应的芯片路由实例索引;
[0008] S2,获取主控制卡收到的添加、删除或更新的路由消息,根据所述路由消息中的路由虚拟域索引,查找各接口板卡的虚拟路由域索引记录,获得对应的接口板卡;将所述路由消息转换为FIB表消息,发给对应的接口板卡;并根据所述路由消息更新主控制卡的活跃FIB哈希表,所述主控制卡的活跃FIB哈希表用于记录主控制卡中存在的所有FIB表;
[0009] S3,获取接口板卡收到的FIB表消息,转换为以芯片路由实例索引+目的IP+目的掩码为索引,对接口板卡的芯片执行FIB表消息对应的添加、删除或更新FIB表的操作。
[0010] 在上述技术方案的基础上,还包括以下步骤:
[0011] 每经过轮询周期,获取接口板卡内的FIB表的活跃度,若存在经过设定周期数仍不活跃的FIB表,向主控制卡发出删除超时FIB表通知,所述删除超时FIB表通知包含接口板卡号;
[0012] 获取主控制卡收到的删除超时FIB表通知,获得不活跃的FIB表所在的接口板卡号,提取虚拟路由域索引+目的IP+目的掩码为索引,查找主控制卡的活跃FIB哈希表,将查找到的FIB表删除;生成超时删除FIB表消息,发给接口板卡号对应的接口板卡;
[0013] 获取接口板卡收到的超时删除FIB表消息,根据接口板卡的芯片路由实例索引,对接口板卡的芯片执行删除FIB表的操作;
[0014] 在接口板卡的接口板卡的非活跃FIB哈希表中增加被删除的FIB表条目,所述接口板卡的非活跃FIB哈希表用于记录接口板卡不存在的FIB表。
[0015] 在上述技术方案的基础上,还包括以下步骤:
[0016] 接收接口板卡的芯片发送的缺失路由报文,提取芯片路由实例索引,查找接口板卡的非活跃FIB表记录,如果命中,向主控制卡发送缺失路由消息;
[0017] 获取接口板卡发送的缺失路由消息,根据所述缺失路由消息中的路由虚拟域索引,查找主控制卡的活跃FIB哈希表,如果命中,则将所述缺失路由消息发送至主控FIB表管理模块;
[0018] 获取主控制卡收到的缺失路由消息,根据缺失路由消息中的路由虚拟域索引查找各接口板卡的虚拟路由域索引记录,获得对应的接口板卡;提取虚拟路由域索引+目的IP+目的掩码为索引,查找主控制卡的活跃FIB哈希表,将缺失路由消息转换为缺失FIB表新增消息,发给对应的接口板卡;并根据所述路由消息更新主控制卡的活跃FIB哈希表;
[0019] 获取接口板卡收到的缺失FIB表新增消息,根据接口板卡的芯片路由实例索引,对接口板卡的芯片执行新增FIB表的操作;
[0020] 在接口板卡的接口板卡的非活跃FIB哈希表中删除被新增的FIB表条目。
[0021] 在上述技术方案的基础上,步骤S2具体包括以下步骤:
[0022] 收到新增路由消息时,根据所述路由消息中的路由虚拟域索引查找各接口板卡的虚拟路由域索引记录,获得匹配的接口板卡列表;将所述路由消息转换为新增FIB表消息,发给接口板卡列表中的接口板卡;并在主控制卡的活跃FIB哈希表中新增FIB表条目;
[0023] 收到删除路由消息时,根据所述路由消息中的路由虚拟域索引查找各接口板卡的虚拟路由域索引记录,获得匹配的接口板卡列表;将所述路由消息转换为删除FIB表消息,发给接口板卡列表中的接口板卡;并在主控制卡的活跃FIB哈希表中删除FIB表条目;
[0024] 收到更新路由消息时,根据所述路由消息中的路由虚拟域索引,查找各接口板卡的虚拟路由域索引记录,获得匹配的接口板卡和FIB表;若获得的FIB表下一跳出现改变,将所述路由消息转换为更新FIB表下一跳消息,发给匹配的接口板卡;并在主控制卡的活跃FIB哈希表中更新FIB表条目的信息。
[0025] 在上述技术方案的基础上,步骤S3具体包括以下步骤:
[0026] 收到主控制卡FIB管理单元的新增FIB表消息时,转换为以芯片路由实例索引+目的IP+目的掩码为索引,向芯片添加该FIB表;
[0027] 收到主控制卡FIB管理单元的删除FIB表消息时,转换为以芯片路由实例索引+目的IP+目的掩码为索引,向芯片删除该FIB表;
[0028] 收到主控制卡FIB管理单元的更新FIB表下一跳消息时,转换为以芯片路由实例索引+目的IP+目的掩码为索引,更新芯片该FIB表中的下一跳信息。
[0029] 本发明还公开了一种三层交换机的路由资源控制系统,包括:
[0030] FIB管理配置模块,其用于为各接口板卡分配虚拟路由域、对应的芯片路由实例索引和可分配的转发信息数据库FIB表容量,记录各接口板卡的虚拟路由域索引和对应的芯片路由实例索引;
[0031] 主控FIB表管理模块,其用于获取主控制卡收到的添加、删除或更新的路由消息,根据所述路由消息中的路由虚拟域索引,查找各接口板卡的虚拟路由域索引记录,获得对应的接口板卡;将所述路由消息转换为FIB表消息,发给对应的接口板卡;并根据所述路由消息更新主控制卡的活跃FIB哈希表,所述主控制卡的活跃FIB哈希表用于记录主控制卡中存在的所有FIB表;
[0032] 接口板卡FIB表管理模块,其用于获取接口板卡收到的FIB表消息,转换为以芯片路由实例索引+目的IP+目的掩码为索引,对接口板卡的芯片执行FIB表消息对应的添加、删除或更新FIB表的操作。
[0033] 在上述技术方案的基础上,该系统还包括FIB表超时检测模块,其用于每经过轮询周期,获取接口板卡内的FIB表的活跃度,若存在经过设定周期数仍不活跃的FIB表,向主控制卡发出删除超时FIB表通知,所述删除超时FIB表通知包含接口板卡号;
[0034] 主控FIB表管理模块还用于获取主控制卡收到的删除超时FIB表通知,获得不活跃的FIB表所在的接口板卡号,提取虚拟路由域索引+目的IP+目的掩码为索引,查找主控制卡的活跃FIB哈希表,将查找到的FIB表删除;生成超时删除FIB表消息,发给接口板卡号对应的接口板卡;
[0035] 接口板卡FIB表管理模块还用于获取接口板卡收到的超时删除FIB表消息,根据接口板卡的芯片路由实例索引,对接口板卡的芯片执行删除FIB表的操作;并在接口板卡的接口板卡的非活跃FIB哈希表中增加被删除的FIB表条目,所述接口板卡的非活跃FIB哈希表用于记录接口板卡不存在的FIB表。
[0036] 在上述技术方案的基础上,该系统还包括接口板卡缺失路由通告模块和主控路由缺失消息模块;
[0037] 所述接口板卡缺失路由通告模块用于:接收接口板卡的芯片发送的缺失路由报文,提取芯片路由实例索引,查找接口板卡的非活跃FIB表记录,如果命中,向主控制卡发送缺失路由消息;
[0038] 所述主控路由缺失消息模块用于:获取接口板卡发送的缺失路由消息,根据所述缺失路由消息中的路由虚拟域索引,查找主控制卡的活跃FIB哈希表,如果命中,则将所述缺失路由消息发送至主控FIB表管理模块;
[0039] 所述主控FIB表管理模块还用于获取主控制卡收到的缺失路由消息,根据缺失路由消息中的路由虚拟域索引查找各接口板卡的虚拟路由域索引记录,获得对应的接口板卡;提取虚拟路由域索引+目的IP+目的掩码为索引,查找主控制卡的活跃FIB哈希表,将缺失路由消息转换为缺失FIB表新增消息,发给对应的接口板卡;并根据所述路由消息更新主控制卡的活跃FIB哈希表;
[0040] 所述接口板卡FIB表管理模块还用于获取接口板卡收到的缺失路由新增消息,根据接口板卡的芯片路由实例索引,对接口板卡的芯片执行新增FIB表的操作;在接口板卡的接口板卡的非活跃FIB哈希表中删除被新增的FIB表条目。
[0041] 在上述技术方案的基础上,所述主控FIB表管理模块具体用于:
[0042] 收到新增路由消息时,根据所述路由消息中的路由虚拟域索引查找各接口板卡的虚拟路由域索引记录,获得匹配的接口板卡列表;将所述路由消息转换为新增FIB表消息,发给接口板卡列表中的接口板卡;并在主控制卡的活跃FIB哈希表中新增FIB表条目;
[0043] 收到删除路由消息时,根据所述路由消息中的路由虚拟域索引查找各接口板卡的虚拟路由域索引记录,获得匹配的接口板卡列表;将所述路由消息转换为删除FIB表消息,发给接口板卡列表中的接口板卡;并在主控制卡的活跃FIB哈希表中删除FIB表条目;
[0044] 收到更新路由消息时,根据所述路由消息中的路由虚拟域索引查找各接口板卡的虚拟路由域索引记录,获得匹配的接口板卡和FIB表;若获得的FIB表下一跳出现改变,将所述路由消息转换为更新FIB表下一跳消息,发给匹配的接口板卡;并在主控制卡的活跃FIB哈希表中更新FIB表条目的信息。
[0045] 在上述技术方案的基础上,所述接口板卡FIB表管理模块具体用于:
[0046] 收到主控制卡FIB管理单元的新增FIB表消息时,转换为以芯片路由实例索引+目的IP+目的掩码为索引,向芯片添加该FIB表;
[0047] 收到主控制卡FIB管理单元的删除FIB表消息时,转换为以芯片路由实例索引+目的IP+目的掩码为索引,向芯片删除该FIB表;
[0048] 收到主控制卡FIB管理单元的更新FIB表下一跳消息时,转换为以芯片路由实例索引+目的IP+目的掩码为索引,更新芯片该FIB表中的下一跳信息。
[0049] 与现有技术相比,本发明的优点在于:
[0050] (1)本发明描述的是分布式FIB管理中的问题和解决方法。本发明为各接口板卡分配虚拟路由域、对应的芯片路由实例索引和可分配的FIB表容量,记录各接口板卡的虚拟路由域索引和对应的芯片路由实例索引;获取主控制卡收到的添加、删除或更新的路由消息,根据路由消息中的路由虚拟域索引查找各接口板卡的虚拟路由域索引记录,获得对应的接口板卡;将路由消息转换为FIB表消息,发给对应的接口板卡;并根据路由消息更新主控制卡的活跃FIB哈希表,主控制卡的活跃FIB哈希表用于记录主控制卡中存在的所有FIB表;获取接口板卡收到的FIB表消息,转换为芯片路由实例索引+目的IP+目的掩码为索引,对接口板卡的芯片执行FIB表消息对应的添加、删除或更新FIB表的操作,实现根据路由表在不同板卡的使用情况合理规划FIB表同步范围,降低板卡的硬件成本。
[0051] (2)本发明每经过轮询周期,获取接口板卡内的FIB表的活跃度,若存在经过设定周期数仍不活跃的FIB表,向主控制卡发出删除超时FIB表通知,实现在卡内快速检测路由表的使用效率淘汰无数据的路由条目,防止无转发行为的路由表消耗硬件路由资源,有效提高交换机的路由资源使用效率,降低板卡的硬件成本。
[0052] (3)本发明接收接口板卡的芯片发送的缺失路由报文,提取芯片路由实例索引,查找接口板卡的非活跃FIB表记录,如果命中,向主控制卡发送缺失路由消息,实现实时监测接口板卡是否存在缺失路由,并反馈缺失FIB表新增消息,及时为存在缺失路由的接口板卡下发其需要新增的FIB表,保障路由资源下发的准确性及稳定性。

附图说明

[0053] 图1为背景技术中分布式核心三层交换机分布式FIB工作机制示意图;
[0054] 图2为本发明实施例中三层交换机分布式FIB工作机制示意图;
[0055] 图3为本发明实施例中三层交换机的路由资源控制方法的流程示意图;
[0056] 图4为本发明实施例中三层交换机的路由资源控制系统的结构示意图。

具体实施方式

[0057] 以下结合附图及实施例对本发明作进一步详细说明。
[0058] 参见图3所示,本发明实施例提供一种三层交换机的路由资源控制方法,包括以下步骤:
[0059] S1,为各接口板卡分配虚拟路由域、对应的芯片路由实例索引和可分配的FIB表容量,记录各接口板卡的虚拟路由域索引和对应的芯片路由实例索引;图2所示为本发明实施例中三层交换机分布式FIB工作机制示意图;
[0060] S2,获取主控制卡收到的添加、删除或更新的路由消息,根据路由消息中的路由虚拟域索引查找各接口板卡的虚拟路由域索引记录,获得对应的接口板卡;将路由消息转换为FIB表消息,发给对应的接口板卡;并根据路由消息更新主控制卡的活跃FIB哈希表,主控制卡的活跃FIB哈希表用于记录主控制卡中存在的所有FIB表;
[0061] S3,获取接口板卡收到的FIB表消息,转换为以芯片路由实例索引+目的IP+目的掩码为索引,对接口板卡的芯片执行FIB表消息对应的添加、删除或更新FIB表的操作。
[0062] 本发明所用到的数据结构包括:
[0063] 接口板卡的虚拟路由域信息数组,用于记录每个端口的虚拟路由域索引和名字、分配的FIB表数量、实际已经占用的FIB表数量、芯片路由实例索引;
[0064] 接口板卡的FIB表数组,用于记录每个接口板卡的硬件FIB表容量和当前已分配使用的FIB表容量;
[0065] 主控制卡的活跃FIB哈希表,用于记录软件FIB表在各个控制卡的硬件状态、命中标志和统计信息,该哈希表的索引是芯片路由实例索引+目的IP地址+目的掩码;
[0066] 接口板卡的非活跃FIB哈希表,用于记录接口卡硬件不存在的软件FIB表,该表项的结构成员和索引方式类似主控制卡的FIB哈希表。
[0067] 实施例2:
[0068] 在实施例1的基础上,每经过轮询周期,获取接口板卡内的FIB表的活跃度,若存在经过设定周期数仍不活跃的FIB表,向主控制卡发出删除超时FIB表通知,删除超时FIB表通知包含接口板卡号;
[0069] 获取主控制卡收到的删除超时FIB表通知,获得不活跃的FIB表所在的接口板卡号,提取虚拟路由域索引+目的IP+目的掩码为索引,查找主控制卡的活跃FIB哈希表,将查找到的FIB表删除;生成超时删除FIB表消息,发给接口板卡号对应的接口板卡;
[0070] 获取接口板卡收到的超时删除FIB表消息,根据接口板卡的芯片路由实例索引,对接口板卡的芯片执行删除FIB表的操作;
[0071] 在接口板卡的接口板卡的非活跃FIB哈希表中增加被删除的FIB表条目,接口板卡的非活跃FIB哈希表用于记录接口板卡不存在的FIB表。
[0072] 接收接口板卡的芯片发送的缺失路由报文,提取芯片路由实例索引,查找接口板卡的非活跃FIB表记录,如果命中,向主控制卡发送缺失路由消息;
[0073] 获取接口板卡发送的缺失路由消息,根据缺失路由消息中的路由虚拟域索引,查找主控制卡的活跃FIB哈希表,如果命中,则将缺失路由消息发送至主控FIB表管理模块;
[0074] 获取主控制卡收到的缺失路由消息,根据缺失路由消息中的路由虚拟域索引查找各接口板卡的虚拟路由域索引记录,获得对应的接口板卡;提取虚拟路由域索引+目的IP+目的掩码为索引,查找主控制卡的活跃FIB哈希表,将缺失路由消息转换为缺失FIB表新增消息,发给对应的接口板卡;并根据路由消息更新主控制卡的活跃FIB哈希表;
[0075] 获取接口板卡收到的缺失FIB表新增消息,根据接口板卡的芯片路由实例索引,对接口板卡的芯片执行新增FIB表的操作;
[0076] 在接口板卡的接口板卡的非活跃FIB哈希表中删除被新增的FIB表条目。
[0077] 实施例3:
[0078] 在实施例1的基础上,步骤S2具体包括以下步骤:
[0079] 收到新增路由消息时,根据路由消息中的路由虚拟域索引查找各接口板卡的虚拟路由域索引记录,获得匹配的接口板卡列表;将路由消息转换为新增FIB表消息,发给接口板卡列表中的接口板卡;并在主控制卡的活跃FIB哈希表中新增FIB表条目;
[0080] 收到删除路由消息时,根据路由消息中的路由虚拟域索引查找各接口板卡的虚拟路由域索引记录,获得匹配的接口板卡列表;将路由消息转换为删除FIB表消息,发给接口板卡列表中的接口板卡;并在主控制卡的活跃FIB哈希表中删除FIB表条目;
[0081] 收到更新路由消息时,根据路由消息中的路由虚拟域索引查找各接口板卡的虚拟路由域索引记录,获得匹配的接口板卡和FIB表;若获得的FIB表下一跳出现改变,将路由消息转换为更新FIB表下一跳消息,发给匹配的接口板卡;并在主控制卡的活跃FIB哈希表中更新FIB表条目的信息。
[0082] 步骤S3具体包括以下步骤:
[0083] 收到主控制卡FIB管理单元的新增FIB表消息时,转换为以芯片路由实例索引+目的IP+目的掩码为索引,向芯片添加该FIB表;
[0084] 收到主控制卡FIB管理单元的删除FIB表消息时,转换为以芯片路由实例索引+目的IP+目的掩码为索引,向芯片删除该FIB表;
[0085] 收到主控制卡FIB管理单元的更新FIB表下一跳消息时,转换为以芯片路由实例索引+目的IP+目的掩码为索引,更新芯片该FIB表中的下一跳信息。
[0086] 实施例4:
[0087] 参见图4所示,本实施例公开了一种三层交换机的路由资源控制系统,包括:
[0088] FIB管理配置模块,其用于为各接口板卡分配虚拟路由域、对应的芯片路由实例索引和可分配的FIB表容量,记录各接口板卡的虚拟路由域索引和对应的芯片路由实例索引;
[0089] 主控FIB表管理模块,其用于获取主控制卡收到的添加、删除或更新的路由消息,根据路由消息中的路由虚拟域索引查找各接口板卡的虚拟路由域索引记录,获得对应的接口板卡;将路由消息转换为FIB表消息,发给对应的接口板卡;并根据路由消息更新主控制卡的活跃FIB哈希表,主控制卡的活跃FIB哈希表用于记录主控制卡中存在的所有FIB表;
[0090] 接口板卡FIB表管理模块,其用于获取接口板卡收到的FIB表消息,转换为以芯片路由实例索引+目的IP+目的掩码为索引,对接口板卡的芯片执行FIB表消息对应的添加、删除或更新FIB表的操作。
[0091] 本发明所用到的数据结构包括:
[0092] 接口板卡的虚拟路由域信息数组,用于记录每个端口的虚拟路由域索引和名字、分配的FIB表数量、实际已经占用的FIB表数量、芯片路由实例索引;
[0093] 接口板卡的FIB表数组,用于记录每个接口板卡的硬件FIB表容量和当前已分配使用的FIB表容量;
[0094] 主控制卡的活跃FIB哈希表,用于记录软件FIB表在各个控制卡的硬件状态、命中标志和统计信息,该哈希表的索引是芯片路由实例索引+目的IP地址+目的掩码;
[0095] 接口板卡的非活跃FIB哈希表,用于记录接口卡硬件不存在的软件FIB表,该表项的结构成员和索引方式类似主控制卡的FIB哈希表。
[0096] 实施例5:
[0097] 在实施例4的基础上,该系统还包括FIB表超时检测模块,其用于每经过轮询周期,获取接口板卡内的FIB表的活跃度,若存在经过设定周期数仍不活跃的FIB表,向主控制卡发出删除超时FIB表通知,删除超时FIB表通知包含接口板卡号;
[0098] 主控FIB表管理模块还用于获取主控制卡收到的删除超时FIB表通知,获得不活跃的FIB表所在的接口板卡号,提取虚拟路由域索引+目的IP+目的掩码为索引,查找主控制卡的活跃FIB哈希表,将查找到的FIB表删除;生成超时删除FIB表消息,发给接口板卡号对应的接口板卡;
[0099] 接口板卡FIB表管理模块还用于获取接口板卡收到的超时删除FIB表消息,根据接口板卡的芯片路由实例索引,对接口板卡的芯片执行删除FIB表的操作;并在接口板卡的接口板卡的非活跃FIB哈希表中增加被删除的FIB表条目,接口板卡的非活跃FIB哈希表用于记录接口板卡不存在的FIB表。
[0100] 该系统还包括接口板卡缺失路由通告模块和主控路由缺失消息模块;
[0101] 接口板卡缺失路由通告模块用于:接收接口板卡的芯片发送的缺失路由报文,提取芯片路由实例索引,查找接口板卡的非活跃FIB表记录,如果命中,向主控制卡发送缺失路由消息;
[0102] 主控路由缺失消息模块用于:获取接口板卡发送的缺失路由消息,根据缺失路由消息中的路由虚拟域索引,查找主控制卡的活跃FIB哈希表,如果命中,则将缺失路由消息发送至主控FIB表管理模块;
[0103] 主控FIB表管理模块还用于:获取主控制卡收到的缺失路由消息,根据缺失路由消息中的路由虚拟域索引,查找各接口板卡的虚拟路由域索引记录,获得对应的接口板卡;提取虚拟路由域索引+目的IP+目的掩码为索引,查找主控制卡的活跃FIB哈希表,将缺失路由消息转换为缺失FIB表新增消息,发给对应的接口板卡;并根据路由消息更新主控制卡的活跃FIB哈希表;
[0104] 接口板卡FIB表管理模块还用于:获取接口板卡收到的缺失路由新增消息,根据接口板卡的芯片路由实例索引,对接口板卡的芯片执行新增FIB表的操作;在接口板卡的接口板卡的非活跃FIB哈希表中删除被新增的FIB表条目。
[0105] 该系统还包括FIB管理初始化模块,其用于:初始化接口板卡的硬件FIB表容量;初始化主控制卡的活跃FIB哈希表和接口板卡的非活跃FIB哈希表、初始化定时器,轮询周期为3秒。
[0106] 实施例6:
[0107] 在实施例4的基础上,主控FIB表管理模块具体用于:
[0108] 收到新增路由消息时,根据路由消息中的路由虚拟域索引查找各接口板卡的虚拟路由域索引记录,获得匹配的接口板卡列表;将路由消息转换为新增FIB表消息,发给接口板卡列表中的接口板卡;并在主控制卡的活跃FIB哈希表中新增FIB表条目;
[0109] 收到删除路由消息时,根据路由消息中的路由虚拟域索引,查找各接口板卡的虚拟路由域索引记录,获得匹配的接口板卡列表;将路由消息转换为删除FIB表消息,发给接口板卡列表中的接口板卡;并在主控制卡的活跃FIB哈希表中删除FIB表条目;
[0110] 收到更新路由消息时,根据路由消息中的路由虚拟域索引查找各接口板卡的虚拟路由域索引记录,获得匹配的接口板卡和FIB表;若获得的FIB表下一跳出现改变,将路由消息转换为更新FIB表下一跳消息,发给匹配的接口板卡;并在主控制卡的活跃FIB哈希表中更新FIB表条目的信息。
[0111] 接口板卡FIB表管理模块具体用于:
[0112] 收到主控制卡FIB管理单元的新增FIB表消息时,转换为以芯片路由实例索引+目的IP+目的掩码为索引,向芯片添加该FIB表;
[0113] 收到主控制卡FIB管理单元的删除FIB表消息时,转换为以芯片路由实例索引+目的IP+目的掩码为索引,向芯片删除该FIB表;
[0114] 收到主控制卡FIB管理单元的更新FIB表下一跳消息时,转换为以芯片路由实例索引+目的IP+目的掩码为索引,更新芯片该FIB表中的下一跳信息。
[0115] 本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。