虚拟机的通信方法以及服务器端系统的利记博彩app

文档序号:7980856阅读:203来源:国知局
虚拟机的通信方法以及服务器端系统的利记博彩app
【专利摘要】一种虚拟机的通信方法以及服务器端系统。该虚拟机的通信方法适用于包括多个主机与多个虚拟机的服务器端系统,通信方法包括:在该些虚拟机建立时,分别指派多个虚拟硬件地址给该些虚拟机,其中,每一该些虚拟硬件地址包括每一该些虚拟机的租用户识别码;当第一虚拟机欲与第二虚拟机进行沟通时,通过第一虚拟机传送封包,封包中包括第一虚拟机的第一虚拟硬件地址与第二虚拟机的第二虚拟硬件地址,而第一、第二虚拟硬件地址分别为该些虚拟硬件地址其中之一;以及当通信模块接收到封包时,对封包执行验证程序,包括:当第一、第二虚拟硬件地址具有相同的租用户识别码时,传送封包至第二虚拟机。本发明可有效地管理并隔离多个虚拟机间的封包与流量。
【专利说明】虚拟机的通信方法以及服务器端系统
【技术领域】
[0001]本发明涉及一种通信技术,且特别涉及一种可隔离不同租用户的虚拟机间的封包流量的虚拟机的通信方法以及服务器端系统(server-end system)。
【背景技术】
[0002]随着科技的进步,虚拟机(Virtual Machine)已经被广泛地应用在各种计算机领域中,例如使用虚拟机来研究恶意程序(malware)在个人计算机中的行为。一般来说,一台计算机主机可以同时运行多个虚拟机,且这些运行于相同的计算机主机的虚拟机通常被希望是彼此独立的。或者,对于使用同一台计算机来各自运行虚拟机的多个租用户来说,若隶属于不同租用户的虚拟机的封包流量没有被妥善的隔离,可能会导致各虚拟机在对封包的撷取上产生混淆的情况发生。
[0003]举例来说,当租用户A在一计算机主机X上运行了两台虚拟机(例如,虚拟机M与虚拟机N),以进行恶意程序散播恶意封包的研究。而另一租用户B则可能也在计算机主机X上运行了另一虚拟机(例如,虚拟机K),以进行网络流量的分析研究。此时,租用户B的虚拟机(例如,虚拟机K)可能会因为接收到租用户A运行的虚拟机(例如,虚拟机M)散播的恶意封包而导致实验结果出现异常。据此,如何有效地隔离隶属于各租用户的多个虚拟机间的封包流量,实为本领域需研究发展的课题。
[0004]因此,需要提供一种虚拟机的通信方法以及服务器端系统来解决上述问题。

【发明内容】

[0005]本发明提出一种虚拟机的通信方法与服务器端系统,可有效地管理并隔离隶属于各租用户的多个虚拟机。
[0006]本发明的一方面提出一种虚拟机的通信方法,该虚拟机的通信方法适用于一服务器端系统,该服务器端系统包括多个主机与多个虚拟机,该通信方法包括:在该些虚拟机建立时,分别指派多个虚拟硬件地址给该些虚拟机,其中,每一该些虚拟硬件地址包括每一该些虚拟机的一租用户识别码;当该些虚拟机中的一第一虚拟机欲与一第二虚拟机进行沟通时,通过该第一虚拟机传送一封包,其中该封包中包括该第一虚拟机的一第一虚拟硬件地址与该第二虚拟机的一第二虚拟硬件地址,而该第一虚拟硬件地址与该第二虚拟硬件地址分别为该些虚拟硬件地址其中之一;以及当一通信模块接收到该封包时,对该封包执行一验证程序,该验证程序包括;当该第一虚拟硬件地址与该第二虚拟硬件地址具有相同的该租用户识别码时,传送该封包至该第二虚拟机。
[0007]本发明的另一方面提出一种服务器端系统,所述服务器端系统包括:一管理装置以及多个主机;该管理装置在多个虚拟机建立时,分别指派多个虚拟硬件地址给该些虚拟机,其中,每一该些虚拟硬件地址包括每一该些虚拟机的一租用户识别码;其中该些主机中运行有该些虚拟机,每一该些主机包括:一网络接口单元以及一处理单元;该网络接口单元使得该些主机通过其各自的该网络接口单元进行沟通;该处理单元耦接至该网络接口单元,该处理单元使得运行在其中的虚拟机进行动作,以及驱动一通信模块;其中,当该些虚拟机中的一第一虚拟机欲与该些虚拟机中的一第二虚拟机进行沟通时,传送一封包,其中该封包中包括该第一虚拟机的一第一虚拟硬件地址与该第二虚拟机的一第二虚拟硬件地址,而该第一虚拟硬件地址与该第二虚拟硬件地址分别为该些虚拟硬件地址其中之一;当该第一虚拟机或该第二虚拟机对应的该通信模块接收到该封包时,对该封包执行一验证程序;其中,当该第一虚拟硬件地址与该第二虚拟硬件地址具有相同的该租用户识别码时,决定传送该封包。
[0008]基于上述,本发明的实施例提出一种虚拟机的通信方法与服务器端系统,其可在虚拟机间的封包传输路径上对封包进行验证程序,以藉由比对封包中分别对应于来源虚拟机以及目的虚拟机的虚拟硬件地址中的租用户识别码,来识别出发送此封包的来源虚拟机以及预设接收此封包的目的虚拟机是否是隶属于相同的租用户,并且依据识别结果来决定是否要续传此封包或直接将此封包丢弃。藉此,可有效地管理并隔离隶属于各租用户的多个虚拟机间的封包与流量。
[0009]为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附附图作详细说明如下。
【专利附图】

【附图说明】
[0010]图1为依据本发明的第一实施例所绘示的服务器端系统的示意图。
[0011]图2为依据本发明的第二实施例所绘示的服务器端系统的示意图。
[0012]图3为依据本发明的第二实施例所绘示的虚拟机的通信方法的流程图。
[0013]图4为依据本发明的第二实施例所绘示的虚拟硬件地址的示意图。
[0014]图5为依据本发明的第二实施例所绘示的验证程序流程的示意图。
[0015]图6为依据本发明的第三实施例所绘示的服务器端系统的示意图。
[0016]图7为依据本发明的第四实施例所绘示的服务器端系统的示意图。
[0017]图8为依据本发明的第四实施例所绘示的虚拟机的通信方法的流程图。
[0018]主要组件符号说明:
[0019]10服务器端系统
[0020]11管理装置
[0021]12、13主机
[0022]121、131网络接口单元
[0023]122、132处理单元
[0024]222、232虚拟机
[0025]224、234通信模块
[0026]400、522、532虚拟硬件地址
[0027]501异或运算模块
[0028]502与运算模块
[0029]541第一数列
[0030]542预设数列
[0031]543第二数列[0032]544预设规则
[0033]401、403、405、5221、5222、5223、 字段
[0034]5321、5322、5323、5412、5422
[0035]S303~S315第二实施例的虚拟机的通信方法各步骤
[0036]S803~S825第四实施例的虚拟机的通信方法各步骤
【具体实施方式】
[0037]为使隶属于相同租用户的多个虚拟机间相互沟通时,可以有效地对彼此发出的封包进行识别,本发明的实施例提出一种虚拟机的通信方法,其可依据预设的验证程序来对封包中对应于各虚拟机的虚拟硬件地址(Virtual Hardware Address)中的租用户识别码(Tenant Identity)进行验证,以识别出传送此封包与接收此封包的虚拟机是否隶属于同一租用户。藉此,有效地管理并隔离隶属于各租用户的多个虚拟机间的封包与流量。此外,本发明实施例还公开了可用于体现上述虚拟机的通信方法的服务器端系统。为了使本发明的内容更容易明了,以下特举实施例作为本发明确实能够据以实施的范例。
[0038]第一实施例
[0039]图1为依据本发 明的第一实施例所绘示的服务器端系统的示意图。请参照图1,服务器端系统10包括管理装置11、主机12与主机13。在此请注意,在图1中虽然仅绘示主机12与主机13,然而,服务 器端系统10实质上还可以包括更多或更少的主机12与主机
13。换言之,依据本发明的实施例而将其实现者,可以视设计上或者实践上的需求而调整主机12与主机13的数量,本发明不对其限制。
[0040]管理装置11可以是服务器端主机或者一般的计算机主机,用以执行类似服务器端系统10的主控台(main control console,MCC)的功能。例如,管理装置11可以用来管理服务器端系统10的整体运作。在本实施例中,管理装置11至少包括一处理器(Processor)、一存储器(Memory)以及一网络接口卡(Network Interface Card)。
[0041]主机12与主机13可以分别是一般的计算机主机,而可分别运行一个或多个虚拟机,其中虚拟机运行于计算机主机的操作系统(Operating System,OS)中,且虚拟机通常可以用来模拟真实的计算机主机。
[0042]在本实施例中,主机12与主机13分别至少包括网络接口单元121与处理单元122以及网络接口单元131与处理单元132,其中网络接口单元121与网络接口单元131各自包括至少一网络接口卡,使得主机12与主机13可以通过其各自的网络接口单元121与网络接口单元131进行沟通。
[0043]处理单元122与处理单元132分别耦接网络接口单元121与网络接口单元131。处理单元122与处理单元132可以使得分别运行在其中的一个或多个虚拟机进行动作。在本实施例中,处理单元122与处理单元132可以分别是微处理器(micro-processor)、嵌入式控制器(embedded controller)或中央处理器(central processing unit, CPU)等,但本发明的可实施方式并不限定于上述。另外,类似于管理装置11,主机12与主机13也可以包括至少一存储器。[0044]在此请注意,以下的多个范例实施例皆将利用图1对应的实施例中服务器端系统10来作说明。
[0045]第二实施例
[0046]图2为依据本发明的第二实施例所绘示的服务器端系统的示意图。请参照图2,为了方便说明,在本实施例中,假设处理单元122与处理单元132分别运行虚拟机222与虚拟机232,且处理单元122还运行通信模块224。在本实施例中,通信模块224可对其接收到的封包进行一验证程序,以判断传送此封包与接收此封包的虚拟机是否隶属于同一租用户,并且接续执行对应的动作。另外,本发明并不对通信模块224的体现或实施方式作限制。换言之,通信模块224可以是以硬件电路、固件或者软件的方式来实施,而可执行上述功能。
[0047]图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的虚拟硬件地址,请参照上述说明在此不再赘述。
[0048]在此需说明的是,在本发明的实施例中,各个虚拟机对应的虚拟硬件地址是不相同的(类似于实体硬件位置),且每一个虚拟硬件地址可以包括每一个虚拟机其所隶属租用户的租用户识别码,或者包括其他可作为验证虚拟机所隶属的个人或组织所对应的识别码。
[0049]当虚拟机222欲与虚拟机232进行沟通时,虚拟机222可以传送一封包(例如,因特网封包)(步骤S305)。在此,所传送的封包中包括虚拟机222的虚拟硬件地址与虚拟机232的虚拟硬件地址。虚拟机222的虚拟硬件地址与虚拟机232的虚拟硬件地址可以分别由管理装置11预先指派,或者是由虚拟机222与虚拟机232依据自订的方式来分别取得,以使封包在传递的过程中可以据以找到来源端的虚拟机以及目的端的虚拟机。以下特举一实施例来对虚拟硬件地址作详细说明。
[0050]图4为依据本发明的第二实施例所绘示的虚拟硬件地址的示意图。请参照图4,在本实施例中,虚拟硬件地址400可区分为字段401、字段403与字段405。上述字段401中记录有系统信息,字段403中记录有租用户识别码,以及字段405中记录有虚拟机识别码。系统信息是用来标示与虚拟硬件地址400有关的信息。例如,系统信息可以记载字段401、字段403与字段405各自的位数量等信息。租用户识别码是用来标示虚拟硬件地址400所对应的虚拟机所隶属的租用户的识别码,即,不同的租用户会对应至不同的租用户识别码。藉此,依据虚拟硬件地址400中的租用户识别码就可以识别出虚拟硬件地址400所对应的虚拟机所隶属的租用户。另外,虚拟机识别码则是用来标示虚拟硬件地址400所对应的虚拟机的识别码。
[0051]在本实施例中,租用户识别码与虚拟机识别码可以被记录于管理装置11中的虚拟硬件地址对应表格或者其他相类似的表格中。另外,虚拟硬件地址400可以是利用介质访问控制地址(Media Access Control Address,MAC Address)的格式来实施。举例来说,48位的介质访问控制地址可以被区分为3个位组(B卩,字段),其中第一个位组可以有8个位,用来记录系统信息。第二个位组可以有24个位,用来记录租用户识别码。第三个位组则可以有16个位,用来记录虚拟机识别码。藉此,在封包传递的过程中,只要通过比对封包中的来源端的虚拟硬件地址以及目的端的虚拟硬件地址中各自标示的租用户识别码,就可以快速地辨识传送此封包的虚拟机与预设接收此封包的虚拟机是否是隶属于相同的租用户,并据以执行后续的传输封包或者丢弃封包的动作。
[0052]然而,本实施例的虚拟硬件地址所具有的字段与各字段中记录的信息并不以上述为限。举例来说,虚拟硬件地址400还可以包括一部门字段(未绘示),以记录部门识别码(Departmentldentity)。此部门识别码为虚拟硬件地址400的虚拟机所隶属的部门(例如,某公司或组织中的某一个部门)。藉此,只要通过比对封包中的来源虚拟硬件地址与目的虚拟硬件地址中各自标示的租用户识别码以及部门识别码,就可以快速地辨识传送此封包的虚拟机与预设接收此封包的虚拟机是否是隶属于相同的租用户且隶属于相同的部门(或者,只隶属于相同部门即可,可依实际应用的需求而定),并据以执行后续的传输封包或者丢弃封包的动作。
[0053]请再次参照图2与图3,当虚拟机222欲与虚拟机232进行沟通而传送出一封包之后,处理单元122运行的通信模块224可以判断其是否接收到此封包(步骤S307)。若在步骤S307中的判断结果为是,通信模块224可以先行接收或暂存此封包,并对此封包执行验证程序,以藉由此验证程序来判断虚拟机222与虚拟机232是否是隶属于相同的租用户(步骤 S309)。
[0054]在验证程序中,通信模块224可以判断虚拟机222的虚拟硬件地址与虚拟机232的虚拟硬件地址是否具有相同的租用户识别码(步骤S311)。倘若虚拟机222的虚拟硬件地址与虚拟机232的虚拟硬件地址具有相同的租用户识别码,通信模块224可以得知虚拟机222与虚拟机232隶属于相同的租用户,并且接续通过网络接口单元121传送此封包至虚拟机232 (步骤S313)。
[0055]另一方面,倘若虚拟机222的虚拟硬件地址与虚拟机232的虚拟硬件地址中不具有相同的租用户识别码,通信模块224则可以得知虚拟机222与虚拟机232不是隶属于相同的租用户。据此,为了避免虚拟机222与虚拟机232间的封包或流量相互干扰,通信模块224会丢弃此封包(步骤S315)。
[0056]另外,当此封包被传送至虚拟机232所在的主机13时,虚拟机232会直接接收此封包。至此,完成此次虚拟机间的封包传输动作。
[0057]举例来说,图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。
[0058]在此,首先通信模块224可以对虚拟机222的虚拟硬件地址522 (101010101010)与虚拟机232的虚拟硬件地址532(110010100100)进行异或(exclusive-OR,X0R)运算。例如,由异或运算模块501对虚拟硬件地址522与虚拟硬件地址532进行异或运算,并藉以取得第一数列541(011000001110)。然后,通信模块224可以对第一数列541(011000001110)与预设数列542 (000011110000)进行且(AND)运算。例如,由与运算模块502对虚拟硬件地址522与虚拟硬件地址532进行与运算,并藉以取得第二数列543 (000000000000)。在图5中,异或运算模块501以及与运算模块502可以分别是硬件电路或软件算法模块而可执行对应功能。另外,预设数列542实质上是依据租用户识别码在虚拟机222的虚拟硬件地址522与虚拟机232的虚拟硬件地址532中的位置或字段而决定的。
[0059]换言之,以图5的预设数列542为例,因为虚拟机222与虚拟机232的租用户识别码是各自记录在虚拟硬件地址522的字段5222与虚拟硬件地址532的字段5322中,而字段5222与字段5322又对应至第一数列541的字段5412以及预设数列542的字段5422。据此,只要把预设数列542的字段5422中的所有位的值都设为“ I ”,并且把预设数列542中字段5422以外的所有位的值都设为“O”之后,就可以在对预设数列542与第二数列543作与运算后,快速地识别出虚拟机222与虚拟机232各自的租用户识别码所在的字段5222与字段5322中的数据或数列是否有差异。
[0060]最后,通信模块224可以判断第二数列是否符合预设规则544。若第二数列543符合此预设规则544,通信模块224会接续传送此封包至虚拟机232。以图5为例,第二数列543 (000000000000)符合预设规则544 (000000000000),所以通信模块224会传送此封包至虚拟机232。而若第二数列543不符合此预设规则,则通信模块224会把此封包丢弃。
[0061]在此请注意,上述验证程序的具体做法仅为本发明提及的验证程序的其中一种实施方式。换言之,本发明提及的验证程序实质上并不限于上述做法,任何可以藉由硬件电路或软件算法来达到上述比对两个虚拟硬件地址中各自的租用户识别码的相类似的做法皆是属于本发明的范畴内。
[0062]第三实施例
[0063]本实施例的服务器端系统实质上与上述各实施例的服务器端系统10相同或相似,故,关于内部各构件的详细运作在此不再赘述。在本实施例中,验证程序是由目的端的虚拟机所在的主机所运行的通信模块来进行。
[0064]图6为依据本发明的第三实施例所绘示的服务器端系统的示意图。请参照图6,在本实施例中,处理单元132运行通信模块234。通信模块234类似于通信模块224,故在此不再赘述通信模块234的动作方式,若尚有疑虑请分别参照上述对于通信模块224以及验证程序的说明即可明了。
[0065]在此需说明的是,本实施例的虚拟机的通信方法的流程同样参照图3并搭配以下的说明即可明了。请参照图3与图6,在虚拟机222与虚拟机232建立时,通过管理装置11分别指派虚拟机222与虚拟机232的虚拟硬件地址给处理单元122与处理单元132 (步骤S303 )。当虚拟机222欲与虚拟机232进行沟通时,虚拟机222可以传送一封包(步骤S305 )。本实施例与第二实施例不同之处在于,本实施例是由虚拟机232所在的主机13中的通信模块234来进行验证程序的。[0066]承上所述,处理单元132运行的通信模块234可以判断其是否接收到此封包(步骤S307)。例如,通信模块234可以判断其是否通过网络接口单元131接收到此封包。若在步骤S307中的判断结果为是,通信模块234可以先行接收或暂存此封包,并对此封包执行验证程序,以藉由此验证程序来判断虚拟机222与虚拟机232是否是隶属于相同的租用户(步骤 S309)。
[0067]类似于图2中的通信模块224,在本实施例中,通信模块234可以判断虚拟机222的虚拟硬件地址与虚拟机232的虚拟硬件地址是否具有相同的租用户识别码(步骤S311)。若通信模块234判断虚拟机222的虚拟硬件地址与虚拟机232的虚拟硬件地址具有相同的租用户识别码,直接将此封包传送至虚拟机232 (步骤S313)。进行至此,完成此次虚拟机间的封包传输动作。
[0068]另外,若通信模块234判断虚拟机222的虚拟硬件地址与虚拟机232的虚拟硬件地址中不具有相同的租用户识别码,通信模块234会丢弃此封包(步骤S315),而导致此次的虚拟机间的封包传输失败。
[0069]在此,由于本实施例的验证程序与第二实施例的验证程序为相同或相似,故,在此不再详述。
[0070]第四实施例
[0071]本实施例的服务器端系统实质上与上述各实施例的服务器端系统10相同,故,关于内部各构件的详细运作在此不再赘述。在本实施例中,除了在来源端执行验证程序之外,亦会在目的端执行验证程序。
[0072]图7为依据本发明的第四实施例所绘示的服务器端系统的示意图。请参照图7,在本实施例中,处理单元122与处理单元132除了运行虚拟机222与虚拟机232以外,处理单元122与处理单元132还分别运行了通信模块224与通信模块234。其中,通信模块224与通信模块234的运作与可实施方式分别已在第二实施例与第三实施例做过详细说明,故在此不再对其赘述。
[0073]图8为依据本发明的第四实施例所绘示的虚拟机的通信方法的流程图。请参照图7与图8,在虚拟机222与虚拟机232建立时,通过管理装置11分别指派虚拟机222与虚拟机232的虚拟硬件地址给处理单元122与处理单元132,并以其分别作为对虚拟机222与虚拟机232的识别之用(步骤S803)。
[0074]在来源端方面,当虚拟机222欲与虚拟机232进行沟通时,通过虚拟机222来传送一封包(例如,因特网封包)(步骤S805)。在此,封包中包括虚拟机222的虚拟硬件地址与虚拟机232的虚拟硬件地址,以使封包在传递的过程中可以据以找到来源端的虚拟机以及目的端的虚拟机。另外,虚拟机222的虚拟硬件地址与虚拟机232的虚拟硬件地址分别包括虚拟机222与虚拟机232分别隶属的租用户所对应的租用户识别码。
[0075]承上所述,处理单元122运行的通信模块224可以判断其是否接收到此封包(步骤S807)。若在步骤S807中的判断结果为是,通信模块224可以先行接收或暂存此封包,并对此封包执行验证程序,以藉由此验证程序来判断虚拟机222与虚拟机232是否是隶属于相同的租用户(步骤S809)。
[0076]类似于上述对于验证程序的说明,在本实施例中,通信模块224可以判断虚拟机222的虚拟硬件地址与虚拟机232的虚拟硬件地址是否具有相同的租用户识别码(步骤S811)。若虚拟机222的虚拟硬件地址与虚拟机232的虚拟硬件地址具有相同的租用户识别码,通信模块224接续通过网络接口单元121传送此封包至目的端的主机13 (步骤S813)。若虚拟机222的虚拟硬件地址与虚拟机232的虚拟硬件地址中不具有相同的租用户识别码,通信模块224会丢弃此封包(步骤S815),而导致此次的虚拟机间的封包传输失败。
[0077]在目的端方面,处理单元132运行的通信模块234可以判断其是否接收到此封包(步骤S817)。例如,通信模块234可以判断是否通过网络接口单元131接收到此封包。若在步骤S817中的判断结果为是,通信模块234可以先行接收或暂存此封包,并对此封包执行验证程序,以藉由此验证程序来判断虚拟机222与虚拟机232是否是隶属于相同的租用户(步骤S819)。具体来说,通信模块234可以再次判断封包中的虚拟机222与虚拟机232双方的虚拟硬件地址是否具有相同的租用户识别码(步骤S821)。若虚拟机222的虚拟硬件地址与虚拟机232的虚拟硬件地址具有相同的租用户识别码,传送此封包至虚拟机232(步骤S823)。进行至此,完成此次虚拟机间的封包传输动作。
[0078]另外,若虚拟机222的虚拟硬件地址与虚拟机232的虚拟硬件地址中不具有相同的租用户识别码,通信模块234会丢弃此封包(步骤S825),进而导致此次的虚拟机间的封包传输失败。
[0079]值得一提的是,当运行于同一主机的两个虚拟机欲进行沟通时,亦会由这一主机中的通信模块来进行验证程序。例如:当虚拟机A欲与虚拟机B进行沟通,通过虚拟机A传送一封包,并且由主机中的通信模块进行验证程序,以在验证无误之后,再将封包传送至虚拟机B。
[0080]另外,在上述各实施例中,当其中一虚拟机发出的封包为广播(broadcast)封包时,由于其并不是限定于某两个虚拟机间的封包传输,所以此广播封包并不会被进行上述验证程序。举例来说,虚拟机在发出广播封包时,其可以将此广播封包的目的虚拟硬件地址中的所有位皆设为“ I ”,藉此,只要通信模块接收到的封包中的目的虚拟硬件地址的所有位皆为“I”时,可以直接判断其为广播封包并将其以广播的方式传送出去。
[0081]综上所述,在上述实施例中,可在虚拟机间的封包传输路径上进行一次或多次验证程序,以藉由比对封包中分别对应于来源虚拟机以及目的虚拟机的虚拟硬件地址中的租用户识别码,来识别出发送此封包的来源虚拟机以及预设接收此封包的目的虚拟机是否是隶属于相同的租用户,或者隶属于相同部门等筛选条件,并且依据识别结果来决定是否要续传此封包或直接将此封包丢弃。藉此,可有效地管理并隔离隶属于各租用户或其他筛选条件的多个虚拟机间的封包与流量。
[0082]虽然本发明已以实施例公开如上,然而其并非用以限定本发明,任何所属【技术领域】中的普通技术人员,在不脱离本发明的精神和范围的情况下,应当可作些许的更动与润饰,故本发明的保护范围应当视所附的权利要求书的范围所界定者为准。
【权利要求】
1.一种虚拟机的通信方法,该虚拟机的通信方法适用于一服务器端系统,该服务器端系统包括多个主机与多个虚拟机,该通信方法包括: 在该些虚拟机建立时,分别指派多个虚拟硬件地址给该些虚拟机,其中,每一该些虚拟硬件地址包括每一该些虚拟机的一租用户识别码; 当该些虚拟机中的一第一虚拟机欲与一第二虚拟机进行沟通时,通过该第一虚拟机传送一封包,其中该封包中包括该第一虚拟机的一第一虚拟硬件地址与该第二虚拟机的一第二虚拟硬件地址,而该第一虚拟硬件地址与该第二虚拟硬件地址分别为该些虚拟硬件地址其中之一;以及 当一通信模块接收到该封包时,对该封包执行一验证程序,该验证程序包括: 当该第一虚拟硬件地址与该第二虚拟硬件地址具有相同的该租用户识别码时,传送该封包至该第二虚拟机。
2.如权利要求1所述的虚拟机的通信方法,其中每一该些虚拟硬件地址包括一第一字段、一第二字段与一第三字段,以分别储存该租用户识别码、一系统信息以及一虚拟机识别码。
3.如权利要求2所述的虚拟机的通信方法,其中每一该些虚拟硬件地址还包括一第四字段,以储存一部门识别码,而对该封包执行该验证程序的步骤还包括: 当该第一虚拟硬件地址与该第二虚拟硬件地址具有相同的该租用户识别码与相同的该部门识别码时,传送该封包至该第二虚拟机。
4.如权利要求3所述的虚拟机的通信方法,其中该系统信息用来标示该第一字段、该第二字段、该第三字段以及该第四字段各自的位数量。`
5.如权利要求1所述的虚拟机的通信方法,其中该第一虚拟机位于该些主机中的一第一主机,且该第二虚拟机位于该些主机中的一第二主机,其中在通过该第一虚拟机传送该封包的步骤之后,还包括: 当该第一主机的该通信模块接收到该封包时,对该封包执行该验证程序。
6.如权利要求5所述的虚拟机的通信方法,其中当该第一主机的该通信模块接收到该封包时,对该封包执行该验证程序的步骤之后,还包括: 在通过该第一主机的该通信模块的验证之后,传送该封包至该第二主机的该通信模块,以对该封包执行该验证程序;以及 在通过该第二主机的该通信模块的验证之后,传送该封包至该第二虚拟机。
7.如权利要求1所述的虚拟机的通信方法,其中该第一虚拟机位于该些主机中的一第一主机,且该第二虚拟机位于该些主机中的一第二主机,其中在通过该第一虚拟机传送该封包的步骤之后,还包括: 当该第二主机的该通信模块接收到该封包时,对该封包执行该验证程序。
8.如权利要求1所述的虚拟机的通信方法,其中该第一虚拟机与该第二虚拟机同时位于该些主机其中之一。
9.如权利要求1所述的虚拟机的通信方法,其中当该通信模块接收到该封包时,对该封包执行该验证程序的步骤还包括: 对该第一虚拟硬件地址与该第二虚拟硬件地址进行一异或运算,以取得一第一数列; 对该第一数列与一预设数列进行与运算,以取得一第二数列,其中该预设数列是依据该租用户识别码在该第一虚拟硬件地址与该第二虚拟硬件地址中的位置而决定;以及 当该第二数列符合一预设规则时,传送该封包至该第二虚拟机。
10.一种服务器端系统,该服务器端系统包括: 一管理装置,该管理装置在多个虚拟机建立时,分别指派多个虚拟硬件地址给该些虚拟机,其中,每一该些虚拟硬件地址包括每一该些虚拟机的一租用户识别码;以及 多个主机,其中该些主机中运行有该些虚拟机,每一该些主机包括: 一网络接口单元,该网络接口单元使得该些主机通过其各自的该网络接口单元进行沟通;以及 一处理单元,该处理单元耦接至该网络接口单元,该处理单元使得运行在其中的虚拟机进行动作,以及驱动一通信模块; 其中,当该些虚拟机中的一第一虚拟机欲与该些虚拟机中的一第二虚拟机进行沟通时,传送一封包,其中该封包中包括该第一虚拟机的一第一虚拟硬件地址与该第二虚拟机的一第二虚拟硬件地址,而该第一虚拟硬件地址与该第二虚拟硬件地址分别为该些虚拟硬件地址其中之一;当该第一虚拟机或该第二虚拟机对应的该通信模块接收到该封包时,对该封包执行一验证程序; 其中,当该第一虚拟硬件地址与该第二虚拟硬件地址具有相同的该租用户识别码时,决定传送该封包。
11.如权利要求10所述的服务器端系统,其中每一该些虚拟硬件地址包括一第一字段、一第二字段与一第三字段,以分别储存该租用户识别码、一系统信息以及一虚拟机识别码。`
12.如权利要求11所述的服务器端系统,其中每一该些虚拟硬件地址还包括一第四字段,该第四字段用以储存一部门识别码,而该通信模块还判断该第一虚拟硬件地址与该第二虚拟硬件地址是否具有相同的该部门识别码,以在该第一虚拟硬件地址与该第二虚拟硬件地址具有相同的该租用户识别码与相同的该部门识别码时,传送该封包至该第二虚拟机。
13.如权利要求12所述的服务器端系统,其中该系统信息用来标示该第一字段、该第二字段、该第三字段以及该第四字段各自的位数量。
14.如权利要求10所述的服务器端系统,其中该些主机中一第一主机与一第二主机分别运行该第一虚拟机与该第二虚拟机,而在通过该第一主机的该通信模块的验证之后,该第一主机的该通信模块传送该封包至该第二主机的该通信模块,以由该第二主机的该通信模块对该封包执行该验证程序,并且在该封包通过该第二主机的该通信模块的验证之后,该第二主机的该通信模块传送该封包至该第二虚拟机。
15.如权利要求10所述的服务器端系统,其中该些主机中的一第一主机同时运行该第一虚拟机与该第二虚拟机。
16.如权利要求10所述的服务器端系统,其中该通信模块对该第一虚拟硬件地址与该第二虚拟硬件地址进行一异或运算,以取得一第一数列,并对该第一数列与一预设数列进行一与运算,以取得一第二数列,其中该预设数列是依据该租用户识别码在该第一虚拟硬件地址与该第二虚拟硬件地址中的位置而决定,并且当该通信模块判断该第二数列符合一预设规则时,该通信模块传送该封包至该第二虚拟机。
【文档编号】H04L29/06GK103516705SQ201210240829
【公开日】2014年1月15日 申请日期:2012年7月11日 优先权日:2012年6月26日
【发明者】廖伟成, 尤焙麟, 张承亿, 张俊彦 申请人:纬创资通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1