CN102147840B - 一种通过虚拟机实现网络控制的方法 - Google Patents

一种通过虚拟机实现网络控制的方法 Download PDF

Info

Publication number
CN102147840B
CN102147840B CN 201010109183 CN201010109183A CN102147840B CN 102147840 B CN102147840 B CN 102147840B CN 201010109183 CN201010109183 CN 201010109183 CN 201010109183 A CN201010109183 A CN 201010109183A CN 102147840 B CN102147840 B CN 102147840B
Authority
CN
China
Prior art keywords
network
interface card
transferred
virtual
data
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
CN 201010109183
Other languages
English (en)
Other versions
CN102147840A (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.)
China the Great Wall science and technology group Limited by Share Ltd
Original Assignee
China Great Wall Computer Shenzhen Co Ltd
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 China Great Wall Computer Shenzhen Co Ltd filed Critical China Great Wall Computer Shenzhen Co Ltd
Priority to CN 201010109183 priority Critical patent/CN102147840B/zh
Publication of CN102147840A publication Critical patent/CN102147840A/zh
Application granted granted Critical
Publication of CN102147840B publication Critical patent/CN102147840B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Abstract

本发明适用于计算机领域,提供了一种通过虚拟机实现网络控制的方法。所述方法包括以下步骤:当网络数据传输到网卡上时,网卡将所述网络数据传输到虚拟的网卡模块,在UEFI BIOS中应用虚拟的网卡模块对网络数据进行监控,控制网络传输功能的开启和关闭。本发明实现对网卡的数据截获或数据的传输,以保护计算机的网络安全。

Description

一种通过虚拟机实现网络控制的方法
技术领域
本发明属于计算机领域,尤其涉及一种通过虚拟机实现网络控制的方法。
背景技术
近年来,网络安全已经引起广泛的关注,随着网络用户的普及,网络的安全应用也变得越来越重要,其中网络的控制就显得尤其重要。网络控制包括对网络的开启和关闭以及对网络数据的截获分析等。随着计算机技术的不断更新,虚拟化技术得到了广泛的应用,虚拟化技术已经渗透到了计算机的各个领域,应用虚拟化技术对计算机网络数据进行控制也是未来的发展趋势。
在现有技术中,计算机开机后,连通网线,计算机会自动连接到Internet网络或工作网络,进行正常的网络数据传输,因此,容易受到网络的攻击,从而使计算机的网络安全得不到保护。
虚拟机(virtual machine,VM)是支持多操作***并行运行在单个物理服务器上的一种***,能够提供更加有效的底层硬件使用。如果在某虚拟机中出现程序冻结现象,这并不会影响运行在虚拟机外的程序操作和操作***的正常工作;虚拟机监视器(Virtual Machine Monitor,VMM)是由Vanderpool技术引入的一个软件层。一个VMM可以是一个宿主,它可以完全控制***中的处理器和其他的硬件资源,还可以对运行在他之上的VM分配资源,如:处理器、物理内存、中断管理、输入输出端口I/O分配等;虚拟化技术(VirtualizationTechnology,VT)是一个广义的术语,在计算机方面通常是指计算机元器件在虚拟的基础上而不是真实的基础上运行。虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。CPU的虚拟化技术可以单CPU模拟多CPU并行,允许一个平台同时运行多个操作***,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。
虚拟化技术与多任务以及超线程技术是完全不同的。多任务是指在一个操作***中多个程序同时并行运行。而在虚拟化技术中,则可以同时运行多个操作***,而且每一个操作***中都有多个程序运行,每一个操作***都运行在一个虚拟的CPU或者是虚拟主机上。而超线程技术只是单CPU模拟双CPU来平衡程序运行性能,这两个模拟出来的CPU是不能分离的,只能协同工作。
纯软件虚拟软件有VMWare Workstation,VMWare PC,纯软件虚拟具体的优势表现在减少虚拟机的相关开销和支持更广泛的操作***。原因是:使用纯软件的VMM后使得原来***中的特权等级发生变化,使得VMM和OS之间的通信增加二进制的转换,以通过提供到物理资源(如处理器、内存、存储、显卡和网卡等)的接口,模拟硬件环境。
而CPU的虚拟化技术是一种硬件方案,支持虚拟技术的CPU带有特别优化过的指令集来控制虚拟过程,通过这些指令集,VMM会很容易提高性能,相比软件的虚拟实现方式会很大程度上提高性能。虚拟化技术可提供基于芯片的功能,借助兼容VMM软件能够改进纯软件解决方案。由于虚拟化硬件可提供全新的架构,支持操作***直接在上面运行,从而无需进行二进制转换,减少了相关的性能开销,极大简化了VMM设计,进而使VMM能够按通用标准进行编写,性能更加强大。
发明内容
本发明所要解决的技术问题在于提供一种在连通网络的情况下,应用虚拟化技术可以控制计算机网络的开启和关闭,对网卡数据进行截获,以保护计算机的网络安全的通过虚拟机实现网络控制的方法。
为解决上述技术问题,本发明提供一种通过虚拟机实现网络控制的方法,所述方法包括以下步骤:
当网络数据传输到真实的网卡上时,该网卡将所述网络数据传输到虚拟的网卡模块,在UEFI BIOS中应用虚拟的网卡模块对网络数据进行监控,控制网络传输功能的开启和关闭;
当网络传输功能处于开启状态时,外部网络传输的网络数据会传输到真实的网卡上,再传输到虚拟的网络控制模块,虚拟的网络控制模块解析网络数据,虚拟的网络控制模块将解析后的网络数据传输到最终的操作***上,同样,由操作***发出的网络数据通过中间的虚拟的网络控制模块传输到真实的网卡上,再由网卡传输到网络;
当网络传输功能处于关闭状态时,外部网络传输的网络数据会传输到真实的网卡上,再传输到虚拟的网络控制模块,虚拟的网络控制模块会将网络数据进行拦截,不会传输到操作***;同样,当操作***将网络数据发送到虚拟的网络控制模块时,虚拟的网络控制模块也会将网络数据进行拦截,不会传输到真实的网卡上。
在本发明中,当网络数据传输到网卡上时,网卡将所述网络数据传输到虚拟的网卡模块,在UEFI BIOS中应用虚拟的网卡模块对网络数据进行控制,控制网络传输功能的开启和关闭,从而实现对网卡的数据截获或数据的传输,以保护计算机的网络安全。
附图说明
图1是本发明实施例提供的通过虚拟机实现网络控制的方法的实现流程示意图。
图2是本发明实施例提供的接收网络数据的控制实现流程示意图。
图3是本发明实施例提供的发送网络数据的控制实现流程示意图。
图4是本发明实施例提供的基于UEFI的BIOS的总体逻辑架构图。
具体实施方式
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明实施例中,当网络数据传输到网卡上时,网卡将所述网络数据传输到虚拟的网卡模块,在UEFIBIOS中应用虚拟的网卡模块对网络数据进行监控,控制网络传输功能的开启和关闭。当网络传输功能处于开启状态时,外部网络可以通过网线将网络数据传输到网卡上,再将网络数据传输到虚拟的网络控制模块,由虚拟的网络控制模块将解析后的网络数据传输到最终的操作***上,同样,由操作***发出的网络数据通过中间的虚拟的网络控制模块传输到真正的网卡上,再由网卡传输到网络。当网络传输功能处于关闭状态时,外部网络传输的网络数据会传输到真实的网卡上,再传输到虚拟的网络控制模块,虚拟的网络控制模块会将网络数据进行拦截,不会传输到操作***;同样,当操作***将网络数据发送到虚拟的网络控制模块时,虚拟的网络控制模块也会将网络数据进行拦截,不会传输到真实的网卡上。这样就可以利用虚拟的中间层(网络控制模块)对网络数据进行控制。
请参阅图1,为本发明实施例提供的通过虚拟机实现网络控制的方法的实现流程,其包括以下步骤:
在步骤S101中,网线将接收到来自网络传输过来的网络数据传输到网络适配器(网卡)上;
在本发明实施例中,网卡本身是LAN(局域网)的设备,通过网关、路由器等设备则可以将这个局域网挂接到Internet上。而Internet本身就是无数个这样的局域网组成的。网卡工作在OSI(Open System Interconnection)结构的数据链路层和物理层上。
在步骤S102中,所述网络适配器将所述网络数据传输到虚拟的网络适配器上;
在步骤S103中,虚拟的网络适配器将网络数据传送到解析模块;
在步骤S104中,解析模块将解析后的网络数据传输到微型操作***(例如:长城微型操作***);
在步骤S105中,由微型操作***将网络数据传输到虚拟机监视器;
在步骤S106中,虚拟机监视器将网络数据传输到网卡Miniport协议的IO;
在步骤S107中,通过在UEFI BIOS中设置网络控制功能的开启和关闭;
在步骤S108中,通过网卡Miniport协议的IO截获网络的传输数据,判断是否需要传输到操作***中;
在步骤S109中,如果网络控制功能开启,则传输到操作***上;如果网络控制功能关闭,则截获网络数据。
请参阅图2,为本发明实施例提供的接收网络数据的控制实现流程,其实现过程如下:
计算机开机连通网络后,执行步骤001:网络通过网线将网络数据以数据包的形式传输到网络适配器上。
而后执行步骤002:NIC(network interface card,网卡)把网络数据从网线接收到硬件FIFO(First in,First out,先进先出的数据缓存器),当硬件FIFO接收的网络数据达到数据限制时,网络数据开始被DMA(Direct MemoryAccess,存储器直接访问)到ring buffer(***内存),当整个数据包被复制到ring buffer,头指针被写入,CBA(写指针寄存器)指向数据包的结尾,然后利用CR(命令寄存器)设置相应的工作模式。
步骤003:调用网卡MiniPort Driver,负责同真正的网卡数据交换,网卡MiniPort Driver是一个虚拟的网卡驱动,调用Driver服务程序主要负责清除CR设置的工作模式,并设置当前读指针寄存器CAPR。
步骤004:当VMM监控到有网络数据要从网卡发送的时候,协议解析记录模块分析发送的数据包,将发送的数据包解析成高层协议,主要解决TCP/IPV4和UDP/IPV4协议。
步骤005:GW Mini OS,为长城独立全新开发的一个微型操作***,完成CPU保护模式初始化,GDT、IDT、TR、CR0\CR4的处理,虚拟内存和物理内存管理,模块管理等,为VMM和其它模块提供运行环境。
步骤006:VMM主要负责监控到OS和BIOS中的网络IO和硬盘IO和这两类设备的外部Interrupt(中断)。
步骤007:调用UEFI BIOS中的UNDI服务来设置网络控制功能的开启或关闭。
步骤008:VMM将网络数据传输到网卡Miniport协议IO模块,如果UEFIBIOS中设置网络控制功能为开启的状态,网卡Miniport协议IO模块将网络数据直接发送到PCI总线上,最终传输到操作***上;若在UEFI BIOS中将网络控制功能设置为关闭,网卡Miniport协议IO模块将在Port I/O时(计算机内有程序调用了in/out相关指令),会调用VMM处理函数,从RBSTART Register(一个中间寄存器)获得网络数据的物理地址,并将其截获。
步骤009:网络控制功能设置为开启状态,网络数据没有被截获,并直接传输到操作***上。
步骤010:网络控制功能设置为关闭状态,网络数据被截获,不会传输到操作***中。
请参阅图3,为本发明实施例提供的发送网络数据的控制实现流程,其实现过程如下:
网络数据的发送流程与接收流程是一个逆过程,同样需要在UEFI BIOS中的UNDI服务中设置网络控制模块的开启和关闭,当操作***中的网络数据需要发送时,就会产生一个out port中断,此时网卡Miniport协议IO模块就会判断BIOS中的网络控制功能是否开启,如果设置为开启,就会将网络数据传输到VMM直到通过网线传输到网络。如果设置为关闭,网卡Miniport协议IO模块会从4个TSAD获得网络数据的地址、数据长度以及状态,并将其截获,不向下进行发送。由于发送与接收数据是一个逆过程,所以在这里就不进行详细的复述。
MMIO的原理和port I/O类似,所不同是register(寄存器)还被映射到memory map area(内存表)上,驱动可以靠内存来操作NIC。主要的接收和发送流程同上述流程基本一致。MMIO发送数据的截获方法主要是监测到Port IO有输出时,会检查TxDesc Ring,把Own为1的数据都检查一次,这些都是要发送的数据,获得发送数据长度,缓存区物理地址,并截获其内容;MMIO接收数据的截获方法是当有Port IO有中断发生时,服务程序会读取ISR的ROK位,检查RxDesc Ring,把OWN为0的都检查一次,将物理地址转换为线性地址,截获其数据。
请参阅图4,为本发明实施例提供的基于UEFI的BIOS的总体逻辑架构,由于其是现有技术,在本发明中只对其做简单介绍。基于UEFI的BIOS在逻辑上分为三层:最底层是基于UEFI的BIOS运行的硬件环境;中间层是基于UEFI的BIOS所支持的BIOS运行的平台和驱动环境;上层是应用程序模块。
其中底层硬件模块(Hardware)为基于UEFI的BIOS的运行以及上层应用程序的运行提供了硬件支持。框架协议模块(Pre-EFI Modules)为基于UEFI的BIOS Driver定义了数据接口协议。VMM控制模块为监控层,负责监控底层的硬件资源,并且为驱动层提供运行环境。驱动层为上层应用程序提供相关的驱动。网络控制模块对网络数据的传输启到一个开关的作用。UEFI接口模块根据UEFI规范协议定义了上层应用程序接口,通过调用UEFI接口模块14定义的上层应用程序接口,实现底层硬件与上层应用之间的交互。
综上所述,本发明实施例当网络数据传输到网卡上时,网卡将所述网络数据传输到虚拟的网卡模块,在UEFI BIOS中应用虚拟的网卡模块对网络数据进行控制,控制网络传输功能的开启和关闭,从而实现对网卡的数据截获或数据的传输,以保护计算机的网络安全。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (4)

1.一种通过虚拟机实现网络控制的方法,其特征在于,所述方法包括以下步骤:
当网络数据传输到真实的网卡上时,该网卡将所述网络数据传输到虚拟的网卡模块,在UEFI BIOS中应用虚拟的网卡模块对网络数据进行监控,控制网络传输功能的开启和关闭;
当网络传输功能处于开启状态时,外部网络传输的网络数据会传输到真实的网卡上,再传输到虚拟的网络控制模块,虚拟的网络控制模块解析网络数据,虚拟的网络控制模块将解析后的网络数据传输到最终的操作***上,同样,由操作***发出的网络数据通过中间的虚拟的网络控制模块传输到真实的网卡上,再由网卡传输到网络;
当网络传输功能处于关闭状态时,外部网络传输的网络数据会传输到真实的网卡上,再传输到虚拟的网络控制模块,虚拟的网络控制模块会将网络数据进行拦截,不会传输到操作***;同样,当操作***将网络数据发送到虚拟的网络控制模块时,虚拟的网络控制模块也会将网络数据进行拦截,不会传输到真实的网卡上。
2.如权利要求1所述的方法,其特征在于,所述虚拟的网络控制模块会将网络数据进行拦截,不会传输到操作***的步骤,具体为:
若在UEFI BIOS中将网络控制功能设置为关闭,网卡Miniport协议IO模块将在PortI/O时,会调用VMM处理函数,从RBSTART Register中间寄存器获得网络数据的物理地址,并将其截获,不会传输到操作***中。
3.如权利要求1所述的方法,其特征在于,所述由操作***发出的网络数据通过中间的虚拟的网络控制模块传输到真实的网卡上,再由网卡传输到网络的步骤,具体为:
当操作***中的网络数据需要发送时,就会产生一个out port中断,此时网卡Miniport协议IO模块就会判断BIOS中的网络控制功能是否开启,如果设置为开启,就会将网络数据传输到VMM直到通过网线传输到网络。
4.如权利要求1所述的方法,其特征在于,所述当操作***将网络数据发送到虚拟的网络控制模块时,虚拟的网络控制模块也会将网络数据进行拦截,不会传输到真实的网卡上的步骤,具体为:
如果网络控制功能设置为关闭,网卡Miniport协议IO模块会从4个TSAD发送缓冲区的基地址寄存器获得网络数据的地址、数据长度以及状态,并将其截获,不向下进行发送,不会传输到真实的网卡上。
CN 201010109183 2010-02-05 2010-02-05 一种通过虚拟机实现网络控制的方法 Active CN102147840B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201010109183 CN102147840B (zh) 2010-02-05 2010-02-05 一种通过虚拟机实现网络控制的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010109183 CN102147840B (zh) 2010-02-05 2010-02-05 一种通过虚拟机实现网络控制的方法

Publications (2)

Publication Number Publication Date
CN102147840A CN102147840A (zh) 2011-08-10
CN102147840B true CN102147840B (zh) 2013-08-28

Family

ID=44422103

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010109183 Active CN102147840B (zh) 2010-02-05 2010-02-05 一种通过虚拟机实现网络控制的方法

Country Status (1)

Country Link
CN (1) CN102147840B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102609638A (zh) * 2011-12-22 2012-07-25 中国航天科工集团第二研究院七〇六所 基于UEFI运行时服务的Xen虚拟机架构及其实现方法
WO2014161133A1 (zh) 2013-04-01 2014-10-09 华为技术有限公司 虚拟机的数据交换方法、装置和***
CN109450742B (zh) * 2015-03-27 2021-04-16 北京奇虎科技有限公司 监控网络数据的方法、实体机虚拟设备及网络***
CN104869361B (zh) * 2015-05-20 2018-06-05 浙江宇视科技有限公司 一种视频监控***中的视频监控终端设备
CN110365760A (zh) * 2019-07-09 2019-10-22 广东美的制冷设备有限公司 家电设备、家电设备的控制方法、装置和计算机设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1916854A (zh) * 2005-08-19 2007-02-21 联想(北京)有限公司 一种管理与配置虚拟机的***和方法
CN101002171A (zh) * 2003-12-18 2007-07-18 英特尔公司 虚拟网络接口
CN101399830A (zh) * 2007-09-29 2009-04-01 联想(北京)有限公司 虚拟机***及其共享以太网点对点协议链接的方法
CN101409714A (zh) * 2008-11-18 2009-04-15 华南理工大学 一种基于虚拟机的防火墙***

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7620955B1 (en) * 2001-06-08 2009-11-17 Vmware, Inc. High-performance virtual machine networking

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101002171A (zh) * 2003-12-18 2007-07-18 英特尔公司 虚拟网络接口
CN1916854A (zh) * 2005-08-19 2007-02-21 联想(北京)有限公司 一种管理与配置虚拟机的***和方法
CN101399830A (zh) * 2007-09-29 2009-04-01 联想(北京)有限公司 虚拟机***及其共享以太网点对点协议链接的方法
CN101409714A (zh) * 2008-11-18 2009-04-15 华南理工大学 一种基于虚拟机的防火墙***

Also Published As

Publication number Publication date
CN102147840A (zh) 2011-08-10

Similar Documents

Publication Publication Date Title
KR101444984B1 (ko) 다수의 가상 머신들 사이에서 네트워크 인터페이스를 공유하기 위한 방법
CN101465863B (zh) 一种内核虚拟机环境下高效网络i/o的实现方法
CN101557420B (zh) 虚拟机监控器高效网络通信的实现方法
Liu et al. High Performance VMM-Bypass I/O in Virtual Machines.
US7865908B2 (en) VM network traffic monitoring and filtering on the host
US10540294B2 (en) Secure zero-copy packet forwarding
CN103150279B (zh) 一种主机与基板管理控制器共享设备的方法
CN102147763B (zh) 一种网络日志的记录方法、***及计算机
Ren et al. Shared-memory optimizations for inter-virtual-machine communication
CN102147840B (zh) 一种通过虚拟机实现网络控制的方法
WO2007019316A3 (en) Zero-copy network i/o for virtual hosts
CN101751284A (zh) 一种分布式虚拟机监控器的i/o资源调度方法
EP4053706A1 (en) Cross address-space bridging
JP5669851B2 (ja) 論理的にパーティション化されたシステムにおいてパーティション間の効率的なコミュニケーションを行うための装置、方法、及びコンピュータ・プログラム
Lettieri et al. A survey of fast packet I/O technologies for network function virtualization
Ren et al. Nosv: A lightweight nested-virtualization VMM for hosting high performance computing on cloud
Mohebbi et al. Zivm: A zero-copy inter-vm communication mechanism for cloud computing
Cardigliano et al. vPF_RING: Towards wire-speed network monitoring using virtual machines
Nordal et al. Paravirtualizing tcp
Niu et al. NetKernel: Making network stack part of the virtualized infrastructure
Imada Mirageos unikernel with network acceleration for iot cloud environments
Jin et al. Virtual switching without a hypervisor for a more secure cloud
CN103425563B (zh) 基于虚拟化技术的在线i/o电子取证***及其取证方法
US10785120B2 (en) Systems and methods for extending link layer discovery over virtual Ethernet bridges
Gebhardt et al. Challenges for inter virtual machine communication

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 518057 computer building of the Great Wall, Nanshan District science and Technology Park, Shenzhen, Guangdong

Patentee after: China the Great Wall science and technology group Limited by Share Ltd

Address before: 518057 computer building of the Great Wall, Nanshan District science and Technology Park, Shenzhen, Guangdong

Patentee before: China Changcheng Computer Shenzhen Co., Ltd.