基于eBPF的容器网络实现方法、装置、设备及介质制造方法及图纸

技术编号:36185926 阅读:15 留言:0更新日期:2022-12-31 20:49
本发明专利技术公开了基于eBPF的容器网络实现方法、装置、设备及介质,方法包括:根据所输入的转换指令将预存的eBPF程序转换成可运行的目标eBPF程序;若检测到网络数据包到达网络设备,触发快速网络路径XDP的网络钩子调用相应的目标eBPF程序;运行所述目标eBPF程序以对所述网络数据包进行处理并返回相应的处理结果;当所返回的处理结果为通过时,将所述网络数据包发送至目标网络栈。通过上述方法,能够实现提高网络连通中对网络数据包的处理速度以及效率,降低高延时性能的效果。降低高延时性能的效果。降低高延时性能的效果。

【技术实现步骤摘要】
基于eBPF的容器网络实现方法、装置、设备及介质


[0001]本专利技术涉及计算机
,尤其涉及一种基于eBPF的容器网络实现方法、装置、设备及介质。

技术介绍

[0002]业界容器网络方案非常多,不同的网络插件各有优势,还有大量针对网络性能、网络延迟、四层负载均衡的优化措施,通过多网络插件和调优的方式或许可以进一步满足业务需求,但存在支持场景不够通用化、高IO场景下性能瓶颈、不具备安全能力等问题。
[0003]目前,现有容器网络的安全策略技术大多基于Iptables实现,摆脱不了Iptables性能差的问题,尤其是每个节点上会设置大量的Iptables规则/路由,运维维护难度大;而为提高容器网络性能所采用的BGP方案实现的路由数目与容器数目相同,非常容易超过路由器、三层交换和宿主机的处理能力,进而限制整个网络的扩张;同时,BPG模式无叠加模式的封包/解包过程,并要求网络联通的所有设备支持BGP。

技术实现思路

[0004]本专利技术实施例提供了一种基于eBPF的容器网络实现方法、装置、设备及介质,旨在解决现有技术方法中所存在的网络连通中对网络数据包的处理速度慢,效率低,高延时性能的问题。
[0005]第一方面,本专利技术实施例提供了一种基于eBPF的容器网络实现方法,所述方法包括:
[0006]根据所输入的转换指令将预存的eBPF程序转换成可运行的目标eBPF程序;
[0007]若检测到网络数据包到达网络设备,触发快速网络路径XDP的网络钩子调用相应的目标eBPF程序;
[0008]运行所述目标eBPF程序以对所述网络数据包进行处理并返回相应的处理结果;
[0009]当所返回的处理结果为通过时,将所述网络数据包发送至目标网络栈。
[0010]第二方面,本专利技术实施例提供了一种基于eBPF的容器网络实现装置,其包括:
[0011]程序转换单元,用于根据所输入的转换指令将预存的eBPF程序转换成可运行的目标eBPF程序;
[0012]触发单元,用于若检测到网络数据包到达网络设备,触发快速网络路径XDP的网络钩子调用相应的目标eBPF程序;
[0013]运行单元,用于运行所述目标eBPF程序以对所述网络数据包进行处理并返回相应的处理结果;
[0014]第一处理单元,用于当所返回的处理结果为通过时,将所述网络数据包发送至目标网络栈。
[0015]第三方面,本专利技术实施例又提供了一种计算机设备,其包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序
时实现上述第一方面所述的基于eBPF的容器网络实现方法。
[0016]第四方面,本专利技术实施例还提供了一种计算机可读存储介质,其中所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行上述第一方面所述的基于eBPF的容器网络实现方法。
[0017]本专利技术实施例提供了一种基于eBPF的容器网络实现方法、装置、设备及介质,该方法包括根据所输入的转换指令将预存的eBPF程序转换成可运行的目标eBPF程序;若检测到网络数据包到达网络设备,触发快速网络路径XDP的网络钩子调用相应的目标eBPF程序;运行所述目标eBPF程序以对所述网络数据包进行处理并返回相应的处理结果;当所返回的处理结果为通过时,将所述网络数据包发送至目标网络栈。通过上述方法,本专利技术实施例可实现网络连通中对网络数据包的处理速度慢,效率低,高延时性能的效果。
附图说明
[0018]为了更清楚地说明本专利技术实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0019]图1为本专利技术实施例提供的基于eBPF的容器网络实现方法的流程示意图;
[0020]图2为本专利技术实施例提供的基于eBPF的容器网络实现方法的子流程示意图;
[0021]图3为本专利技术实施例提供的基于eBPF的容器网络实现装置的示意性框图;
[0022]图4为本专利技术实施例提供的基于eBPF的容器网络实现装置的程序转换单元的示意性框图;
[0023]图5为本专利技术实施例提供的计算机设备的示意性框图。
具体实施方式
[0024]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0025]应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
[0026]还应当理解,在此本专利技术说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本专利技术。如在本专利技术说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
[0027]还应当进一步理解,在本专利技术说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
[0028]请参阅图1,图1为本专利技术实施例提供的基于eBPF的容器网络实现方法的流程示意图;该基于eBPF的容器网络实现方法可应用在管理服务器上,管理服务器可通过将预设的eBPF程序转换成可运行的目标eBPF程序后,调用该目标eBPF程序对网络数据包进行处理,并在接收到处理结果后对网络数据包进行相应的处理。以下将以管理服务器的角度对本实
施例进行说明。如图1所示,该方法包括步骤S110~S160。
[0029]S110、根据所输入的转换指令将预存的eBPF程序转换成可运行的目标eBPF程序。
[0030]其中,eBPF是一种数据包过滤技术,是从BPF(Berkeley Packet Filter)技术扩展而来的。BPF提供了一种在内核事件和用户程序事件发生时安全注入代码的机制,而eBPF将原本单一的数据包过滤事件逐步扩展到了内核态函数、用户态函数、跟踪点、性能事件(perf_events)以及安全控制等,同时,eBPF不仅扩展了寄存器的数量,引入了全新的BPF映射存储。通过使用eBPF后,网络数据包的处理链路缩短了很多,还支持在网卡驱动中运行eBPF,无需将网络流量包发送到负责的协议栈进行处理,提高了网络数据包的处理速度和效率。
[0031]服务器中预先存储有至少一个eBPF程序,当服务器检测到用户所输入的转换指令,即可获取与转换指令对应的预设eBPF程序并转换为可运行的目标eBPF程序。其中,服务器中预先存储的eBPF程序可以本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于eBPF的容器网络实现方法,其特征在于,所述方法包括:根据所输入的转换指令将预存的eBPF程序转换成可运行的目标eBPF程序;若检测到网络数据包到达网络设备,触发快速网络路径XDP的网络钩子调用相应的目标eBPF程序;运行所述目标eBPF程序以对所述网络数据包进行处理并返回相应的处理结果;当所返回的处理结果为通过时,将所述网络数据包发送至目标网络栈。2.根据权利要求1所述的基于eBPF的容器网络实现方法,其特征在于,所述方法还包括:当所返回的处理结果为重定向时,将所述网络数据包发送至其他主机。3.根据权利要求1所述的基于eBPF的容器网络实现方法,其特征在于,当所返回的处理结果为丢弃时,将所述网络数据包丢弃。4.根据权利要求1所述的基于eBPF的容器网络实现方法,其特征在于,所述根据所输入的转换指令将预存的eBPF程序转换成可运行的目标eBPF程序,包括:根据所输入的转换指令确定相应的预设的eBPF程序;采用LLVM将所确定的eBPF程序编译为对象文件;将所述对象文件加载到内核;将所述对象文件即时编译为相应的本地代码,并将该本地代码确定为可运行的目标eBPF程序。5.根据权利要求4所述的基于eBPF的容器网络实现方法,其特征在于,所述将所述对象文件加载到内核的步骤之后,包括:控制校验器对所述对象文件进行校验;其中,若接收到校验器发送的校验通过指令,将所述对象文件即时编译为相应的本地代码,...

【专利技术属性】
技术研发人员:姚夏冰吴典秋朱浩
申请(专利权)人:深圳前海环融联易信息科技服务有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1