專利名稱:管理虛擬網(wǎng)絡(luò)的方法與系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本公開內(nèi)容涉及把虛擬網(wǎng)絡(luò)覆蓋(overlay)到物理網(wǎng)絡(luò)上。更特別地,本公開內(nèi)容涉及利用邏輯上定義虛擬機(jī)之間的數(shù)據(jù)遍歷的策略管理虛擬網(wǎng)絡(luò)。
背景技術(shù):
物理網(wǎng)絡(luò)包括在主機(jī)計(jì)算系統(tǒng)、存儲(chǔ)位置和其他計(jì)算實(shí)體之間傳輸數(shù)據(jù)的交換機(jī)與路由器。用于傳輸數(shù)據(jù)的傳統(tǒng)聯(lián)網(wǎng)協(xié)議典型地基于開放系統(tǒng)互聯(lián)(OSI)模型,該模型包括物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)傳輸層、會(huì)話層、呈現(xiàn)層和應(yīng)用層。當(dāng)發(fā)起實(shí)體向目的地實(shí)體發(fā)送數(shù)據(jù)時(shí),這些聯(lián)網(wǎng)協(xié)議在一定程度上典型地附連對(duì)駐留在物理網(wǎng)絡(luò)內(nèi)的聯(lián)網(wǎng)實(shí)體(例如,路由器、交換機(jī),等等)的參考。
發(fā)明內(nèi)容
根據(jù)本公開內(nèi)容的一種實(shí)施方式,提供了一種方法,其中策略模塊接收由第一虛擬機(jī)發(fā)起并具有在第二虛擬機(jī)的目的地的數(shù)據(jù)。該策略模塊選擇與從第一虛擬機(jī)向第二虛擬機(jī)發(fā)送數(shù)據(jù)相對(duì)應(yīng)的策略。該策略包括對(duì)一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)的一個(gè)或多個(gè)邏輯參考,而且不包括對(duì)位于物理網(wǎng)絡(luò)上的物理實(shí)體的物理參考。該策略模塊又利用基于所選策略的物理路徑變換封裝數(shù)據(jù),而且將經(jīng)封裝的數(shù)據(jù)在物理網(wǎng)絡(luò)上發(fā)送到對(duì)應(yīng)于第二虛擬機(jī)的第二策略模塊。以上是概述,因而必然包含對(duì)細(xì)節(jié)的簡(jiǎn)化、概括和忽略;因此,本領(lǐng)域技術(shù)人員將認(rèn)識(shí)到,概述僅僅是例示性的,而不是要以任何方式進(jìn)行限定。如完全由權(quán)利要求所限定的,本公開內(nèi)容的其他方面、創(chuàng)新特征和優(yōu)點(diǎn)將在以下所闡述的非限制性具體描述中變得明顯。
通過(guò)參考附圖,可以更好地理解本公開內(nèi)容,而且其許多目的、特征和優(yōu)點(diǎn)將對(duì)本領(lǐng)域技術(shù)人員變得明顯,附圖中圖I是示出覆蓋到物理空間上的虛擬網(wǎng)絡(luò)抽象的圖;圖2A是示出在主機(jī)系統(tǒng)上執(zhí)行的分布式覆蓋虛擬網(wǎng)絡(luò)(DOVE)模塊的圖,該主機(jī)系統(tǒng)提供虛擬機(jī)之間的端到端的虛擬網(wǎng)絡(luò)環(huán)境;圖2B是示出在虛擬網(wǎng)絡(luò)中邏輯耦接的虛擬機(jī)的圖;圖3是示出“發(fā)起”虛擬機(jī)通過(guò)基于邏輯策略的物理網(wǎng)絡(luò)把數(shù)據(jù)發(fā)送到“目的地”虛擬機(jī)的圖;圖4是示出目的地模塊向發(fā)起模塊通知虛擬機(jī)已經(jīng)重新定位到不同主機(jī)的圖;圖5是示出基于層次的策略服務(wù)的圖;圖6是示出DOVE模塊向分布式策略服務(wù)查詢更新后的策略的圖;圖7是示出在通過(guò)物理網(wǎng)絡(luò)把數(shù)據(jù)從發(fā)起虛擬機(jī)(VM)發(fā)送到目的地虛擬機(jī)中所采取的步驟的流程圖;圖8是示出在DOVE模塊從分布式策略服務(wù)獲取更新后的策略中所采取的步驟的流程圖;圖9是示出在目的地模塊向發(fā)起模塊通知從該發(fā)起模塊接收到的策略已過(guò)時(shí)(deprecate)中所采取的步驟的流程圖;圖10是示出對(duì)應(yīng)于發(fā)起和目的地虛擬機(jī)的策略的表;圖11是其中可以實(shí)現(xiàn)在此所述方法的數(shù) 據(jù)處理系統(tǒng)的框圖;及圖12提供對(duì)圖11中所示的信息處理系統(tǒng)環(huán)境的擴(kuò)展,用以例示在此所述的方法可以在運(yùn)行于聯(lián)網(wǎng)環(huán)境中的廣泛多種信息處理系統(tǒng)上執(zhí)行,例如網(wǎng)絡(luò)路由器、網(wǎng)關(guān)和裝置。
具體實(shí)施例方式在此所使用的術(shù)語(yǔ)僅僅是為了描述特定的實(shí)施方式,而不是要成為對(duì)本公開內(nèi)容的限制。如在此所使用的,單數(shù)形式的“一個(gè)”和“該”是要也包括復(fù)數(shù)形式,除非上下文清楚地另外指示。還將理解,當(dāng)在本說(shuō)明書中使用時(shí),術(shù)語(yǔ)“包括”和/或“包含”指定所述特征、整體、步驟、操作、元素和/或部件的存在,但是不排除一個(gè)或多個(gè)其它特征、整體、步驟、操作、元素、部件和/或其組的存在或添加。以下權(quán)利要求中所有裝置或步驟加上功能元件的對(duì)應(yīng)結(jié)構(gòu)、材料、動(dòng)作和等同物都是要包括用于與其它所請(qǐng)求保護(hù)的元件相組合而執(zhí)行所述功能的任何結(jié)構(gòu)、材料或者動(dòng)作,就象明確聲明的那樣。給出對(duì)本公開內(nèi)容的描述是為了例示和描述的目的,而不是要詳盡或者把本公開內(nèi)容限制到所公開的形式。許多修改和變化對(duì)本領(lǐng)域普通技術(shù)人員都將是顯而易見(jiàn)的,而不會(huì)脫離本公開內(nèi)容的范圍與精神。對(duì)實(shí)施方式的選擇和描述是為了最好地解釋本公開內(nèi)容的原理和實(shí)踐應(yīng)用,并且使本領(lǐng)域其他普通技術(shù)人員能夠理解本公開內(nèi)容具有適合預(yù)期特定使用的各種修改的各種實(shí)施方式。如本領(lǐng)域技術(shù)人員將認(rèn)識(shí)到的,本公開內(nèi)容的各方面可以體現(xiàn)為系統(tǒng)、方法或者計(jì)算機(jī)程序產(chǎn)品。相應(yīng)地,本公開內(nèi)容的各方面可以采取完全硬件實(shí)施方式、完全軟件實(shí)施方式(包括固件、駐留軟件、微代碼,等等)或者組合軟件和硬件方面的實(shí)施方式,在這里全都可以總體上稱為“電路”、“模塊”或者“系統(tǒng)”。此外,本公開內(nèi)容的各方面可以采取包含在一種或多種計(jì)算機(jī)可讀介質(zhì)中的計(jì)算機(jī)程序產(chǎn)品的形式,其中在計(jì)算機(jī)可讀介質(zhì)上包含了計(jì)算機(jī)可讀程序代碼??梢允褂靡环N或多種計(jì)算機(jī)可讀介質(zhì)的任意組合。計(jì)算機(jī)可讀介質(zhì)可以是計(jì)算機(jī)可讀信號(hào)介質(zhì)或者計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是,例如但不限于,電、磁、光、電磁、紅外或者半導(dǎo)體系統(tǒng)、裝置或設(shè)備或者以上所述的任意合適組合。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的更具體例子(非詳盡列表)將包括以下具有一條或多條電線的電連接、便攜式計(jì)算機(jī)盤、硬盤、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、可擦可編程只讀存儲(chǔ)器(EPR0M或者閃速存儲(chǔ)器)、光纖、便攜式光盤只讀存儲(chǔ)器(CD-ROM)、光存儲(chǔ)設(shè)備、磁存儲(chǔ)設(shè)備或者以上所述的任意合適組合。在本文檔的背景下,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是可包含或者存儲(chǔ)用于由指令執(zhí)行系統(tǒng)、裝置或設(shè)備使用或者與其相關(guān)使用的程序的任何有形介質(zhì)。計(jì)算機(jī)可讀信號(hào)介質(zhì)可以包括例如在基帶中或者作為載波的一部分的傳播的數(shù)據(jù)信號(hào),在所述數(shù)據(jù)信號(hào)中包含了計(jì)算機(jī)可讀程序代碼。這種傳播的信號(hào)可以采取多種形式中的任意一種,包括但不限于,電磁、光或者其任意合適組合。計(jì)算機(jī)可讀信號(hào)介質(zhì)可以是非計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)而且可以傳送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或設(shè)備使用或者與其相關(guān)使用的程序的任何計(jì)算機(jī)可讀介質(zhì)。包含在計(jì)算機(jī)可讀介質(zhì)上的程序代碼可以利用任何適當(dāng)?shù)慕橘|(zhì)發(fā)送,包括但不限于無(wú)線、有線、光纖線纜、RF等或者以上所述的任意合適組合。用于執(zhí)行本公開內(nèi)容各方面的操作的計(jì)算機(jī)程序代碼可以用一種或多種編程語(yǔ)H的任意組合來(lái)書寫,包括面向?qū)ο蟮木幊陶Z(yǔ)目(例如,Java、Smalltalk、C++等)及傳統(tǒng)的過(guò)程性編程語(yǔ)言(例如,“C”編程語(yǔ)言或者類似的編程語(yǔ)言)。程序代碼可以完全在用戶的計(jì)算機(jī)上、部分地在用戶的計(jì)算機(jī)上、作為獨(dú)立的軟件包、部分在用戶的計(jì)算機(jī)上而部分在遠(yuǎn)端計(jì)算機(jī)上或者完全在遠(yuǎn)端的計(jì)算機(jī)或者服務(wù)器上執(zhí)行。在后一種場(chǎng)景下,遠(yuǎn)端計(jì)算機(jī)可以通過(guò)任何類型的網(wǎng)絡(luò)連接到用戶的計(jì)算機(jī),這些網(wǎng)絡(luò)包括局域網(wǎng)(LAN)或者廣域網(wǎng)(WAN),或者可以連接到外部計(jì)算機(jī)(例如,通過(guò)利用互聯(lián)網(wǎng)服務(wù)提供商的互聯(lián)網(wǎng))。以下參考根據(jù)本公開內(nèi)容實(shí)施方式的方法、裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程 圖例示和/或框圖來(lái)描述本公開內(nèi)容的各方面。將理解,流程圖例示和/或框圖中的每一塊及流程圖例示和/或框圖中的塊組合可以由計(jì)算機(jī)程序指令來(lái)實(shí)現(xiàn)。這些計(jì)算機(jī)程序指令可以提供給通用計(jì)算機(jī)、專用計(jì)算機(jī)或者其它可編程數(shù)據(jù)處理裝置的處理器,來(lái)產(chǎn)生一種機(jī)器,使得經(jīng)計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖和/或框圖塊中指定的功能/動(dòng)作的裝置。這些計(jì)算機(jī)程序指令還可以存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中,這些計(jì)算機(jī)程序指令可以指示計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置或者其它設(shè)備以特定的方式運(yùn)作,使得存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中的指令產(chǎn)生一種制造品,該制造品包括實(shí)現(xiàn)在流程圖和/或框圖塊中指定的功能/動(dòng)作的指令。計(jì)算機(jī)程序指令還可以加載到計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置或者其它設(shè)備上,使得在計(jì)算機(jī)、其它可編程裝置或者其它設(shè)備上執(zhí)行一系列操作步驟,以產(chǎn)生一種計(jì)算機(jī)實(shí)現(xiàn)處理,從而在計(jì)算機(jī)或者其它可編程裝置上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖和/或框圖塊中指定的功能/動(dòng)作的處理。以下具體描述將總體上遵循如上所述本公開內(nèi)容的概述,在必要時(shí)進(jìn)一步解釋和擴(kuò)展本公開內(nèi)容的各方面與實(shí)施方式的定義。圖I是示出覆蓋到物理空間上的虛擬網(wǎng)絡(luò)抽象的圖。虛擬網(wǎng)絡(luò)100包括在虛擬機(jī)(例如,虛擬機(jī)102-110)之間提供端到端虛擬連接的策略(例如,策略103-113)。每個(gè)虛擬網(wǎng)絡(luò)100都對(duì)應(yīng)于唯一的一個(gè)虛擬標(biāo)識(shí)符。這允許多個(gè)虛擬網(wǎng)絡(luò)在物理空間120上的并發(fā)操作。如本領(lǐng)域技術(shù)人員可以認(rèn)識(shí)到的,有些虛擬網(wǎng)絡(luò)100可以包括虛擬機(jī)102-110中的一部分,而其他虛擬網(wǎng)絡(luò)100可以包括與圖I中所示不同的虛擬機(jī)和不同的策略。當(dāng)“發(fā)起”虛擬機(jī)把數(shù)據(jù)發(fā)送到“目的地”虛擬機(jī)時(shí),對(duì)應(yīng)于這兩個(gè)虛擬機(jī)的策略描述數(shù)據(jù)在其上行進(jìn)(例如,通過(guò)防火墻、通過(guò)加速器,等等)的邏輯路徑。換句話說(shuō),策略103-113定義不同的虛擬機(jī)如何彼此(或者與外部網(wǎng)絡(luò))通信。例如,策略可以定義一組虛擬機(jī)之間的服務(wù)質(zhì)量(QoS)要求;與特定虛擬機(jī)相關(guān)聯(lián)的訪問(wèn)控制;或者當(dāng)發(fā)送或接收數(shù)據(jù)時(shí)要遍歷的一組虛擬或物理裝置(設(shè)備)(對(duì)于更多細(xì)節(jié),見(jiàn)圖10和對(duì)應(yīng)的文字)。此外,有些裝置可以包括諸如壓縮、IP安全(IPSec)、SSL的加速器或者諸如防火墻或入侵檢測(cè)系統(tǒng)的安全裝置。此外,策略可以配置成不允許發(fā)起虛擬機(jī)與目的地虛擬機(jī)之間的通信。虛擬網(wǎng)絡(luò)100邏輯上覆蓋到物理空間120,物理空間120包括物理實(shí)體,例如交換機(jī)125-140、服務(wù)器150-170和路由器175-180及各種裝置(例如,防火墻)。盡管策略在系統(tǒng)中實(shí)施的方式影響并依賴于物理空間120,但是虛擬網(wǎng)絡(luò)100更依賴于策略中的邏輯描述。由此,多個(gè)虛擬網(wǎng)絡(luò)100可以覆蓋到物理空間120。在一種實(shí)施方式中,虛擬網(wǎng)絡(luò)抽象支持不同虛擬網(wǎng)絡(luò)100之間的地址獨(dú)立。例如,運(yùn)行在兩個(gè)不同虛擬網(wǎng)絡(luò)中的兩個(gè)不同的虛擬機(jī)可以具有相同的IP地址。作為另一個(gè)例子,虛擬網(wǎng)絡(luò)抽象支持把屬于相同虛擬網(wǎng)絡(luò)的虛擬機(jī)部署到位于不同物理子網(wǎng)(包括物理實(shí)體之間的交換機(jī)和/或路由器)中的不同主機(jī)上。在另一種實(shí)施方式中,屬于不同虛擬網(wǎng)絡(luò)的虛擬機(jī)可以在相同的物理主機(jī)上被主控(host)。在還有另一種實(shí)施方式中,虛擬網(wǎng)絡(luò)抽象支持在數(shù)據(jù)中心中任何地方的虛擬機(jī)遷移,而不改變虛擬機(jī)的網(wǎng)絡(luò)地址和丟失其網(wǎng)絡(luò)連接。 圖2A是示出在主機(jī)系統(tǒng)上執(zhí)行的分布式覆蓋虛擬網(wǎng)絡(luò)(DOVE)模塊的圖,該主機(jī)系統(tǒng)提供虛擬機(jī)之間的端到端的虛擬網(wǎng)絡(luò)環(huán)境。物理空間200包括主機(jī)205-265,這些主機(jī)支持在硬件交換機(jī)/路由器292之上彼此通信的虛擬機(jī)操作(虛擬機(jī)220-290)。每個(gè)主機(jī)205-265都采用一個(gè)包括分布式覆蓋虛擬網(wǎng)絡(luò)(DOVE)模塊(DOVE模塊215-275)的軟件交換機(jī)(交換機(jī)210-270)。DOVE模塊215-275利用基于策略的物理路徑變換封裝數(shù)據(jù),并把經(jīng)封裝的數(shù)據(jù)在DOVE模塊215-275之間發(fā)送,該經(jīng)封裝的數(shù)據(jù)繼而又被解除封裝并轉(zhuǎn)發(fā)到目的地虛擬機(jī)。策略以邏輯方式描述數(shù)據(jù)需要如何在虛擬網(wǎng)絡(luò)上發(fā)送,而不需要執(zhí)行特定任務(wù)的底層物理實(shí)體的細(xì)節(jié)(對(duì)于進(jìn)一步的細(xì)節(jié),見(jiàn)圖2B、10及對(duì)應(yīng)的文字)。圖2B是示出在虛擬網(wǎng)絡(luò)中邏輯耦接的虛擬機(jī)的圖。虛擬空間295代表邏輯形式的物理空間200。如可以看到的,虛擬機(jī)220-290彼此在虛擬網(wǎng)絡(luò)299上通信。虛擬網(wǎng)絡(luò)299代表虛擬機(jī)之間的連接性,其由虛擬機(jī)的對(duì)應(yīng)策略定義。例如,策略“A”可以規(guī)定從虛擬機(jī)220發(fā)送到虛擬機(jī)290的數(shù)據(jù)必須通過(guò)防火墻。盡管該策略從邏輯上描述了數(shù)據(jù)路徑,但是該策略并沒(méi)有定義數(shù)據(jù)必須行進(jìn)的物理路徑(例如,物理實(shí)體地址)。圖3是示出“發(fā)起”虛擬機(jī)通過(guò)基于策略的虛擬網(wǎng)絡(luò)把數(shù)據(jù)發(fā)送到“目的地”虛擬機(jī)的圖。物理空間340包括覆蓋的虛擬網(wǎng)絡(luò),主機(jī)300和主機(jī)320在該虛擬網(wǎng)絡(luò)上通信。主機(jī)300包括虛擬機(jī)305-310和DOVE模塊315。通過(guò)在向/從另一個(gè)虛擬機(jī)發(fā)送/接收數(shù)據(jù)之前利用對(duì)應(yīng)于策略的物理路徑變換封裝/解除封裝數(shù)據(jù),DOVE模塊315管理進(jìn)/出虛擬機(jī)305-310的數(shù)據(jù)吞吐量。主機(jī)320包括虛擬機(jī)325-330和DOVE模塊335。通過(guò)在于物理網(wǎng)絡(luò)上向/從另一個(gè)虛擬機(jī)發(fā)送/接收數(shù)據(jù)之前封裝/解除封裝該數(shù)據(jù),DOVE模塊335管理進(jìn)/出虛擬機(jī)325-330的數(shù)據(jù)吞吐量。在其他實(shí)施方式中,DOVE模塊315和335可以實(shí)現(xiàn)為軟件模塊、硬件擴(kuò)展、和/或該模塊對(duì)應(yīng)的主機(jī)內(nèi)的網(wǎng)卡的一部分。圖3示出了當(dāng)虛擬機(jī)305向虛擬機(jī)325發(fā)送數(shù)據(jù)時(shí)的一種實(shí)施方式。如本領(lǐng)域技術(shù)人員可以認(rèn)識(shí)到的,任何虛擬機(jī)305-330都可以向任何其他虛擬機(jī)(包括同一主機(jī)上的虛擬機(jī))發(fā)送數(shù)據(jù)。虛擬機(jī)305發(fā)起數(shù)據(jù)發(fā)送,DOVE模塊315截取該數(shù)據(jù)發(fā)送。在這種實(shí)施方式中,虛擬機(jī)305是發(fā)起虛擬機(jī),而DOVE模塊315是發(fā)起模塊。DOVE模塊315識(shí)別對(duì)應(yīng)的虛擬網(wǎng)絡(luò),并獲取與虛擬機(jī)305和“目的地”虛擬機(jī)325相對(duì)應(yīng)的策略。在一種實(shí)施方式中,DOVE模塊315檢查其本地高速緩存,并且,如果策略不可獲,則DOVE模塊315向DOVE分布式策略服務(wù)345查詢?cè)摬呗浴T谝环N實(shí)施方式中,DOVE模塊315向DOVE分布式策略服務(wù)345提供發(fā)起(源)虛擬機(jī)標(biāo)識(shí)符、目的地虛擬機(jī)標(biāo)識(shí)符,而且還可以提供協(xié)議標(biāo)識(shí)符和/或端口信息。DOVE分布式策略服務(wù)345繼而向DOVE模塊315提供對(duì)應(yīng)的物理路徑變換。在這種實(shí)施方式中,DOVE分布式策略服務(wù)345維護(hù)虛擬定義和物理定義,以便把邏輯策略變換成物理路徑變換。虛擬策略定義描述數(shù)據(jù)遍歷要求,例如來(lái)自虛擬網(wǎng)絡(luò)I的針對(duì)虛擬網(wǎng)絡(luò)2的數(shù)據(jù)必須通過(guò)防火墻。物理定義包括例如虛擬機(jī)的對(duì)應(yīng)的物理主機(jī)和物理實(shí)體屬性(例如,防火墻,等等)。DOVE分布式策略服務(wù)345是基于層次的策略服務(wù),其管理物理網(wǎng)絡(luò)內(nèi)的策略(對(duì)于進(jìn)一步的細(xì)節(jié),見(jiàn)圖5、6、8和對(duì)應(yīng)的文字)。一旦DOVE模塊315獲取了對(duì)應(yīng)于策略的物理路徑變換,DOVE模塊315就利用物理路徑變換封裝數(shù)據(jù),并把經(jīng)封裝的數(shù)據(jù)通過(guò)“目的地” DOVE模塊335發(fā)送到“目的地”虛擬機(jī)325。該實(shí)施方式示出策略規(guī)定數(shù)據(jù)要通過(guò)防火墻(防火墻350)和互聯(lián)網(wǎng)安全系統(tǒng)(ISS 355)。該策略沒(méi)有指定物理實(shí)體(例如,防火墻或者ISS),而是從邏輯上指定該數(shù)據(jù)通過(guò)防火墻和ISS (對(duì)于進(jìn)一步的細(xì)節(jié),見(jiàn)圖10和對(duì)應(yīng)的文字)。目的地DOVE模塊335對(duì)數(shù)據(jù)解除封裝,并確定對(duì)應(yīng)于用于封裝的物理路徑變換的策略是否已過(guò)時(shí)(過(guò)期)。例如,DOVE模塊315可能從其本地高速緩存中檢索到了過(guò)期的策略用來(lái)封裝數(shù)據(jù)。在一種實(shí)施方式中,通過(guò)把由封裝頭所使用的策略的策略號(hào)更新發(fā)送到DOVE分布式策略服務(wù)345,DOVE模塊335確定用于封裝的策略是否是最新的。如果策略是最新的,則DOVE分布式策略服務(wù)345發(fā)送確認(rèn)。另一方面,如果策略是舊的,則DOVE分布式策略服務(wù)345可以發(fā)送新的策略。如果策略是最新的,則DOVE模塊335把數(shù)據(jù)轉(zhuǎn)發(fā)到虛擬機(jī)325。然而,如果DOVE模塊335檢測(cè)到已過(guò)時(shí)的策略,則DOVE模塊335經(jīng)由控制消息312通知DOVE模塊315。在一種實(shí)施方式中,DOVE模塊335可以在控制消息312中包括更新后的策略。如果控制消息312不包括更新后的策略,則DOVE模塊315可以向DOVE分布式策略服務(wù)345查詢更新后的策略。DOVE模塊335還可以基于預(yù)先確定的配置參數(shù)來(lái)確定是拒絕數(shù)據(jù)還是把數(shù)據(jù)轉(zhuǎn)發(fā)到虛擬機(jī)325。(對(duì)于進(jìn)一步的細(xì)節(jié),見(jiàn)圖9和對(duì)應(yīng)的文字)。圖4是示出目的地模塊向發(fā)起模塊通知虛擬機(jī)已經(jīng)重新定位到不同的主機(jī)的圖。圖4與圖3類似,只是虛擬機(jī)325移動(dòng)到不同的主機(jī)(主機(jī)400),例如是為了平衡主機(jī)之間的工作負(fù)荷。當(dāng)虛擬機(jī)325移動(dòng)到主機(jī)400時(shí),DOVE模塊410把更新信息發(fā)送到DOVE分布式策略服務(wù)345,DOVE分布式策略服務(wù)345更新其策略信息,即虛擬機(jī)325現(xiàn)在被主機(jī)400主控。DOVE模塊315從其本地主機(jī)檢索策略,該策略是過(guò)時(shí)的,因?yàn)樗甘咎摂M機(jī)325仍然駐留在主機(jī)320。由此,DOVE模塊315利用對(duì)應(yīng)的已過(guò)時(shí)的物理路徑變換封裝數(shù)據(jù),這導(dǎo)致從DOVE模塊315到DOVE模塊335的數(shù)據(jù)遍歷。DOVE模塊335繼而把控制消息420發(fā)送到DOVE模塊315,通知DOVE模塊315該策略是已過(guò)時(shí)的。由此,DOVE模塊315從DOVE分布式策略服務(wù)345檢索更新的策略,該更新的策略指示虛擬機(jī)325駐留在主機(jī)400上。DOVE模塊315繼而利用對(duì)應(yīng)的更新的物理路徑變換封裝數(shù)據(jù),并相應(yīng)地通過(guò)DOVE模塊410把數(shù)據(jù)發(fā)送到虛擬機(jī)325。策略可能因?yàn)槌陨纤懻撝獾钠渌蚨兊眠^(guò)時(shí)。例如,邏輯可能被虛擬化管理員或者管理工具修改。在這個(gè)例子中,邏輯策略的序列號(hào)改變了(對(duì)于進(jìn)一步的細(xì)節(jié),見(jiàn)圖5和對(duì)應(yīng)的文字)。邏輯策略變化一般又會(huì)導(dǎo)致物理路徑變換。圖5是示出基于層次的策略服務(wù)的圖。在一種實(shí)施方式中,分布式策略服務(wù)(DPS)500包括一組通過(guò)一個(gè)或多個(gè)管理授權(quán)部(authority)維護(hù)策略的應(yīng)用服務(wù)器。在這種實(shí)施方式中,每個(gè)管理授權(quán)部都可以動(dòng)態(tài)地添加策略、除去策略、更新策略和委派(delegate)新的策略授權(quán)部。分布式策略服務(wù)500包括邏輯層次結(jié)構(gòu)。因此,分布式策略服務(wù)500包括根區(qū)510,這個(gè)根區(qū)包括根策略服務(wù)器515-525。每個(gè)根策略服務(wù)器515-525可以連接到其他的主策略授權(quán)部,而且每個(gè)策略授權(quán)部連接到每個(gè)其委派的策略授權(quán)部(服務(wù)器535、550和560)。分布式策略服務(wù)500的層次性結(jié)構(gòu)確保服務(wù)的可伸縮性,即使是在非常大的系統(tǒng)中,其中通過(guò)服務(wù)器復(fù)制獲得魯棒性和高可用性。這種層次性 結(jié)構(gòu)還通過(guò)讓每個(gè)管理員獨(dú)立地維護(hù)其自己的一組服務(wù)器來(lái)使得可以進(jìn)行隔離。當(dāng)管理員創(chuàng)建新的管理授權(quán)部(策略域)時(shí),創(chuàng)建策略服務(wù)器實(shí)例并將其連接到根服務(wù)器。在一種實(shí)施方式中,策略服務(wù)器實(shí)例公開一組接口,并允許域管理員創(chuàng)建、改變或者除去與一個(gè)域中的每個(gè)虛擬網(wǎng)絡(luò)和虛擬機(jī)相關(guān)聯(lián)的策略。此外,也可以創(chuàng)建子域(委派)(服務(wù)器540),該子域除連接到父域而不是根域之外就象一般的域一樣作用。每個(gè)DOVE模塊和服務(wù)器都可以維護(hù)存儲(chǔ)先前被請(qǐng)求的策略的高速緩存。在一種實(shí)施方式中,為了處理策略更新,每個(gè)策略都可以與一個(gè)序列號(hào)關(guān)聯(lián),在每次策略更新時(shí)該序列號(hào)增加。在這種實(shí)施方式中,已過(guò)時(shí)的策略很容易被其他實(shí)體或者被策略服務(wù)檢測(cè)到。如可以看到的,分布式策略服務(wù)包括策略信息服務(wù)器和策略參考服務(wù)器。策略信息服務(wù)器存儲(chǔ)策略及對(duì)應(yīng)的物理路徑變換。策略參考服務(wù)器存儲(chǔ)指示哪個(gè)策略信息服務(wù)器負(fù)責(zé)特定策略和/或虛擬網(wǎng)絡(luò)的參考 目息。圖6是示出DOVE模塊向分布式策略服務(wù)查詢更新的策略的圖。主機(jī)600包括虛擬機(jī)605和610,這些虛擬機(jī)在物理網(wǎng)絡(luò)上與虛擬機(jī)675 (駐留在主機(jī)670上)通信。DOVE模塊615截取來(lái)自虛擬機(jī)605的數(shù)據(jù),并確定本地高速緩存620是否包括對(duì)應(yīng)于虛擬機(jī)605和虛擬機(jī)675的策略。如果包括,則DOVE模塊封裝數(shù)據(jù)并把經(jīng)封裝的數(shù)據(jù)通過(guò)DOVE模塊680轉(zhuǎn)發(fā)到虛擬機(jī)675。當(dāng)高速緩存620不包括對(duì)應(yīng)的策略時(shí),DOVE模塊615查詢包括在DOVE分布式策略服務(wù)630中的虛擬網(wǎng)絡(luò)策略服務(wù)器645,該服務(wù)器管理關(guān)于虛擬機(jī)605所屬的虛擬網(wǎng)絡(luò)的策略。在一種實(shí)施方式中,用于不同虛擬網(wǎng)絡(luò)(例如,虛擬機(jī)610是不同虛擬網(wǎng)絡(luò)的一部分)的策略服務(wù)器可以同定位,并根據(jù)請(qǐng)求中所包括的虛擬網(wǎng)絡(luò)標(biāo)識(shí)符區(qū)分來(lái)自DOVE模塊615的策略請(qǐng)求。DOVE分布式策略服務(wù)630是基于層次的,而且,當(dāng)虛擬網(wǎng)絡(luò)策略服務(wù)器645不包括要發(fā)送到DOVE模塊615的對(duì)應(yīng)策略時(shí),虛擬網(wǎng)絡(luò)策略服務(wù)器645向根策略服務(wù)器650查詢策略。根策略服務(wù)器650繼而可以向虛擬網(wǎng)絡(luò)策略服務(wù)器645發(fā)送策略,或者關(guān)于用于查詢?cè)摬呗缘牧硪粋€(gè)服務(wù)器的指示(例如,虛擬網(wǎng)絡(luò)策略服務(wù)器655的ID)。如果后者發(fā)生,則虛擬網(wǎng)絡(luò)策略服務(wù)器645向虛擬網(wǎng)絡(luò)策略服務(wù)器655查詢更新的策略。一旦虛擬網(wǎng)絡(luò)策略服務(wù)器645獲取了更新的策略,虛擬網(wǎng)絡(luò)策略服務(wù)器645就把更新的策略發(fā)送到DOVE模塊615,而DOVE模塊615把該策略存儲(chǔ)在本地高速緩存620中,用于后續(xù)使用(對(duì)于進(jìn)一步的細(xì)節(jié),見(jiàn)圖8和對(duì)應(yīng)的文字)。
在一種實(shí)施方式中,虛擬網(wǎng)絡(luò)策略服務(wù)器645向DOVE模塊615通知虛擬網(wǎng)絡(luò)策略服務(wù)器655負(fù)責(zé)所請(qǐng)求的策略。在這種實(shí)施方式中,DOVE模塊615向虛擬網(wǎng)絡(luò)策略服務(wù)器655查詢策略。圖7是示出在DOVE模塊封裝由虛擬機(jī)(VM)發(fā)起的數(shù)據(jù)并把經(jīng)封裝的數(shù)據(jù)在物理網(wǎng)絡(luò)上發(fā)送到目的地DOVE模塊中所采取的步驟的流程圖,其中目的地DOVE模塊對(duì)數(shù)據(jù)解除封裝并把經(jīng)解除封裝的數(shù)據(jù)轉(zhuǎn)發(fā)到目的地虛擬機(jī)。處理在700開始,隨后分布式覆蓋虛擬網(wǎng)絡(luò)(DOVE)模塊在步驟705截取由虛擬機(jī)708發(fā)送的數(shù)據(jù)。截取來(lái)自發(fā)起虛擬機(jī)708的數(shù)據(jù)的模塊在這里被稱為“發(fā)起”模塊,例如圖3中所示的DOVE模塊315。發(fā)起模塊通過(guò)一系列步驟獲取基于對(duì)應(yīng)于發(fā)起虛擬機(jī)708和目的地虛擬機(jī)(目的地VM 785)的策略的物理路徑變換,這一系列步驟包括當(dāng)發(fā)起模塊在本地高速緩存中不包括特定的策略時(shí)訪問(wèn)分布式策略服務(wù)712。策略從邏輯上描述數(shù)據(jù)應(yīng)當(dāng)如何遍歷通過(guò)物理網(wǎng)絡(luò)725 (對(duì)于進(jìn)一步的細(xì)節(jié),見(jiàn)圖10和對(duì)應(yīng)的文字)。接下來(lái),發(fā)起模塊封裝數(shù)據(jù)(步驟715),并通過(guò)物理網(wǎng)絡(luò)725把經(jīng)封裝的數(shù)據(jù)發(fā)送 到目的地虛擬機(jī)(步驟720)。在一種實(shí)施方式中,發(fā)起模塊利用對(duì)應(yīng)于策略的物理路徑變換來(lái)封裝數(shù)據(jù)。該物理路徑變換是根據(jù)對(duì)應(yīng)策略從邏輯環(huán)境到物理網(wǎng)絡(luò)的變換。此外,預(yù)先存在的策略也可以由物理網(wǎng)絡(luò)管理員實(shí)現(xiàn)。在這種實(shí)施方式中,物理網(wǎng)絡(luò)管理員可以實(shí)現(xiàn)包括幾種可能策略的靜態(tài)配置,這些策略最終變換成物理網(wǎng)絡(luò)路徑。在這種實(shí)施方式中,DOVE策略服務(wù)把邏輯策略映射到物理網(wǎng)絡(luò)策略/路徑,并通過(guò)在包的正確路徑(例如,MPLS標(biāo)志、物理網(wǎng)絡(luò)中的VLAN、封裝頭中的源路由,等等)上發(fā)送包來(lái)實(shí)施這些邏輯策略。在另一種實(shí)施方式中,從虛擬概念/實(shí)體方面闡述的策略定義與從物理概念/實(shí)體方面闡述的策略實(shí)施之間的變換可以通過(guò)流量規(guī)劃技術(shù)(traffic engineeringtechnique)(例如,以上所討論的那些和/或新開發(fā)出的技術(shù)(例如,專有的封裝協(xié)議))動(dòng)態(tài)地獲得。目的地模塊處理在745開始,隨后目的地模塊在750接收經(jīng)封裝的數(shù)據(jù)。目的地模塊是對(duì)應(yīng)于目的地虛擬機(jī)的DOVE模塊,例如圖3中所示的DOVE模塊335。目的地模塊在步驟755對(duì)數(shù)據(jù)解除封裝,并確定封裝數(shù)據(jù)的物理路徑變換是否是過(guò)時(shí)的(判決760)。在一種實(shí)施方式中,通過(guò)把由封裝頭所使用的策略的策略號(hào)更新發(fā)送到DOVE分布式策略服務(wù)345,DOVE模塊335確定用于封裝的策略是否是最新的。如果策略是最新的,則DOVE分布式策略服務(wù)345發(fā)送確認(rèn)。另一方面,如果策略是舊的,則DOVE分布式策略服務(wù)345可以發(fā)送新的策略。如果物理路徑變換不是過(guò)時(shí)的,則判決760進(jìn)行到“否”分支763,隨后目的地模塊在步驟780把數(shù)據(jù)轉(zhuǎn)發(fā)到目的地虛擬機(jī)785,并在790結(jié)束。另一方面,如果物理路徑變換是已過(guò)時(shí)的,則判決760進(jìn)行到“是”分支762,隨后目的地模塊前進(jìn)通過(guò)一系列策略更新步驟,其中一個(gè)步驟包括向發(fā)起模塊通知最近發(fā)送的策略是過(guò)時(shí)的(預(yù)先定義的處理塊735,對(duì)于進(jìn)一步的細(xì)節(jié),見(jiàn)圖9和對(duì)應(yīng)的文字)。回過(guò)頭來(lái)參考發(fā)起模塊,發(fā)起模塊確定它是否從目的地模塊接收到指示策略過(guò)時(shí)的控制消息(判決730)。如果發(fā)起模塊沒(méi)有接收到控制消息,則判決730進(jìn)行到“否”分支738,隨后處理在740結(jié)束。另一方面,如果發(fā)起模塊接收到控制消息,則判決730進(jìn)行到“是”分支732,隨后發(fā)起模塊例如從目的地模塊或者分布式策略服務(wù)712 (預(yù)先定義的處理塊735,對(duì)于進(jìn)一步的細(xì)節(jié),見(jiàn)圖9和對(duì)應(yīng)的文字)獲取更新的策略。
回過(guò)頭來(lái)參考目的地模塊,目的地模塊確定是否把利用過(guò)時(shí)物理路徑變換封裝的數(shù)據(jù)轉(zhuǎn)發(fā)到目的地虛擬機(jī)785 (判決765)。如果目的地模塊確定不轉(zhuǎn)發(fā)該數(shù)據(jù)(例如,基于預(yù)先配置的參數(shù)),則判決765進(jìn)行到“否”分支767,隨后處理在770結(jié)束。另一方面,如果目的地模塊決定處理該數(shù)據(jù),則判決765進(jìn)行到“是”分支769,隨后目的地模塊在步驟780把數(shù)據(jù)轉(zhuǎn)發(fā)到目的地虛擬機(jī)785,并在790結(jié)束。圖8是示出在DOVE模塊從分布式策略服務(wù)獲取更新的策略中所采取的步驟的流程圖。發(fā)起模塊策略獲取在800開始,隨后發(fā)起模塊識(shí)別對(duì)應(yīng)于在圖7中所截取的數(shù)據(jù)的發(fā)起虛擬機(jī)和目的地虛擬機(jī)(步驟805)。在步驟810,發(fā)起模塊識(shí)別發(fā)起虛擬機(jī)與目的地虛擬機(jī)之間的通信會(huì)話的虛擬屬性(通信會(huì)話屬性),并從其本地高速緩存812檢查對(duì)應(yīng)的策略。一般來(lái)說(shuō),可以每通信會(huì)話屬性地定義策略。在一種實(shí)施方式中,策略對(duì)應(yīng)于一個(gè)或多個(gè)準(zhǔn)則,例如識(shí)別出的虛擬網(wǎng)絡(luò)(發(fā)起虛擬機(jī)和目的地虛擬機(jī)可以在不同的虛擬網(wǎng)絡(luò)上);發(fā)起虛擬機(jī);目的地虛擬機(jī);由例 如端口號(hào)和上級(jí)協(xié)議等指示的通信類型,及以上的任何可行組合。例如,策略可以指示,對(duì)于從虛擬機(jī)A發(fā)送到虛擬機(jī)B的HTTP數(shù)據(jù),數(shù)據(jù)必須通過(guò)防火墻。(對(duì)于進(jìn)一步的細(xì)節(jié),見(jiàn)圖10和對(duì)應(yīng)的文字)。在另一種實(shí)施方式中,由于多個(gè)虛擬網(wǎng)絡(luò)覆蓋在一個(gè)共享物理網(wǎng)絡(luò)之上,因此,在檢索用于手頭數(shù)據(jù)的策略之前,虛擬網(wǎng)絡(luò)端點(diǎn)(例如,虛擬機(jī)的虛擬網(wǎng)絡(luò)接口)之間的通信被識(shí)別為屬于特定網(wǎng)絡(luò)。在這種實(shí)施方式中,可以為每個(gè)虛擬網(wǎng)絡(luò)指定唯一的虛擬網(wǎng)絡(luò)標(biāo)識(shí)符,而且,在這種實(shí)施方式中,通過(guò)識(shí)別虛擬機(jī)耦接到虛擬交換機(jī)內(nèi)部的特定接口來(lái)維護(hù)虛擬機(jī)到虛擬網(wǎng)絡(luò)映射的映射。在這種實(shí)施方式中,DOVE模塊或者增加了 DOVE模塊部件的現(xiàn)有管理程序虛擬交換機(jī)可以維護(hù)映射。確定高速緩存812是否包括對(duì)應(yīng)的策略(判決815)。如果高速緩存812包括對(duì)應(yīng)的策略,則判決815進(jìn)行到“是”分支816,隨后發(fā)起模塊選擇包括在高速緩存812中的策略來(lái)封裝數(shù)據(jù),并在810返回。另一方面,如果高速緩存812不包括對(duì)應(yīng)的策略,則判決815進(jìn)行到“否”分支819,隨后發(fā)起模塊向其本地策略服務(wù)器發(fā)送策略請(qǐng)求,其中本地策略服務(wù)器駐留在分布式策略服務(wù)中(例如,圖6中所示的駐留在分布式策略服務(wù)630中的策略服務(wù)器645)。本地策略服務(wù)器在825接收請(qǐng)求,并前進(jìn)到在其本地存儲(chǔ)區(qū)域(策略庫(kù)832)檢查對(duì)應(yīng)于發(fā)起虛擬機(jī)和目的地虛擬機(jī)的策略(步驟830)。確定策略服務(wù)器是否在其本地存儲(chǔ)區(qū)域中定位了對(duì)應(yīng)的策略(判決835)。如果策略服務(wù)器定位了對(duì)應(yīng)的策略,則判決835進(jìn)行到“是”分支837,隨后策略服務(wù)器在步驟840把該策略(邏輯策略)發(fā)送到發(fā)起模塊并在845結(jié)束。在一種實(shí)施方式中,策略服務(wù)器向發(fā)起模塊提供基于邏輯策略的物理路徑變換,其中發(fā)起模塊利用該物理路徑變換來(lái)封裝數(shù)據(jù)。發(fā)起模塊在步驟822接收并存儲(chǔ)該物理路徑變換,并在824返回。回過(guò)頭來(lái)參考本地策略服務(wù)器,如果本地策略服務(wù)器沒(méi)有在策略庫(kù)832中定位對(duì)應(yīng)的策略,則判決835進(jìn)行到“否”分支839,隨后本地策略服務(wù)器在步驟850查詢根策略服務(wù)器855。在一種實(shí)施方式中,本地策略服務(wù)器確定其是否負(fù)責(zé)對(duì)應(yīng)于發(fā)起虛擬機(jī)的虛擬網(wǎng)絡(luò)。如果不是,則該本地策略服務(wù)器向根策略服務(wù)器855查詢關(guān)于哪個(gè)其他策略服務(wù)器負(fù)責(zé)對(duì)應(yīng)的虛擬網(wǎng)絡(luò)的指示。
本地策略服務(wù)器從根策略服務(wù)器855接收響應(yīng),并確定該響應(yīng)是否包括策略或者從不同(遠(yuǎn)端)策略服務(wù)器獲取策略的指示(判決860)。如果該本地策略服務(wù)器從根策略服務(wù)器855接收到策略,則判決860進(jìn)行到“策略”分支862,隨后本地策略服務(wù)器把該策略存儲(chǔ)在策略庫(kù)832中用于日后的檢索,并在步驟865把該策略發(fā)送到發(fā)起模塊,隨后結(jié)束868。另一方面,如果本地策略服務(wù)器接收到關(guān)于不同策略服務(wù)器的指示符,則判決860進(jìn)行到“服務(wù)器ID”分支869,隨后該本地策略服務(wù)器向策略服務(wù)器875查詢策略。本地策略服務(wù)器在步驟880從策略服務(wù)器875接收策略。該本地策略服務(wù)器又把該策略存儲(chǔ)在策略庫(kù)832中用于日后的檢索,并在步驟885把該策略發(fā)送到發(fā)起模塊,隨后結(jié)束890。圖9是示出在目的地模塊向發(fā)起模塊通知從該發(fā)起模塊接收到的策略已過(guò)時(shí)中 所采取的步驟的流程圖。目的地模塊處理在900開始,隨后確定是否把更新的策略附到要 發(fā)送到發(fā)起策略的控制消息(判決905)。例如,目的地模塊可以具有配置參數(shù),當(dāng)該目的地模塊在其本地高速緩存中具有更新的策略時(shí),該配置參數(shù)指示該目的地模塊把更新的策略發(fā)送到發(fā)起模塊。如果目的地模塊確定提供更新的策略,則判決905進(jìn)行到“是”分支907,隨后在步驟910目的地模塊在控制消息中附上更新的策略。另一方面,如果目的地模塊確定不附上更新的策略,則判決905進(jìn)行到“否”分支909,跳過(guò)步驟910。確定是否處理利用與過(guò)時(shí)策略相對(duì)應(yīng)的物理路徑變換封裝的數(shù)據(jù)(轉(zhuǎn)發(fā)該數(shù)據(jù))(判決915)。例如,如果在已過(guò)時(shí)的策略與更新的策略之間安全要求(例如,通過(guò)防火墻)沒(méi)有改變,則目的地模塊可以配置成處理該數(shù)據(jù)。如果目的地模塊確定不處理該數(shù)據(jù),則判決915進(jìn)行到“否”分支917,隨后目的地模塊在控制消息中包括指示數(shù)據(jù)不轉(zhuǎn)發(fā)到目的地模塊的出錯(cuò)消息(步驟920)。另一方面,如果目的地模塊確定處理該數(shù)據(jù),則判決915進(jìn)行到“是”分支919,跳過(guò)步驟920。目的地模塊發(fā)送控制消息(步驟925),該消息可以包括更新的策略和/或出錯(cuò)消息,并在930返回。發(fā)起模塊處理在935開始,隨后發(fā)起模塊在步驟940接收控制消息。確定該控制消息是否包括更新的策略(判決945)。如果控制消息包括更新的策略,則判決945進(jìn)行到“是”分支947,隨后發(fā)起模塊在步驟950把更新的策略存儲(chǔ)在其本地高速緩存中。另一方面,如果控制消息不包括更新的策略,則判決945進(jìn)行到“否”分支949,隨后發(fā)起模塊前進(jìn)通過(guò)一系列步驟,來(lái)通過(guò)分布式策略服務(wù)獲取更新的策略(預(yù)先定義的處理塊955,對(duì)于進(jìn)一步的細(xì)節(jié),見(jiàn)圖8和對(duì)應(yīng)的文字)。確定控制消息是否指示目的地模塊處理了該數(shù)據(jù)(例如,把數(shù)據(jù)轉(zhuǎn)發(fā)到目的地虛擬機(jī))(判決960)。如果目的地模塊不處理該數(shù)據(jù),則判決960進(jìn)行到“否”分支962,隨后在步驟965發(fā)起模塊利用與更新的策略相對(duì)應(yīng)的更新的物理路徑變換封裝數(shù)據(jù),并把數(shù)據(jù)重新發(fā)送到目的地模塊,隨后在970返回。另一方面,如果目的地模塊處理來(lái)自初始數(shù)據(jù)發(fā)送的數(shù)據(jù),則判決960進(jìn)行到“是”分支967,跳過(guò)步驟965并在970返回。在一種實(shí)施方式中,發(fā)起模塊或者目的地模塊確保把包傳送給目的地虛擬機(jī)。在另一種實(shí)施方式中,數(shù)據(jù)可以被故意丟棄,以便讓發(fā)送應(yīng)用或網(wǎng)絡(luò)層重新發(fā)送數(shù)據(jù),在這種情況下,發(fā)起模塊使用正確的策略。圖10是示出對(duì)應(yīng)于發(fā)起虛擬機(jī)和目的地虛擬機(jī)的策略的表。策略表1000包括策略1010-1040,這些策略從邏輯上規(guī)定不同的虛擬機(jī)(或者外部網(wǎng)絡(luò))如何彼此進(jìn)行通信(例如,發(fā)送數(shù)據(jù))。策略1010指示無(wú)論何時(shí)虛擬機(jī)I向目的地虛擬機(jī)發(fā)送數(shù)據(jù),數(shù)據(jù)都必須通過(guò)防火墻。應(yīng)當(dāng)注意,該策略沒(méi)有規(guī)定特定的物理防火墻,而是從邏輯上規(guī)定它必須通過(guò)防火墻。在一種實(shí)施方式中,策略表1000包括用于基于特定虛擬網(wǎng)絡(luò)的唯一標(biāo)識(shí)符的特定虛擬網(wǎng)絡(luò)的策略。在一種實(shí)施方式中,策略表包括在對(duì)應(yīng)的虛擬網(wǎng)絡(luò)的環(huán)境下指示虛擬機(jī)的信息。策略1020規(guī)定無(wú)論何時(shí)虛擬機(jī)1、2或5向虛擬機(jī)7或8發(fā)送數(shù)據(jù),數(shù)據(jù)都必須被丟掉(drop)。策略1030規(guī)定無(wú)論何時(shí)虛擬機(jī)3 (從端口 443)向另一虛擬機(jī)發(fā)送數(shù)據(jù),數(shù)據(jù)都必須通過(guò)SSL加速器。同樣,策略1040規(guī)定無(wú)論何時(shí)數(shù)據(jù)的目的地是虛擬機(jī)3的端口443,數(shù)據(jù)都必須通過(guò)SSL加速器。圖11例示了信息處理系統(tǒng)1100,該系統(tǒng)是能夠執(zhí)行在此所述的計(jì)算操作的計(jì)算機(jī)系統(tǒng)的簡(jiǎn)化例子。信息處理系統(tǒng)1100包括耦接到處理器接口總線1112的一個(gè)或多個(gè)處理器1110。處理器接口總線1112把處理器1110連接到北橋1115,其中北橋也稱為存儲(chǔ)器控制中心(MCH)。北橋1115連接到系統(tǒng)存儲(chǔ)器1120,并提供處理器1110訪問(wèn)系統(tǒng)存儲(chǔ)器的 方式。圖形控制器1125也連接到北橋1115。在一種實(shí)施方式中,PCI Express總線1118把北橋1115連接到圖形控制器1125。圖形控制器1125連接到顯示設(shè)備1130,例如計(jì)算機(jī)監(jiān)視器。北橋1115和南橋1135利用總線1119彼此連接。在一種實(shí)施方式中,總線是在北橋1115和南橋1135之間在每個(gè)方向上高速傳輸數(shù)據(jù)的直接媒體接口(DMI)總線。在另一種實(shí)施方式中,外圍組件互連(PCI)總線連接北橋和南橋。南橋1135,也稱為I/O控制中心(ICH),是總體上實(shí)現(xiàn)以比北橋所提供的能力低的速度運(yùn)行的能力的芯片。南橋1135—般提供用于連接各種部件的各種總線。這些總線包括例如PCI和PCI Express總線、ISA總線、系統(tǒng)管理總線(SMBus或者SMB)和/或低引腳數(shù)(LPC)總線。LPC總線常常連接低帶寬的設(shè)備,例如啟動(dòng)(boot) ROM 1196和“傳代(legacy)” I/O設(shè)備(利用“超I/O”芯片)?!皞鞔?I/O設(shè)備(1198)可以包括例如串行和并行端口、鍵盤、鼠標(biāo)和/或軟盤控制器。LPC總線還把南橋1135連接到可信任平臺(tái)模塊(TPM) 1195。常常包括在南橋1135中的其他部件包括直接存儲(chǔ)器存取(DMA)控制器、可編程中斷控制器(PIC)和存儲(chǔ)設(shè)備控制器,其中存儲(chǔ)設(shè)備控制器利用總線1184把南橋1135連接到非易失性存儲(chǔ)設(shè)備1185,例如硬盤驅(qū)動(dòng)器。ExpressCard (Express卡)1155是把可熱插拔設(shè)備連接到信息處理系統(tǒng)的槽。ExpressCardl 155既支持PCI Express又支持USB連接,因?yàn)槠淅猛ㄓ么锌偩€(USB)和PCI Express總線連接到南橋1135。南橋1135包括向連接到USB的設(shè)備提供USB連接性的USB控制器1140。這些設(shè)備包括網(wǎng)絡(luò)攝像機(jī)(webcamX照相機(jī))1150、紅外(IR)接收器1148、鍵盤和軌跡板1144和藍(lán)牙設(shè)備1146,其中藍(lán)牙設(shè)備提供無(wú)線個(gè)人局域網(wǎng)(PAN)。USB控制器1140還向其他各種USB連接的設(shè)備1142提供USB連接性,這些設(shè)備例如有鼠標(biāo)、可移除的非易失性存儲(chǔ)設(shè)備1145、調(diào)制解調(diào)器、網(wǎng)卡、ISDN連接器、傳真機(jī)、打印機(jī)、USB集線器及許多其他類型的USB連接設(shè)備。盡管可移除的非易失性存儲(chǔ)設(shè)備1145示出為USB連接的設(shè)備,但可移除的非易失性存儲(chǔ)設(shè)備1145還可以利用諸如火線接口(Firewireinterface)等的不同接口連接。無(wú)線局域網(wǎng)(LAN)設(shè)備1175經(jīng)PCI或者PCI Express總線1172連接到南橋1135。LAN設(shè)備1175 —般實(shí)現(xiàn)空中(over-the-air)調(diào)制技術(shù)的IEEE 802. 11標(biāo)準(zhǔn)中的一個(gè),這些調(diào)制技術(shù)全部都使用相同的協(xié)議用于信息處理系統(tǒng)1100和其他計(jì)算機(jī)系統(tǒng)或設(shè)備之間的無(wú)線通信。光存儲(chǔ)設(shè)備1190利用串行ATA (SATA)總線1188連接到南橋1135。串行ATA適配器和設(shè)備在高速串行鏈路上通信。串行ATA總線還把南橋1135連接到其他形式的存儲(chǔ)設(shè)備,例如硬盤驅(qū)動(dòng)器。音頻電路1160,例如聲卡,經(jīng)總線1158連接到南橋1135。音頻電路1160還提供諸如音頻線路輸入(line-in)和光學(xué)數(shù)字音頻輸入(audio in)端口 1162、光學(xué)數(shù)字輸出與頭戴式耳機(jī)插孔1164、內(nèi)部揚(yáng)聲器1166和內(nèi)部麥克風(fēng)1168的功能性。以太網(wǎng)控制器1170利用例如PCI或者PCI Express總線的總線連接到南橋1135。以太網(wǎng)控制器1170把信息處理系統(tǒng)1100連接到計(jì)算機(jī)網(wǎng)絡(luò),例如局域網(wǎng)(LAN)、互聯(lián)網(wǎng)及其他的公共和私有計(jì)算機(jī)網(wǎng)絡(luò)。盡管圖11示出了一種信息處理系統(tǒng),但是信息處理系統(tǒng)可以采取許多形式。例如,信息處理系統(tǒng)可以采取臺(tái)式計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、便攜式計(jì)算機(jī)、膝上型計(jì)算機(jī)、筆記本計(jì)算機(jī)或者其他形狀因子的計(jì)算機(jī)或者數(shù)據(jù)處理系統(tǒng)的形式。此外,信息處理系統(tǒng)還可以采取其他的形狀因子,例如個(gè)人數(shù)字助理(PDA)、游戲機(jī)、ATM機(jī)、便攜式電話設(shè)備、通信 設(shè)備或者包括處理器和存儲(chǔ)器的其他設(shè)備。圖11中所示并在此描述的提供安全功能的可信任平臺(tái)模塊(TPM 1195)僅僅是硬件安全模塊(HSM)的一個(gè)例子。因此,在此描述和請(qǐng)求保護(hù)的TPM包括任何類型的HSM,其包括但不限于符合題為“可信任平臺(tái)模塊(TPM)規(guī)范版本I. 2”的可信任計(jì)算工作組(TCG)標(biāo)準(zhǔn)的硬件安全設(shè)備。TPM是可以結(jié)合到任意數(shù)量的例如圖12中概述的那些的信息處理系統(tǒng)中的硬件安全子系統(tǒng)。圖12提供了圖11中所示的信息處理系統(tǒng)環(huán)境的擴(kuò)展,以例示在此所述的方法可以在聯(lián)網(wǎng)環(huán)境中運(yùn)行的廣泛多種信息處理系統(tǒng)上執(zhí)行。信息處理系統(tǒng)的類型從例如手持式計(jì)算機(jī)/移動(dòng)電話1210的小型手持式設(shè)備到例如主機(jī)計(jì)算機(jī)1270的大型主機(jī)系統(tǒng)。手持式計(jì)算機(jī)1210的例子包括個(gè)人數(shù)字助理(PDA)、個(gè)人娛樂(lè)設(shè)備,例如MP3播放器、便攜式電視機(jī)和光盤播放器。信息處理系統(tǒng)的其他例子包括筆式或者說(shuō)平板計(jì)算機(jī)1220、膝上型或者說(shuō)筆記本計(jì)算機(jī)1230、工作站1240、個(gè)人計(jì)算機(jī)系統(tǒng)1250及服務(wù)器1260。在圖12中未單獨(dú)示出的其他類型的信息處理系統(tǒng)由信息處理系統(tǒng)1280代表。如圖所示,各種信息處理系統(tǒng)可以利用計(jì)算機(jī)網(wǎng)絡(luò)1200聯(lián)網(wǎng)到一起??梢杂糜诨ミB各種信息處理系統(tǒng)的計(jì)算機(jī)網(wǎng)絡(luò)的類型包括局域網(wǎng)(LAN)、無(wú)線局域網(wǎng)(WLAN)、互聯(lián)網(wǎng)、公共交換電話網(wǎng)絡(luò)(PSTN)、其他無(wú)線網(wǎng)絡(luò)及任何其他可以用于互連信息處理系統(tǒng)的網(wǎng)絡(luò)拓?fù)洹TS多信息處理系統(tǒng)都包括非易失性數(shù)據(jù)庫(kù),例如硬驅(qū)和/或非易失性存儲(chǔ)器。圖12中所示的有些信息處理系統(tǒng)繪出了單獨(dú)的非易失性數(shù)據(jù)庫(kù)(服務(wù)器1260利用非易失性數(shù)據(jù)庫(kù)1265,主機(jī)計(jì)算機(jī)1270利用非易失性數(shù)據(jù)庫(kù)1275,而信息處理系統(tǒng)1280利用非易失性數(shù)據(jù)庫(kù)1285)。非易失性數(shù)據(jù)庫(kù)可以是在各種信息處理系統(tǒng)外部的部件,或者也可以在一種信息處理系統(tǒng)的內(nèi)部。此外,可移除的非易失性存儲(chǔ)設(shè)備1145也可以利用各種技術(shù)在兩個(gè)或更多個(gè)信息處理系統(tǒng)之間共享,這些技術(shù)例如有把可移除的非易失性存儲(chǔ)設(shè)備1145連接到信息處理系統(tǒng)的USB端口或者其他連接器。盡管已經(jīng)示出并描述了本公開內(nèi)容的特定實(shí)施方式,但是對(duì)于本領(lǐng)域技術(shù)人員來(lái)說(shuō),基于這里的教義,在不背離本公開內(nèi)容及其更廣方面的情況下,可以進(jìn)行變化和修改是顯然的。因此,所附權(quán)利要求是要在其范圍中包括所有這些變化與修改,如同包括在本公開內(nèi)容的真正主旨與范圍內(nèi)。此外,應(yīng)當(dāng)理解,本公開內(nèi)容只能由所附權(quán)利要求來(lái)限定。本領(lǐng)域技術(shù)人員將理解,如果所介紹權(quán)利要求元素的具體數(shù)目是特指的,則這種特指將明確地在權(quán)利要求中聲明,而且,在不存在這種聲明的情況下,不存在這種限制。對(duì)于非限制性例子,為了幫助理解,以下所附權(quán)利要求包含引導(dǎo)語(yǔ)“至少一個(gè)”和“一個(gè)或多個(gè)”的使用,來(lái)介紹權(quán)利要求元素。然而,即使當(dāng)相同的權(quán)利要求既包括引導(dǎo)語(yǔ)“至少一個(gè)”或“一個(gè)或多個(gè)”又包括例如“一個(gè)”的不定冠詞時(shí),這種短語(yǔ)的使用也不應(yīng)當(dāng)認(rèn)為是暗示由不定冠詞“一個(gè)”介紹的權(quán)利要求元素把包含這樣介紹的權(quán)利要求元素的任何特定權(quán)利要求限定到只包含一個(gè)這種元素的公開內(nèi)容;對(duì)于權(quán)利要求中定冠詞的使用,這也成立?!?br>
權(quán)利要求
1.一種方法,包括 在第一策略模塊處接收由第一虛擬機(jī)發(fā)起并且目的地為第二虛擬機(jī)的數(shù)據(jù); 選擇與把所述數(shù)據(jù)從所述第一虛擬機(jī)發(fā)送到所述第二虛擬機(jī)相對(duì)應(yīng)的策略,其中所述策略包括對(duì)一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)的一個(gè)或多個(gè)邏輯參考并且沒(méi)有對(duì)位于物理網(wǎng)絡(luò)上的物理實(shí)體的物理參考; 利用基于所選策略的物理路徑變換來(lái)封裝所述數(shù)據(jù),所述物理路徑變換對(duì)應(yīng)于所述物理網(wǎng)絡(luò);及 在所述物理網(wǎng)絡(luò)上把所封裝的數(shù)據(jù)發(fā)送到對(duì)應(yīng)于所述第二虛擬機(jī)的第二策略模塊。
2.如權(quán)利要求I所述的方法,其中,所述策略沒(méi)有互聯(lián)網(wǎng)協(xié)議(IP)地址。
3.如權(quán)利要求I所述的方法,其中,基于一個(gè)或多個(gè)邏輯定義,所述數(shù)據(jù)遍歷通過(guò)一個(gè)或多個(gè)所述物理實(shí)體,來(lái)實(shí)施所述策略。
4.如權(quán)利要求I所述的方法,還包括 在選擇所述策略之前,確定所述一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)對(duì)應(yīng)于所述第一虛擬機(jī)和所述第二虛擬機(jī);及 其中基于所述第一虛擬機(jī)、所述第二虛擬機(jī)及所述一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)選擇所述策略。
5.如權(quán)利要求I所述的方法,還包括 把若干虛擬網(wǎng)絡(luò)抽象到所述物理網(wǎng)絡(luò)上,所述一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)包括在該若干虛擬網(wǎng)絡(luò)中;及 為所述若干虛擬網(wǎng)絡(luò)中的每一個(gè)指定唯一的虛擬網(wǎng)絡(luò)標(biāo)識(shí)符。
6.如權(quán)利要求I所述的方法,還包括 在所述第二策略模塊處接收所封裝的數(shù)據(jù),其中所述第一策略模塊位于第一物理主機(jī),而所述第二策略模塊位于第二物理主機(jī); 由所述第二策略模塊根據(jù)所述策略對(duì)所述數(shù)據(jù)解除封裝;及 由所述第二策略模塊把所解除封裝的數(shù)據(jù)發(fā)送到所述第二虛擬機(jī)。
7.如權(quán)利要求I所述的方法,還包括 由所述第一策略模塊確定所述策略沒(méi)有位于與所述第一策略模塊相對(duì)應(yīng)的本地高速緩存中; 響應(yīng)于所述確定,向分布式策略服務(wù)查詢所述策略;及 響應(yīng)于所述查詢,從所述分布式策略服務(wù)接收所述物理路徑變換。
8.—種信息處理系統(tǒng),包括 一個(gè)或多個(gè)處理器; 一個(gè)或多個(gè)存儲(chǔ)器,其耦接到至少一個(gè)所述處理器; 一組計(jì)算機(jī)程序指令,其存儲(chǔ)在一個(gè)或多個(gè)所述存儲(chǔ)器中并且由至少一個(gè)所述處理器執(zhí)行,以便執(zhí)行以下動(dòng)作 在第一策略模塊處接收由第一虛擬機(jī)發(fā)起并且目的地為第二虛擬機(jī)的數(shù)據(jù); 選擇與把所述數(shù)據(jù)從所述第一虛擬機(jī)發(fā)送到所述第二虛擬機(jī)相對(duì)應(yīng)的策略,其中所述策略包括對(duì)一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)的一個(gè)或多個(gè)邏輯參考并且沒(méi)有對(duì)位于物理網(wǎng)絡(luò)上的物理實(shí)體的物理參考;利用基于所選策略的物理路徑變換來(lái)封裝所述數(shù)據(jù),所述物理路徑變換對(duì)應(yīng)于所述物理網(wǎng)絡(luò);及 在所述物理網(wǎng)絡(luò)上把所封裝的數(shù)據(jù)發(fā)送到對(duì)應(yīng)于所述第二虛擬機(jī)的第二策略模塊。
9.如權(quán)利要求8所述的信息處理系統(tǒng),其中,所述策略沒(méi)有互聯(lián)網(wǎng)協(xié)議(IP)地址。
10.如權(quán)利要求8所述的信息處理系統(tǒng),其中,基于一個(gè)或多個(gè)邏輯定義,所述數(shù)據(jù)遍歷通過(guò)一個(gè)或多個(gè)所述物理實(shí)體,來(lái)實(shí)施所述策略。
11.如權(quán)利要求8所述的信息處理系統(tǒng),其中一個(gè)或多個(gè)所述處理器執(zhí)行附加的動(dòng)作,所述附加的動(dòng)作包括 在選擇所述策略之前,確定所述一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)對(duì)應(yīng)于所述第一虛擬機(jī)和所述第二虛擬機(jī);及 其中基于所述第一虛擬機(jī)、所述第二虛擬機(jī)及所述一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)選擇所述策略。
12.如權(quán)利要求8所述的信息處理系統(tǒng),其中一個(gè)或多個(gè)所述處理器執(zhí)行附加的動(dòng)作,所述附加的動(dòng)作包括 把若干虛擬網(wǎng)絡(luò)抽象到所述物理網(wǎng)絡(luò)上,所述一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)包括在該若干虛擬網(wǎng)絡(luò)中;及 為所述若干虛擬網(wǎng)絡(luò)中的每一個(gè)指定唯一的虛擬網(wǎng)絡(luò)標(biāo)識(shí)符。
13.如權(quán)利要求8所述的信息處理系統(tǒng),其中一個(gè)或多個(gè)所述處理器執(zhí)行附加的動(dòng)作,所述附加的動(dòng)作包括 在所述第二策略模塊處接收所封裝的數(shù)據(jù),其中所述第一策略模塊位于第一物理主機(jī),而所述第二策略模塊位于第二物理主機(jī); 由所述第二策略模塊根據(jù)所述策略對(duì)所述數(shù)據(jù)解除封裝;及 由所述第二策略模塊把所解除封裝的數(shù)據(jù)發(fā)送到所述第二虛擬機(jī)。
14.如權(quán)利要求8所述的信息處理系統(tǒng),其中一個(gè)或多個(gè)所述處理器執(zhí)行附加的動(dòng)作,所述附加的動(dòng)作包括 由所述第一策略模塊確定所述策略沒(méi)有位于與所述第一策略模塊相對(duì)應(yīng)的本地高速緩存中; 響應(yīng)于所述確定,向分布式策略服務(wù)查詢所述策略;及 響應(yīng)于所述查詢,從所述分布式策略服務(wù)接收所述物理路徑變換。
15.—種系統(tǒng),包括 第一策略模塊,其接收由第一虛擬機(jī)發(fā)起并且目的地為第二虛擬機(jī)的數(shù)據(jù); 策略服務(wù)器,其選擇與把所述數(shù)據(jù)從所述第一虛擬機(jī)發(fā)送到所述第二虛擬機(jī)相對(duì)應(yīng)的策略,其中所述策略包括對(duì)一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)的一個(gè)或多個(gè)邏輯參考并且沒(méi)有對(duì)位于物理網(wǎng)絡(luò)上的物理實(shí)體的物理參考; 所述第一策略模塊利用基于所選策略的物理路徑變換來(lái)封裝所述數(shù)據(jù),該物理路徑變換對(duì)應(yīng)于所述物理網(wǎng)絡(luò);及 所述第一策略模塊在所述物理網(wǎng)絡(luò)上把所封裝的數(shù)據(jù)發(fā)送到對(duì)應(yīng)于所述第二虛擬機(jī)的第二策略模塊。
16.如權(quán)利要求15所述的系統(tǒng),其中,所述策略沒(méi)有互聯(lián)網(wǎng)協(xié)議(IP)地址。
17.如權(quán)利要求15所述的系統(tǒng),其中,基于一個(gè)或多個(gè)邏輯定義,所述數(shù)據(jù)遍歷通過(guò)一個(gè)或多個(gè)所述物理實(shí)體,來(lái)實(shí)施所述策略。
全文摘要
根據(jù)本公開的一種實(shí)施方式,提供了一種方法,其中策略模塊接收由第一虛擬機(jī)發(fā)起并具有在第二虛擬機(jī)處的目的地的數(shù)據(jù)。所述策略模塊選擇與把所述數(shù)據(jù)從第一虛擬機(jī)發(fā)送到第二虛擬機(jī)相對(duì)應(yīng)的策略。該策略包括對(duì)一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)的一個(gè)或多個(gè)邏輯參考,并且不包括對(duì)位于物理網(wǎng)絡(luò)上的物理實(shí)體的物理參考。所述策略模塊又利用基于所選策略的物理路徑變換來(lái)封裝所述數(shù)據(jù),并且在所述物理網(wǎng)絡(luò)上把經(jīng)封裝的數(shù)據(jù)發(fā)送到對(duì)應(yīng)于所述第二虛擬機(jī)的第二策略模塊。
文檔編號(hào)H04L12/46GK102780601SQ20121014623
公開日2012年11月14日 申請(qǐng)日期2012年5月11日 優(yōu)先權(quán)日2011年5月13日
發(fā)明者B·羅什維格, K·巴拉巴什, R·J·勒西歐, R·科漢, V·簡(jiǎn) 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司