基于拓扑嗅探的进程间网络流量追踪控制方法和系统技术方案

技术编号:37961458 阅读:10 留言:0更新日期:2023-06-30 09:36
本发明专利技术提供一种基于拓扑嗅探的进程间网络流量追踪控制方法和系统。本发明专利技术采用流量包监听的方式,对不同机器上的不同进程的流量进行追踪。勾勒出分布式环境下的进程间网络拓扑。因为采用的是操作系统底层的网络技术,和服务开发的语言或框架无关,和服务的生命周期管理无关。该发明专利技术同时考虑到了容器技术带来的挑战,通过对容器特有的端口转发信息进行监听,将容器内进程的流量拓扑也纳入到了该方法的观察范围内。本发明专利技术还具有能够快速生成拓扑信息。并且独立于服务部署的过程,可以在勾勒出服务间的网络流量拓扑后随时关闭。出服务间的网络流量拓扑后随时关闭。出服务间的网络流量拓扑后随时关闭。

【技术实现步骤摘要】
基于拓扑嗅探的进程间网络流量追踪控制方法和系统


[0001]本专利技术涉及流量控制
,特别涉及一种基于拓扑嗅探的进程间网络流量追踪控制方法和系统。

技术介绍

[0002]在陌生的部署环境中,尽管可能有部署说明,但是对运维人员来说,部署的服务间依赖关系混乱且不可观察,不利于服务运维管理。现有的基于流量抓包的方式,虽然能够捕获到某个进程的流量信息,但是被用作进程的流量统计等功能,对流量包的来源和去向不能直观的展现。如需排查相关信息需要运维人员对环境中部署的服务有相当的了解,而这往往是运维人员缺乏的。现有的基于流量抓包的方式,常常是对单节点机器上的数据进行分析。无法有效处理集群环境下的分布在不同机器间进程的流量分析。而眼下流行的分布式的服务开发方式,迫切需要一种能够勾勒分布式集群间进程流量拓扑的方法。使用链路追踪的方式对进程间的拓扑进行勾勒,是微服务中进行服务治理的常用手段。但是这种技术和服务采用的开发语言有关,并不是语言无关的通用方法。并且服务中需要引入相关的代码。对程序开发有侵入性,会占用必要的资源,并且会增加安全风险。对于目前的容器技术缺乏相应的技术手段来跟踪容器内的流量拓扑信息。
[0003]目前大部分基于流量抓包的工具,聚焦的都是单个进程的流量信息统计,如流量消耗总量,单位时间接收包数量等信息。对于流量包的来源和去向没有进行跟踪和分析;聚焦的都是单台机器上的流量信息,对于不同机器之间的流量拓扑信息没有进行展示;尽管捕获并勾勒了机器上的流量信息,但是展示信息的方式单一,使用需要用户具有足够的背景知识。
[0004]当前虚拟化容器技术,对容器内的网络进行的nat操作,使得单独通过流量抓包的方式已不能有效的对进程间网络流量拓扑进行勾勒。当前的分布式追踪技术,能够勾勒出服务间的流量信息,但是并不是一种通用的方式,依赖不同语言对sdk的具体支持,能够勾勒出服务间的流量信息,但是需要在开发编程时加入相关的代码。对服务有侵入性,开发后代码永久驻留在服务程序包中,有安全风险,能够勒出服务间的流量信息,但是追踪的相关逻辑对资源有额外的消耗,有些还需要部署额外的服务。另外追踪的相关逻辑和监听的宿主服务具有相同的生命周期,不是独立于宿主服务之外,不能够做到“插拔”的效果。

技术实现思路

[0005]为克服现有技术中存在的问题,本专利技术提供一种基于拓扑嗅探的进程间网络流量追踪控制方法和系统。本专利技术采用流量包监听的方式,对不同机器上的不同进程的流量进行追踪。勾勒出分布式环境下的进程间网络拓扑。因为采用的是操作系统底层的网络技术,和服务开发的语言或框架无关,和服务的生命周期管理无关。该技术同时考虑到了容器技术带来的挑战,通过对容器特有的端口转发信息进行监听,将容器内进程的流量拓扑也纳入到了该方法的观察范围内。本专利技术还具有能够快速生成拓扑信息。并且独立于服务部署
的过程,可以在勾勒出服务间的网络流量拓扑后随时关闭。
[0006]本专利技术由下述技术方案实现:
[0007]一种基于拓扑嗅探的进程间网络流量追踪控制方法,所述方法包括如下步骤:
[0008]步骤S100,采集器获取内核中访问网络连接状态及其相关信息,并将定时获取到的数据进行过滤、清洗以键值对的形式存储在数据库中;
[0009]步骤S200,采集器获取操作系统进程列表信息;
[0010]步骤S300,采集器通过在数据链路层加一个旁路来进行流量包的捕获;
[0011]步骤S400,采集器获取操作系统的网络信息,查看操作系统目录下的文件获取本地的流量包的记录信息;
[0012]步骤S500,采集器获取IP信息包过滤系统信息;
[0013]步骤S600,采集器获取经过网络堆栈流量包的连接记录项信息;
[0014]步骤S700,将步骤S300中记录的键值对在数据库中通过格式的变化找到对应的链接关系;
[0015]步骤S800,对于经过网卡的网络流量,通过分析步骤S400中的键值对和步骤S700中得到的对应的链接关系,得到两个进程间的网络通信关系,对于经过虚拟网络的网络流量,通过步骤S500和步骤S600,得到两个进程间的网络通信关系;
[0016]步骤S900,通过采集器得到所有节点各自的进程列表,并且得到了进程间的网络通信对应关系,形成一个有向图,该有向图构成当前分布式环境的网络流量拓扑关系;
[0017]步骤S1000,采集器持续进行流量包的监听和采集工作,并将采集到的流量包经过解析依照上述步骤对应到其发送进程或者接受进程上,经过一段时间的收集,追踪到进程的流量消耗数量、发送内容信息;
[0018]步骤S1100,通过可视化页面,展示进程间网络流量拓扑关系,并提供流量追踪信息的查询操作。
[0019]进一步的,步骤S200中,采用定时调用操作系统控制台命令的方式得到进程的进程号数组,然后遍历进程号数组,获取进程的详细信息。
[0020]进一步的,步骤S300中,当一个数据包到达网络接口时,首先从链路层驱动程序中获得该数据包的拷贝,再将数据包发给过滤器,过滤器根据定义好的过滤规则对数据包进行逐一匹配,匹配成功后放入内核缓冲区,并传递给用户缓冲区,匹配失败则直接丢弃。
[0021]进一步的,步骤S500中,采用定时调用操作系统控制台命令的方式得到容器内外部端口的映射信息。
[0022]进一步的,步骤S600中,采用定时调用操作系统控制台命令的方式得到链接记录项信息。
[0023]本专利技术还提供了一种基于拓扑嗅探的进程间网络流量追踪控制系统,所述系统包括进程间网络流量采集模块和进程间网络数据分析与展示模块;
[0024]进程间网络流量采集模块是网络流量采集器,操作系统层级提供接口对进程进行观测,通过操作系统的端口使用情况确定进程暴露的端口号,通过网卡获取到网络流量包并进行包的解析;
[0025]进程间网络数据分析与展示模块通过分析采集器提供的数据,分析出不同进程间的网络访问关系,勾勒整体的进程间网络拓扑,并通过可视化页面进行展示。
[0026]本专利技术还涉及一种电子设备,所述电子设备包括:
[0027]至少一个处理器;以及,
[0028]与所述至少一个处理器通信连接的存储器;其中,
[0029]所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行所述的方法。
[0030]本专利技术还涉及一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储计算机指令,该计算机指令用于使该计算机执行所述的方法。
[0031]本专利技术还涉及一种电子设备,所述电子设备包括:
[0032]至少一个处理器;以及,
[0033]与所述至少一个处理器通信连接的存储器;其中,
[0034]所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行所述的方法。
[0035]本本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于拓扑嗅探的进程间网络流量追踪控制方法,其特征在于,所述方法包括如下步骤:步骤S100,采集器获取内核中访问网络连接状态及其相关信息,并将定时获取到的数据进行过滤、清洗以键值对的形式存储在数据库中;步骤S200,采集器获取操作系统进程列表信息;步骤S300,采集器通过在数据链路层加一个旁路来进行流量包的捕获;步骤S400,采集器获取操作系统的网络信息,查看操作系统目录下的文件获取本地的流量包的记录信息;步骤S500,采集器获取IP信息包过滤系统信息;步骤S600,采集器获取经过网络堆栈流量包的连接记录项信息;步骤S700,将步骤S300中记录的键值对在数据库中通过格式的变化找到对应的链接关系;步骤S800,对于经过网卡的网络流量,通过分析步骤S400中的键值对和步骤S700中得到的对应的链接关系,得到两个进程间的网络通信关系,对于经过虚拟网络的网络流量,通过步骤S500和步骤S600,得到两个进程间的网络通信关系;步骤S900,通过采集器得到所有节点各自的进程列表,并且得到了进程间的网络通信对应关系,形成一个有向图,该有向图构成当前分布式环境的网络流量拓扑关系;步骤S1000,采集器持续进行流量包的监听和采集工作,并将采集到的流量包经过解析依照上述步骤对应到其发送进程或者接受进程上,经过一段时间的收集,追踪到进程的流量消耗数量、发送内容信息;步骤S1100,通过可视化页面,展示进程间网络流量拓扑关系,并提供流量追踪信息的查询操作。2.根据权利要求1所述的基于拓扑嗅探的进程间网络流量追踪控制方法,其特征在于,步骤S200中,采用定时调用操作系统控制台命令的方式得到进程的进程号数组,然后遍历进程号数组,获取进程的详细信息。3.根据权利...

【专利技术属性】
技术研发人员:张伟韩琼宋建聪姚梦成林殷徐凤桐黄会敏郭佳鑫张默赵洁
申请(专利权)人:中科星图防务技术有限公司
类型:发明
国别省市:

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

1