在這些實例中的一些中,存儲器元件可存儲用于本文所描述的操作的數(shù) 據(jù)。這包括能夠存儲軟件、邏輯、代碼或處理器指令的存儲器元件,可執(zhí)行這些軟件、邏輯、 代碼或處理器指令以實施本文所描述的各個活動。
[0048] 在示例實現(xiàn)方案中,通信系統(tǒng)100可包括多個軟件模塊(例如,在分配層180、策略 層170、攔截層190等之內(nèi)),這些軟件模塊包括用于實現(xiàn)或促進本文所概述的多個操作的 虛擬機。在其他實施例中,可由硬件和固件(在這些元件外部實現(xiàn)的硬件和固件,或者被包 括在某個其他網(wǎng)絡(luò)設(shè)備或某個其他虛擬服務(wù)器、虛擬機、虛擬交換機或虛擬網(wǎng)絡(luò)接口卡之 內(nèi)的硬件和固件)實施此類操作以實現(xiàn)預(yù)期的功能?;蛘?,這些元件可包括可進行協(xié)調(diào)以 實現(xiàn)本文所概述的多個操作的軟件(或互惠軟件)。在另一些實施例中,這些設(shè)備中的一個 或全部可包括促進這些設(shè)備的操作的任何合適的算法、硬件、固件、軟件、組件、模塊、管理 器、虛擬機、接口或?qū)ο蟆?br>[0049] 此外,硬件層110可包括能夠執(zhí)行軟件或算法以執(zhí)行本文所討論的多個活動的處 理器(例如,在服務(wù)器112中,在網(wǎng)絡(luò)設(shè)備116中)。處理器可執(zhí)行與數(shù)據(jù)相關(guān)聯(lián)的任何 類型的指令以實現(xiàn)本文描述的操作。在一個示例中,處理器可將元件或制品(如,數(shù)據(jù)) 從一種狀態(tài)或事物變換成另一種狀態(tài)或事物。在另一示例中,可用固定邏輯或可編程邏輯 (如,由處理器執(zhí)行的軟件/計算機指令)實現(xiàn)本文所概述的活動,并且本文所標識的元件 可以是某種類型的可編程處理器、可編程數(shù)字邏輯(如,現(xiàn)場可編程門陣列(FPGA)、EPR0M、 EEPR0M)或者包括數(shù)字邏輯、軟件、代碼、電子指令的ASIC或者上述各項的任何合適的組 合。應(yīng)當將本文所描述的任何潛在的處理元件、模塊和機器理解為被涵蓋在廣義術(shù)語"處理 器"之內(nèi)。
[0050] 在圖2中,簡化的框圖示出可根據(jù)本公開所實施的虛擬化服務(wù)器200 (在本文中 被稱為"虛擬服務(wù)器")的多個層??捎美鏥Mware ESX或ESXi、SAP或其他web服務(wù),或 用命令行接口、遠程腳本等配置虛擬服務(wù)器200。虛擬服務(wù)器200可包括虛擬機230-1到 230-n。虛擬機230-1到230-n可具有各自的操作系統(tǒng)234-1到234-n,這些操作系統(tǒng)運行 各自的應(yīng)用232-1到232-n。在本文中,對于具有相同參考編號的類似元件的引用,可通過 數(shù)值后綴和該參考編號單獨地引用,或者可通過省略該后綴而共同地引用。
[0051] 虛擬服務(wù)器200也可包括管理程序220,該管理程序220可在硬件210上運行,并 且可提供用于運行操作系統(tǒng)234和相關(guān)聯(lián)的應(yīng)用232的多個實例的能力。也可將管理程序 220稱為可與諸如虛擬服務(wù)器200之類的單個機器相關(guān)聯(lián)的虛擬機監(jiān)測器(VMM)。管理程 序220和硬件210可以分別是圖1中的通信系統(tǒng)100中的VMM 120和硬件層110的部分。 可通過按需要動態(tài)地向操作系統(tǒng)234分配硬件資源以同時運行操作系統(tǒng)和應(yīng)用。在這種安 排中,可在各自操作系統(tǒng)234之上邏輯地運行應(yīng)用232,這些操作系統(tǒng)234與各自的虛擬機 230相關(guān)聯(lián),并且向這些操作系統(tǒng)234提供虛擬硬件222 (例如,交換機、處理器、⑶/DVD驅(qū) 動器、軟盤、存儲器、SCSI設(shè)備、網(wǎng)絡(luò)接□卡、并行端口、串行端□等)。虛擬交換機是允許在 例如虛擬機和其他虛擬組件之間的通信的、并且能以類似于物理L2或L3交換機的方式操 作的軟件程序。
[0052] 管理程序220之下的物理硬件210可包括處理器212、存儲器元件214和網(wǎng)絡(luò)接口 卡(NIC) 216。硬件210也可包括諸如例如層級2 (L2)交換機之類的附加組件??稍诜?wù)器 (或某個其他合適的網(wǎng)絡(luò)元件)中提供整個配置。該實現(xiàn)方案僅表示本公開所適用的一個 可能的示例。任何數(shù)量的附加的管理程序或虛擬元件可類似地從本文所討論的廣泛教導(dǎo)中 獲益。
[0053] 通常,在服務(wù)器虛擬化中,向經(jīng)授權(quán)的用戶提供接口以管理虛擬機和相關(guān)聯(lián)的應(yīng) 用、操作系統(tǒng)和虛擬硬件的完整的設(shè)置。該管理包括管理軟件配置和虛擬機配置,這些配置 包括創(chuàng)建、刪除、修改、關(guān)機和啟動等。
[0054] 在云虛擬化中,可向經(jīng)授權(quán)的用戶提供控制臺和接口以管理該"云"中的虛擬基礎(chǔ) 結(jié)構(gòu)的完整的設(shè)置。該云可以是公共或私有的遠程數(shù)據(jù)中心。云可以是遠程或本地的私有 網(wǎng)絡(luò)。通常,經(jīng)授權(quán)的用戶可能能夠從該控制臺請求特定的計算、存儲和網(wǎng)絡(luò)資源。然后, 可在該云中分配這些資源,而不需要用戶了解正在使用的、確切的物理硬件組件。
[0055] 圖2中未示出可被合適地耦合到處理器212、存儲器元件214和/或網(wǎng)絡(luò)接口卡 216的附加硬件。附加的硬件可包括但不限于,存儲器管理單元(MMU)、附加的對稱多處理 (SMP)元件、物理存儲器、以太網(wǎng)、外圍組件互聯(lián)(PCI)總線和對應(yīng)的橋接器、小型計算機系 統(tǒng)接口(SCSI)/集成驅(qū)動電子(IDE)元件。
[0056] 為了便于說明,在后續(xù)的附圖中并不示出與參考圖2中的虛擬服務(wù)器200所描述 的虛擬服務(wù)器相關(guān)聯(lián)的所有組件。然而,應(yīng)當理解,雖然不一定在本文中的其他附圖中示出 參考圖1-2中的虛擬服務(wù)器所描述的組件、模塊、硬件、固件或軟件,但是也可包括它們中 的任何一個。
[0057] 圖3是示出與圖1中的通信系統(tǒng)100中的虛擬服務(wù)器300的實施例相關(guān)聯(lián)的一組 可能的細節(jié)的簡化框圖。虛擬服務(wù)器300可包括訪客虛擬機(VM) 330-1到330-N、管理程序 320、網(wǎng)絡(luò)接口卡310和虛擬安全系統(tǒng)360。NIC 310可以是虛擬服務(wù)器300的硬件的部分, 并且包括端口 314-1到314-y以及層級2 (L2)交換機312。由管理程序320來管理虛擬化 硬件,并且虛擬化硬件可包括一個或多個虛擬交換機(V交換機)322-1到322-m。這些虛擬 交換機可以是虛擬服務(wù)器30上的虛擬機通過其進行通信的虛擬化交換機。如將要在本文 中進一步討論的那樣,在NIC包括用于經(jīng)由L2交換機312啟用通信的特殊功能的某些實施 例中,也可將物理L2交換機312用于虛擬服務(wù)器300的多個虛擬機之間的通信。盡管參考 本文中的各實施例示出和/或描述了 L2交換機,但是應(yīng)當理解,其他交換機也與此類實施 例兼容。例如,合適的替代交換機包括但不一定限于具有層級3(L3)能力的L2交換機。
[0058] 虛擬安全系統(tǒng)360示出虛擬服務(wù)器300中所實現(xiàn)的虛擬安全系統(tǒng)160的示例 組件。在虛擬服務(wù)器300中的示例實現(xiàn)方案中,虛擬安全系統(tǒng)360可包括虛擬安全裝置 (VSA) 340-1到340-x、分配管理器380、策略管理器370、源路由機制395和攔截機制390的 靈活組合。
[0059] 在實施例中,可將訪客VM 330、VSA 340、分配管理器380和策略管理器370全部 配置成虛擬服務(wù)器300的虛擬機,并且由管理程序320來管理它們。雖然在本文中通常將 策略管理器370稱為虛擬機,但是,在那些實施例中的任何實施例中,可替代地在物理服務(wù) 器上直接主管該策略管理器370。例如,可利用全系統(tǒng)范圍的管理服務(wù)來包括策略管理器 370,而不將該策略管理器370的至少一些部分配置為虛擬機。
[0060] 訪客VM表示至少一些不可信的VM。因此,VM安全策略386中的多個策略可能需 要由一個或多個VSA 340檢查來自訪客VM 330的網(wǎng)絡(luò)話務(wù)的安全。每個訪客VM可具有其 獨特的策略,該策略具有關(guān)于哪些VSA要從訪客VM中接收網(wǎng)絡(luò)話務(wù)以及VSA 340接收該網(wǎng) 絡(luò)話務(wù)應(yīng)當遵循的順序的特定要求。訪客VM 330可與標準平臺機器兼容,并且可以不具有 參與安全機制的任何特殊的驅(qū)動程序或其他軟件。由此,可將虛擬安全系統(tǒng)360應(yīng)用到預(yù) 先存在的安裝程序或標準企業(yè)平臺中。
[0061] VSA 340表示實現(xiàn)任何合適類型的安全檢查的可信的虛擬機。如本文中所示用的 "安全檢查"旨在包括任何類型的網(wǎng)絡(luò)安全機制,包括但不限于,入侵防護系統(tǒng)(IPS)、入侵 檢測系統(tǒng)(IDS)、防火墻(FW)、數(shù)據(jù)丟失防護(DLP)、反病毒掃描、深度分組檢查、白名單評 估和黑名單評估。VSA 340可具有攔截機制390或源路由機制395的特定知識。此外,VSA 340通常運行在"線中的塊"("bump in the wire")模式中。由此,顯式的路由模式中的 防火墻可在虛擬安全系統(tǒng)360的外部操作。
[0062] 訪客VM 330、其他虛擬機(如,分配管理器380、策略管理器370)和VSA 340可經(jīng) 由虛擬交換機322中的一個或多個彼此通信。在一些實施例中,可將虛擬交換機322組合 到單個域(即,單個交換機)中,該單個域用于使VSA 340和潛在的其他VM彼此通信,并且 使多個訪客VM 330彼此通信。在一些實施例中,可在NIC 310中提供特殊的功能以使訪客 VM、其他VM和/或VSA能夠經(jīng)由L2交換機312進行通信。該特殊功能的示例是單根輸入 /輸出虛擬化(SR-IOV)機制。將SR-IOV用于啟用直接存儲器訪問(DMA),并且將在本文中 進一步進行描述。
[0063] 分配管理器380可保持流數(shù)據(jù)庫382以跟蹤訪客VM 330和諸如VSA340之類的其 他虛擬機之間的連接。VM安全策略數(shù)據(jù)庫386可包括VSA340的一個或多個列表,將通過 這些VSA 340路由來自每個訪客330的網(wǎng)絡(luò)話務(wù)。列表可類似于路由器或?qū)蛹?(L3)交換 機,并且可包括例如針對每個VSA 340的媒體訪問控制(MAC)地址。該列表可以是適用于 所有的訪客VM 330的單個列表、針對每個訪客VM 330的個性化列表或者針對具有相同的 安全策略要求的每一組訪客VM 330的不同列表。
[0064] 源路由機制395也可以是虛擬安全系統(tǒng)360中的部分,并且可至少部分地在分配 管理器380中提供源路由機制395??蓪⒃绰酚蓹C制395配置成用于使分配管理器能夠在 分組被返回到該分配管理器380之前,通過一個或多個VSA路由該分組??蓪崿F(xiàn)源路由機 制384的若干變型。不同的路由機制可形成如果流在相同的主機(如,服務(wù)器)上的虛擬 交換機之間傳遞時完全避免物理網(wǎng)絡(luò)數(shù)據(jù)的優(yōu)化的網(wǎng)絡(luò)話務(wù)路徑。將進一步在本文中描述 源路由機制的變型。
[0065] 攔截機制390也是虛擬安全系統(tǒng)360的部分。在實施例中,可在虛擬交換機322 中提供攔截機制390以攔截從訪客VM 330中接收到的每個分組,并且將這些被攔截的分組 重定向到分配管理器380中??稍谔摂M安全系統(tǒng)360中實現(xiàn)若干攔截機制390,并且將進一 步在本文中進行討論。
[0066] 策略管理器370包括用于更新策略分配管理器380中針對訪客330的安全策略的 策略模塊374。策略管理器370也可包括VMM安全策略數(shù)據(jù)庫376。除了針對通信系統(tǒng)100 中的其他虛擬服務(wù)器的其他訪客VM的安全策略之外,VMM安全策略數(shù)據(jù)庫376還可具有針 對虛擬服務(wù)器300的訪客VM 330的安全策略。在實施例中,策略模塊374可使用VMM安全 策略數(shù)據(jù)庫376以用針對訪客VM 330的安全策略來更新VM安全策略數(shù)據(jù)庫386。
[0067] 附加地或替代地,策略模塊374可使用VMM安全策略數(shù)據(jù)庫376以更新流數(shù)據(jù)庫 382。在此場景中,可將分配管理器配置成用于使用針對層級3(L3)交換機的公共算法來構(gòu) 建流數(shù)據(jù)庫382??蓪⒎峙涔芾砥?80配置成用于向策略管理器370查詢每一個新的分組 流。響應(yīng)于查詢,策略模塊374可將應(yīng)當處理與條目相關(guān)聯(lián)的特定的分組流的VSA 340的 標識(例如,MAC地址)添加到每個分組流數(shù)據(jù)庫條目中。
[0068] 也可將策略管理器370配置成用于促進按需要分配新的VSA,并且也潛在地促進 攔截機制390的配置。如果沒有合適的VSA (如策略所要求的合適的VSA)可用于處理分組 流,則策略模塊374可與其他模塊、管理器和虛擬機(如,分配管理器380、云管理器150、 安全管理器175等)協(xié)調(diào),從而設(shè)置、配置和啟動新的VSA。例如在首次需要特定的VSA時 (例如,需要DLP裝置的第一流),該場景會發(fā)生。在另一場景中,給定的VSA可能需要消耗 更多計算資源(如,RAM、處理器資源等)以處理新的分組流。
[0069] 策略管理器370 (或分配管理器380)也可促進對VSA所需要的計算資源的管理。 具體而言,可將策略管理器370(或分配管理器380)配置成用于估計或查詢所有現(xiàn)有的VSA 的容量。如果策略管理器370(或分配管理器380)確定需要更多的容量,則新的分組流可 觸發(fā)新的VSA,或者可使現(xiàn)有VSA中的一個能夠使用更多中央處理單元(CPU)。
[0070] 也可將策略管理器370 (或分配管理器380)配置成用于檢測虛擬服務(wù)器中給定的 重復(fù)的VSA是未充分利用的(under-utilized),從而停止向該VSA發(fā)送分組流,直到它空 閑,然后刪除其虛擬機?;蛘撸绻貜?fù)的VSA未充分利用,則如果其他的VSA可容納該附 加的網(wǎng)絡(luò)話務(wù)載荷,可將那個重復(fù)的VSA的分組流重新路由至其他類似的VSA。以這種方 式,可將該虛擬化基礎(chǔ)結(jié)構(gòu)用于根據(jù)需要擴大和收縮的彈性安全機制。
[0071] 系統(tǒng)管理員可允許虛擬安全系統(tǒng)360具有按需分配安全的不受限的自由,或者系 統(tǒng)管理員可應(yīng)用策略以影響對系統(tǒng)資源的使用。例如,該系統(tǒng)管理員可將安全資源限制為 不多于系統(tǒng)資源的10%。如果在那10%中所分配的VSA不能夠處理該網(wǎng)絡(luò)話務(wù),則這些 VSA可減慢該網(wǎng)絡(luò)話務(wù),并且系統(tǒng)管理員可改變這些VSA的策略以允許這些VSA能夠更有選 擇性地處理該話務(wù),或者系統(tǒng)管理員可決定將更高百分比的系統(tǒng)資源分配給VSA。
[0072] 圖4是具有虛擬安全系統(tǒng)的虛擬服務(wù)器400的某些組件的簡化框圖,其示出兩個 訪客VM之間的分組流的流的示例場景??梢园磁c參考圖3中的虛擬服務(wù)器300所描述的 方式相同或類似的方式配置虛擬服務(wù)器400及其多個組件。虛擬服務(wù)器400包括若干虛 擬機,這些虛擬機包括訪客VM430-1到430-n、分配管理器480、策略管理器470以及四個 VSA (440-1 到 440-4)。
[0073] 可經(jīng)由交換機422-1將多個訪客VM 430彼此連接。在一些實施例中,交換機422-1 可以是虛擬交換機。在其他實施例中,交換機422-1可以是例如位于虛擬服務(wù)器400上或 虛擬服務(wù)器400外部的網(wǎng)絡(luò)接口卡中的物理交換機。將多個VSA 440示出為經(jīng)由交換機 422-2彼此連接。一般而言,為了清楚起見,單獨地示出交換機422-1和422-2。由此,通常 可將交換機422-1和422-2組合進適應(yīng)特定的攔截機制技術(shù)和源路由技術(shù)的單個域中。然 而,在一些實施例中,虛擬交換機422-2和交換機422-1可以是不同的交換機。
[0074] 在圖4中,使攔截機制490和源路由機制484 -般化,并且它們表示若干不同的 配置,將進一步在本文中進行描述。在圖4中的示例場景中,將分組從VM 430-1發(fā)送到VM 430-2。該分組具有源地址VML MAC和目的地地址VM2. MAC。攔截機制490使得將該分組攔 截和/或重定向到分配管理器480中,而不是使該分組流向VM2. MAC。
[0075] 如果該分組是分組流中的第一分組,則分配管理器480可構(gòu)建流數(shù)據(jù)庫482。在一 個實施例中,VM策略數(shù)據(jù)庫486包含針對訪客VM 430-1的安全策略。例如,VM策略數(shù)據(jù)庫 486可包含應(yīng)當處理訪客VM 430-1的分組流的VSA 440的標識。在另一實施例中,分配管 理器480向策略管理器470查詢訪客VM 430-1的安全策略。策略管理器470可例如通過 直接查詢,或通過標識匹配具有某些參數(shù)的流的VSA的、預(yù)先提供的策略來提供應(yīng)當處理 分組的每一個VSA 440的標識。一旦獲取了合適的VSA 440的標識,可將這些VSA的標識 添加到與該分組流相關(guān)聯(lián)的每一個流數(shù)據(jù)庫的條目中。在此示例場景中,可將VSA 440-1 和VSA 440-3的標識添加到流數(shù)據(jù)庫482中。
[0076] 如果分配管理器480所接收的分組不是分組流的第一分組,則分配管理器480執(zhí) 行對該分組的L3檢查,并且在流數(shù)據(jù)庫482中查找該流。分配管理器480可根據(jù)該流條 目中的數(shù)據(jù)創(chuàng)建通過所要求的安全設(shè)備的源路由。在該場景中,可選擇VSA 440-1和VSA 440-3。當創(chuàng)建了該源路由時,數(shù)據(jù)庫管理器480可經(jīng)由交換機422-2將該分組發(fā)送到VSA 440-1。VSA 440-1是能夠執(zhí)行對分組內(nèi)容的安全掃描的IPS設(shè)備。如果該分組通過了該安 全掃描,則VSA 440-1可使用相同的源路由機制495將該分組轉(zhuǎn)發(fā)到VSA440-3。VSA 440-3 是將防火墻策略應(yīng)用于該分組的防火墻。在將防火墻策略應(yīng)用于該分組之后,VSA 440-3 可使用源路由機制495的最終步驟,將該分組返回到分配管理器480中。然后,分配管理器 480將該分組發(fā)送到目的地訪客VM 430-2中。
[0077] VSA中的任意一個(VSA 440-1或VSA 440-3)可阻止或改變在途中的分組。例如, 如果該分組通不過對VSA 440-1的安全掃描,或者如果該分組不符合VSA 440-3的防火墻 策略,則這些VSA中的任意一個可阻止或改變該分組。
[0078] 可由分配管理器使用源路由機制(如,395、495)以特定的順序?qū)⒎纸M流之內(nèi)的多 個分組路由至多個虛擬安全裝置中。在由攔截機制攔截了多個訪客虛擬機之間的網(wǎng)絡(luò)話務(wù) 之后,調(diào)用源路由機制。一般而言,分配管理器從其表(如,流數(shù)據(jù)庫482、382)中獲取一些 數(shù)據(jù)(每次接收一個分組),并且修改該分組,使得每個VSA能夠正確地將分組路由至下一 個或VSA或往回路由到目的地管理器中。
[0079] 能以多種方式將源路由機制配置成用于如針對訪客VM的安全策略所要求的那 樣,實現(xiàn)將分組從訪客VM路由至VSA中的所期望的路由。在一個實現(xiàn)方案中,將該源路由 機制實現(xiàn)為1981年9月的網(wǎng)際協(xié)議Darpa網(wǎng)際項目協(xié)議規(guī)范意見征求稿(RFC) 791中所定 義的源路由。如果分配管理器480和多個VSA 440中的每一個實現(xiàn)路由器功能,則可使用 該機制。例如,如果用具有固有的路由功能的操作系統(tǒng)來實現(xiàn)這些虛擬機(如,訪客VM430 和VSA 440),則操作系統(tǒng)可提供此功能。該技術(shù)使標準的操作系統(tǒng)實現(xiàn)方案能夠進行該源 路由。
[0080] 圖5是利用或不利用私有虛擬局域網(wǎng)(私有VLAN)的、使用MAC頭部封裝的另一 源路由機制的框圖。當IP源路由不是選項時,協(xié)作的MAC