一种容器间的通信方法、装置、电子设备及存储介质与流程

文档序号:29413728发布日期:2022-03-26 12:31阅读:76来源:国知局
1.本技术涉及网络安全
技术领域
:,具体而言,涉及一种容器间的通信方法、装置、电子设备及存储介质。
背景技术
::2.容器技术可以看作一种轻量级的虚拟化方式,将应用与必要的执行环境打包成容器镜像,使得应用程序可以直接在宿主机(物理机或虚拟机)中相对独立地运行。容器是在操作系统层进行应用隔离,可在宿主机内核上运行多个独立的应用运行环境。相比于传统的应用测试与部署,容器的部署无需预先考虑应用的运行环境兼容性问题;相比于传统虚拟机,容器无需独立的操作系统内核就可在宿主机中运行,实现了更高的运行效率与资源利用率。3.现有技术中,容器之间的安全防护,类似于传统虚拟机安全,需要对容器之间传输的数据报文进行检测过滤,其中一种方式是通过linux底层nfq技术;由于安全手段复杂,在保证端到端通信的有效安全防护的同时,牺牲通信性能是必然选择,类比于传统安全防护在通信链路中加入防火墙等安全设备,会损耗一部分通信资源,同样地,在容器环境下,容器间的访问控制等安全手段也会增加路程开销,而容器环境下,还面临诸如容器数量众多,启停灵活,数据传输过程地址多次转换等考验,安全负担加重,性能损耗更为严重。因此,提高容器环境安全防护时的通信效率显得尤为重要。技术实现要素:4.本技术实施例的目的在于提供一种,可以在保证容器的安全防护性能的前提下,实现优化通信性能的技术效果。5.第一方面,本技术实施例提供了一种容器间的通信方法,包括:6.配置快速通信连接路径;7.获取指令标记以及第一容器或第二容器生成的会话连接信息;8.将所述指令标记添加至所述会话连接信息,生成快速连接信息;9.根据所述快速连接信息和所述快速通信连接路径建立所述第一容器和所述第二容器的通信连接。10.在上述实现过程中,该容器间的通信方法通过配置快速通信连接路径,根据附加有标记指令的快速连接信息和快速通信连接路径建立第一容器和第二容器的通信连接,从而在之后的第一容器或第二容器之间进行通信的过程中,可通过快速通信连接路径进行剩余数据报文的快速路径转发;从而,该容器间的通信方法无需在内核里安装插件模块或定义agent下发送私有协议等方式,在实现容器间的快速连接的同时,避免了进行安全防护的过程引入新的组件,增加新的安全隐患,在不对内核进行更改的情况下,有效提升通信性能,对安全防护效果有相当大的支撑作用;因此,该容器间的通信方法可以在保证容器的安全防护性能的前提下,实现优化通信性能的技术效果。11.进一步地,在所述配置快速通信连接路径的步骤之后,还包括:12.将所述快速通信连接路径下发至系统内核。13.在上述实现过程中,在快速通信连接路径配置完成后,将快速通信连接路径下发至系统内核,由系统内核完成快速通信连接路径的应用。14.进一步地,在所述将所述快速通信连接路径下发至系统内核的步骤之后,还包括:15.根据安全功能组件对所述快速通信连接路径进行检测,生成安全连接信息。16.在上述实现过程中,通过安全连接信息可主动判定安全状态,对快速通信连接路径的安全性进行检测,有效提升安全防护。17.进一步地,在所述获取第一容器或第二容器生成的会话连接信息的步骤之前,还包括:18.配置nfq重定向通信连接路径;19.将所述nfq重定向通信连接路径下发至系统内核。20.在上述实现过程中,在配置快速通信连接路径之外,配置nfq重定向通信连接路径;从而,通过nfq重定向通信连接路径完成第一容器和第二容器的初次通信连接;以及在快速通信连接路径不能使用时,仍可通过nfq重定向通信连接路径实现第一容器和第二容器之间的通信。21.进一步地,在所述获取第一容器或第二容器生成的会话连接信息的步骤之前,还包括:22.在所述第一容器和所述第二容器的连接建立前,由topagent配置两条iptables访问控制规则并下发至系统内核,其中第一条为对应于快速通信连接路径的快速路径规则,即当报文带有指令标记的时候,直接转发;第二条为对应于所述nfq重定向通信连接路径的nfq规则,即所有报文均由nfq进行重定向到安全服务容器进程中。23.进一步地,所述将所述指令标记添加至所述会话连接信息,生成快速连接信息的步骤,包括:24.通过netlink消息给所述会话连接信息添加所述指令标记,生成所述快速连接信息。25.第二方面,本技术实施例提供了一种容器间的通信装置,包括:26.配置模块,用于配置快速通信连接路径;27.连接信息获取模块,用于获取指令标记以及第一容器或第二容器生成的会话连接信息;28.标记添加模块,用于将所述指令标记添加至所述会话连接信息,生成快速连接信息;29.通信建立模块,用于根据所述快速连接信息和所述快速通信连接路径建立所述第一容器和所述第二容器的通信连接。30.进一步地,所述容器间的通信装置还包括:31.下发模块,用于将所述快速通信连接路径下发至系统内核。32.进一步地,所述容器间的通信装置还包括:33.安全连接模块,用于根据安全功能组件对所述快速通信连接路径进行检测,生成安全连接信息。34.进一步地,所述配置模块还用于配置nfq重定向通信连接路径;35.所述下发模块还用于将所述nfq重定向通信连接路径下发至系统内核。36.进一步地,所述标记添加模块具体用于通过netlink消息给所述会话连接信息添加所述指令标记,生成所述快速连接信息。37.第三方面,本技术实施例提供的一种电子设备,包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面任一项所述的方法的步骤。38.第四方面,本技术实施例提供的一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,使得所述计算机执行如第一方面任一项所述的方法。39.第五方面,本技术实施例提供的一种计算机程序产品,所述计算机程序产品在计算机上运行时,使得计算机执行如第一方面任一项所述的方法。40.本技术公开的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本技术公开的上述技术即可得知。41.为使本技术的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。附图说明42.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。43.图1为本技术实施例提供的一种容器间的通信方法的流程示意图;44.图2为本技术实施例提供的第一容器计算节点和第二容器计算节点的示意图;45.图3为本技术实施例提供的另一种容器间的通信方法的流程示意图;46.图4为本技术实施例提供的容器间的通信装置的结构框图;47.图5为本技术实施例提供的一种电子设备的结构框图。具体实施方式48.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。49.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本技术的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。50.本技术实施例提供了一种容器间的通信方法、装置、电子设备及存储介质,可以应用于容器间的通信连接和访问控制中;该容器间的通信方法通过配置快速通信连接路径,根据附加有标记指令的快速连接信息和快速通信连接路径建立第一容器和第二容器的通信连接,从而在之后的第一容器或第二容器之间进行通信的过程中,可通过快速通信连接路径进行剩余数据报文的快速路径转发;从而,该容器间的通信方法无需在内核里安装插件模块或定义agent下发送私有协议等方式,在实现容器间的快速连接的同时,避免了进行安全防护的过程引入新的组件,增加新的安全隐患,在不对内核进行更改的情况下,有效提升通信性能,对安全防护效果有相当大的支撑作用;因此,该容器间的通信方法可以在保证容器的安全防护性能的前提下,实现优化通信性能的技术效果。51.需要注意的是,第一容器、第二容器部署在各自的容器计算节点;本技术实施例的场景前提为:在通信两端的容器计算节点(第一容器和第二容器)上,均部署安全服务容器topagent(现有产品),topagent中包含了标签控制逻辑和高级的防御功能,用来管理两端容器所配置的访问控制策略,同时能够向容器计算节点的系统内核下发iptables指令。52.在本技术实施例中,nfq是nfqueue的缩写,nfqueue是一个iptables和ip6tables目标,它将数据包的决定委托给用户空间软件。例如,以下规则将要求所有去往包的数据包都要听取用户安全计划的决定。当一个数据包到达一个nfqueue目标时,它就会进入与‑‑queue-num选项给定的编号对应的队列。即nfq是在内核中实现流量重定向的一种技术。53.请参见图1和图2,图1为本技术实施例提供的一种容器间的通信方法的流程示意图,图2为本技术实施例提供的第一容器计算节点和第二容器计算节点的示意图。54.如图2所示,第一容器部署在第一容器计算节点上,第二容器部署在第二容器计算节点上;每个容器计算节点上均部署安全服务容器topagent,topagent中包含了标签控制逻辑和高级的防御功能,用来管理两端容器所配置的访问控制策略,同时能够向容器计算节点的系统内核下发iptables指令。55.该容器间的通信方法包括如下步骤:56.s100:配置快速通信连接路径。57.示例性地,配置快速通信连接路径,即由topagent配置iptables访问控制规则,配置快速通信连接路径示例如下:58.iptables-tmangle-ataechain-mconnmark–mark0xeeef-jaccept;59.上述即为快速通信连接路径对应的快速路径规则,其中“0xeeef”为指令标记;当数据报文带有指令标记的时候,可以直接经由快速通信连接路径直接转发,而不必经过nfq重定向。60.s200:获取指令标记以及第一容器或第二容器生成的会话连接信息。61.s300:将指令标记添加至会话连接信息,生成快速连接信息。62.示例性地,在第一容器和第二容器建立通信连接时,第一容器或第二容器生成会话连接信息,将会话连接信息打上“0xeeef“的指令标记;如此,第一容器或第二容器后续的数据报文就会命中快速通信连接路径,结果为accept直接放行,数据报文不再经过nfq重定向。63.示例性地,会话连接信息是一个五元组数据,五元组数据中包括源ip地址、源端口、目的ip地址、目的端口和传输层协议,即五元组数据是源ip地址、源端口、目的ip地址、目的端口和传输层协议这五个量组成的一个集合。五元组能够区分不同会话,并且对应的会话是唯一的。64.s400:根据快速连接信息和快速通信连接路径建立第一容器和第二容器的通信连接。65.示例性地,快速连接信息附加有指令标记,通过快速通信连接路径建立第一容器和第二容器的通信连接,进行快速路径转发;从而,该容器间的通信方法在不添加任何组件的情况下,在保证容器的安全防护性能的前提下,有效提升安全防护的性能。66.在一些实施方式中,该容器间的通信方法通过配置快速通信连接路径,根据附加有标记指令的快速连接信息和快速通信连接路径建立第一容器和第二容器的通信连接,从而在之后的第一容器或第二容器之间进行通信的过程中,可通过快速通信连接路径进行剩余数据报文的快速路径转发;从而,该容器间的通信方法无需在内核里安装插件模块或定义agent下发送私有协议等方式,在实现容器间的快速连接的同时,避免了进行安全防护的过程引入新的组件,增加新的安全隐患,在不对内核进行更改的情况下,有效提升通信性能,对安全防护效果有相当大的支撑作用;因此,该容器间的通信方法可以在保证容器的安全防护性能的前提下,实现优化通信性能的技术效果。67.请参见图3,图3为本技术实施例提供的另一种容器间的通信方法的流程示意图。68.示例性地,在s100:配置快速通信连接路径的步骤之后,还包括:69.s110:将快速通信连接路径下发至系统内核。70.示例性地,在快速通信连接路径配置完成后,将快速通信连接路径下发至系统内核,由系统内核完成快速通信连接路径的应用。71.在一些实施场景中,由topagent完成快速通信连接路径的配置,以及由topagent将配置完成的快速通信连接路径下发至系统内核。72.示例性地,在s110:将快速通信连接路径下发至系统内核的步骤之后,还包括:73.s120:根据安全功能组件对快速通信连接路径进行检测,生成安全连接信息。74.示例性地,通过安全连接信息可主动判定安全状态,对快速通信连接路径的安全性进行检测,有效提升安全防护。75.在一些实施场景中,topagent中的安全功能组件,如防火墙、ips(intrusionpreventionsystem,入侵防御系统)等完成对此次连接的检测,判定快速通信连接路径的连接安全后,再下发快速通信连接路径至系统内核。76.示例性地,在s200:获取第一容器或第二容器生成的会话连接信息的步骤之前,还包括:77.s201:配置nfq重定向通信连接路径;78.s202:将nfq重定向通信连接路径下发至系统内核。79.示例性地,在配置快速通信连接路径之外,配置nfq重定向通信连接路径;从而,通过nfq重定向通信连接路径完成第一容器和第二容器的初次通信连接;以及在快速通信连接路径不能使用时,仍可通过nfq重定向通信连接路径实现第一容器和第二容器之间的通信。80.在一些实施场景中,由topagent配置iptables访问控制规则,配置nfq重定向通信连接路径示例如下:81.iptables-tmangle-ataechain-ptcp-mset-jnfqueue‑‑queue-num8‑‑queue-bypass;82.示例性地,第一容器与第二容器建立通信连接时,通过完成三次握手的数据报文的安全检测,使第一容器与第二容器的通信连接建立,之后持续发送数据报文,后续的数据报文继续由nfq重定向到topagent进行安全检测。83.示例性地,s300:将指令标记添加至会话连接信息,生成快速连接信息的步骤,包括:84.s310:通过netlink消息给会话连接信息添加指令标记,生成快速连接信息。85.示例性地,netlink消息是用以实现用户进程与内核进程通信的一种特殊的进程间通信,也是网络应用程序与内核通信的最常用的接口。86.示例性地,随着it技术不断发展,容器的轻量化特点使该技术在云计算中广泛应用,由于容器属于更细粒度的识别单元,不像虚拟机那样与传统硬件设备有类似的网络属性,容器间的安全无疑是巨大的威胁挑战。容器集群提供桥接网络、macvlan、覆盖网络等多种组网模式,可分别实现同一宿主机内容器互联、跨宿主机容器互联、容器集群网络等网络模式,同时容器与宿主机共享操作系统内核,引入容器与宿主机之间、容器与容器之间隔离方面的安全风险。容器间的访问控制也不能像传统配置五元组访问控制策略一样进行安全防护,多次nat(networkaddresstranslation,网络地址转换)使得ip寻址非常复杂,进而导致容器环境的安全防护难度加剧。容器之间的安全防护,类似于传统虚拟机安全,需要对容器之间传输的数据报文进行检测过滤,其中一种方式是通过linux底层nfq技术,将数据报文重定向给安全防护组件,nfq(全称nfqueue)是一个iptables和ip6tables规则的一个目标,它将数据包重定向给用户空间进程,由用户空间进程判定该数据包是放行还是丢弃。当一个数据包到达一个nfq目标时,它就会进入与‑‑queue-num选项给定的编号对应的队列。87.传统的技术方案通过在系统内核中添加内核插件模块,即增加了内核驱动程序,通过内核驱动模块实现数据报文重定向和性能加速。但是,在内核中添加驱动程序,需要适配系统内核,不同的云平台对应的驱动要进行修改;此外,内核中添加插件,也增加了内核的安全隐患。88.示例性地,本技术实施例提供的容器间的通信方法,是建立从一个计算节点的第一容器访问另一个计算节点的第二容器的通信连接,且第一容器和第二容器的访问控制等安全防护由topagent提供。建立连接时,第一容器、第二容器发送出数据包会通过底层nfq实现重定向,将数据包重定向到topagent中,topagent作为安全防护组件,掌握访问控制策略,可以做对应的策略匹配以提供安全防护,从而实现第一容器、第二容器之间数据报文均能逐一过滤检查。89.在第一容器和第二容器的连接建立前,由topagent配置两条iptables访问控制规则并下发至系统内核,其中第一条为对应于快速通信连接路径的快速路径规则,即当报文带有指令标记的时候,直接转发;第二条为对应于nfq重定向通信连接路径的nfq规则,即所有报文均由nfq进行重定向到安全服务容器进程中。90.上述过程虽可以实现容器间数据报文的逐个安全检测与防护,但重定向过程极大的影响了通信效率,降低了传输性能。本技术实施例的性能优化方法,针对上述问题,提出了通过在nfq的基础上增加iptables快速路径(即快速通信连接路径)的方法,以topagent作为指令端,确定数据报文为安全时,下发快速路径指令至系统内核,将该连接的剩余数据报文直接通过内核中的快速路径转发。从而,本技术的性能优化方法,解决了容器环境安全防护组件对数据报文重定向后导致的通信性能降低的问题,有效的提高了整体安全防护性能。91.示例性地,本技术实施例提供的容器间的通信方法借助原生的机制,在不添加任何组件的情况下,有效提升安全防护的性能,该方法并没有在内核里安装插件模块,或定义agent向下发送私有协议等方式,避免了进行安全防护的过程引入新的组件,增加新的安全隐患,在不对内核进行更改的情况下,有效提升通信性能,对安全防护效果有相当大的支撑作用。92.请参见图4,图4为本技术实施例提供的容器间的通信装置的结构框图,该容器间的通信装置包括:93.配置模块100,用于配置快速通信连接路径;94.连接信息获取模块200,用于获取指令标记以及第一容器或第二容器生成的会话连接信息;95.标记添加模块300,用于将指令标记添加至会话连接信息,生成快速连接信息;96.通信建立模块400,用于根据快速连接信息和快速通信连接路径建立第一容器和第二容器的通信连接。97.示例性地,容器间的通信装置还包括:98.下发模块,用于将快速通信连接路径下发至系统内核。99.示例性地,容器间的通信装置还包括:100.安全连接模块,用于根据安全功能组件对快速通信连接路径进行检测,生成安全连接信息。101.示例性地,配置模块100还用于配置nfq重定向通信连接路径;102.下发模块还用于将nfq重定向通信连接路径下发至系统内核。103.示例性地,标记添加模块300具体用于通过netlink消息给会话连接信息添加指令标记,生成快速连接信息。104.应理解,图4所示的容器间的通信装置与图1至图3所示的方法实施例相对应,为避免重复,此处不再赘述。105.本技术还提供一种电子设备,请参见图5,图5为本技术实施例提供的一种电子设备的结构框图。电子设备可以包括处理器510、通信接口520、存储器530和至少一个通信总线540。其中,通信总线540用于实现这些组件直接的连接通信。其中,本技术实施例中电子设备的通信接口520用于与其他节点设备进行信令或数据的通信。处理器510可以是一种集成电路芯片,具有信号的处理能力。106.上述的处理器510可以是通用处理器,包括中央处理器(cpu,centralprocessingunit)、网络处理器(np,networkprocessor)等;还可以是数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器510也可以是任何常规的处理器等。107.存储器530可以是,但不限于,随机存取存储器(ram,randomaccessmemory),只读存储器(rom,readonlymemory),可编程只读存储器(prom,programmableread-onlymemory),可擦除只读存储器(eprom,erasableprogrammableread-onlymemory),电可擦除只读存储器(eeprom,electricerasableprogrammableread-onlymemory)等。存储器530中存储有计算机可读取指令,当所述计算机可读取指令由所述处理器510执行时,电子设备可以执行上述图1至图3方法实施例涉及的各个步骤。108.可选地,电子设备还可以包括存储控制器、输入输出单元。109.所述存储器530、存储控制器、处理器510、外设接口、输入输出单元各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通信总线540实现电性连接。所述处理器510用于执行存储器530中存储的可执行模块,例如电子设备包括的软件功能模块或计算机程序。110.输入输出单元用于提供给用户创建任务以及为该任务创建启动可选时段或预设执行时间以实现用户与服务器的交互。所述输入输出单元可以是,但不限于,鼠标和键盘等。111.可以理解,图5所示的结构仅为示意,所述电子设备还可包括比图5中所示更多或者更少的组件,或者具有与图5所示不同的配置。图5中所示的各组件可以采用硬件、软件或其组合实现。112.本技术实施例还提供一种存储介质,所述存储介质上存储有指令,当所述指令在计算机上运行时,所述计算机程序被处理器执行时实现方法实施例所述的方法,为避免重复,此处不再赘述。113.本技术还提供一种计算机程序产品,所述计算机程序产品在计算机上运行时,使得计算机执行方法实施例所述的方法。114.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本技术的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。115.另外,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。116.所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。117.以上所述仅为本技术的实施例而已,并不用于限制本技术的保护范围,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。118.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本
技术领域
:的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应所述以权利要求的保护范围为准。119.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1