專利名稱:安全增強(qiáng)的虛擬機(jī)通信方法和虛擬機(jī)系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及虛擬化技術(shù),尤其是涉及安全增強(qiáng)的虛擬機(jī)通信方法和虛擬機(jī)系統(tǒng)。
背景技術(shù):
虛擬化是一種有益于計(jì)算機(jī)(例如服務(wù)器)的用戶的技術(shù)。通過(guò)虛擬化,IT基礎(chǔ) 架構(gòu)得以資源共享,IT成本下降,同時(shí)現(xiàn)有計(jì)算機(jī)硬件的效率、利用率和靈活性提高。概括 而言,虛擬化可以帶來(lái)如下益處服務(wù)器整合和架構(gòu)優(yōu)化、硬件成本下降、運(yùn)營(yíng)成本降低、應(yīng) 用可用性提高和系統(tǒng)更易于進(jìn)行管理。許多系統(tǒng)級(jí)供應(yīng)商在它們的軟件和服務(wù)中提供了虛 擬化能力。例如,Red Hat已經(jīng)在其企業(yè)版Linux 5中增加了 Xen開(kāi)放源碼的虛擬機(jī)管理 器(hypervisor)。通常,一個(gè)物理機(jī)作為兩個(gè)或更多虛擬機(jī)(virtual machine,簡(jiǎn)稱VM)的主機(jī)。物 理機(jī)上安裝有用于管理虛擬機(jī)的虛擬機(jī)管理器。這些虛擬機(jī)可以通過(guò)由虛擬機(jī)管理器產(chǎn)生 的虛擬交換機(jī)/虛擬局域網(wǎng)(VSWITCH/VLAN)彼此直接通信。例如,一個(gè)虛擬機(jī)可以將信息 傳遞給虛擬機(jī)管理器,然后虛擬機(jī)管理器再傳遞給另一虛擬機(jī),從而實(shí)現(xiàn)虛擬機(jī)之間的通
fn °但是,在虛擬機(jī)環(huán)境下,傳統(tǒng)的防火墻和入侵防護(hù)系統(tǒng)難以阻擋對(duì)虛擬機(jī)的攻擊。 當(dāng)一個(gè)虛擬機(jī)被例如病毒感染時(shí),病毒將通過(guò)VSWITCH/VLAN直接攻擊以同一物理機(jī)為主 機(jī)的其它虛擬機(jī)。這與物理環(huán)境不同。在物理環(huán)境下,部署的防火墻/防病毒工具可以阻 擋物理網(wǎng)絡(luò)中的攻擊。而在虛擬環(huán)境下,由于在VSWITCH/VLAN中沒(méi)有防火墻/防病毒工具,諸如病毒的 惡意代碼可以通過(guò)VSWITCH/VLAN容易地?cái)U(kuò)散。從而使得虛擬機(jī)之間的通信的安全性降低。目前,市場(chǎng)上的安全產(chǎn)品通常關(guān)注于物理環(huán)境,而非虛擬環(huán)境。沒(méi)有針對(duì)虛擬機(jī)安 全通信的安全產(chǎn)品。并且,目前的虛擬機(jī)管理器也沒(méi)有嵌入關(guān)于虛擬機(jī)安全通信的安全機(jī) 制。例如,圖1示出了傳統(tǒng)的虛擬機(jī)環(huán)境的示意圖。如圖所示,在傳統(tǒng)的虛擬機(jī)系統(tǒng) 100中,例如,虛擬機(jī)VMl、VM2和VM3連接在虛擬網(wǎng)絡(luò)VNet中。防火墻100將虛擬機(jī)所在的 物理機(jī)及虛擬網(wǎng)絡(luò)與外界隔離。在這種環(huán)境下,虛擬機(jī)VM1、VM2和VM3可以通過(guò)虛擬交換 機(jī)/虛擬局域網(wǎng)直接通信,而不經(jīng)過(guò)防火墻100。假設(shè)虛擬機(jī)VM3向VMl發(fā)送攻擊代碼包, 則由于沒(méi)有安全防護(hù)機(jī)制,VMl輕易地就被感染。
發(fā)明內(nèi)容
鑒于現(xiàn)有技術(shù)中存在的上述問(wèn)題,本發(fā)明的一個(gè)目的是提供一種安全增強(qiáng)的虛擬 機(jī)通信方法和虛擬機(jī)系統(tǒng),其能夠增強(qiáng)虛擬機(jī)之間的通信的安全性。為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的一個(gè)方面,提供一種安全增強(qiáng)的虛擬機(jī)系統(tǒng),其 包括虛擬網(wǎng)絡(luò)中位于同/物理機(jī)上的多臺(tái)虛擬機(jī)。該虛擬機(jī)系統(tǒng)包括耦連在虛擬網(wǎng)絡(luò)中 的虛擬網(wǎng)絡(luò)安全管理器,和與該虛擬網(wǎng)絡(luò)安全管理器耦連的影子系統(tǒng),該影子系統(tǒng)位于不同于所述虛擬機(jī)所在的物理機(jī)的另一物理機(jī)上。其中該虛擬網(wǎng)絡(luò)安全管理器復(fù)制虛擬機(jī)之 間發(fā)送的包,并將復(fù)制的包通過(guò)物理安全設(shè)備轉(zhuǎn)發(fā)到該影子系統(tǒng);該影子系統(tǒng)將指示接收 到該包的響應(yīng)信息返回該虛擬網(wǎng)絡(luò)安全管理器;以及該虛擬網(wǎng)絡(luò)安全管理器根據(jù)返回的響 應(yīng)信息將該包在虛擬機(jī)之間發(fā)送。根據(jù)本發(fā)明的另一方面,提供一種安全增強(qiáng)的虛擬機(jī)通信方法,用于虛擬網(wǎng)絡(luò)中位于同一物理機(jī)上的多臺(tái)虛擬機(jī)。該方法包括如下步驟檢測(cè)虛擬網(wǎng)絡(luò)中由一虛擬機(jī)向另 一虛擬機(jī)發(fā)送的包;在共享內(nèi)存中保持并復(fù)制所檢測(cè)到的包;將復(fù)制的包通過(guò)物理安全設(shè) 備轉(zhuǎn)發(fā)到影子系統(tǒng),該影子系統(tǒng)位于不同于虛擬機(jī)所在的物理機(jī)的另一物理機(jī)上;等待并 接收從所述影子系統(tǒng)返回的指示接收到該包的響應(yīng)信息;根據(jù)從所述影子系統(tǒng)返回的響應(yīng) 信息,將該包傳送到所述另一虛擬機(jī)。根據(jù)本發(fā)明,能夠靈活地檢測(cè)由虛擬機(jī)管理器創(chuàng)建的虛擬網(wǎng)絡(luò)。本發(fā)明提供了保 護(hù)虛擬機(jī)的能力。此外,由于無(wú)需對(duì)既有的防火墻進(jìn)行任何改變,因此,保護(hù)了投資并降低 了成本。當(dāng)結(jié)合以下說(shuō)明和附圖考慮時(shí),將更好地獲知和理解本發(fā)明的這些和其它方面以 及實(shí)施例。
圖1為示出傳統(tǒng)的虛擬機(jī)環(huán)境的示意圖。圖2為示出根據(jù)本發(fā)明原理的示意框圖。圖3為示出根據(jù)本發(fā)明一個(gè)實(shí)施例的虛擬機(jī)系統(tǒng)的示意框圖。圖4為示出根據(jù)本發(fā)明另一實(shí)施例的虛擬機(jī)系統(tǒng)的示意框圖。圖5示出根據(jù)本發(fā)明又一實(shí)施例的虛擬機(jī)通信方法的流程圖。圖6示出圖5的方法中由影子系統(tǒng)所進(jìn)行的處理的流程圖。圖7示出根據(jù)本發(fā)明再一實(shí)施例的虛擬機(jī)通信方法的流程圖。圖8示出了適于本發(fā)明的計(jì)算機(jī)系統(tǒng)的結(jié)構(gòu)方框圖。
具體實(shí)施例方式
以下參照
本發(fā)明的原理及其實(shí)施例。本發(fā)明的原理概述圖2示出本發(fā)明的原理簡(jiǎn)圖。如圖2所示,在應(yīng)用本發(fā)明的虛擬化環(huán)境中,多臺(tái)虛 擬機(jī)(VM)與虛擬網(wǎng)絡(luò)(VNet)連接。例如,虛擬機(jī)VM1、VM2、VM3位于同一物理機(jī)上。本發(fā) 明的虛擬化環(huán)境還設(shè)置了虛擬機(jī)安全管理器200和與之耦連的VM影子系統(tǒng)220。在虛擬機(jī) 安全管理器與影子系統(tǒng)之間設(shè)置了物理安全設(shè)備210,例如防火墻、防病毒設(shè)備、安全網(wǎng)關(guān) 或入侵防護(hù)設(shè)備等。其中,VM安全管理器將例如VM3向VMl發(fā)送的包保持在共享內(nèi)存中, 復(fù)制該包,并將該包通過(guò)物理安全設(shè)備210轉(zhuǎn)發(fā)給VM影子系統(tǒng)220。如果VM影子系統(tǒng)220接收到該包,則向虛擬機(jī)安全管理器200返回一個(gè)響應(yīng)消 息。虛擬機(jī)安全管理器200根據(jù)返回的響應(yīng)消息,確定可以傳送該包。虛擬機(jī)安全管理器 200將保持的包釋放,以由VMl從共享內(nèi)存中獲取該包。如果虛擬機(jī)安全管理器200超過(guò)指定的時(shí)間未接收到從VM影子系統(tǒng)220返回的響應(yīng)信息,則丟棄該包,不向VMl傳送??蛇x地,如果虛擬機(jī)安全管理器200超過(guò)指定的時(shí)間未接收到從VM影子系統(tǒng)220返回的響應(yīng)信息,可以調(diào)整虛擬網(wǎng)絡(luò)VNet。例如,從VNet中劃分出一個(gè)分離的子網(wǎng)絡(luò)(未 示出),將VM3劃分到該子網(wǎng)絡(luò)中。處于該子網(wǎng)絡(luò)中的虛擬機(jī)(例如VM3)發(fā)送的包總是通 過(guò)物理安全設(shè)備210以由物理安全設(shè)備210檢查并過(guò)濾。根據(jù)本發(fā)明,通過(guò)將虛擬機(jī)之間通信的包傳送給傳統(tǒng)的物理安全設(shè)備過(guò)濾檢查, 增強(qiáng)了虛擬機(jī)之間通信的安全性。此外,通過(guò)根據(jù)檢查反饋的結(jié)果將原來(lái)的虛擬網(wǎng)絡(luò)劃分 成新的子網(wǎng)絡(luò),實(shí)施安全隔離,強(qiáng)迫曾發(fā)送例如攻擊代碼包的虛擬機(jī)今后的通信均通過(guò)外 置的安全物理設(shè)備的檢查,進(jìn)一步提高了虛擬機(jī)通信的安全性和效率。在本發(fā)明的其它實(shí) 施方式中,還可以在將具有潛在危險(xiǎn)的虛擬機(jī)隔離后,向控制臺(tái)發(fā)送一個(gè)指示以通知系統(tǒng) 管理員進(jìn)行相應(yīng)處理。以下參照附圖3-6描述本發(fā)明的實(shí)施例。實(shí)施例1圖3示出根據(jù)本實(shí)施例的安全增強(qiáng)的虛擬機(jī)系統(tǒng)的示意框圖。 如圖所示,根據(jù)本實(shí)施例的虛擬機(jī)系統(tǒng)350包括多個(gè)虛擬機(jī),例如VMl、VM2和VM3。 請(qǐng)注意,盡管本實(shí)施例以三個(gè)虛擬機(jī)為例進(jìn)行說(shuō)明,但是本領(lǐng)域技術(shù)人員能夠理解此僅是 為了便于解釋,而非限制。實(shí)際上可以根據(jù)需要包括任意數(shù)目的虛擬機(jī)。在本實(shí)施例中,這 些虛擬機(jī)位于同一物理機(jī)(例如服務(wù)器、大型機(jī)、工作站等)上。虛擬機(jī)系統(tǒng)350還包括虛擬網(wǎng)絡(luò)(VNet)安全管理器300和與之耦連的VM影子系統(tǒng)320。VM影子系統(tǒng)320位于與虛擬機(jī)VM1、VM2和VM3所在的物理機(jī)不同的另一物理機(jī)上。在VNet安全管理器300與VM影子系統(tǒng)320之間設(shè)置有物理安全設(shè)備310。本發(fā)明對(duì)物理安全設(shè)備310沒(méi)有限制。例如,物理安全設(shè)備310可以是傳統(tǒng)的防火墻、防病毒設(shè) 備、安全網(wǎng)關(guān)、入侵防護(hù)設(shè)備之一或其組合。本領(lǐng)域技術(shù)人員能夠明了,在IT架構(gòu)中,可以 設(shè)置多個(gè)諸如防火墻的物理安全設(shè)備,這些物理安全設(shè)備不僅可以用于防護(hù)網(wǎng)絡(luò)內(nèi)部的設(shè) 備與外部設(shè)備之間的通信,還可以用于防護(hù)網(wǎng)絡(luò)內(nèi)部的設(shè)備(包括虛擬機(jī))之間的通信。在虛擬機(jī)通信的過(guò)程中,例如,虛擬機(jī)VM3向VMl發(fā)送包時(shí),VNet安全管理器300 復(fù)制虛擬機(jī)VM3向VMl發(fā)送的包,并將復(fù)制的包通過(guò)物理安全設(shè)備310轉(zhuǎn)發(fā)到VM影子系統(tǒng) 320。VM影子系統(tǒng)320將指示接收到該包的響應(yīng)信息返回VNet安全管理器300。VNet安全 管理器300根據(jù)返回的響應(yīng)信息將該包在虛擬機(jī)之間發(fā)送。更具體地,除了與傳統(tǒng)的虛擬機(jī)系統(tǒng)中的虛擬機(jī)管理器(Hypervisor)相同的模 塊(為了清楚表述本發(fā)明而未示出)之外,VNet安全管理器300進(jìn)一步包括VNet通信控制 器301。VNet通信控制器301被配置為進(jìn)行如下處理檢測(cè)位于同一物理機(jī)上的不同虛擬 機(jī)(例如VM3和VMl)之間通信的包;在共享內(nèi)存中保持并復(fù)制所檢測(cè)到的包;將復(fù)制的包 通過(guò)物理安全設(shè)備310轉(zhuǎn)發(fā)到VM影子系統(tǒng)320 ;等待并接收從VM影子系統(tǒng)320返回的響 應(yīng)信息;并在接收到響應(yīng)信息的情況下釋放所保持的包以完成不同虛擬機(jī)之間的通信???選地,VNet通信控制器301對(duì)虛擬機(jī)之間通信的每個(gè)包都進(jìn)行上述處理,實(shí)現(xiàn)對(duì)虛擬機(jī)安 全通信的全部控制?;蛘?,VNet通信控制器301可以按照預(yù)定規(guī)則抽取虛擬機(jī)之間通信的包進(jìn)行上述處理,實(shí)現(xiàn)對(duì)虛擬機(jī)安全通信的抽樣檢測(cè)和局部控制。所述預(yù)定規(guī)則可以根據(jù)需要來(lái)設(shè)定,例如可以按照一定時(shí)間間隔抽取,或者抽取預(yù)定類型的包等。此外,VNet通信控制器301還可以為所保持的包標(biāo)記通用唯一標(biāo)識(shí)符(UUID),并 將該包及其UUID—同轉(zhuǎn)發(fā)到VM影子系統(tǒng)320。UUID可以用來(lái)定位相應(yīng)的包。本領(lǐng)域技 術(shù)人員應(yīng)該理解,這里的UUID僅是一個(gè)實(shí)例,而本發(fā)明可以采用其它類型的標(biāo)識(shí)符來(lái)標(biāo)識(shí) 包。如圖3所示,VM影子系統(tǒng)320包括VM模擬器321和與之耦連的VM影子管理器 325。VM影子管理器325被配置為通過(guò)物理安全設(shè)備310從VNet通信控制器301接收被轉(zhuǎn)發(fā)的包,將所接收的包分發(fā)給VM模擬器321。VM模擬器321可以根據(jù)VNet安全管理器300通知的虛擬機(jī)拓?fù)浣Y(jié)構(gòu)來(lái)建立相應(yīng)的虛擬機(jī)影子。虛擬機(jī)影子是相應(yīng)虛擬機(jī)在影子系統(tǒng)所在的物理機(jī)上的鏡像,也可以稱為 虛擬機(jī)偽鏡像。但是,應(yīng)該注意,此處的虛擬機(jī)影子并非對(duì)相應(yīng)虛擬機(jī)的完全復(fù)制。實(shí)際上, 虛擬機(jī)影子可以理解為是用于反饋包含包的控制信息(例如UUID)的控制器,它只需被配 置為具有接收對(duì)應(yīng)虛擬機(jī)發(fā)送的包的控制信息并返回含有該控制信息的響應(yīng)的邏輯功能 即可。在明確了虛擬機(jī)影子的限定和功能之后,具體如何建立虛擬機(jī)影子是本領(lǐng)域技術(shù)人 員采用其普通知識(shí)就能夠?qū)嵤┑?,在此不再詳述。此外,?dāng)一個(gè)虛擬機(jī)VM加入VNet時(shí),VNet安全管理器300可以通知VM影子系統(tǒng)320為它增加虛擬機(jī)影子。如圖中虛線所示,VM模擬器321為各個(gè)虛擬機(jī)建立虛擬機(jī)影子。 例如,虛擬機(jī)VM1、VM2和VM3對(duì)應(yīng)的影子為VM1,、VM2,和VM3,。VM模擬器321解析來(lái)自 VM影子管理器325的包以獲取包的UUID。除了 UUID之外,來(lái)自VM影子管理器325的包還 包含主體內(nèi)容,即包的數(shù)據(jù)部分。VM模擬器321并不獲取來(lái)自VM影子管理器325的包的主 體內(nèi)容。VM模擬器321檢查是否已經(jīng)為例如發(fā)送包的虛擬機(jī)VM3建立了虛擬機(jī)影子VM3,。 如果沒(méi)有則模擬新的虛擬機(jī)影子VM3,。然后,VM模擬器321將UUID轉(zhuǎn)發(fā)到相關(guān)的虛擬機(jī) 影子VM3’。作為實(shí)例,相關(guān)的虛擬機(jī)影子VM3’可以生成僅包含UUID的包作為上述響應(yīng)信息, 并將該包發(fā)送給VM影子管理器325??蛇x地,VM模擬器321還可以獲取發(fā)送包的虛擬機(jī)VM3的IP地址。在這種情況 下,虛擬機(jī)影子VM3,可以具有與虛擬機(jī)VM3的IP地址相同的IP地址。并且,相關(guān)的虛擬 機(jī)影子VM3,生成包含UUID和IP地址的包作為響應(yīng)信息發(fā)送給VM影子管理器325。VM影子管理器325將由相關(guān)虛擬機(jī)影子VM3,生成的響應(yīng)信息反饋給VNet通信控 制器301。實(shí)施例2圖4為示出根據(jù)本發(fā)明另一實(shí)施例的安全增強(qiáng)的虛擬機(jī)系統(tǒng)的示意框圖。在圖4 中,采用相同的標(biāo)號(hào)表示與圖3相同的裝置,并省略其詳細(xì)描述。本實(shí)施例的虛擬機(jī)系統(tǒng)350’與實(shí)施例1的虛擬機(jī)系統(tǒng)350不同之處在于VNet安 全管理器300,還包括VNet劃分控制器305。VNet劃分控制器305與VNet通信控制器301耦連。VNet通信控制器301如果超 過(guò)指定的時(shí)間未接收到從VM影子系統(tǒng)320返回的響應(yīng)信息,則通知VNet劃分控制器305 調(diào)整VNet。VNet劃分控制器305調(diào)整VNet以將發(fā)送包的虛擬機(jī)VM3劃分到與其它虛擬機(jī)分離的虛擬子網(wǎng)絡(luò)(未示出)中,并使得該虛擬子網(wǎng)絡(luò)中的虛擬機(jī)(例如VM3)發(fā)送的包總 是通過(guò)物理安全設(shè)備310以由其檢查并過(guò)濾。具體如何從VNet中劃分出一個(gè)虛擬子網(wǎng)絡(luò) 是本領(lǐng)域技術(shù)人員采用其普通知識(shí)就能夠?qū)嵤┑?,在此不再詳述。在這種情況下,所劃分出的虛擬子網(wǎng)絡(luò)中的虛擬機(jī)發(fā)送的包將不再轉(zhuǎn)發(fā)到VM影 子系統(tǒng)320。可以認(rèn)為是對(duì)該虛擬子網(wǎng)絡(luò)中的虛擬機(jī)進(jìn)行了隔離,在對(duì)相應(yīng)的虛擬機(jī)(例 如VM3)進(jìn)行處理使其中存在的安全問(wèn)題消除之前,該虛擬機(jī)發(fā)出的包可以被物理安全設(shè) 備310過(guò)濾,從而不能與其它虛擬機(jī)實(shí)現(xiàn)通信。實(shí)施例3
圖5示出根據(jù)本發(fā)明又一實(shí)施例的安全增強(qiáng)的虛擬機(jī)通信方法的流程圖。根據(jù)本實(shí)施例的虛擬機(jī)通信方法可以在實(shí)施例1所述的虛擬機(jī)系統(tǒng)上實(shí)現(xiàn)。如圖 5所示,首先,在步驟501,由VNet通信控制器檢測(cè)例如位于同一物理機(jī)上的虛擬機(jī)VM3向 VMl發(fā)送的包。然后,在步驟510,將所檢測(cè)到的包保持在共享內(nèi)存中,并復(fù)制該包。接著,在步驟520,可以為所保持的包標(biāo)記通用唯一標(biāo)識(shí)符UUID。然后,在步驟530,將復(fù)制的包及UUID通過(guò)例如防火墻轉(zhuǎn)發(fā)到VM影子系統(tǒng)。該影 子系統(tǒng)位于不同于虛擬機(jī)所在的物理機(jī)的另一物理機(jī)上。之后,在步驟540等待并接收從影子系統(tǒng)返回的指示接收到該包的響應(yīng)信息。該 響應(yīng)信息可以僅包含所標(biāo)注的UUID。如果在步驟540接收到該響應(yīng)信息,則處理前進(jìn)到步驟560。在步驟560,釋放所 保持的該包,將其傳送到另一虛擬機(jī)。如果在步驟540超過(guò)指定時(shí)間接收到該響應(yīng)信息,則處理前進(jìn)到步驟550。在步驟 550,丟棄所保持的包,而不將該包傳送到另一虛擬機(jī)。以上從VNET通信控制器的角度對(duì)實(shí)施例3的方法進(jìn)行了描述。圖6示出圖5的 方法中由VM影子系統(tǒng)進(jìn)行的處理的流程圖。如圖6所示,在步驟531,VM影子系統(tǒng)通過(guò)例如防火墻從VNET通信控制器接收被 轉(zhuǎn)發(fā)的包。然后,在步驟532,處理該包以生成包含UUID的響應(yīng)信息。具體地,可以通過(guò)VM 影子管理器將所獲取的包分發(fā)到VM模擬器。VM模擬器解析來(lái)自VM影子管理器325的包 以獲取包的UUID。VM模擬器檢查是否已經(jīng)為例如發(fā)送包的虛擬機(jī)VM3建立了虛擬機(jī)影子 VM3’。如果沒(méi)有則模擬新的虛擬機(jī)影子VM3’。然后,VM模擬器321UUID轉(zhuǎn)發(fā)到相關(guān)的虛擬 機(jī)影子VM3,。作為實(shí)例,相關(guān)的虛擬機(jī)影子VM3,可以生成僅包含UUID的包作為上述響應(yīng) 信息。可選地,VM模擬器還可以獲取發(fā)送包的虛擬機(jī)VM3的IP地址。并且,相關(guān)的虛擬機(jī) 影子VM3’生成包含UUID和IP地址的包作為上述響應(yīng)信息。然后,將響應(yīng)信息發(fā)送給VM 影子管理器。然后,在步驟533,VM影子管理器將由相關(guān)虛擬機(jī)影子VM3,生成的響應(yīng)信息反饋 給VNet通信控制器。實(shí)施例4圖7示出根據(jù)本發(fā)明再一實(shí)施例的虛擬機(jī)通信方法的流程圖。在圖7中,采用相 同的標(biāo)號(hào)表示與圖5相同的步驟,并省略其詳細(xì)描述。
根據(jù)本實(shí)施例的虛擬機(jī)通信方法可以在實(shí)施例2所述的虛擬機(jī)系統(tǒng)上實(shí)現(xiàn)。本實(shí) 施例的方法與實(shí)施例1的不同之處在于在步驟550之后還進(jìn)行步驟570。 如圖7所示,如果在步驟540超過(guò)指定時(shí)間接收到響應(yīng)信息,并在步驟550丟棄所 保持的包之后,處理前進(jìn)到步驟570。在步驟570,由例如VNet劃分控制器調(diào)整VNet以將 發(fā)送包的虛擬機(jī)VM3劃分到與其它虛擬機(jī)分離的虛擬子網(wǎng)絡(luò)中,并使得該虛擬子網(wǎng)絡(luò)中的 虛擬機(jī)發(fā)送的包總是通過(guò)物理安全設(shè)備(例如防火墻)以由其檢查并過(guò)濾。在這種情況下,所劃分出的虛擬子網(wǎng)絡(luò)中的虛擬機(jī)發(fā)送的包將不再轉(zhuǎn)發(fā)到VM影 子系統(tǒng)??梢哉J(rèn)為是對(duì)該虛擬子網(wǎng)絡(luò)中的虛擬機(jī)進(jìn)行了隔離,在對(duì)相應(yīng)的虛擬機(jī)(例如 VM3)進(jìn)行處理使其中存在的安全問(wèn)題消除之前,該虛擬機(jī)發(fā)出的包可以被物理安全設(shè)備過(guò) 濾,從而不能與其它虛擬機(jī)實(shí)現(xiàn)通信。圖8示意性示出了可以實(shí)現(xiàn)根據(jù)本發(fā)明的各個(gè)實(shí)施例的計(jì)算機(jī)系統(tǒng)的結(jié)構(gòu)方框 圖。圖8中所示的計(jì)算機(jī)系統(tǒng)包括CPU(中央處理單元)801、RAM(隨機(jī)存取存儲(chǔ) 器)802、R0M(只讀存儲(chǔ)器)803、系統(tǒng)總線804,硬盤控制器805、鍵盤控制器806、串行接 口控制器807、并行接口控制器808、顯示器控制器809、硬盤810、鍵盤811、串行外部設(shè)備 812、并行外部設(shè)備813和顯示器814。在這些部件中,與系統(tǒng)總線804相連的有CPU 801、 RAM 802、ROM 803、硬盤控制器805、鍵盤控制器806,串行接口控制器807,并行接口控制器 808和顯示器控制器809。硬盤810與硬盤控制器805相連,鍵盤811與鍵盤控制器806相 連,串行外部設(shè)備812與串行接口控制器807相連,并行外部設(shè)備813與并行接口控制器 808相連,以及顯示器814與顯示器控制器809相連。圖8中每個(gè)部件的功能在本技術(shù)領(lǐng)域內(nèi)都是眾所周知的,并且圖8所示的結(jié)構(gòu)也 是常規(guī)的。這種結(jié)構(gòu)不僅用于個(gè)人計(jì)算機(jī)和服務(wù)器,而且用于手持設(shè)備,如Palm PC、PDA(個(gè) 人數(shù)據(jù)助理)、移動(dòng)電話等等。在不同的應(yīng)用中,例如用于實(shí)現(xiàn)包含有根據(jù)本發(fā)明的客戶端 模塊的用戶終端或者包含有根據(jù)本發(fā)明的虛擬機(jī)系統(tǒng)的服務(wù)器主機(jī)時(shí),可以向圖8中所示 的結(jié)構(gòu)添加某些部件,或者圖8中的某些部件可以被省略。圖8中所示的整個(gè)系統(tǒng)由通常 作為軟件存儲(chǔ)在硬盤810中、或者存儲(chǔ)在EPROM或者其它非易失性存儲(chǔ)器中的計(jì)算機(jī)可讀 指令控制。軟件也可從網(wǎng)絡(luò)(圖中未示出)下載?;蛘叽鎯?chǔ)在硬盤810中,或者從網(wǎng)絡(luò)下 載的軟件可被加載到RAM 802中,并由CPU 801執(zhí)行,以便完成由軟件確定的功能。盡管圖8中描述的計(jì)算機(jī)系統(tǒng)能夠支持根據(jù)本發(fā)明的提供的技術(shù)方案,但是該計(jì) 算機(jī)系統(tǒng)只是計(jì)算機(jī)系統(tǒng)的一個(gè)例子。本領(lǐng)域的熟練技術(shù)人員可以理解,許多其它計(jì)算機(jī) 系統(tǒng)設(shè)計(jì)也能實(shí)現(xiàn)本發(fā)明的實(shí)施例。本發(fā)明還可以實(shí)現(xiàn)為例如由圖8所示的系統(tǒng)所使用的計(jì)算機(jī)程序產(chǎn)品,其可以包 含有用于實(shí)現(xiàn)根據(jù)本發(fā)明的安全增強(qiáng)的虛擬機(jī)系統(tǒng)或虛擬機(jī)通信方法的部分或全部的代 碼。在使用之前,可以把代碼存儲(chǔ)在其它計(jì)算機(jī)系統(tǒng)的存儲(chǔ)器中,例如,存儲(chǔ)在硬盤或諸如 光盤或軟盤的可移動(dòng)的存儲(chǔ)器中,或者經(jīng)由因特網(wǎng)或其它計(jì)算機(jī)網(wǎng)絡(luò)進(jìn)行下載。所公開(kāi)的本發(fā)明的方法可以在軟件、硬件、或軟件和硬件的結(jié)合中實(shí)現(xiàn)。硬件部分 可以利用專用邏輯來(lái)實(shí)現(xiàn);軟件部分可以存儲(chǔ)在存儲(chǔ)器中,由適當(dāng)?shù)闹噶顖?zhí)行系統(tǒng),例如微 處理器、個(gè)人計(jì)算機(jī)(PC)或大型機(jī)來(lái)執(zhí)行。以上描述了本發(fā)明的優(yōu)選實(shí)施例。具體實(shí)施例的以上描述完整地展現(xiàn)了本發(fā)明的一般特性,其它方面可通過(guò)應(yīng)用當(dāng)前知識(shí)在不脫離一般原理的情況下容易地修改和/或適 應(yīng)這些具體實(shí)施例的各個(gè)應(yīng)用。因此這些應(yīng)用和修改應(yīng)該并且意欲被理解為在所公開(kāi)實(shí)施 例的含義和等同范圍內(nèi)。 應(yīng)該理解,這里采用的措辭和術(shù)語(yǔ)是說(shuō)明的目的,而不是限制。因此,雖然根據(jù)實(shí) 施例已經(jīng)描述了本發(fā)明,但是本領(lǐng)域普通技術(shù)人員將認(rèn)識(shí)到,在所附權(quán)利要求的范圍內(nèi)可 以通過(guò)修改來(lái)實(shí)現(xiàn)本發(fā)明。
權(quán)利要求
一種安全增強(qiáng)的虛擬機(jī)通信方法,用于虛擬網(wǎng)絡(luò)中的多臺(tái)虛擬機(jī),所述虛擬機(jī)位于同一物理機(jī)上,該方法包括如下步驟檢測(cè)虛擬網(wǎng)絡(luò)中由一虛擬機(jī)向另一虛擬機(jī)發(fā)送的包;在共享內(nèi)存中保持并復(fù)制所檢測(cè)到的包;將復(fù)制的包通過(guò)物理安全設(shè)備轉(zhuǎn)發(fā)到影子系統(tǒng),該影子系統(tǒng)位于不同于虛擬機(jī)所在的物理機(jī)的另一物理機(jī)上;等待并接收從所述影子系統(tǒng)返回的指示接收到該包的響應(yīng)信息;根據(jù)從所述影子系統(tǒng)返回的響應(yīng)信息,將該包傳送到所述另一虛擬機(jī)。
2.根據(jù)權(quán)利要求1所述的方法,其中在等待并接收所述響應(yīng)信息的步驟中,如果超過(guò) 指定的時(shí)間未接收到從所述影子系統(tǒng)返回的響應(yīng)信息,則不將該包傳送到所述另一虛擬 機(jī)。
3.根據(jù)權(quán)利要求2所述的方法,還包括如下步驟如果超指定的時(shí)間未接收到從該影 子系統(tǒng)返回的響應(yīng)信息,則調(diào)整虛擬網(wǎng)絡(luò)以將發(fā)送所述包的虛擬機(jī)劃分到與其它虛擬機(jī)分 離的虛擬子網(wǎng)絡(luò)中,并使得發(fā)送所述包的虛擬機(jī)發(fā)送的包總是通過(guò)所述物理安全設(shè)備以由 所述物理安全設(shè)備檢查并過(guò)濾。
4.根據(jù)權(quán)利要求1所述的方法,其中在將該包傳送到所述另一虛擬機(jī)的步驟中,釋放 所保持的包以將該包傳送到所述另一虛擬機(jī)。
5.根據(jù)權(quán)利要求1所述的方法,在所述轉(zhuǎn)發(fā)步驟之前還包括為所述包標(biāo)記通用唯一標(biāo) 識(shí)符UUID的步驟,在所述轉(zhuǎn)發(fā)步驟中將所述包及其UUID —同轉(zhuǎn)發(fā)到影子系統(tǒng)。
6.根據(jù)權(quán)利要求5所述的方法,還包括如下步驟在所述轉(zhuǎn)發(fā)步驟之后,還包括如下步驟所述影子系統(tǒng)接收被轉(zhuǎn)發(fā)的包;處理該包以生成包含所述UUID的所述響應(yīng)信息;和反饋所述響應(yīng)信息。
7.根據(jù)權(quán)利要求6所述的方法,其中所述處理該包以生成包含所述UUID的所述響應(yīng)信 息的步驟所生成的所述響應(yīng)信息還包括發(fā)送所述包的虛擬機(jī)的IP地址。
8.根據(jù)權(quán)利要求6所述的方法,其中所述處理該包以生成包含所述UUID的所述響應(yīng)信 息的步驟所生成的所述響應(yīng)信息不包含所述被轉(zhuǎn)發(fā)的包的主體內(nèi)容。
9.一種安全增強(qiáng)的虛擬機(jī)系統(tǒng),包括虛擬網(wǎng)絡(luò)中的多臺(tái)虛擬機(jī),所述虛擬機(jī)位于同一 物理機(jī)上,其特征在于該虛擬機(jī)系統(tǒng)包括耦連在虛擬網(wǎng)絡(luò)中的虛擬網(wǎng)絡(luò)安全管理器,和與該虛擬網(wǎng)絡(luò)安全管理器耦連的影子系統(tǒng),該影子系統(tǒng)位于不同于所述虛擬機(jī)所在的 物理機(jī)的另一物理機(jī)上,其中該虛擬網(wǎng)絡(luò)安全管理器復(fù)制虛擬機(jī)之間發(fā)送的包,并將復(fù)制的包通過(guò)物理安全設(shè) 備轉(zhuǎn)發(fā)到該影子系統(tǒng);該影子系統(tǒng)將指示接收到該包的響應(yīng)信息返回該虛擬網(wǎng)絡(luò)安全管理器;以及 該虛擬網(wǎng)絡(luò)安全管理器根據(jù)返回的響應(yīng)信息將該包在虛擬機(jī)之間發(fā)送。
10.根據(jù)權(quán)利要求9所述的虛擬機(jī)系統(tǒng),其中,所述虛擬網(wǎng)絡(luò)安全管理器進(jìn)一步包括 虛擬網(wǎng)絡(luò)通信控制器,其被配置為進(jìn)行如下處理檢測(cè)位于同一物理機(jī)上的不同虛擬機(jī)之間通信的包;在共享內(nèi)存中保持并復(fù)制所檢測(cè)到的包;將復(fù)制的包通過(guò)物理安全設(shè)備 轉(zhuǎn)發(fā)到影子系統(tǒng);等待并接收從所述影子系統(tǒng)返回的響應(yīng)信息;并在接收到所述響應(yīng)信息 的情況下釋放所保持的包以完成不同虛擬機(jī)之間的通信。
11.根據(jù)權(quán)利要求10所述的虛擬機(jī)系統(tǒng),其中所述虛擬網(wǎng)絡(luò)安全管理器還包括與所述虛擬網(wǎng)絡(luò)通信控制器耦連的虛擬網(wǎng)絡(luò)劃分控制器,并且其中所述虛擬網(wǎng)絡(luò)通信控制器如果超過(guò)指定的時(shí)間未接收到響應(yīng)信息則通知所述虛 擬網(wǎng)絡(luò)劃分控制器,所述虛擬網(wǎng)絡(luò)劃分控制器調(diào)整虛擬網(wǎng)絡(luò)以將發(fā)送所述包的虛擬機(jī)劃分 到與其它虛擬機(jī)分離的虛擬子網(wǎng)絡(luò)中,并使得發(fā)送所述包的虛擬機(jī)發(fā)送的包總是通過(guò)所述 物理安全設(shè)備以由所述物理安全設(shè)備檢查并過(guò)濾。
12.根據(jù)權(quán)利要求10所述的虛擬機(jī)系統(tǒng),其中,所述虛擬網(wǎng)絡(luò)通信控制器還被配置為 為所保持的包標(biāo)記通用唯一標(biāo)識(shí)符UUID,并將所述包及其UUID —同轉(zhuǎn)發(fā)到影子系統(tǒng),以及所述響應(yīng)信息包含該UUID。
13.根據(jù)權(quán)利要求10所述的虛擬機(jī)系統(tǒng),其中所述影子系統(tǒng)包括虛擬機(jī)模擬器;和與該虛擬機(jī)模擬器耦連的虛擬機(jī)影子管理器,其中,該虛擬機(jī)影子管理器被配置為通過(guò)所述物理安全設(shè)備從所述虛擬網(wǎng)絡(luò)通信控制 器接收被轉(zhuǎn)發(fā)的包,將所接收的包分發(fā)給該虛擬機(jī)模擬器,并將由相關(guān)虛擬機(jī)影子處理而 獲得的所述響應(yīng)信息反饋給所述虛擬網(wǎng)絡(luò)通信控制器;該虛擬機(jī)模擬器被配置為解析來(lái)自該虛擬機(jī)影子管理器的包以獲取所述UUID ;為發(fā) 送所述包的虛擬機(jī)模擬虛擬機(jī)影子,并將所述UUID轉(zhuǎn)發(fā)到相關(guān)的虛擬機(jī)影子。
14.根據(jù)權(quán)利要求13所述的虛擬機(jī)系統(tǒng),其中相關(guān)的虛擬機(jī)影子生成僅包含所述UUID 的包作為所述響應(yīng)信息發(fā)送給所述虛擬機(jī)影子管理器。
15.根據(jù)權(quán)利要求13所述的虛擬機(jī)系統(tǒng),其中所述虛擬機(jī)模擬器還被配置為獲取發(fā)送 所述包的虛擬機(jī)的IP地址,并且相關(guān)的虛擬機(jī)影子生成包含所述UUID和所述IP地址的包作為所述響應(yīng)信息發(fā)送給所 述虛擬機(jī)影子管理器。
16.根據(jù)權(quán)利要求13所述的虛擬機(jī)系統(tǒng),其中所述虛擬機(jī)模擬器被配置為不獲取來(lái)自 所述虛擬機(jī)影子管理器的包的主體內(nèi)容。
17.根據(jù)權(quán)利要求10所述的虛擬機(jī)系統(tǒng),其中所述虛擬網(wǎng)絡(luò)通信控制器對(duì)虛擬機(jī)之間 通信的每個(gè)包進(jìn)行所述處理。
18.根據(jù)權(quán)利要求10所述的虛擬機(jī)系統(tǒng),其中所述虛擬網(wǎng)絡(luò)通信控制器抽取虛擬機(jī)之 間通信的包的一部分進(jìn)行所述處理。
19.根據(jù)權(quán)利要求9所述的虛擬機(jī)系統(tǒng),其中所述物理安全設(shè)備是防火墻、防病毒設(shè) 備、入侵防護(hù)設(shè)備之一或其組合。
全文摘要
本發(fā)明公開(kāi)了一種安全增強(qiáng)的虛擬機(jī)通信方法和虛擬機(jī)系統(tǒng)。根據(jù)一個(gè)實(shí)施例的安全增強(qiáng)的虛擬機(jī)系統(tǒng)包括虛擬網(wǎng)絡(luò)中位于同一物理機(jī)上的多臺(tái)虛擬機(jī)。該虛擬機(jī)系統(tǒng)包括耦連在虛擬網(wǎng)絡(luò)中的虛擬網(wǎng)絡(luò)安全管理器,和與該虛擬網(wǎng)絡(luò)安全管理器耦連的影子系統(tǒng),該影子系統(tǒng)位于不同于所述虛擬機(jī)所在的物理機(jī)的另一物理機(jī)上。其中該虛擬網(wǎng)絡(luò)安全管理器復(fù)制虛擬機(jī)之間發(fā)送的包,并將復(fù)制的包通過(guò)物理安全設(shè)備轉(zhuǎn)發(fā)到該影子系統(tǒng);該影子系統(tǒng)將指示接收到該包的響應(yīng)信息返回該虛擬網(wǎng)絡(luò)安全管理器;以及該虛擬網(wǎng)絡(luò)安全管理器根據(jù)返回的響應(yīng)信息將該包在虛擬機(jī)之間發(fā)送。
文檔編號(hào)H04L29/06GK101800730SQ20091000403
公開(kāi)日2010年8月11日 申請(qǐng)日期2009年2月9日 優(yōu)先權(quán)日2009年2月9日
發(fā)明者侯銳, 劉亮, 戈弋, 王慶波, 王浩, 田啟明 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司