[发明专利]一种基于eBPF的内核丢包检测方法、系统和装置有效
申请号: | 202111063295.3 | 申请日: | 2021-09-10 |
公开(公告)号: | CN113794605B | 公开(公告)日: | 2023-03-14 |
发明(设计)人: | 周骏迪;苌程;蒋玉芳 | 申请(专利权)人: | 杭州谐云科技有限公司 |
主分类号: | H04L43/0829 | 分类号: | H04L43/0829;H04L43/04 |
代理公司: | 北京汇信合知识产权代理有限公司 11335 | 代理人: | 卢亮辉 |
地址: | 311121 浙江省杭州市余杭区*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 ebpf 内核 检测 方法 系统 装置 | ||
本发明公开了一种基于eBPF的内核丢包检测方法、系统和装置,所述内核丢包检测方法包括:基于eBPF,在内核函数tcp_drop前进行插桩;通过插桩的函数,从寄存器中抓取内核函数tcp_drop的丢包数据,并将所述丢包数据存入eBPF MAP中;在用户态中,读取所述eBPF MAP中的丢包数据;将所读取的丢包数据匹配相应的虚拟机、进程或容器,获取匹配数据。在寄存器中抓取内核函数的丢包数据,保存在eBPF MAP中,在用户态下,可以读取到eBPF MAP中的丢包数据;数据在丢包时才会调用tcp_drop,因此仅采集了丢包数据,而不会采集其它的正常数据或非丢包数据,利于减少计算或数据体量,同时不会对内核网络包路径造成影响;匹配数据利于提高数据的可读性。
技术领域
本发明涉及计算机技术领域,具体涉及一种基于eBPF的内核丢包检测方法、系统和装置。
背景技术
数据在网络中是被分成一个个数据包传输的,每个数据包中有表示数据信息和提供数据路由的帧。而数据包在一般介质中传播是总有一小部分由于各种各样的原因而丢失,而大部分数据包会到达目的终端。网络丢包率是数据包丢失部分与所传数据包总数的比值。正常传输时,网络丢包率应该控制在一定范围内。在数据中心中,网络的运维是对业务运维中的重要一环,只有保证了网络的平稳运行,业务才能平稳运行,网络运维中很重要的一个指标就是丢包率,如果丢包率很高,业务正常执行的延时就会大很多,甚至出现业务异常,因此丢包检测对于数据中心的意义非常重要。
目前网络运维中为了得到网络丢包率主要有两种方式:第一种方式称之为交换机镜像,在交换机或路由器上通过端口镜像功能,将一个或多个源端口的数据流量转发到某一个指定端口来实现对网络的监听;第二种方式称之为主机抓包分析,通过Tcpdump将主机所有经过的网络流量抓取形成pcaap文件,之后利用类似Wi reshark工具进行分析。不管是是交换机镜像模式,还是主机抓包分析模式,网络丢包分析的本质都是获取Tcp的流量,之后根据Tcp原理,分析Tcp数据包的情况,从而判断出是否丢包。因此抓取的数据量和分析的数据量较大。
例如,交换机镜像模式下,需要在交换机层面做镜像分光,需要有单独的存储所有的网络包,之后有大性能的机器进行分析。由于数据中心的规模都不小,每天的流量都可以达到TB级别,端口镜像实施成本都在几百万至数千万级别。同时交换机镜像模式不适用于云环境,因为虚拟云网络通讯的时候,很多流量不通过交换机,比如两台部署在同一台物理机的虚拟机进行网络通信就不经过交换机。主机抓包分析模式虽然成本比端口镜像省了很大的存储成本,但是其实时性不足,只能在有问题之后,作为事后排查问题的手段;同时如果长期开启该模式,对处理器和本地磁盘存储的要求很大,在生产环境中都是事后开启。
发明内容
针对现有技术中存在的上述技术问题,本发明提供一种基于eBPF的内核丢包检测方法、系统和装置,仅抓取丢包数据,数据处理量少。
本发明公开了一种基于eBPF的内核丢包检测方法,所述内核丢包检测方法包括:基于eBPF,在内核函数tcp_drop前进行插桩;通过插桩的函数,从寄存器中抓取内核函数tcp_drop的丢包数据,并将所述丢包数据存入eBPF MAP中;在用户态中,读取所述eBPF MAP中的丢包数据;将所读取的丢包数据匹配相应的虚拟机、进程或容器,获取匹配数据。
优选的,抓取内核函数tcp_drop的丢包数据的方法包括:
在函数tcp_drop执行前,从内核数据结构pt_reges中拦截丢包数据。
优选的,所述函数tcp_drop的参数包括SK和SKB;
从内核数据结构pt_regs的第一个入参中读取SK参数的值;
从内核数据结构pt_regs的第二个入参中读取SKB参数的值。
优选的,插桩的函数包括Hook函数,通过Hook函数抓取函数tcp_drop的丢包数据,并将所述丢包数据保存在eBPF Map中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州谐云科技有限公司,未经杭州谐云科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111063295.3/2.html,转载请声明来源钻瓜专利网。