本发明实施例涉及通信网络,尤其涉及一种数据包转发方法、装置、电子设备及存储介质。
背景技术:
1、传统网络设备需要处理大量的数据包转发,一般都使用专用的转发和交换芯片,但是,专业的转发和交换芯片硬件成本高,价格昂贵,并且芯片功能固化,扩展开发难度大。云时代下,以cpu为运算核心的设备,运算能力高,易扩展开发,但是,数据包处理需要在内核态和用户态之间进行多次切换和内存拷贝,存在数据处理性能瓶颈,难以支撑大业务、高并发下的流量转发,且配置和转发依靠单张路由表实现,管理较为复杂。
技术实现思路
1、本发明实施例中提供了一种数据包转发方法、装置、电子设备及存储介质,以实现三层流量负载均衡转发,打破专用三层转发芯片限制。
2、第一方面,本发明实施例中提供了一种数据包转发方法,所述方法包括:
3、从预设最长前缀匹配lpm表中,确定与目标数据包的目的ip地址相匹配的目标lpm表项;一个表项对应一个路由条目;
4、确定与所述目标lpm表项的下一跳地址属性关联的目标路由控制表项;
5、采用目标路由控制表项所记录的下一跳地址对目标数据包进行封装转发。
6、第二方面,本发明实施例中还提供了一种数据包转发装置,所述装置包括:
7、目标lpm表项确定模块,用于从预设最长前缀匹配lpm表中,确定与目标数据包的目的ip地址相匹配的目标lpm表项;一个表项对应一个路由条目;
8、目标路由控制表项确定模块,用于确定与所述目标lpm表项的下一跳地址属性关联的目标路由控制表项;
9、目标数据包封装转发模块,用于采用目标路由控制表项所记录的下一跳地址对目标数据包进行封装转发。
10、第三方面,本发明实施例中还提供了一种电子设备,包括:
11、一个或多个处理器;
12、存储装置,用于存储一个或多个程序;
13、所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明任意实施例中所提供的数据包转发方法。
14、第四方面,本发明实施例中还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例中所提供的数据包转发方法。
15、本发明实施例公开了一种数据包转发方法、装置、电子设备及存储介质。所述方法应用于三层交换设备,所述三层交换设备采用数据平面开发套件dpdk开发配置,所述方法包括:从预设最长前缀匹配lpm表中,确定与目标数据包的目的ip地址相匹配的目标lpm表项;一个表项对应一个路由条目;确定与所述目标lpm表项的下一跳地址属性关联的目标路由控制表项;采用目标路由控制表项所记录的下一跳地址对目标数据包进行封装转发。采用本发明实施例的技术方案,采用本发明实施例的技术方案,在进行数据包处理时,对lpm表进行扩展,新增路由控制表lpm_lb表用于路由控制,对于同一目的网段的lb_id以及对应的下一跳地址进行隐藏,显示路由控制表lpm_lb中对应条目的id,使表项内容更加合理和直观;以目标数据包的源ip地址作为哈希因子,对记录的至少两个候选下一跳地址进行哈希选路计算得到目标下一跳地址;采用所述目标下一跳地址对目标数据包进行封装转发,用于路由负载均衡的转发数据包;实现了三层流量负载均衡转发,打破了专用三层转发芯片的限制。
16、上述
技术实现要素:
仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
1.一种数据包转发方法,其特征在于,应用于三层交换设备,所述三层交换设备采用数据平面开发套件dpdk开发配置,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,确定与所述目标lpm表项的下一跳地址属性关联的目标路由控制表项,包括:
3.根据权利要求1或2所述的方法,其特征在于,所述lpm表项的下一跳地址属性对应记录有对下一跳地址路由进行控制的路由控制表项标识,所述路由控制表项的下一跳地址属性中对应记录有至少一个候选下一跳地址。
4.根据权利要求1所述的方法,其特征在于,采用目标路由控制表项所记录的下一跳地址对目标数据包进行封装转发,包括:
5.根据权利要求4所述的方法,其特征在于,从记录的至少两个候选下一跳地址中选取目标下一跳地址,包括:
6.根据权利要求2所述的方法,其特征在于,所述方法还包括:
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
8.一种数据包转发装置,其特征在于,应用于三层交换设备,所述三层交换设备采用数据平面开发套件dpdk开发配置,所述装置包括:
9.一种电子设备,其特征在于,包括:
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-7中任一所述的数据包转发方法。