CN104063267B - 一种虚拟机流量监控方法及*** - Google Patents

一种虚拟机流量监控方法及*** Download PDF

Info

Publication number
CN104063267B
CN104063267B CN201410328690.3A CN201410328690A CN104063267B CN 104063267 B CN104063267 B CN 104063267B CN 201410328690 A CN201410328690 A CN 201410328690A CN 104063267 B CN104063267 B CN 104063267B
Authority
CN
China
Prior art keywords
module
data
monitoring
virtual machine
packet
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.)
Active
Application number
CN201410328690.3A
Other languages
English (en)
Other versions
CN104063267A (zh
Inventor
孙强强
冯斌
赵铭
丘惠军
陈昊
何子龙
刘忠魁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Power Supply Co ltd
Original Assignee
Individual
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN201410328690.3A priority Critical patent/CN104063267B/zh
Publication of CN104063267A publication Critical patent/CN104063267A/zh
Application granted granted Critical
Publication of CN104063267B publication Critical patent/CN104063267B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种虚拟机流量监控方法及***,首先启动包含监控模块的虚拟机;部署数据包捕获模块和数据缓存模块到虚拟机监控器内核中;数据包捕获模块根据过滤机制复制流经TCP/IP协议栈的数据包,并存储到数据缓存模块的缓存中;数据缓存模块将缓存中的数据包转发给监控模块;监控模块对数据包进行统计分析,实现对虚拟机的流量监控。解决服务器虚拟化带来的虚拟机间通信失去监控的问题,并且实现了同一物理服务器上虚拟机间的通信以及虚拟机与服务器外部网络的通信的统一监控。

Description

一种虚拟机流量监控方法及***
技术领域
该发明涉及服务器虚拟机化虚拟机流量监控,尤其涉及物理服务器上的虚拟机流量监控方法和***。
背景技术
服务器虚拟化可以提高计算资源的利用率,增强IT资源的管理灵活性,因此,该技术成为当前数据中心重要技术。然而,服务器虚拟化后,同一台物理服务器上存在多个虚拟机,这些虚拟机之间的通信无法被部署在物理服务器外的监控***所感知。
现有方法是通过流量重定向策略来实现,包括两大类,一类是将虚拟机流量重定向到服务器外的网络设备上进行监控处理。另一类是将虚拟机流量通过虚拟机交换机进行重定向到虚拟机监控器(Virtual Machine Monitor,VMM)上的虚拟机中进行监控。第一类方法的优势是可以利用现有的监控资源,但需要修改网络协议驱动或增加新的网络硬件设备。第二类方法比较常见,但依赖虚拟交换机的可配置能力,缺乏性能方面的优化能力,同时,对于虚拟机与外部的通信流量监控只能交给外部监控设备来处理,缺乏统一监控的管理能力。
发明内容
本发明的目的在于:利用虚拟机监控器的钩子机制来获取虚拟机的通信数据流,并引入缓存机制和过滤策略,提高监控的效率;同时本发明公开了一套监控***,可以实现对虚拟机间通信和虚拟机与服务器外部通信的统一监控。
本发明是这样实现的:
一种虚拟机流量监控方法包括以下步骤:
步骤一:在虚拟机监控器(Virtual Machine Monitor,VMM)上启动包含监控模块的虚拟机,通过内核模块加载接口,将数据包捕获模块和数据缓存模块加载到内核中;将监控模块和数据缓存模块建立通信连接;监控模块下发过滤地址列表到内核;监控模块发送启动命令到内核。具体流程如下:
①、启动包含监控模块的虚拟机后,监控模块也启动运行;
②、监控模块调用内核模块加载接口,加载数据包捕获模块和数据缓存模块到内核;
③、数据缓存模块与安全监控模块建立连接;
④、安全监控模块向所述数据缓存模块发送过滤地址列表;
⑤、安全监控模块向所述数据缓存模块发送启动指令;
⑥、数据缓存模块设置内核全局变量值为启动。
步骤二:数据包捕获模块监听通过虚拟机监控器VMM内核TCP/IP协议栈中数据;根据数据过滤地址列表复制数据包,并存储到数据缓存模块的缓存中;数据模块模块将数据发送给监控模块。具体流程如下:
①、数据缓存模块判断所述内核全局变量值,如果为启动,则分配一定大小的缓存,并启动数据缓存处理进程;否则不作任何处理;
②、数据包捕获模块判断所述内核全局变量值,如果为启动,则启动所述数据包捕获模,否则,不作任何处理;
③、数据包捕获模块判断当前TCP/IP协议栈数据包地址是否匹配所述过滤地址列表;匹配则复制数据包并存储到所述数据缓存模块的缓存中;否则,不作任何处理;
④、数据缓存进程判断所述缓存内是否为空,不空则读取缓存数据并通过所述数据缓存模块与所述安全监控模块建立的连接发送数据;空则不做任何处理。
步骤三:监控模块提取数据包的基本信息,统计分析数据流量,展示统计分析结果及告警。具体流程如下:
①、监控模块调用预处理模块提取数据包头信息,包括源目的MAC、源目的IP、数据包大小;
②、监控模块统计数据包所在的会话流量,会话内容,并根据入侵检测规则分析入侵行为;据恶意代码规则检测恶意代码;
③、统计分析模块根据输出配置要求,输出统计分析结果,并在页面展示;
④、统计分析模块根据告警配置要求,输出告警结果,并在页面展示。
一种虚拟机流量监控***,其特征在于,所述***包括如下模块:
①、监控模块:用于部署数据包捕获模块、数据缓存模块;调用预处理模块和统计分析模块;与数据缓存模块建立通信连接;接受数据缓存模块发送来的数据包,下发过滤地址表、命令给数据缓存模块;管理监控配置;预处理模块:获取所述数据包头信息,包括源目的MAC、源目的IP、数据包大小;
②、统计分析模块:用于对所述的预处理模块的处理结果进行统计分析,包括会话流量统计,会话内容还原;根据入侵检测规则分析入侵行为;根据恶意代码规则检测恶意代码;根据输出配置和告警配置,输出统计分析结果和告警结果,并在页面展示;
③、数据包捕获模块:用于在虚拟机监控器(VMM)内核监控TCP/IP协议栈的数据包,并根据所述过滤地址列表复制所述数据包;并存储到数据缓存模块的缓存中;
④、数据缓存模块:用于建立与所述监控模块的连接;发送所缓存中的数据给所述监控模块;接受所述监控模块发送的指令和数据;
本发明相较于现有技术具有的积极效果在于:本发明专利可以解决服务器虚拟化带来的虚拟机间通信失去监控的问题,并且实现了同一物理服务器上虚拟机间的通信以及虚拟机与服务器外部网络的通信的统一监控。另外,本发明专利通过引入缓存机制,包过滤机制,离线存储机制,解决了监控功能对虚拟机监控器的性能影响问题。
附图说明
图1是本发明公开的一种虚拟机流量的监控处理流程。
图2是本发明公开的一种虚拟机流量的监控***组成。
图3是本发明公开的一种虚拟机监控***的各模块连接示意图。
具体实施方式
本发明为虚拟机之间的流量监控以及虚拟机和服务器外部网络之间的流量监控提供了一种统一的监控***。为了更好的说明本发明中的***及方法,本发明给出了一些具体图例,这里对这些附图进行说明。需要说明的是,这里给出的图例只是本发明的一种实例,对于本领域技术人员,可以在根据这些实例获得其他附图。下面结合本发明中的附图,对本发明中的技术方案进行清楚,完整地描述。
本发明公开的一种虚拟机的流量监控方法的处理流程如图1所示:
初始化阶段:在虚拟机监控器上启动包含监控模块201的虚拟机,数据包捕获模块205和数据缓存模块204部署到内核,监控模块201和数据缓存模块204建立连接,监控模块201下发过滤地址列表到内核,监控模块201发送启动命令到内核,监控***部署完毕。
本发明中,数据包捕获模块205和数据缓存模块204都运行在内核,在运行前先通过内核编程接口加载到内核中。由于监控模块部署在虚拟机中,而虚拟机运行在用户态,因此,需要构建内核和用户空间的通信连接。建立连接后,监控模块201发送地址过滤列表给内核,提供数据包捕获模块205使用。然后,监控模块201内核发送启动命令至内核,数据捕获模块205及数据缓存模块204开始工作。
数据捕获阶段:数据包捕获模块205监听TCP/IP协议栈206数据,根据过滤地址列表复制数据包,并存储到数据缓存模块204的缓存中,数据缓存模204块将数据发送给监控模块201。
本发明中,数据包捕获模块205检查每一个流经TCP/IP协议栈206的数据包,根据每个数据包的MAC值或IP信息,与地址过滤列表中的地址信息进行比对,如果匹配,则相应的数据包被复制一份,并存储到数据缓存模块204的缓存中。数据缓存模块204中的缓存是数据缓存模块204预先分配的,并且可以根据实际用量动态进行扩展;数据缓存模块204发现缓存不空时,通过内核和用户空间建立的连接将数据包发送给虚拟机中的监控模块201;
数据统计分析阶段:监控模块201提取数据包头基本信息,统计分析数据流量,展示统计分析结果及告警。
如图2所示的本发明公开了一种虚拟机流量的监控***组织结构,该虚拟机流量监控***包括以下几个部分:
1、监控模块201:
该模块是实现虚拟机流量监控分析的核心模块,包含预处理模块202和统计分析模块203。该监控模块201实现数据缓存模块204和数据捕获模块205的加载和卸载;与内核的数据缓存模块204建立连接,并通过该连接获取虚拟机的通信流量以及发送控制命令。该监控模块201还提供了配置管理功能,包括结果输出配置,告警配置,离线统计分析配置。结果输出配置及告警配置用于页面展示效果控制。离线统计分析配置用于在空闲时刻处理离线数据包,降低监控模块对虚拟化服务器的性能影响。
2、预处理模块202:
该模块主要功能是对收到的数据包进行基本信息提取,为统计分析模块203提供帮助。同时,预处理模块202还可以根据离线配置,直接将收到的数据包按一定格式存储到外部存储器中,实现监控模块201离线处理模式,该配置可以在实时监控影响到服务器性能时使用。
3、统计分析模块203:
该模块主要功能是根据所述预处理模块202的处理结果,对数据包进一步的分析。包括流量统计,内容还原。结合入侵检测引擎进行检测分析;结合恶意代码特征进行恶意代码检测分析;根据显示配置要求,该统计分析模块203对统计分析结果进行页面展示;根据告警配置要求,该统计分析模块203以页面告警形式进行告警。
4、数据缓存模块204:
该模块主要功能是存储来自数据包捕获模块205的数据,并转发给安全虚拟机中监控模块201。同时,该模块接受来自所述安全监控模块201的命令;本发明中,数据缓存是数据缓存模块204预先分配,但可以根据要求动态进行调整,从而避免数据丢包。
5、数据包捕获模块205:
该模块主要功能是监听通过TCP/IP协议栈的数据包;并根据过滤地址列表复制满足过滤条件的数据包,然后存储到数据缓存模块204的缓存中。本发明中,基于现有的协议栈钩子(hook)机制来实现。当前,主流基于linux的开源虚拟化软件,如内核虚拟机(KVMKernel Virtual Machine),Xen等,都支持钩子机制。
本发明中,数据监控模块201中的预处理模块202首先对数据缓存模块204发送的数据包进行预处理,提取出数据包基本信息,包括源目的MAC,IP,数据大小。数据统计分析模块203则根据预处理模块202的处理结果,结合入侵检测规则和恶意代码规则进行入侵检测、恶意代码分析处理。然后,统计分析模块203将处理后的结果按一定的配置要求以页面显示,根据告警配置要求,对满足告警的统计分析结果显示告警页面。
与本发明公开的虚拟机流量监控***相对应,本发明公开了如图3所示的一种虚拟机流量监控***的各个模块连接示意图可知:虚拟机监控器104上运行着虚拟机A101,虚拟机B102,虚拟机C103。其中,虚拟机A101、虚拟机C103通过虚拟机监控器VMM104的TCP/IP协议栈206相互通信,同时,虚拟机A101和虚拟机C103还通过TCP/IP协议栈206与外部网络设备105通信。虚拟机B102中部署有监控模块201。监控模块201包含有预处理模块202和统计分析模块203。数据缓存模块204位于虚拟机机监控器VMM104中,数据包捕获模块205位于虚拟机监控器VMM104的TCP/IP协议栈206中。该部署结构下,虚拟机A101和虚拟机C103间的通信流量可以被虚拟机B102中的监控模块201所监控,同时,虚拟机A101、虚拟机C103与外部网络设备105间的通信流量也可以被虚拟机B102中的监控模块201所监控。

Claims (5)

1.一种虚拟机流量监控方法,其特征在于包括以下步骤:
步骤一:在虚拟机监控器(Virtual Machine Monitor,VMM)上启动包含监控模块的虚拟机,通过内核模块加载接口,将数据包捕获模块和数据缓存模块加载到内核中;将虚拟机监控模块和数据缓存模块建立通信连接;监控模块下发过滤地址列表到内核,监控模块发送启动命令到内核;
步骤二:数据包捕获模块监听TCP/IP协议栈中数据;根据过滤地址列表复制数据包,并存储到数据缓存模块的缓存中;数据缓存模块将数据发送到监控模块;
步骤三:监控模块提取数据包的基本信息,统计分析数据流量,展示统计分析结果及告警。
2.根据权利要求1所述的监控方法,其特征在于:所述的步骤一中的具体流程如下:
①、启动包含监控模块的虚拟机后,监控模块也启动运行;
②、监控模块调用内核模块加载接口,加载数据包捕获模块和数据缓存模块到内核;
③、数据缓存模块与监控模块建立连接;
④、监控模块向所述数据缓存模块发送过滤地址列表;
⑤、监控模块向所述数据缓存模块发送启动指令;
⑥、数据缓存模块设置内核全局变量值为启动。
3.根据权利要求1所述的监控方法,其特征在于:所述的步骤二的具体流程如下:
①、数据缓存模块判断所述内核全局变量值,如果为启动,则分配一定大小的缓存,并启动数据缓存处理进程;否则不作任何处理;
②、数据包捕获模块判断所述内核全局变量值,如果为启动,则启动所述数据包捕获模,否则,不作任何处理;
③、数据包捕获模块判断当前TCP/IP协议栈数据包地址是否匹配所述地址过滤表;匹配则复制数据包并存储到所述数据缓存模块的缓存中;否则,不作任何处理;
④、数据缓存进程判断所述缓存内是否为空,不空则读取缓存数据并通过所述数据缓存模块与所述监控模块建立的连接发送数据;空则不做任何处理。
4.根据权利要求1所述的监控方法,其特征在于:所述的步骤三的具体流程如下:
①、监控模块接受所述数据缓存模块发送来的数据;并调用数据预处理模块提取数据包头信息,包括源目的MAC、源目的IP、数据包大小;
②、监控模块调用统计分析模块统计数据包所在的会话流量、会话内容,并根据入侵检测规则分析入侵行为;根据恶意代码规则检测恶意代码;
③、统计分析模块根据输出配置要求,输出统计分析结果,并在页面展示;
④、统计分析模块根据告警配置要求,输出告警结果,并在页面展示。
5.一种虚拟机流量监控***,其特征在于,所述***包括如下模块:
①、监控模块:用于部署数据包捕获模块、数据缓存模块;调用预处理模块和统计分析模块;与数据缓存模块建立通信连接;接受数据缓存模块发送来的数据包,下发过滤地址表、命令给数据缓存模块;管理监控配置;
②、预处理模块:获取所述数据包头信息,包括源目的MAC、源目的IP、数据包大小;
③、统计分析模块:用于对所述的预处理模块的处理结果进行统计分析,包括会话流量统计,会话内容还原;根据入侵检测规则分析入侵行为;根据恶意代码规则检测恶意代码;根据输出配置要求和告警配置要求,输出统计分析结果和告警结果,并在页面展示;
④、数据包捕获模块:用于在虚拟机监控器(VMM)内核监控TCP/IP协议栈的数据包,并根据所述过滤地址列表复制所述数据包;并存储到数据缓存模块的缓存中;
⑤、数据缓存模块:用于建立与所述监控模块的连接;发送所缓存中的数据给所述监控模块;接受所述监控模块发送的指令和数据。
CN201410328690.3A 2014-07-11 2014-07-11 一种虚拟机流量监控方法及*** Active CN104063267B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410328690.3A CN104063267B (zh) 2014-07-11 2014-07-11 一种虚拟机流量监控方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410328690.3A CN104063267B (zh) 2014-07-11 2014-07-11 一种虚拟机流量监控方法及***

Publications (2)

Publication Number Publication Date
CN104063267A CN104063267A (zh) 2014-09-24
CN104063267B true CN104063267B (zh) 2017-11-14

Family

ID=51550991

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410328690.3A Active CN104063267B (zh) 2014-07-11 2014-07-11 一种虚拟机流量监控方法及***

Country Status (1)

Country Link
CN (1) CN104063267B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104506548B (zh) * 2014-12-31 2018-05-04 北京天融信科技有限公司 一种数据包重定向装置、虚拟机安全保护方法及***
CN106330585A (zh) * 2015-06-29 2017-01-11 中兴通讯股份有限公司 流量监控方法、装置及***
CN105681125B (zh) * 2015-12-28 2019-08-13 国云科技股份有限公司 一种云平台的虚拟机外网流量统计方法
CN109413062A (zh) * 2018-10-22 2019-03-01 江苏满运软件科技有限公司 虚拟主机被恶意攻击的监控处理方法及***、节点服务器
CN111405590B (zh) * 2019-01-02 2023-01-13 ***通信有限公司研究院 一种虚拟化网元数据流量导出方法、装置和存储介质
CN110597856B (zh) * 2019-08-20 2022-08-05 华能四川水电有限公司 一种流量深度解析数据的快速检索***和方法
CN110719215B (zh) * 2019-10-21 2022-02-18 北京百度网讯科技有限公司 虚拟网络的流信息采集方法及装置
CN111431757B (zh) * 2020-02-18 2023-03-24 平安科技(深圳)有限公司 虚拟网络的流量采集方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102082692A (zh) * 2011-01-24 2011-06-01 华为技术有限公司 基于网络数据流向的虚拟机迁移方法、设备和集群***
EP2439637A1 (en) * 2010-10-07 2012-04-11 Deutsche Telekom AG Method and system of providing access to a virtual machine distributed in a hybrid cloud network
CN102467637A (zh) * 2011-07-28 2012-05-23 中标软件有限公司 一种虚拟化环境下的反病毒***及其反病毒方法
CN102682229A (zh) * 2011-03-11 2012-09-19 北京市国路安信息技术有限公司 一种基于虚拟化技术的恶意代码行为检测方法
CN102870377A (zh) * 2012-06-30 2013-01-09 华为技术有限公司 虚拟端口监控方法和设备
CN103036759A (zh) * 2012-12-08 2013-04-10 中国科学院软件研究所 一种x86虚拟化条件下降低网络i/o操作cpu开销的***

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2439637A1 (en) * 2010-10-07 2012-04-11 Deutsche Telekom AG Method and system of providing access to a virtual machine distributed in a hybrid cloud network
CN102082692A (zh) * 2011-01-24 2011-06-01 华为技术有限公司 基于网络数据流向的虚拟机迁移方法、设备和集群***
CN102682229A (zh) * 2011-03-11 2012-09-19 北京市国路安信息技术有限公司 一种基于虚拟化技术的恶意代码行为检测方法
CN102467637A (zh) * 2011-07-28 2012-05-23 中标软件有限公司 一种虚拟化环境下的反病毒***及其反病毒方法
CN102870377A (zh) * 2012-06-30 2013-01-09 华为技术有限公司 虚拟端口监控方法和设备
CN103036759A (zh) * 2012-12-08 2013-04-10 中国科学院软件研究所 一种x86虚拟化条件下降低网络i/o操作cpu开销的***

Also Published As

Publication number Publication date
CN104063267A (zh) 2014-09-24

Similar Documents

Publication Publication Date Title
CN104063267B (zh) 一种虚拟机流量监控方法及***
CN105635035A (zh) 一种虚拟机流量监控方法
US9282173B2 (en) Reconfigurable packet header parsing
CN109309605B (zh) 带内网络遥测***及方法
CN109981403A (zh) 虚拟机网络数据流量监控方法及装置
EP3226132A1 (en) Virtual machine instance deployment method and apparatus and device
CN103166811B (zh) 一种mad检测方法和设备
CN102334112A (zh) 用于虚拟机网络的方法和***
CN103686854B (zh) 控制ap的方法和装置
CN105190530B (zh) 传输硬件渲染的图形数据
CN111966465B (zh) 一种实时修改宿主机配置参数的方法、***、设备及介质
CN108777640A (zh) 一种服务器探测方法、装置、***及存储介质
CN106713064A (zh) 一种虚拟机流量监控方法
CN102098227A (zh) 报文捕获方法及内核模块
CN106656838A (zh) 一种流量分析方法及***
CN109960634A (zh) 一种应用程序监控方法、装置及***
CN106685685A (zh) 一种跨安全分区的交换机性能监测方法及***
CN106714287A (zh) 基于网络访问控制的终端节省电量的方法及装置
CN108234425A (zh) 一种虚拟机流量监控方法
CN106997313A (zh) 一种应用程序的信号处理方法、***及终端设备
CN110417573A (zh) 一种数据传送的方法及***
CN101707622A (zh) 实现远程数据监控的方法
CN114567481A (zh) 一种数据传输方法、装置、电子设备及存储介质
CN106027292A (zh) 一种用于FlexRay网络的配置与测试装置
CN101582880B (zh) 一种基于被审计对象的报文过滤方法及***

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200508

Address after: Luohu District Shenzhen Shennan Road 518000 No. 4020 Guangdong provincial power dispatching center building

Patentee after: Shenzhen Power Supply Co.,Ltd.

Address before: 518000 No. 39, No. 1, Futian District center, Guangdong, Shenzhen

Co-patentee before: Feng Bin

Patentee before: Sun Qiangqiang

Co-patentee before: Zhao Ming