CN106961363A - 一种捕获虚拟交换机用户态数据平面数据报文的方法和系统 - Google Patents
一种捕获虚拟交换机用户态数据平面数据报文的方法和系统 Download PDFInfo
- Publication number
- CN106961363A CN106961363A CN201710197898.XA CN201710197898A CN106961363A CN 106961363 A CN106961363 A CN 106961363A CN 201710197898 A CN201710197898 A CN 201710197898A CN 106961363 A CN106961363 A CN 106961363A
- Authority
- CN
- China
- Prior art keywords
- packet
- virtual switch
- data message
- capturing
- port
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/02—Capturing of monitoring data
- H04L43/028—Capturing of monitoring data by filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/12—Network monitoring probes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/20—Support for services
- H04L49/208—Port mirroring
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供的方法和系统是用于捕获虚拟交换机用户态数据平面数据报文。根据一个实施例,提供了一种捕获虚拟交换机用户态数据平面数据报文的方法。抓包工具向虚拟交换机请求捕获用户态数据平面数据报文IO端口上的数据报文,虚拟交换机创建与指定数据报文IO端口关联的抓包代理,抓包工具与抓包代理建立数据通道;抓包代理捕获数据报文IO端口上符合过滤规则的数据报文,将其放入与抓包工具之间的数据通道,抓包工具从与抓包代理之间的数据通道接收数据报文;抓包工具向虚拟交换机注销用户态数据平面数据报文IO端口上的数据报文捕获,虚拟交换机删除相应的抓包代理。该方法是一种简单高效捕获虚拟交换机用户态数据平面数据报文的方法,而且抓包工具的使用方式与传统的使用方式完全一致,易于虚拟交换机用户态数据平面的日常诊断。
Description
技术领域
本申请涉及网络通信领域,特别涉及一种捕获虚拟交换机用户态数据平面数据报文的方法和系统。
背景技术
随着虚拟化技术的广泛应用,对虚拟交换机提出越来越高的性能要求。为了提高虚拟交换机的性能,新一代的虚拟交换机将数据平面在用户态实现从而可以利用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指令,抓包代理利用BPF JIT技术将收到的基于BPF指令转化为本地的机器指令以提高过滤速度。tcpdump可以向虚拟交换机抓包管理接口配置用于通知数据通道报文到达的eventfd。抓包代理捕获数据报文IO端口上符合过滤规则的数据报文,将其放入基于共享内存的数据通道,tcpdump从基于共享内存的数据通道接收数据报文。抓包过程结束时,tcpdump向虚拟交换机注销用户态数据平面数据报文IO端口上的数据报文捕获,虚拟交换机删除相应的抓包代理。多个tcpdump实例可以同时对不同数据报文IO端口进行抓包。
在后面的叙述中,为了提供对本发明实施例的全面理解,公开了许多特定的详细内容。然而,本领域的技术人员将明白,在不具有这些具体细节中的某些细节的情况下,也可以实现本发明的实施例。
术语
虚拟交换机:由软件实现的根据以太网报头进行报文转发的系统,也可提供安全访问控制、流量控制和隧道等功能。
控制平面:用于控制和管理所有网络协议的运行,控制平面提供了数据平面数据处理转发前所必须的各种网络信息和转发查询表项。
数据平面IO端口:用于接收发送数据报文的端口,可以是连接虚拟机的虚拟端口,连接物理网卡的物理端口,也可以是其它的特殊端口如隧道端口,TAP端口等。
数据平面:用于处理数据报文在各种数据平面IO端口之间的转发。
用户态数据平面:运行在操作系统用户态的数据平面。
BPF:伯克利数据包过滤器,一种通用的定义报文过滤规则的方法,由BPF指令构成。
BPF JIT:一种将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),tcpdump使用者可以从列表中挑选数据报文IO端口进行抓包。
在发起特定数据报文IO端口抓包请求以前,tcpdump(510)需要映射虚拟交换机共享内存到本地进程(步骤550)。
tcpdump(510)向虚拟交换机抓包管理接口(520)发起请求创建指定数据报文IO端口上的抓包代理(步骤555),虚拟交换机抓包管理接口(520)会创建抓包代理(步骤560)并向指定的用户态数据平面数据报文IO端口(530)注册报文接收发送回调(步骤565)。虚拟交换机抓包管理接口(520)向tcpdump(510)返回抓包代理句柄(步骤570)。
tcpdump(510)可以设置抓包代理消息通知eventfd(步骤575)。
tcpdump(510)可以设置抓包代理上的基于BPF指令的过滤规则(步骤580),虚拟交换机抓包管理接口(520)对抓包代理(525)设置过滤规则(步骤585),抓包代理(525)将BPF指令通过BPF JIT转换为本地的机器指令(步骤586)。
图6描述了数据报文捕获过程。
数据报文IO端口(630)上有数据报文接收发送操作(步骤640),执行已注册的抓包代理回调函数(步骤645)。抓包代理(620)检测是否已配置过滤规则,如果配置了过滤规则但BPF JIT过滤器返回不匹配,则对该报文不做任何处理,返回(步骤650)。如果数据通道报文队列已满,对报文不做任何处理,返回(步骤655)。对报文进行克隆,并放入数据通道报文队列(步骤660)。如果抓包代理已设置通知eventfd,则利用eventfd通知tcpdump(步骤665)。tcpdump(610)轮询或根据eventfd通知,在数据通道报文队列读出报文(步骤670)。
图7描述了抓包退出过程。
tcpdump(710)向虚拟交换机抓包管理接口(720)发送请求注销指定数据报文IO端口上的抓包代理(步骤740)。抓包管理接口(720)向数据报文IO端口(730)注销报文接收发送回调(步骤745),同时删除抓包代理(步骤750)。tcpdump(710)释放抓包代理消息通知eventfd(步骤755),整个抓包过程结束。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可使用软件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机, 服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种捕获虚拟交换机用户态数据平面数据报文的方法,其特征在于,所述方法包括:
抓包工具向虚拟交换机请求捕获用户态数据平面数据报文IO端口上的数据报文,虚拟交换机创建与指定数据报文IO端口关联的抓包代理,抓包工具与抓包代理建立数据通道;抓包代理捕获数据报文IO端口上符合过滤规则的数据报文,将其放入与抓包工具之间的数据通道,抓包工具从与抓包代理之间的数据通道接收数据报文;抓包工具向虚拟交换机注销用户态数据平面数据报文IO端口上的数据报文捕获,虚拟交换机删除相应的抓包代理。
2.根据权利要求1所述的方法,其特征在于,该方法还包括:
虚拟交换机数据平面为用户态数据平面。
3.根据权利要求1所述的方法,其特征在于,该方法还包括:
抓包工具向虚拟交换机抓包管理接口发送指定数据报文IO端口上的捕获请求和捕获注销命令。
4.根据权利要求1所述的方法,其特征在于,该方法还包括:
抓包工具可以设置抓包代理上的过滤规则。
5.根据权利要求1所述的方法,其特征在于,该方法还包括:
抓包工具和抓包代理之间的数据通道基于共享内存。
6.根据权利要求1所述的方法,其特征在于,该方法还包括:
多个抓包工具实例可以同时对不同数据报文IO端口进行抓包。
7.一种可由网络设备的一个或多个处理器读取的程序存储设备,其有形地包含可由所述一个或多个处理器执行以便实施用于捕获虚拟交换机用户态数据平面数据报文的方法步骤的指令程序,所述方法步骤包括:抓包工具向虚拟交换机请求捕获用户态数据平面数据报文IO端口上的数据报文,虚拟交换机创建与指定数据报文IO端口关联的抓包代理,抓包工具与抓包代理建立数据通道;抓包代理捕获数据报文IO端口上符合捕获规则的数据报文,将其放入与抓包工具之间的数据通道,抓包工具从与抓包代理之间的数据通道接收数据报文;抓包工具向虚拟交换机撤销用户态数据平面数据报文IO端口上的数据报文捕获,虚拟交换机删除相应的抓包代理。
8.根据权利要求7的程序存储设备,其中所述网络设备包括虚拟化宿主机。
9.根据权利要求7的程序存储设备,其中所述网络设备包括交换机。
10.根据权利要求7的程序存储设备,其中所述网络设备包括网关。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710197898.XA CN106961363A (zh) | 2017-03-29 | 2017-03-29 | 一种捕获虚拟交换机用户态数据平面数据报文的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710197898.XA CN106961363A (zh) | 2017-03-29 | 2017-03-29 | 一种捕获虚拟交换机用户态数据平面数据报文的方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106961363A true CN106961363A (zh) | 2017-07-18 |
Family
ID=59470630
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710197898.XA Pending CN106961363A (zh) | 2017-03-29 | 2017-03-29 | 一种捕获虚拟交换机用户态数据平面数据报文的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106961363A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109525509A (zh) * | 2017-09-19 | 2019-03-26 | 中兴通讯股份有限公司 | 网卡镜像抓包方法、终端以及可读存储介质 |
CN109669792A (zh) * | 2018-12-24 | 2019-04-23 | 网宿科技股份有限公司 | 分析数据报文的方法及业务服务器 |
CN110167197A (zh) * | 2019-04-16 | 2019-08-23 | 武汉虹信通信技术有限责任公司 | Gtp下行数据传输优化方法及装置 |
CN110324245A (zh) * | 2018-03-31 | 2019-10-11 | 华为技术有限公司 | 一种基于集成流表转发报文的方法及装置 |
CN112311729A (zh) * | 2019-07-29 | 2021-02-02 | 南京南瑞继保工程技术有限公司 | 一种在线抓包方法及系统 |
CN113535592A (zh) * | 2021-09-15 | 2021-10-22 | 广州锦行网络科技有限公司 | 对dpdk应用程序抓包的方法、装置、设备及存储介质 |
CN113708990A (zh) * | 2021-08-06 | 2021-11-26 | 上海龙旗科技股份有限公司 | 一种用于数据包的抓包及解包的方法及设备 |
CN114745255A (zh) * | 2022-04-12 | 2022-07-12 | 深圳星云智联科技有限公司 | 硬件芯片、dpu、服务器、通信方法及相关装置 |
CN116938895A (zh) * | 2023-09-15 | 2023-10-24 | 云粒智慧科技有限公司 | 媒体数据包采集方法、装置、电子设备和存储介质 |
-
2017
- 2017-03-29 CN CN201710197898.XA patent/CN106961363A/zh active Pending
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109525509A (zh) * | 2017-09-19 | 2019-03-26 | 中兴通讯股份有限公司 | 网卡镜像抓包方法、终端以及可读存储介质 |
CN110324245B (zh) * | 2018-03-31 | 2021-03-23 | 华为技术有限公司 | 一种基于集成流表转发报文的方法及装置 |
CN110324245A (zh) * | 2018-03-31 | 2019-10-11 | 华为技术有限公司 | 一种基于集成流表转发报文的方法及装置 |
US11496393B2 (en) | 2018-03-31 | 2022-11-08 | Huawei Technologies Co., Ltd. | Method and apparatus for forwarding packet based on integrated flow table |
CN109669792A (zh) * | 2018-12-24 | 2019-04-23 | 网宿科技股份有限公司 | 分析数据报文的方法及业务服务器 |
CN110167197A (zh) * | 2019-04-16 | 2019-08-23 | 武汉虹信通信技术有限责任公司 | Gtp下行数据传输优化方法及装置 |
CN110167197B (zh) * | 2019-04-16 | 2021-01-26 | 中信科移动通信技术有限公司 | Gtp下行数据传输优化方法及装置 |
CN112311729A (zh) * | 2019-07-29 | 2021-02-02 | 南京南瑞继保工程技术有限公司 | 一种在线抓包方法及系统 |
CN113708990A (zh) * | 2021-08-06 | 2021-11-26 | 上海龙旗科技股份有限公司 | 一种用于数据包的抓包及解包的方法及设备 |
CN113708990B (zh) * | 2021-08-06 | 2022-12-27 | 上海龙旗科技股份有限公司 | 一种用于数据包的抓包及解包的方法及设备 |
CN113535592A (zh) * | 2021-09-15 | 2021-10-22 | 广州锦行网络科技有限公司 | 对dpdk应用程序抓包的方法、装置、设备及存储介质 |
CN114745255A (zh) * | 2022-04-12 | 2022-07-12 | 深圳星云智联科技有限公司 | 硬件芯片、dpu、服务器、通信方法及相关装置 |
CN114745255B (zh) * | 2022-04-12 | 2023-11-10 | 深圳星云智联科技有限公司 | 硬件芯片、dpu、服务器、通信方法及相关装置 |
CN116938895A (zh) * | 2023-09-15 | 2023-10-24 | 云粒智慧科技有限公司 | 媒体数据包采集方法、装置、电子设备和存储介质 |
CN116938895B (zh) * | 2023-09-15 | 2023-12-29 | 云粒智慧科技有限公司 | 媒体数据包采集方法、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106961363A (zh) | 一种捕获虚拟交换机用户态数据平面数据报文的方法和系统 | |
US10452316B2 (en) | Switched direct attached shared storage architecture | |
US7877466B2 (en) | Network topology based storage allocation for virtualization | |
US9898427B2 (en) | Method and apparatus for accessing multiple storage devices from multiple hosts without use of remote direct memory access (RDMA) | |
US20140317206A1 (en) | Switched direct attached shared storage architecture | |
CN102215268A (zh) | 一种迁移文件数据的方法和装置 | |
CN102845035A (zh) | 在虚拟环境中识别目的地的方法 | |
US8745326B2 (en) | Request priority seek manager | |
US7581056B2 (en) | Load balancing using distributed front end and back end virtualization engines | |
US20180364948A1 (en) | Data Processing Method, Related Device, and Storage System | |
CN106020926A (zh) | 一种用于虚拟交换机技术中数据传输的方法及装置 | |
WO2016182756A1 (en) | Accessing multiple storage devices from multiple hosts without remote direct memory access (rdma) | |
US7155594B2 (en) | Method, computer system, and relay device for data transfer among plural memories to reduce the number of memory devices with relatively small storage capacity | |
CN105739930A (zh) | 一种存储架构及其初始化方法和数据存储方法及管理装置 | |
CN103986585A (zh) | 报文预处理方法及其装置 | |
JP2019144821A (ja) | 運用管理システム及び運用管理方法 | |
CN107408029A (zh) | 用于存储环境中的实时活动跟踪的方法和系统 | |
CN102843435A (zh) | 一种在集群系统中存储介质的访问、响应方法和系统 | |
CN105005515B (zh) | 一种LAN‑free备份系统 | |
JP5957318B2 (ja) | ネットワークシステム、情報中継装置、及びパケット配信方法 | |
US9288267B2 (en) | Handling of data transfer in a LAN-free environment | |
US20080263222A1 (en) | Computer system, root node, and log management method for access path conversion | |
US20210026704A1 (en) | Methods for dynamic throttling to satisfy minimum throughput service level objectives and devices thereof | |
CN106453118B (zh) | 一种流量控制方法及流量控制系统 | |
Riedel | Storage Systems: Not Just a Bunch of Disks Anymore: The sheer size and scope of data available today puts tremendous pressure on storage systems to perform in ways never imagined. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170718 |