CN103516705B - 虚拟机的通信方法以及服务器端系统 - Google Patents

虚拟机的通信方法以及服务器端系统 Download PDF

Info

Publication number
CN103516705B
CN103516705B CN201210240829.XA CN201210240829A CN103516705B CN 103516705 B CN103516705 B CN 103516705B CN 201210240829 A CN201210240829 A CN 201210240829A CN 103516705 B CN103516705 B CN 103516705B
Authority
CN
China
Prior art keywords
virtual machine
virtual
package
hardware address
main frame
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
CN201210240829.XA
Other languages
English (en)
Other versions
CN103516705A (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.)
Weft Technology Service Ltd By Share Ltd
Original Assignee
Wistron Corp
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 Wistron Corp filed Critical Wistron Corp
Publication of CN103516705A publication Critical patent/CN103516705A/zh
Application granted granted Critical
Publication of CN103516705B publication Critical patent/CN103516705B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5038Address allocation for local use, e.g. in LAN or USB networks, or in a controller area network [CAN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/604Address structures or formats
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/622Layer-2 addresses, e.g. medium access control [MAC] addresses

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Abstract

一种虚拟机的通信方法以及服务器端系统。该虚拟机的通信方法适用于包括多个主机与多个虚拟机的服务器端系统,通信方法包括:在该些虚拟机建立时,分别指派多个虚拟硬件地址给该些虚拟机,其中,每一该些虚拟硬件地址包括每一该些虚拟机的租用户识别码;当第一虚拟机欲与第二虚拟机进行沟通时,通过第一虚拟机传送封包,封包中包括第一虚拟机的第一虚拟硬件地址与第二虚拟机的第二虚拟硬件地址,而第一、第二虚拟硬件地址分别为该些虚拟硬件地址其中之一;以及当通信模块接收到封包时,对封包执行验证程序,包括:当第一、第二虚拟硬件地址具有相同的租用户识别码时,传送封包至第二虚拟机。本发明可有效地管理并隔离多个虚拟机间的封包与流量。

Description

虚拟机的通信方法以及服务器端系统
技术领域
本发明涉及一种通信技术,且特别涉及一种可隔离不同租用户的虚拟机间的封包流量的虚拟机的通信方法以及服务器端系统(server-endsystem)。
背景技术
随着科技的进步,虚拟机(VirtualMachine)已经被广泛地应用在各种计算机领域中,例如使用虚拟机来研究恶意程序(malware)在个人计算机中的行为。一般来说,一台计算机主机可以同时运行多个虚拟机,且这些运行于相同的计算机主机的虚拟机通常被希望是彼此独立的。或者,对于使用同一台计算机来各自运行虚拟机的多个租用户来说,若隶属于不同租用户的虚拟机的封包流量没有被妥善的隔离,可能会导致各虚拟机在对封包的撷取上产生混淆的情况发生。
举例来说,当租用户A在一计算机主机X上运行了两台虚拟机(例如,虚拟机M与虚拟机N),以进行恶意程序散播恶意封包的研究。而另一租用户B则可能也在计算机主机X上运行了另一虚拟机(例如,虚拟机K),以进行网络流量的分析研究。此时,租用户B的虚拟机(例如,虚拟机K)可能会因为接收到租用户A运行的虚拟机(例如,虚拟机M)散播的恶意封包而导致实验结果出现异常。据此,如何有效地隔离隶属于各租用户的多个虚拟机间的封包流量,实为本领域需研究发展的课题。
因此,需要提供一种虚拟机的通信方法以及服务器端系统来解决上述问题。
发明内容
本发明提出一种虚拟机的通信方法与服务器端系统,可有效地管理并隔离隶属于各租用户的多个虚拟机。
本发明的一方面提出一种虚拟机的通信方法,该虚拟机的通信方法适用于一服务器端系统,该服务器端系统包括多个主机与多个虚拟机,该通信方法包括:在该些虚拟机建立时,分别指派多个虚拟硬件地址给该些虚拟机,其中,每一该些虚拟硬件地址包括每一该些虚拟机的一租用户识别码;当该些虚拟机中的一第一虚拟机欲与一第二虚拟机进行沟通时,通过该第一虚拟机传送一封包,其中该封包中包括该第一虚拟机的一第一虚拟硬件地址与该第二虚拟机的一第二虚拟硬件地址,而该第一虚拟硬件地址与该第二虚拟硬件地址分别为该些虚拟硬件地址其中之一;以及当一通信模块接收到该封包时,对该封包执行一验证程序,该验证程序包括;当该第一虚拟硬件地址与该第二虚拟硬件地址具有相同的该租用户识别码时,传送该封包至该第二虚拟机。
本发明的另一方面提出一种服务器端系统,所述服务器端系统包括:一管理装置以及多个主机;该管理装置在多个虚拟机建立时,分别指派多个虚拟硬件地址给该些虚拟机,其中,每一该些虚拟硬件地址包括每一该些虚拟机的一租用户识别码;其中该些主机中运行有该些虚拟机,每一该些主机包括:一网络接口单元以及一处理单元;该网络接口单元使得该些主机通过其各自的该网络接口单元进行沟通;该处理单元耦接至该网络接口单元,该处理单元使得运行在其中的虚拟机进行动作,以及驱动一通信模块;其中,当该些虚拟机中的一第一虚拟机欲与该些虚拟机中的一第二虚拟机进行沟通时,传送一封包,其中该封包中包括该第一虚拟机的一第一虚拟硬件地址与该第二虚拟机的一第二虚拟硬件地址,而该第一虚拟硬件地址与该第二虚拟硬件地址分别为该些虚拟硬件地址其中之一;当该第一虚拟机或该第二虚拟机对应的该通信模块接收到该封包时,对该封包执行一验证程序;其中,当该第一虚拟硬件地址与该第二虚拟硬件地址具有相同的该租用户识别码时,决定传送该封包。
基于上述,本发明的实施例提出一种虚拟机的通信方法与服务器端系统,其可在虚拟机间的封包传输路径上对封包进行验证程序,以藉由比对封包中分别对应于来源虚拟机以及目的虚拟机的虚拟硬件地址中的租用户识别码,来识别出发送此封包的来源虚拟机以及预设接收此封包的目的虚拟机是否是隶属于相同的租用户,并且依据识别结果来决定是否要续传此封包或直接将此封包丢弃。藉此,可有效地管理并隔离隶属于各租用户的多个虚拟机间的封包与流量。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附附图作详细说明如下。
附图说明
图1为依据本发明的第一实施例所绘示的服务器端系统的示意图。
图2为依据本发明的第二实施例所绘示的服务器端系统的示意图。
图3为依据本发明的第二实施例所绘示的虚拟机的通信方法的流程图。
图4为依据本发明的第二实施例所绘示的虚拟硬件地址的示意图。
图5为依据本发明的第二实施例所绘示的验证程序流程的示意图。
图6为依据本发明的第三实施例所绘示的服务器端系统的示意图。
图7为依据本发明的第四实施例所绘示的服务器端系统的示意图。
图8为依据本发明的第四实施例所绘示的虚拟机的通信方法的流程图。
主要组件符号说明:
10服务器端系统
11管理装置
12、13主机
121、131网络接口单元
122、132处理单元
222、232虚拟机
224、234通信模块
400、522、532虚拟硬件地址
501异或运算模块
502与运算模块
541第一数列
542预设数列
543第二数列
544预设规则
401、403、405、5221、5222、5223、字段
5321、5322、5323、5412、5422
S303~S315第二实施例的虚拟机的通信方法各步骤
S803~S825第四实施例的虚拟机的通信方法各步骤
具体实施方式
为使隶属于相同租用户的多个虚拟机间相互沟通时,可以有效地对彼此发出的封包进行识别,本发明的实施例提出一种虚拟机的通信方法,其可依据预设的验证程序来对封包中对应于各虚拟机的虚拟硬件地址(VirtualHardwareAddress)中的租用户识别码(TenantIdentity)进行验证,以识别出传送此封包与接收此封包的虚拟机是否隶属于同一租用户。藉此,有效地管理并隔离隶属于各租用户的多个虚拟机间的封包与流量。此外,本发明实施例还公开了可用于体现上述虚拟机的通信方法的服务器端系统。为了使本发明的内容更容易明了,以下特举实施例作为本发明确实能够据以实施的范例。
第一实施例
图1为依据本发明的第一实施例所绘示的服务器端系统的示意图。请参照图1,服务器端系统10包括管理装置11、主机12与主机13。在此请注意,在图1中虽然仅绘示主机12与主机13,然而,服务器端系统10实质上还可以包括更多或更少的主机12与主机13。换言之,依据本发明的实施例而将其实现者,可以视设计上或者实践上的需求而调整主机12与主机13的数量,本发明不对其限制。
管理装置11可以是服务器端主机或者一般的计算机主机,用以执行类似服务器端系统10的主控台(maincontrolconsole,MCC)的功能。例如,管理装置11可以用来管理服务器端系统10的整体运作。在本实施例中,管理装置11至少包括一处理器(Processor)、一存储器(Memory)以及一网络接口卡(NetworkInterfaceCard)。
主机12与主机13可以分别是一般的计算机主机,而可分别运行一个或多个虚拟机,其中虚拟机运行于计算机主机的操作系统(OperatingSystem,OS)中,且虚拟机通常可以用来模拟真实的计算机主机。
在本实施例中,主机12与主机13分别至少包括网络接口单元121与处理单元122以及网络接口单元131与处理单元132,其中网络接口单元121与网络接口单元131各自包括至少一网络接口卡,使得主机12与主机13可以通过其各自的网络接口单元121与网络接口单元131进行沟通。
处理单元122与处理单元132分别耦接网络接口单元121与网络接口单元131。处理单元122与处理单元132可以使得分别运行在其中的一个或多个虚拟机进行动作。在本实施例中,处理单元122与处理单元132可以分别是微处理器(micro-processor)、嵌入式控制器(embeddedcontroller)或中央处理器(centralprocessingunit,CPU)等,但本发明的可实施方式并不限定于上述。另外,类似于管理装置11,主机12与主机13也可以包括至少一存储器。
在此请注意,以下的多个范例实施例皆将利用图1对应的实施例中服务器端系统10来作说明。
第二实施例
图2为依据本发明的第二实施例所绘示的服务器端系统的示意图。请参照图2,为了方便说明,在本实施例中,假设处理单元122与处理单元132分别运行虚拟机222与虚拟机232,且处理单元122还运行通信模块224。在本实施例中,通信模块224可对其接收到的封包进行一验证程序,以判断传送此封包与接收此封包的虚拟机是否隶属于同一租用户,并且接续执行对应的动作。另外,本发明并不对通信模块224的体现或实施方式作限制。换言之,通信模块224可以是以硬件电路、固件或者软件的方式来实施,而可执行上述功能。
图3为依据本发明的第二实施例所绘示的虚拟机的通信方法的流程图。请参照图2与图3,在虚拟机222与虚拟机232建立时,通过管理装置11指派虚拟机222与虚拟机232的虚拟硬件地址给处理单元122及处理单元132,并以其作为对虚拟机222及虚拟机232的识别之用。举例来说,请同时参照图2与图3,处理单元122可以通过网络接口单元121告知管理装置11虚拟机222已经被建立并运行于主机12中,并且要求向管理装置11取得虚拟机222对应的虚拟硬件地址。然后,管理装置11可以依据一虚拟硬件地址对应表格来分配尚未被使用的虚拟硬件地址给处理单元122,以其作为虚拟机222的虚拟硬件地址(步骤S303)。类似地,处理单元132也可以向管理装置11取得虚拟机232的虚拟硬件地址,请参照上述说明在此不再赘述。
在此需说明的是,在本发明的实施例中,各个虚拟机对应的虚拟硬件地址是不相同的(类似于实体硬件位置),且每一个虚拟硬件地址可以包括每一个虚拟机其所隶属租用户的租用户识别码,或者包括其他可作为验证虚拟机所隶属的个人或组织所对应的识别码。
当虚拟机222欲与虚拟机232进行沟通时,虚拟机222可以传送一封包(例如,因特网封包)(步骤S305)。在此,所传送的封包中包括虚拟机222的虚拟硬件地址与虚拟机232的虚拟硬件地址。虚拟机222的虚拟硬件地址与虚拟机232的虚拟硬件地址可以分别由管理装置11预先指派,或者是由虚拟机222与虚拟机232依据自订的方式来分别取得,以使封包在传递的过程中可以据以找到来源端的虚拟机以及目的端的虚拟机。以下特举一实施例来对虚拟硬件地址作详细说明。
图4为依据本发明的第二实施例所绘示的虚拟硬件地址的示意图。请参照图4,在本实施例中,虚拟硬件地址400可区分为字段401、字段403与字段405。上述字段401中记录有系统信息,字段403中记录有租用户识别码,以及字段405中记录有虚拟机识别码。系统信息是用来标示与虚拟硬件地址400有关的信息。例如,系统信息可以记载字段401、字段403与字段405各自的位数量等信息。租用户识别码是用来标示虚拟硬件地址400所对应的虚拟机所隶属的租用户的识别码,即,不同的租用户会对应至不同的租用户识别码。藉此,依据虚拟硬件地址400中的租用户识别码就可以识别出虚拟硬件地址400所对应的虚拟机所隶属的租用户。另外,虚拟机识别码则是用来标示虚拟硬件地址400所对应的虚拟机的识别码。
在本实施例中,租用户识别码与虚拟机识别码可以被记录于管理装置11中的虚拟硬件地址对应表格或者其他相类似的表格中。另外,虚拟硬件地址400可以是利用介质访问控制地址(MediaAccessControlAddress,MACAddress)的格式来实施。举例来说,48位的介质访问控制地址可以被区分为3个位组(即,字段),其中第一个位组可以有8个位,用来记录系统信息。第二个位组可以有24个位,用来记录租用户识别码。第三个位组则可以有16个位,用来记录虚拟机识别码。藉此,在封包传递的过程中,只要通过比对封包中的来源端的虚拟硬件地址以及目的端的虚拟硬件地址中各自标示的租用户识别码,就可以快速地辨识传送此封包的虚拟机与预设接收此封包的虚拟机是否是隶属于相同的租用户,并据以执行后续的传输封包或者丢弃封包的动作。
然而,本实施例的虚拟硬件地址所具有的字段与各字段中记录的信息并不以上述为限。举例来说,虚拟硬件地址400还可以包括一部门字段(未绘示),以记录部门识别码(DepartmentIdentity)。此部门识别码为虚拟硬件地址400的虚拟机所隶属的部门(例如,某公司或组织中的某一个部门)。藉此,只要通过比对封包中的来源虚拟硬件地址与目的虚拟硬件地址中各自标示的租用户识别码以及部门识别码,就可以快速地辨识传送此封包的虚拟机与预设接收此封包的虚拟机是否是隶属于相同的租用户且隶属于相同的部门(或者,只隶属于相同部门即可,可依实际应用的需求而定),并据以执行后续的传输封包或者丢弃封包的动作。
请再次参照图2与图3,当虚拟机222欲与虚拟机232进行沟通而传送出一封包之后,处理单元122运行的通信模块224可以判断其是否接收到此封包(步骤S307)。若在步骤S307中的判断结果为是,通信模块224可以先行接收或暂存此封包,并对此封包执行验证程序,以藉由此验证程序来判断虚拟机222与虚拟机232是否是隶属于相同的租用户(步骤S309)。
在验证程序中,通信模块224可以判断虚拟机222的虚拟硬件地址与虚拟机232的虚拟硬件地址是否具有相同的租用户识别码(步骤S311)。倘若虚拟机222的虚拟硬件地址与虚拟机232的虚拟硬件地址具有相同的租用户识别码,通信模块224可以得知虚拟机222与虚拟机232隶属于相同的租用户,并且接续通过网络接口单元121传送此封包至虚拟机232(步骤S313)。
另一方面,倘若虚拟机222的虚拟硬件地址与虚拟机232的虚拟硬件地址中不具有相同的租用户识别码,通信模块224则可以得知虚拟机222与虚拟机232不是隶属于相同的租用户。据此,为了避免虚拟机222与虚拟机232间的封包或流量相互干扰,通信模块224会丢弃此封包(步骤S315)。
另外,当此封包被传送至虚拟机232所在的主机13时,虚拟机232会直接接收此封包。至此,完成此次虚拟机间的封包传输动作。
举例来说,图5为依据本发明的第二实施例所绘示验证程序流程的示意图。请参照图2与图5,为了说明方便,在此以虚拟机222及虚拟机232来进行说明。假设虚拟机222的虚拟硬件地址522为101010101010,且虚拟机232的虚拟硬件地址532为110010100100作为范例来说明。从虚拟硬件地址522来看,字段5221中记录有系统信息1010,字段5222中记录有虚拟机222的租用户识别码1010,以及字段5223中记录有虚拟机222的虚拟机识别码1010。另从虚拟硬件地址532来看,字段5321中记录有系统信息1100,字段5322中记录有虚拟机232的租用户识别码1010,以及字段5323中记录有虚拟机232的虚拟机识别码0100。
在此,首先通信模块224可以对虚拟机222的虚拟硬件地址522(101010101010)与虚拟机232的虚拟硬件地址532(110010100100)进行异或(exclusive-OR,XOR)运算。例如,由异或运算模块501对虚拟硬件地址522与虚拟硬件地址532进行异或运算,并藉以取得第一数列541(011000001110)。然后,通信模块224可以对第一数列541(011000001110)与预设数列542(000011110000)进行且(AND)运算。例如,由与运算模块502对虚拟硬件地址522与虚拟硬件地址532进行与运算,并藉以取得第二数列543(000000000000)。在图5中,异或运算模块501以及与运算模块502可以分别是硬件电路或软件算法模块而可执行对应功能。另外,预设数列542实质上是依据租用户识别码在虚拟机222的虚拟硬件地址522与虚拟机232的虚拟硬件地址532中的位置或字段而决定的。
换言之,以图5的预设数列542为例,因为虚拟机222与虚拟机232的租用户识别码是各自记录在虚拟硬件地址522的字段5222与虚拟硬件地址532的字段5322中,而字段5222与字段5322又对应至第一数列541的字段5412以及预设数列542的字段5422。据此,只要把预设数列542的字段5422中的所有位的值都设为“1”,并且把预设数列542中字段5422以外的所有位的值都设为“0”之后,就可以在对预设数列542与第二数列543作与运算后,快速地识别出虚拟机222与虚拟机232各自的租用户识别码所在的字段5222与字段5322中的数据或数列是否有差异。
最后,通信模块224可以判断第二数列是否符合预设规则544。若第二数列543符合此预设规则544,通信模块224会接续传送此封包至虚拟机232。以图5为例,第二数列543(000000000000)符合预设规则544(000000000000),所以通信模块224会传送此封包至虚拟机232。而若第二数列543不符合此预设规则,则通信模块224会把此封包丢弃。
在此请注意,上述验证程序的具体做法仅为本发明提及的验证程序的其中一种实施方式。换言之,本发明提及的验证程序实质上并不限于上述做法,任何可以藉由硬件电路或软件算法来达到上述比对两个虚拟硬件地址中各自的租用户识别码的相类似的做法皆是属于本发明的范畴内。
第三实施例
本实施例的服务器端系统实质上与上述各实施例的服务器端系统10相同或相似,故,关于内部各构件的详细运作在此不再赘述。在本实施例中,验证程序是由目的端的虚拟机所在的主机所运行的通信模块来进行。
图6为依据本发明的第三实施例所绘示的服务器端系统的示意图。请参照图6,在本实施例中,处理单元132运行通信模块234。通信模块234类似于通信模块224,故在此不再赘述通信模块234的动作方式,若尚有疑虑请分别参照上述对于通信模块224以及验证程序的说明即可明了。
在此需说明的是,本实施例的虚拟机的通信方法的流程同样参照图3并搭配以下的说明即可明了。请参照图3与图6,在虚拟机222与虚拟机232建立时,通过管理装置11分别指派虚拟机222与虚拟机232的虚拟硬件地址给处理单元122与处理单元132(步骤S303)。当虚拟机222欲与虚拟机232进行沟通时,虚拟机222可以传送一封包(步骤S305)。本实施例与第二实施例不同之处在于,本实施例是由虚拟机232所在的主机13中的通信模块234来进行验证程序的。
承上所述,处理单元132运行的通信模块234可以判断其是否接收到此封包(步骤S307)。例如,通信模块234可以判断其是否通过网络接口单元131接收到此封包。若在步骤S307中的判断结果为是,通信模块234可以先行接收或暂存此封包,并对此封包执行验证程序,以藉由此验证程序来判断虚拟机222与虚拟机232是否是隶属于相同的租用户(步骤S309)。
类似于图2中的通信模块224,在本实施例中,通信模块234可以判断虚拟机222的虚拟硬件地址与虚拟机232的虚拟硬件地址是否具有相同的租用户识别码(步骤S311)。若通信模块234判断虚拟机222的虚拟硬件地址与虚拟机232的虚拟硬件地址具有相同的租用户识别码,直接将此封包传送至虚拟机232(步骤S313)。进行至此,完成此次虚拟机间的封包传输动作。
另外,若通信模块234判断虚拟机222的虚拟硬件地址与虚拟机232的虚拟硬件地址中不具有相同的租用户识别码,通信模块234会丢弃此封包(步骤S315),而导致此次的虚拟机间的封包传输失败。
在此,由于本实施例的验证程序与第二实施例的验证程序为相同或相似,故,在此不再详述。
第四实施例
本实施例的服务器端系统实质上与上述各实施例的服务器端系统10相同,故,关于内部各构件的详细运作在此不再赘述。在本实施例中,除了在来源端执行验证程序之外,亦会在目的端执行验证程序。
图7为依据本发明的第四实施例所绘示的服务器端系统的示意图。请参照图7,在本实施例中,处理单元122与处理单元132除了运行虚拟机222与虚拟机232以外,处理单元122与处理单元132还分别运行了通信模块224与通信模块234。其中,通信模块224与通信模块234的运作与可实施方式分别已在第二实施例与第三实施例做过详细说明,故在此不再对其赘述。
图8为依据本发明的第四实施例所绘示的虚拟机的通信方法的流程图。请参照图7与图8,在虚拟机222与虚拟机232建立时,通过管理装置11分别指派虚拟机222与虚拟机232的虚拟硬件地址给处理单元122与处理单元132,并以其分别作为对虚拟机222与虚拟机232的识别之用(步骤S803)。
在来源端方面,当虚拟机222欲与虚拟机232进行沟通时,通过虚拟机222来传送一封包(例如,因特网封包)(步骤S805)。在此,封包中包括虚拟机222的虚拟硬件地址与虚拟机232的虚拟硬件地址,以使封包在传递的过程中可以据以找到来源端的虚拟机以及目的端的虚拟机。另外,虚拟机222的虚拟硬件地址与虚拟机232的虚拟硬件地址分别包括虚拟机222与虚拟机232分别隶属的租用户所对应的租用户识别码。
承上所述,处理单元122运行的通信模块224可以判断其是否接收到此封包(步骤S807)。若在步骤S807中的判断结果为是,通信模块224可以先行接收或暂存此封包,并对此封包执行验证程序,以藉由此验证程序来判断虚拟机222与虚拟机232是否是隶属于相同的租用户(步骤S809)。
类似于上述对于验证程序的说明,在本实施例中,通信模块224可以判断虚拟机222的虚拟硬件地址与虚拟机232的虚拟硬件地址是否具有相同的租用户识别码(步骤S811)。若虚拟机222的虚拟硬件地址与虚拟机232的虚拟硬件地址具有相同的租用户识别码,通信模块224接续通过网络接口单元121传送此封包至目的端的主机13(步骤S813)。若虚拟机222的虚拟硬件地址与虚拟机232的虚拟硬件地址中不具有相同的租用户识别码,通信模块224会丢弃此封包(步骤S815),而导致此次的虚拟机间的封包传输失败。
在目的端方面,处理单元132运行的通信模块234可以判断其是否接收到此封包(步骤S817)。例如,通信模块234可以判断是否通过网络接口单元131接收到此封包。若在步骤S817中的判断结果为是,通信模块234可以先行接收或暂存此封包,并对此封包执行验证程序,以藉由此验证程序来判断虚拟机222与虚拟机232是否是隶属于相同的租用户(步骤S819)。具体来说,通信模块234可以再次判断封包中的虚拟机222与虚拟机232双方的虚拟硬件地址是否具有相同的租用户识别码(步骤S821)。若虚拟机222的虚拟硬件地址与虚拟机232的虚拟硬件地址具有相同的租用户识别码,传送此封包至虚拟机232(步骤S823)。进行至此,完成此次虚拟机间的封包传输动作。
另外,若虚拟机222的虚拟硬件地址与虚拟机232的虚拟硬件地址中不具有相同的租用户识别码,通信模块234会丢弃此封包(步骤S825),进而导致此次的虚拟机间的封包传输失败。
值得一提的是,当运行于同一主机的两个虚拟机欲进行沟通时,亦会由这一主机中的通信模块来进行验证程序。例如:当虚拟机A欲与虚拟机B进行沟通,通过虚拟机A传送一封包,并且由主机中的通信模块进行验证程序,以在验证无误之后,再将封包传送至虚拟机B。
另外,在上述各实施例中,当其中一虚拟机发出的封包为广播(broadcast)封包时,由于其并不是限定于某两个虚拟机间的封包传输,所以此广播封包并不会被进行上述验证程序。举例来说,虚拟机在发出广播封包时,其可以将此广播封包的目的虚拟硬件地址中的所有位皆设为“1”,藉此,只要通信模块接收到的封包中的目的虚拟硬件地址的所有位皆为“1”时,可以直接判断其为广播封包并将其以广播的方式传送出去。
综上所述,在上述实施例中,可在虚拟机间的封包传输路径上进行一次或多次验证程序,以藉由比对封包中分别对应于来源虚拟机以及目的虚拟机的虚拟硬件地址中的租用户识别码,来识别出发送此封包的来源虚拟机以及预设接收此封包的目的虚拟机是否是隶属于相同的租用户,或者隶属于相同部门等筛选条件,并且依据识别结果来决定是否要续传此封包或直接将此封包丢弃。藉此,可有效地管理并隔离隶属于各租用户或其他筛选条件的多个虚拟机间的封包与流量。
虽然本发明已以实施例公开如上,然而其并非用以限定本发明,任何所属技术领域中的普通技术人员,在不脱离本发明的精神和范围的情况下,应当可作些许的更动与润饰,故本发明的保护范围应当视所附的权利要求书的范围所界定者为准。

Claims (14)

1.一种虚拟机的通信方法,该虚拟机的通信方法适用于一服务器端系统,该服务器端系统包括多个主机与多个虚拟机,该通信方法包括:
在该些虚拟机建立时,为每一虚拟机指派一个虚拟硬件地址,其中,每一虚拟硬件地址包括每一虚拟机的一租用户识别码;
当该些虚拟机中的一第一虚拟机欲与一第二虚拟机进行沟通时,通过该第一虚拟机传送一封包,其中该封包中包括该第一虚拟机的一第一虚拟硬件地址与该第二虚拟机的一第二虚拟硬件地址,而该第一虚拟硬件地址与该第二虚拟硬件地址分别为该些虚拟硬件地址其中之一;以及
当一通信模块接收到该封包时,对该封包执行一验证程序,包括:
对该第一虚拟硬件地址与该第二虚拟硬件地址进行一异或运算,以取得一第一数列;
对该第一数列与一预设数列进行与运算,以取得一第二数列,其中该预设数列是依据该租用户识别码在该第一虚拟硬件地址与该第二虚拟硬件地址中的位置而决定;以及
当该第二数列符合一预设规则时,传送该封包至该第二虚拟机。
2.如权利要求1所述的虚拟机的通信方法,其中每一虚拟硬件地址包括一第一字段、一第二字段与一第三字段,以分别储存该租用户识别码、一系统信息以及一虚拟机识别码。
3.如权利要求2所述的虚拟机的通信方法,其中每一虚拟硬件地址还包括一第四字段,以储存一部门识别码,而对该封包执行该验证程序的步骤还包括:
当该第一虚拟硬件地址与该第二虚拟硬件地址具有相同的该租用户识别码与相同的该部门识别码时,传送该封包至该第二虚拟机。
4.如权利要求3所述的虚拟机的通信方法,其中该系统信息用来标示该第一字段、该第二字段、该第三字段以及该第四字段各自的位数量。
5.如权利要求1所述的虚拟机的通信方法,其中该第一虚拟机位于该些主机中的一第一主机,且该第二虚拟机位于该些主机中的一第二主机,其中在通过该第一虚拟机传送该封包的步骤之后,还包括:
当该第一主机的该通信模块接收到该封包时,对该封包执行该验证程序。
6.如权利要求5所述的虚拟机的通信方法,其中当该第一主机的该通信模块接收到该封包时,对该封包执行该验证程序的步骤之后,还包括:
在通过该第一主机的该通信模块的验证之后,传送该封包至该第二主机的该通信模块,以对该封包执行该验证程序;以及
在通过该第二主机的该通信模块的验证之后,传送该封包至该第二虚拟机。
7.如权利要求1所述的虚拟机的通信方法,其中该第一虚拟机位于该些主机中的一第一主机,且该第二虚拟机位于该些主机中的一第二主机,其中在通过该第一虚拟机传送该封包的步骤之后,还包括:
当该第二主机的该通信模块接收到该封包时,对该封包执行该验证程序。
8.如权利要求1所述的虚拟机的通信方法,其中该第一虚拟机与该第二虚拟机同时位于该些主机其中之一。
9.一种服务器端系统,该服务器端系统包括:
一管理装置,该管理装置在多个虚拟机建立时,为每一虚拟机指派一个虚拟硬件地址,其中,每一虚拟硬件地址包括每一虚拟机的一租用户识别码;以及
多个主机,其中该些主机中运行有该些虚拟机,每一主机包括:
一网络接口单元,该网络接口单元使得该些主机通过其各自的该网络接口单元进行沟通;以及
一处理单元,该处理单元耦接至该网络接口单元,该处理单元使得运行在其中的虚拟机进行动作,以及驱动一通信模块;
其中,当该些虚拟机中的一第一虚拟机欲与该些虚拟机中的一第二虚拟机进行沟通时,传送一封包,其中该封包中包括该第一虚拟机的一第一虚拟硬件地址与该第二虚拟机的一第二虚拟硬件地址,而该第一虚拟硬件地址与该第二虚拟硬件地址分别为该些虚拟硬件地址其中之一;当该第一虚拟机或该第二虚拟机对应的该通信模块接收到该封包时,对该封包执行一验证程序;
其中,该通信模块对该第一虚拟硬件地址与该第二虚拟硬件地址进行一异或运算,以取得一第一数列,并对该第一数列与一预设数列进行一与运算,以取得一第二数列,其中该预设数列是依据该租用户识别码在该第一虚拟硬件地址与该第二虚拟硬件地址中的位置而决定,并且当该通信模块判断该第二数列符合一预设规则时,该通信模块传送该封包至该第二虚拟机。
10.如权利要求9所述的服务器端系统,其中每一虚拟硬件地址包括一第一字段、一第二字段与一第三字段,以分别储存该租用户识别码、一系统信息以及一虚拟机识别码。
11.如权利要求10所述的服务器端系统,其中每一虚拟硬件地址还包括一第四字段,该第四字段用以储存一部门识别码,而该通信模块还判断该第一虚拟硬件地址与该第二虚拟硬件地址是否具有相同的该部门识别码,以在该第一虚拟硬件地址与该第二虚拟硬件地址具有相同的该租用户识别码与相同的该部门识别码时,传送该封包至该第二虚拟机。
12.如权利要求11所述的服务器端系统,其中该系统信息用来标示该第一字段、该第二字段、该第三字段以及该第四字段各自的位数量。
13.如权利要求9所述的服务器端系统,其中该些主机中一第一主机与一第二主机分别运行该第一虚拟机与该第二虚拟机,而在通过该第一主机的该通信模块的验证之后,该第一主机的该通信模块传送该封包至该第二主机的该通信模块,以由该第二主机的该通信模块对该封包执行该验证程序,并且在该封包通过该第二主机的该通信模块的验证之后,该第二主机的该通信模块传送该封包至该第二虚拟机。
14.如权利要求9所述的服务器端系统,其中该些主机中的一第一主机同时运行该第一虚拟机与该第二虚拟机。
CN201210240829.XA 2012-06-26 2012-07-11 虚拟机的通信方法以及服务器端系统 Active CN103516705B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW101122840A TWI470550B (zh) 2012-06-26 2012-06-26 虛擬機器的通信方法以及伺服端系統
TW101122840 2012-06-26

Publications (2)

Publication Number Publication Date
CN103516705A CN103516705A (zh) 2014-01-15
CN103516705B true CN103516705B (zh) 2016-04-06

Family

ID=49775568

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210240829.XA Active CN103516705B (zh) 2012-06-26 2012-07-11 虚拟机的通信方法以及服务器端系统

Country Status (3)

Country Link
US (1) US8935696B2 (zh)
CN (1) CN103516705B (zh)
TW (1) TWI470550B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9798567B2 (en) 2014-11-25 2017-10-24 The Research Foundation For The State University Of New York Multi-hypervisor virtual machines
CN107395532B (zh) * 2017-07-11 2020-08-11 北京航空航天大学 一种基于sdn的多租户虚拟网络隔离方法
US11016798B2 (en) 2018-06-01 2021-05-25 The Research Foundation for the State University Multi-hypervisor virtual machines that run on multiple co-located hypervisors
CN112241299B (zh) * 2019-07-18 2023-08-18 上海达龙信息科技有限公司 电子设备的运营管理方法、系统、介质及服务器
TWI736457B (zh) * 2020-10-27 2021-08-11 財團法人資訊工業策進會 動態網路特徵處理裝置以及動態網路特徵處理方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101668022A (zh) * 2009-09-14 2010-03-10 陈博东 一种建立在虚拟机上的虚拟网络隔离系统及实现方法
CN102299929A (zh) * 2011-09-15 2011-12-28 北京天地云箱科技有限公司 虚拟机的访问控制方法、系统和装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7145866B1 (en) * 2001-03-01 2006-12-05 Emc Corporation Virtual network devices
GB0517304D0 (en) * 2005-08-23 2005-10-05 Netronome Systems Inc A system and method for processing and forwarding transmitted information
US20070174429A1 (en) * 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
US8295275B2 (en) * 2006-03-20 2012-10-23 Intel Corporation Tagging network I/O transactions in a virtual machine run-time environment
US20080301770A1 (en) * 2007-05-31 2008-12-04 Kinder Nathan G Identity based virtual machine selector
JP2008299617A (ja) * 2007-05-31 2008-12-11 Toshiba Corp 情報処理装置、および情報処理システム
US8856783B2 (en) * 2010-10-12 2014-10-07 Citrix Systems, Inc. Allocating virtual machines according to user-specific virtual machine metrics
US9210065B2 (en) * 2009-06-22 2015-12-08 Alcatel Lucent Providing cloud-based services using dynamic network virtualization
US8713182B2 (en) * 2009-08-03 2014-04-29 Oracle International Corporation Selection of a suitable node to host a virtual machine in an environment containing a large number of nodes
JP5403061B2 (ja) * 2009-09-24 2014-01-29 日本電気株式会社 仮想サーバ間通信識別システム、及び仮想サーバ間通信識別方法
US8320399B2 (en) * 2010-02-26 2012-11-27 Net Optics, Inc. Add-on module and methods thereof
US8832686B2 (en) * 2010-10-29 2014-09-09 Microsoft Corporation Inherited product activation for virtual machines
US8521884B2 (en) 2010-12-15 2013-08-27 Industrial Technology Research Institute Network system and method of address resolution
US20120287931A1 (en) * 2011-05-13 2012-11-15 International Business Machines Corporation Techniques for securing a virtualized computing environment using a physical network switch
US8856518B2 (en) * 2011-09-07 2014-10-07 Microsoft Corporation Secure and efficient offloading of network policies to network interface cards
US8560663B2 (en) * 2011-09-30 2013-10-15 Telefonaktiebolaget L M Ericsson (Publ) Using MPLS for virtual private cloud network isolation in openflow-enabled cloud computing

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101668022A (zh) * 2009-09-14 2010-03-10 陈博东 一种建立在虚拟机上的虚拟网络隔离系统及实现方法
CN102299929A (zh) * 2011-09-15 2011-12-28 北京天地云箱科技有限公司 虚拟机的访问控制方法、系统和装置

Also Published As

Publication number Publication date
US8935696B2 (en) 2015-01-13
US20130346971A1 (en) 2013-12-26
TWI470550B (zh) 2015-01-21
CN103516705A (zh) 2014-01-15
TW201401170A (zh) 2014-01-01

Similar Documents

Publication Publication Date Title
CN103516705B (zh) 虚拟机的通信方法以及服务器端系统
CN103621046B (zh) 网络通信方法和装置
US9571569B2 (en) Method and apparatus for determining virtual machine migration
CN102870377A (zh) 虚拟端口监控方法和设备
CN104221331B (zh) 用于以太网交换机的没有查找表的第2层分组交换
CN101630270A (zh) 数据处理系统和方法
CN103931144B (zh) 一种在虚拟域中通信的方法、设备和系统
CN104079507A (zh) 同步ip信息的方法和装置
KR20200015757A (ko) Bras 시스템 기반 메시지 패키징 방법 및 장치
CN103138968A (zh) 服务器机架系统
CN109617816B (zh) 一种数据报文的传输方法和装置
CN110719345B (zh) 虚拟机mac地址生成方法、系统、设备及计算机介质
CN103647777A (zh) 一种安全认证方法和双向转发检测bfd设备
CN103404084A (zh) Mac地址强制转发装置及方法
EP3920466B1 (en) Device configuration method, system, and apparatus
CN102316043A (zh) 端口虚拟化方法、交换机及通信系统
CN104486589A (zh) 基于gvrp的视频监控系统中的访问方法及装置
CN104091102A (zh) 一种基于安卓系统的多用户管理方法及其装置
CN104468947B (zh) 一种信息处理方法及电子设备
CN104219159A (zh) 基于虚拟局域网的虚拟接口进行链路聚合方法和装置
CN103501295A (zh) 一种基于虚拟机迁移的远程访问方法和设备
CN105812221A (zh) 虚拟可扩展本地区域网络中数据传输的设备和方法
CN102883311B (zh) 一种基于oid编码的无线传感网设备寻址方法
CN105786732A (zh) 数据访问方法及装置
CN102801686A (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
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20180330

Address after: The new Taiwan Chinese Taiwan New Taipei City Xizhi District Five Road No. 88 21 floor

Patentee after: Weft technology service Limited by Share Ltd

Address before: The new Taiwan Chinese Taiwan New Taipei City Xizhi District Five Road No. 88 21 floor

Patentee before: Weichuang Zitong Co., Ltd.