本发明专利技术提供的方法和系统是用于捕获虚拟交换机用户态数据平面数据报文。根据一个实施例,提供了一种捕获虚拟交换机用户态数据平面数据报文的方法。抓包工具向虚拟交换机请求捕获用户态数据平面数据报文IO端口上的数据报文,虚拟交换机创建与指定数据报文IO端口关联的抓包代理,抓包工具与抓包代理建立数据通道;抓包代理捕获数据报文IO端口上符合过滤规则的数据报文,将其放入与抓包工具之间的数据通道,抓包工具从与抓包代理之间的数据通道接收数据报文;抓包工具向虚拟交换机注销用户态数据平面数据报文IO端口上的数据报文捕获,虚拟交换机删除相应的抓包代理。该方法是一种简单高效捕获虚拟交换机用户态数据平面数据报文的方法,而且抓包工具的使用方式与传统的使用方式完全一致,易于虚拟交换机用户态数据平面的日常诊断。
【技术实现步骤摘要】
一种捕获虚拟交换机用户态数据平面数据报文的方法和系统
本申请涉及网络通信领域,特别涉及一种捕获虚拟交换机用户态数据平面数据报文的方法和系统。
技术介绍
随着虚拟化技术的广泛应用,对虚拟交换机提出越来越高的性能要求。为了提高虚拟交换机的性能,新一代的虚拟交换机将数据平面在用户态实现从而可以利用DPDK等高性能数据平面技术,但用户态数据平面也面临着传统的网络故障诊断工具无法使用的问题。为了解决虚拟交换机用户态数据平面故障诊断工具问题,图2提出了一种方案将数据报文IO端口的所有发送接收报文都写入一个抓包文件里面,再由tcpdump进行离线分析,该方案由于所有的写文件操作都要做系统调用而且不能设置过滤规则,因此效率低下,而且必须离线分析。图3提出的方案将数据报文重新注入内核,从而可以复用现有的tcpdump等抓包工具,但由于无法在抓包第一时间进行过滤,也面临着严重的性能问题,而且该方案还必须依赖额外的内核模块,从而增加了系统维护代价。因此,本领域存在对虚拟交换机用户态数据平面数据报文进行高效率、高性能、灵活地抓包的方法的需求。
技术实现思路
本申请叙述的方法用于捕获虚拟交换机用户态数据平面数据报文,从而使得虚拟交换机用户态数据平面可以高效灵活地进行诊断。根据一个实施例,提供了捕获虚拟交换机用户态数据平面数据报文的方法,该方法包括:抓包工具向虚拟交换机请求捕获用户态数据平面数据报文IO端口上的数据报文,虚拟交换机创建与指定数据报文IO端口关联的抓包代理,抓包工具与抓包代理建立数据通道;抓包代理捕获数据报文IO端口上符合过滤规则的数据报文,将其放入与抓包工具之间的数据通道,抓包工具从与抓包代理之间的数据通道接收数据报文;抓包工具向虚拟交换机注销用户态数据平面数据报文IO端口上的数据报文捕获,虚拟交换机删除相应的抓包代理。在前述实施例的上下文中,虚拟交换机数据平面为用户态数据平面。在前述实施例的上下文中,抓包工具向虚拟交换机抓包管理接口发送指定数据报文IO端口上的捕获请求和捕获注销命令。在前述实施例的上下文中,抓包工具可以设置抓包代理上的过滤规则。在前述实施例的上下文中,抓包工具和抓包代理之间的数据通道基于共享内存。在前述实施例的上下文中,多个抓包工具实例可以同时对不同数据报文IO端口进行抓包。本专利技术的其他实施例提供了一种可由网络设备的一个或多个处理器读取的程序存储设备,其有形地包含可由所述一个或多个处理器执行以便实施用于捕获虚拟交换机用户态数据平面数据报文的方法步骤的指令程序,所述方法步骤包括:抓包工具向虚拟交换机请求捕获用户态数据平面数据报文IO端口上的数据报文,虚拟交换机创建与指定数据报文IO端口关联的抓包代理,抓包工具与抓包代理建立数据通道;抓包代理捕获数据报文IO端口上符合过滤规则的数据报文,将其放入与抓包工具之间的数据通道,抓包工具从与抓包代理之间的数据通道接收数据报文;抓包工具向虚拟交换机注销用户态数据平面数据报文IO端口上的数据报文捕获,虚拟交换机删除相应的抓包代理。本专利技术实施例的其他特征将从附图和后面的详细叙述中更明显得到。本专利技术的突出优点为该方法是一种简单高效捕获虚拟交换机用户态数据平面数据报文的方法,而且抓包工具的使用方式与传统的使用方式完全一致,易于虚拟交换机用户态数据平面的日常诊断。附图说明在附图中的视图中借助举例方式对本专利技术的实施例进行描述,这些实施例并非起局限作用,附图中类似的参考数字将表示类似的元件,其中:图1是从概念上描述本专利技术方法的逻辑关系图。图2描述了一种使用写抓包文件然后离线分析的方法。图3描述了一种将用户态数据平面导入内核再进行抓包的方法。图4描述了应用本专利技术的一个具体实施例的功能模块图。图5描述了一个具体实施例的抓包建立过程。图6描述了一个具体实施例的数据报文捕获过程。图7描述了一个具体实施例的抓包退出过程。图8是可以使用本专利技术实施例的计算机系统的实例。具体实施方式本申请叙述了一种捕获虚拟交换机用户态数据平面数据报文的方法和系统。本申请实施的技术方案中,抓包工具基于tcpdump,在tcpdump使用的libpcap库中新增一种虚拟交换机抓包适配器。tcpdump通过虚拟交换机的抓包管理接口可以在特定的虚拟交换机用户态数据平面数据报文IO端口上请求报文捕获,虚拟交换机创建抓包代理,并建立相应的基于共享内存的数据通道。tcpdump可以向虚拟交换机抓包管理接口请求抓包过滤规则,该过滤规则基于BPF指令,抓包代理利用BPFJIT技术将收到的基于BPF指令转化为本地的机器指令以提高过滤速度。tcpdump可以向虚拟交换机抓包管理接口配置用于通知数据通道报文到达的eventfd。抓包代理捕获数据报文IO端口上符合过滤规则的数据报文,将其放入基于共享内存的数据通道,tcpdump从基于共享内存的数据通道接收数据报文。抓包过程结束时,tcpdump向虚拟交换机注销用户态数据平面数据报文IO端口上的数据报文捕获,虚拟交换机删除相应的抓包代理。多个tcpdump实例可以同时对不同数据报文IO端口进行抓包。在后面的叙述中,为了提供对本专利技术实施例的全面理解,公开了许多特定的详细内容。然而,本领域的技术人员将明白,在不具有这些具体细节中的某些细节的情况下,也可以实现本专利技术的实施例。术语虚拟交换机:由软件实现的根据以太网报头进行报文转发的系统,也可提供安全访问控制、流量控制和隧道等功能。控制平面:用于控制和管理所有网络协议的运行,控制平面提供了数据平面数据处理转发前所必须的各种网络信息和转发查询表项。数据平面IO端口:用于接收发送数据报文的端口,可以是连接虚拟机的虚拟端口,连接物理网卡的物理端口,也可以是其它的特殊端口如隧道端口,TAP端口等。数据平面:用于处理数据报文在各种数据平面IO端口之间的转发。用户态数据平面:运行在操作系统用户态的数据平面。BPF:伯克利数据包过滤器,一种通用的定义报文过滤规则的方法,由BPF指令构成。BPFJIT:一种将BPF指令翻译为本地指令的方法,用于提高执行过滤规则的性能。libpcap:一种抓包的函数库,可以对不同类型的网络接口进行抓包,还可以将上层过滤规则转化为BPF指令。tcpdump:一种通用的基于libpcap的抓包工具,可以定义过滤规则以及分析报文。eventfd:用于不同线程,进程间通知事件。图4描述了应用本专利技术的一个具体实施例的功能模块图。在tcpdump(480)中,新增了libpcap虚拟交换机抓包适配器(485)。在虚拟交换机(410)中,抓包管理接口(415)用于接收来自libpcap虚拟交换机抓包适配器(485)上的各种请求消息,它会管理每个抓包代理(460)的创建,配置以及删除。在libpcap虚拟交换机抓包适配器(485)和对应的抓包代理(460)之间会建立一条基于共享内存的数据通道(470),每条数据通道(470)包含一个基于共享内存的报文队列(475),以及报文通知eventfd(471)。图5描述了抓包的建立过程。tcpdump(510)首先向虚拟交换机抓包管理接口(520)发起请求查询可以实施抓包的数据报文IO端口(步骤540),虚拟交换机抓包管理接口(520)会返回可以实施抓包的数据报文IO端口列表(步骤545)本文档来自技高网...
【技术保护点】
一种捕获虚拟交换机用户态数据平面数据报文的方法,其特征在于,所述方法包括:抓包工具向虚拟交换机请求捕获用户态数据平面数据报文IO端口上的数据报文,虚拟交换机创建与指定数据报文IO端口关联的抓包代理,抓包工具与抓包代理建立数据通道;抓包代理捕获数据报文IO端口上符合过滤规则的数据报文,将其放入与抓包工具之间的数据通道,抓包工具从与抓包代理之间的数据通道接收数据报文;抓包工具向虚拟交换机注销用户态数据平面数据报文IO端口上的数据报文捕获,虚拟交换机删除相应的抓包代理。
【技术特征摘要】
1.一种捕获虚拟交换机用户态数据平面数据报文的方法,其特征在于,所述方法包括:抓包工具向虚拟交换机请求捕获用户态数据平面数据报文IO端口上的数据报文,虚拟交换机创建与指定数据报文IO端口关联的抓包代理,抓包工具与抓包代理建立数据通道;抓包代理捕获数据报文IO端口上符合过滤规则的数据报文,将其放入与抓包工具之间的数据通道,抓包工具从与抓包代理之间的数据通道接收数据报文;抓包工具向虚拟交换机注销用户态数据平面数据报文IO端口上的数据报文捕获,虚拟交换机删除相应的抓包代理。2.根据权利要求1所述的方法,其特征在于,该方法还包括:虚拟交换机数据平面为用户态数据平面。3.根据权利要求1所述的方法,其特征在于,该方法还包括:抓包工具向虚拟交换机抓包管理接口发送指定数据报文IO端口上的捕获请求和捕获注销命令。4.根据权利要求1所述的方法,其特征在于,该方法还包括:抓包工具可以设置抓包代理上的过滤规则。5.根据权利要求1所述的方法,其特征在于,该方法还包括:抓包工具和抓包代理之间的数据通道基于共...
【专利技术属性】
技术研发人员:肖骏,
申请(专利权)人:云络动力北京科技有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。