流量的控制方法、装置、电子设备及计算机可读存储介质制造方法及图纸

技术编号:27751535 阅读:18 留言:0更新日期:2021-03-19 13:47
本申请实施例提供了一种流量的控制方法、装置、电子设备及计算机可读存储介质。该方法包括:接收客户端发送的第一数据报文;通过在第一hook上设置的第一eBPF程序拦截第一数据报文,并确定第一数据报文中是否包含指定的特征信息;若包含,则对第一数据报文进行处理。基于本方案,能够通过eBPF程序代替iptables进行对sidecar的流量拦截,避免因使用nf_conntrack模块进行nat表的连接追踪时可能导致的过大性能消耗,避免出现丢包。

【技术实现步骤摘要】
流量的控制方法、装置、电子设备及计算机可读存储介质
本申请涉及计算机
,具体而言,本申请涉及一种流量的控制方法、装置、电子设备及计算机可读存储介质。
技术介绍
近年来,Servicemesh作为新一代微服务架构,逐渐被业界所接受,并迅速发展。其中,Istio尤为突出,其由控制面和数据面两部分组成。Sidecar作为Istio的数据面,对网格内流量进行拦截,具有服务治理和数据收集上报等功能。Netfilter/iptables((简称为iptables))是Linux2.4.x之后出现的Linux防火墙机制,是linux内核的一个子系统,其从用户态的iptables连接到内核态的Netfilter模块。Sidecar可以基于iptables进行流量拦截,Netfilter采用模块化设计,具有良好的可扩充性,并且位于网络协议栈的网络层,与IP协议栈无缝契合,允许使用者对数据报进行过滤、地址转换、处理等操作。Netfilter的连接跟踪(CONNTRACK)模块,用于跟踪并且记录连接状态。Linux为每一个经过网络堆栈的数据包,生成一个新的连接记录项(Connectionentry)。此后,所有属于此连接的数据包都被唯一地分配给这个连接,并标识连接的状态。连接跟踪是防火墙模块的状态检测的基础,同时也是地址转换中实现SNAT和DNAT的前提。现有技术中,iptables的nat表需要借助于conntrack模块实现连接跟踪,在连接数较多的情况下,会造成较大的性能消耗,出现丢包的问题。r>
技术实现思路
本申请的目的旨在至少能解决上述的技术缺陷之一。本申请所采用的技术方案如下:第一方面,本申请实施例提供了一种流量的控制方法,该方法包括:接收客户端发送的第一数据报文;通过在第一hook上设置的第一eBPF程序拦截第一数据报文,并确定第一数据报文中是否包含指定的特征信息;若包含,则对第一数据报文进行处理。可选地,通过在第一hook上设置的第一eBPF程序拦截第一数据报文,包括:通过在XDP提供的第一hook上设置的第一eBPF程序拦截第一数据报文。可选地,对第一数据报文进行处理,包括以下任一项:基于第一数据报文进行系统性能分析;对第一数据报文进行报文过滤;对第一数据报文进行流量分类;对第一数据报文进行流量转发。可选地,在对第一数据报文进行处理并生成第二数据报文后,上述方法还包括:通过在第二hook上设置的第二eBPF程序拦截第二数据报文,并对第二数据报文进行处理。可选地,通过在第二hook上设置的第二eBPF程序拦截第二数据报文,包括:通过在TC层提供的第二hook上设置的第二eBPF程序拦截第二数据报文。可选地,通过在TC层提供的第二hook上设置的第二eBPF程序拦截第二数据报文,包括:通过在TC层上的clsact提供的第二hook上设置的第二eBPF程序拦截第二数据报文。第二方面,本申请实施例提供了一种流量的控制装置,该装置包括:报文接收模块,用于接收客户端发送的第一数据报文;特征信息确定模块,用于通过在第一hook上设置的第一eBPF程序拦截第一数据报文,并确定第一数据报文中是否包含指定的特征信息;流量的控制模块,用于在第一数据报文中包含指定的特征信息时,对第一数据报文进行处理。可选地,特征信息确定模块在通过在第一hook上设置的第一eBPF程序拦截第一数据报文时,具体用于:通过在XDP提供的第一hook上设置的第一eBPF程序拦截第一数据报文。可选地,流量的控制模块在对第一数据报文进行处时,具体用于以下任一项。基于第一数据报文进行系统性能分析;对第一数据报文进行报文过滤;对第一数据报文进行流量分类;对第一数据报文进行流量转发。可选地,上述流量的控制模块还用于:在对第一数据报文进行处理并生成第二数据报文后,通过在第二hook上设置的第二eBPF程序拦截第二数据报文,并对第二数据报文进行处理。可选地,上述流量的控制模块在通过在第二hook上设置的第二eBPF程序拦截第二数据报文时,具体用于:通过在TC层提供的第二hook上设置的第二eBPF程序拦截第二数据报文。可选地,上述流量的控制模块在通过在TC层提供的第二hook上设置的第二eBPF程序拦截第二数据报文时,具体用于:通过在TC层上的clsact提供的第二hook上设置的第二eBPF程序拦截第二数据报文。可选地,特征信息包括以下至少一项:进程号;应用代码;目的IP。第三方面,本申请实施例提供了一种电子设备,该电子设备包括:处理器和存储器;存储器,用于存储操作指令;处理器,用于通过调用操作指令,执行如本申请的第一方面的任一实施方式中所示的流量的控制方法。第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本申请的第一方面的任一实施方式中所示的流量的控制方法。本申请实施例提供的技术方案带来的有益效果是:本申请提供的方案,在接收到客户端发送的第一数据报文时,通过在第一hook上设置的第一eBPF程序拦截第一数据报文,并在确定第一数据报文中包含指定的特征信息时,对第一数据报文进行处理。基于本方案,能够通过eBPF程序代替iptables进行对sidecar的流量拦截,避免因使用nf_conntrack模块进行nat表的连接追踪时可能导致的过大性能消耗,避免出现丢包。附图说明为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。图1为本申请实施例提供的一种流量的控制方法的流程示意图;图2为本申请实施例提供的一种流量的控制装置的结构示意图;图3为本申请实施例提供的一种电子设备的结构示意图。具体实施方式下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本专利技术的限制。本
技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全本文档来自技高网...

【技术保护点】
1.一种流量的控制方法,其特征在于,包括:/n接收客户端发送的第一数据报文;/n通过在第一钩子hook上设置的第一eBPF程序拦截所述第一数据报文,并确定所述第一数据报文中是否包含指定的特征信息;/n若包含,则对所述第一数据报文进行处理。/n

【技术特征摘要】
1.一种流量的控制方法,其特征在于,包括:
接收客户端发送的第一数据报文;
通过在第一钩子hook上设置的第一eBPF程序拦截所述第一数据报文,并确定所述第一数据报文中是否包含指定的特征信息;
若包含,则对所述第一数据报文进行处理。


2.根据权利要求1所述的方法,其特征在于,通过在第一hook上设置的第一eBPF程序拦截所述第一数据报文,包括:
通过在XDP提供的第一hook上设置的第一eBPF程序拦截所述第一数据报文。


3.根据权利要求1所述的方法,其特征在于,对所述第一数据报文进行处理,包括以下任一项:
基于所述第一数据报文进行系统性能分析;
对所述第一数据报文进行报文过滤;
对所述第一数据报文进行流量分类;
对所述第一数据报文进行流量转发。


4.根据权利要求1所述的方法,其特征在于,在对所述第一数据报文进行处理并生成第二数据报文后,所述方法还包括:
通过在第二hook上设置的第二eBPF程序拦截所述第二数据报文,并对所述第二数据报文进行处理。


5.根据权利要求4所述的方法,其特征在于,所述通过在第二hook上设置的第二eBPF程序拦截所述第二数据报文,包括:
通过在TC层提供的第二hook上设置的第...

【专利技术属性】
技术研发人员:王赟王晶
申请(专利权)人:中信银行股份有限公司
类型:发明
国别省市:北京;11

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

1