TW201401170A - 虛擬機器的通信方法以及伺服端系統 - Google Patents
虛擬機器的通信方法以及伺服端系統 Download PDFInfo
- Publication number
- TW201401170A TW201401170A TW101122840A TW101122840A TW201401170A TW 201401170 A TW201401170 A TW 201401170A TW 101122840 A TW101122840 A TW 101122840A TW 101122840 A TW101122840 A TW 101122840A TW 201401170 A TW201401170 A TW 201401170A
- Authority
- TW
- Taiwan
- Prior art keywords
- virtual
- virtual machine
- packet
- hardware address
- communication module
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5038—Address allocation for local use, e.g. in LAN or USB networks, or in a controller area network [CAN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/126—Applying verification of the received information the source of the received data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/604—Address structures or formats
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/618—Details of network addresses
- H04L2101/622—Layer-2 addresses, e.g. medium access control [MAC] addresses
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
Abstract
一種虛擬機器的通信方法與伺服端系統。在建立虛擬機器時,指派虛擬硬體位址給虛擬機器,其中虛擬硬體位址包括租用戶識別碼。當一虛擬機器傳送封包欲與另一虛擬機器進行溝通時,對封包執行驗證程序,以判斷封包中的來源端與目的端的虛擬硬體位址是否具有相同的租用戶識別碼。若兩者具有相同的租用戶識別碼,傳送此封包至另一虛擬機器。
Description
本發明是有關於一種通信技術,且特別是有關於一種可隔離不同租用戶的虛擬機器間的封包流量的虛擬機器的通信方法以及伺服端系統。
隨著科技的進步,虛擬機器(Virtual Machine)已經被廣泛地應用在各種計算機領域上,例如使用虛擬機器來研究惡意程式(malware)在個人電腦中的行為。一般來說,一台電腦主機可以同時運行多個虛擬機器,且這些運行於相同的電腦主機的虛擬裝置通常被希望是彼此獨立的。或者,對於使用同一台電腦來各自運行虛擬機器的多個租用戶來說,若隸屬於不同租用戶的虛擬機器的封包流量沒有被妥善的隔離,可能會導致各虛擬機器在對封包的擷取上產生混淆的情況發生。
舉例來說,當租用戶A在一電腦主機X上運行了兩台虛擬機器(例如,虛擬機器M與虛擬機器N),以進行惡意程式散播惡意封包的研究。而另一租用戶B則可能也在電腦主機X上運行了另一虛擬機器(例如,虛擬機器K),以進行網路流量的分析研究。此時,租用戶B的虛擬機器(例如,虛擬機器K)可能會因為接收到租用戶A運行的虛擬機器(例如,虛擬機器M)散播的惡意封包而導致實驗結果出現異常。據此,如何有效地隔離隸屬於各租用戶
的多個虛擬機器間的封包流量,實為本領域需研究發展的課題。
本發明提出一種虛擬機器的通信方法方法與伺服端系統,可有效地管理並隔離隸屬於各別租用戶的多個虛擬機器。
本發明之一方面提出一種虛擬機器的通信方法,適用於伺服端系統,伺服端系統包括多個主機與多個虛擬機器,所述通信方法包括下列步驟。在多個虛擬機器建立時,分別指派多個虛擬硬體位址給這些虛擬機器,其中,每一個虛擬硬體位址包括每一個虛擬機器的租用戶識別碼。當這些虛擬機器中的第一虛擬機器欲與第二虛擬機器進行溝通時,透過第一虛擬機器傳送封包,其中封包中包括第一虛擬機器的第一虛擬硬體位址與第二虛擬機器的第二虛擬硬體位址,而第一虛擬硬體位址與第二虛擬硬體位址分別為這些虛擬硬體位址其中之一。另外,當通信模組接收到封包時,對封包執行驗證程序,所述驗證程序包括下列步驟。當第一虛擬硬體位址與第二虛擬硬體位址具有相同的租用戶識別碼時,傳送封包至第二虛擬機器
本發明之另一方面提出一種伺服端系統,所述伺服端系統包括管理裝置與多個主機。管理裝置在多個虛擬機器建立時,分別指派多個虛擬硬體位址給這些虛擬機器,其中,每一個虛擬硬體位址包括每一個虛擬機器的租用戶識
別碼。其中,這些主機中運行有虛擬機器,且每一個主機包括網路介面單元與處理單元。網路介面單元使得這些主機透過其各自的網路介面單元進行溝通。處理單元耦接至網路介面單元,使得運行在其中的虛擬機器進行作動,並驅動一通信模組。其中,當上述虛擬機器中的一第一虛擬機器欲與一第二虛擬機器進行溝通時,其傳送封包,其中封包中包括第一虛擬機器的第一虛擬硬體位址與第二虛擬機器的第二虛擬硬體位址,而第一虛擬硬體位址與第二虛擬硬體位址分別為這些虛擬硬體位址其中之一。當第一虛擬機器或第二虛擬機器對應的通信模組接收到封包時,對封包執行驗證程序,當第一虛擬硬體位址與第二虛擬硬體位址是否具有相同的租用戶識別碼時,傳送封包。
基於上述,本發明實施例提出一種虛擬機器的通信方法方法與伺服端系統,其可在虛擬機器間的封包傳輸路徑上對封包進行驗證程序,以藉由比對封包中分別對應於來源虛擬機器以及目的虛擬機器的虛擬硬體位址中的租用戶識別碼,來識別出發送此封包的來源虛擬機器以及預設接收此封包的目的虛擬機器是否是隸屬於相同的租用戶,並且依據識別結果來決定是否要續傳此封包或直接將此封包丟棄。藉此,可有效地管理並隔離隸屬於各別租用戶的多個虛擬機器間的封包與流量。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
為使隸屬於相同租用戶的多個虛擬機器間相互溝通時,可以有效地對彼此發出的封包進行識別,本發明實施例提出一種虛擬機器的通信方法,其可依據預設的驗證程序來對封包中對應於各虛擬機器的虛擬硬體位址(Virtual Hardware Address)中的租用戶識別碼(Tenant Identity)進行驗證,以識別出傳送此封包與接收此封包的虛擬機器是否隸屬於同一租用戶。藉此,有效地管理並隔離隸屬於各別租用戶的多個虛擬機器間的封包與流量。此外,本發明實施例更揭示了可用於體現上述虛擬機器的通信方法的伺服端系統。為了使本發明的內容更容易明瞭,以下特舉實施例作為本發明確實能夠據以實施的範例。
圖1為依據本發明的第一實施例所繪示的伺服端系統的示意圖。請參照圖1,伺服端系統10包括管理裝置11、主機12與主機13。在此請注意,在圖1中雖然僅繪示主機12與主機13,然而,伺服端系統10實質上還可以包括更多或更少的主機12與主機13。換言之,依據本發明的實施例而將其實現者,可以視設計上或者實務上的需求而調整主機12與主機13的數量,本發明不對其限制。
管理裝置11可以是伺服端主機或者一般的電腦主機,用以執行類似伺服端系統10的主控台(main control console,MCC)的功能。例如,管理裝置11可以用來管理
伺服端系統10的整體運作。在本實施例中,管理裝置11至少包括一處理器(Processor)、一記憶體(Memory)以及一網路介面卡(Network Interface Card)。
主機12與主機13可以分別是一般的電腦主機,而可分別運行一個或多個虛擬機器(Virtual Machine),其中虛擬機器運行於電腦主機的作業系統(Operating System,OS)中,且虛擬機器通常可以用來模擬真實的電腦主機。
在本實施例中,主機12與主機13分別至少包括網路介面單元121與處理單元122以及網路介面單元131與處理單元132,其中網路介面單元121與網路介面單元131各別包括至少一網路介面卡,使得主機12與主機13可以透過其各自的網路介面單元121與網路介面單元131進行溝通。
處理單元122與處理單元132分別耦接網路介面單元121與網路介面單元131。處理單元122與處理單元132可以使得分別運行在其中的一個或多個虛擬機器進行作動。在本實施例中,處理單元122與處理單元132可以分別是微處理器(micro-processor)、嵌入式控制器(embedded controller)或中央處理器(central processing unit,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可以是利用媒體存取控制位址(Media Access Control Address,MAC Address)的格式來實施。舉例來說,48位元的媒體存取控制位址可以被區分為3個位元群組(即,欄位),其中第一個位元群組可以有8個位元,用來記錄系統資訊。第二個位元群組可以有24個位元,用來記錄租用戶識別碼。第三個位元群組則可以有16個位元,用來記錄虛擬機器識別碼。藉此,在封包傳遞的過程中,只要透過比對封包中的來源端的虛擬硬體位址以及目的端的虛擬硬體位址中各別標示的租用戶識別碼,就可以快速地辨識傳送此封包的虛擬機器與預設接收此封包的虛擬機器是否是隸屬於相同的租用戶,並據以執行後續的傳輸封包或者丟棄封包的動作。
然而,本實施例的虛擬硬體位址所具有的欄位與各欄位中記錄的資訊並不以上述為限。舉例來說,虛擬硬體位址400還可以包括一部門欄位(未繪示),以記錄部門識別碼(Department Identity)。此部門識別碼為虛擬硬體位
址400的虛擬機器所隸屬的部門(例如,某公司或組織中的某一個部門)。藉此,只要透過比對封包中的來源虛擬硬體位址與目的虛擬硬體位址中各別標示的租用戶識別碼以及部門識別碼,就可以快速地辨識傳送此封包的虛擬機器與預設接收此封包的虛擬機器是否是隸屬於相同的租用戶且隸屬於相同的部門(或者,只隸屬於相同部門即可,可依實際應用的需求而定),並據以執行後續的傳輸封包或者丟棄封包的動作。
請再次參照圖2與圖3,當虛擬機器222欲與虛擬機器232進行溝通而傳送出一封包之後,處理單元122運行的通信模組224可以判斷其是否接收到此封包(步驟S307)。若在步驟S307中的判斷結果為是,通信模組224可以先行接收或暫存此封包,並對此封包執行驗證程序,以藉由此驗證程序來判斷虛擬機器222與虛擬機器232是否是隸屬於相同的租用戶(步驟S309)。
在驗證程序中,通信模組224可以判斷虛擬裝置222的虛擬硬體位址與虛擬裝置232的虛擬硬體位址是否具有相同的租用戶識別碼(步驟S311)。倘若虛擬裝置222的虛擬硬體位址與虛擬裝置232的虛擬硬體位址具有相同的租用戶識別碼,通信模組224可以得知虛擬機器222與虛擬機器232隸屬於相同的租用戶,並且接續透過網路介面單元12傳送此封包至虛擬裝置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。若第二數列542符合此預設規則544,通信模組224會接續傳送此封包至虛擬裝置232。以圖5為例,第二
數列543(000000000000)符合預設規則544(000000000000),所以通信模組224會傳送此封包至虛擬裝置232。而若第二數列542不符合此預設規則,則通信模組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」時,可以直接判斷其為廣播封包並將其以廣播的方式傳送出去。
綜上所述,在上述實施例中,可在虛擬機器間的封包傳輸路徑上進行一次或多次驗證程序,以藉由比對封包中分別對應於來源虛擬機器以及目的虛擬機器的虛擬硬體位址中的租用戶識別碼,來識別出發送此封包的來源虛擬機器以及預設接收此封包的目的虛擬機器是否是隸屬於相同的租用戶,或者隸屬於相同部門等篩選條件,並且依據識別結果來決定是否要續傳此封包或直接將此封包丟棄。藉此,可有效地管理並隔離隸屬於各別租用戶或其他篩選條件的多個虛擬機器間的封包與流量。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
10‧‧‧伺服端系統
11‧‧‧管理裝置
12、13‧‧‧主機
121、132‧‧‧網路介面單元
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‧‧‧第四實施例之虛擬機器的通信方法各步驟
圖1為依據本發明的第一實施例所繪示的伺服端系統的示意圖。
圖2為依據本發明的第二實施例所繪示的伺服端系統的示意圖。。
圖3為依據本發明的第二實施例所繪示的虛擬機器的通信方法的流程圖。
圖4為依據本發明的第二實施例所繪示虛擬硬體位址的示意圖。
圖5為依據本發明的第二實施例所繪示驗證程序流程的示意圖。
圖6為依據本發明的第三實施例所繪示的伺服端系統的示意圖。
圖7為依據本發明的第四實施例所繪示的伺服端系統的示意圖。
圖8為依據本發明的第四實施例所繪示的虛擬機器的通信方法的流程圖。
S303~S315‧‧‧第二實施例之虛擬機器的通信方法各步驟
Claims (16)
- 一種虛擬機器的通信方法,適用於一伺服端系統,該伺服端系統包括多個主機與多個虛擬機器,該通信方法包括:在該些虛擬機器建立時,分別指派多個虛擬硬體位址給該些虛擬機器,其中,每一該些虛擬硬體位址包括每一該些虛擬機器的一租用戶識別碼;當該些虛擬機器中的一第一虛擬機器欲與一第二虛擬機器進行溝通時,透過該第一虛擬機器傳送一封包,其中該封包中包括該第一虛擬機器的一第一虛擬硬體位址與該第二虛擬機器的一第二虛擬硬體位址,而該第一虛擬硬體位址與該第二虛擬硬體位址分別為該些虛擬硬體位址其中之一;以及當一通信模組接收到該封包時,對該封包執行一驗證程序,包括:當該第一虛擬硬體位址與該第二虛擬硬體位址具有相同的該租用戶識別碼時,傳送該封包至該第二虛擬機器。
- 如申請專利範圍第1項所述的虛擬機器的通信方法,其中每一該些虛擬硬體位址包括一第一欄位、一第二欄位與一第三欄位,以分別儲存該租用戶識別碼、一系統資訊以及一虛擬機器識別碼。
- 如申請專利範圍第2項所述的虛擬機器的通信方法,其中每一該些虛擬硬體位址更包括一第四欄位,以儲 存一部門識別碼,而對該封包執行該驗證程序的步驟更包括:當該第一虛擬硬體位址與該第二虛擬硬體位址具有相同的該租用戶識別碼與相同的該部門識別碼時,傳送該封包至該第二虛擬機器。
- 如申請專利範圍第3項所述的虛擬機器的通信方法,其中該系統資訊用來標示該第一欄位、該第二欄位、該第三欄位以及該第四欄位各別的位元數量。
- 如申請專利範圍第1項所述的虛擬機器的通信方法,其中該第一虛擬機器位於該些主機中的一第一主機,且該第二虛擬機器位於該些主機中的一第二主機,其中在透過該第一虛擬機器傳送該封包的步驟之後,更包括:當該第一主機的該通信模組接收到該封包時,對該封包執行該驗證程序。
- 如申請專利範圍第5項所述的虛擬機器的通信方法,其中當該第一主機的該通信模組接收到該封包時,對該封包執行該驗證程序的步驟之後,更包括:在通過該第一主機的該通信模組的驗證之後,傳送該封包至該第二主機的該通信模組,以對該封包執行該驗證程序;以及在通過該第二主機的該通信模組的驗證之後,傳送該封包至該第二虛擬機器。
- 如申請專利範圍第1項所述的虛擬機器的通信方法,其中該第一虛擬機器位於該些主機中的一第一主機, 且該第二虛擬機器位於該些主機中的一第二主機,其中在透過該第一虛擬機器傳送該封包的步驟之後,更包括:當該第二主機的該通信模組接收到該封包時,對該封包執行該驗證程序。
- 如申請專利範圍第1項所述的虛擬機器的通信方法,其中該第一虛擬機器與該第二虛擬機器同時位於該些主機其中之一。
- 如申請專利範圍第1項所述的虛擬機器的通信方法,其中當該通信模組接收到該封包時,對該封包執行該驗證程序的步驟更包括:對該第一虛擬硬體位址與該第二虛擬硬體位址進行一互斥或運算,以取得一第一數列;對該第一數列與一預設數列進行且運算,以取得一第二數列,其中該預設數列是依據該租用戶識別碼在該第一虛擬硬體位址與該第二虛擬硬體位址中的位置而決定;以及當該第二數列符合一預設規則時,傳送該封包至該第二虛擬機器。
- 一種伺服端系統,包括:一管理裝置,在多個虛擬機器建立時,分別指派多個虛擬硬體位址給該些虛擬機器,其中,每一該些虛擬硬體位址包括每一該些虛擬機器的一租用戶識別碼;以及多個主機,其中該些主機中運行有該些虛擬機器,每一該些主機包括: 一網路介面單元,使得該些主機透過其各自的該網路介面單元進行溝通;以及一處理單元,耦接至該網路介面單元,該處理單元使得運行在其中的虛擬機器進行作動,以及驅動一通信模組;其中,當該些虛擬機器其中之一第一虛擬機器欲與該些虛擬機器中的一第二虛擬機器進行溝通時,傳送一封包,其中該封包中包括該第一虛擬機器的一第一虛擬硬體位址與該第二虛擬機器的一第二虛擬硬體位址,而該第一虛擬硬體位址與該第二虛擬硬體位址分別為該些虛擬硬體位址其中之一;當該第一虛擬機器或該第二虛擬機器對應的該通信模組接收到該封包時,對該封包執行一驗證程序;其中,當該第一虛擬硬體位址與該第二虛擬硬體位址具有相同的該租用戶識別碼時,決定傳送該封包該封包。
- 如申請專利範圍第10項所述的伺服端系統,其中每一該些虛擬硬體位址包括一第一欄位、一第二欄位與一第三欄位,以分別儲存該租用戶識別碼、一系統資訊以及一虛擬機器識別碼。
- 如申請專利範圍第11項所述的伺服端系統,其中每一該些虛擬硬體位址更包括一第四欄位,用以儲存一部門識別碼,而該通信模組更判斷該第一虛擬硬體位址與該第二虛擬硬體位址是否具有相同的該部門識別碼,以在該第一虛擬硬體位址與該第二虛擬硬體位址具有相同的該租 用戶識別碼與相同的該部門識別碼時,傳送該封包至該第二虛擬機器。
- 如申請專利範圍第12項所述的伺服端系統,其中該系統資訊用來標示該第一欄位、該第二欄位、該第三欄位以及該第四欄位各別的位元數量。
- 如申請專利範圍第10項所述的伺服端系統,其中該些主機中一第一主機與一第二主機分別運行該第一虛擬機器與該第二虛擬機器,而在通過該第一主機的該通信模組的驗證之後,該第一主機的該通信模組傳送該封包至該第二主機的該通信模組,以由該第二主機的該通信模組對該封包執行該驗證程序,並且在該封包通過該第二主機的該通信模組的驗證之後,該第二主機的該通信模組傳送該封包至該第二虛擬機器。
- 如申請專利範圍第10項所述的伺服端系統,其中該些主機中的一第一主機同時運行該第一虛擬機器與該第二虛擬機器。
- 如申請專利範圍第10項所述的伺服端系統,其中該通信模組對該第一虛擬硬體位址與該第二虛擬硬體位址進行一互斥或運算,以取得一第一數列,並對該第一數列與一預設數列進行一及運算,以取得一第二數列,其中該預設數列是依據該租用戶識別碼在該第一虛擬硬體位址與該第二虛擬硬體位址中的位置而決定,並且當該通信模組判斷該第二數列符合一預設規則時,該通信模組傳送該封包至該第二虛擬機器。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW101122840A TWI470550B (zh) | 2012-06-26 | 2012-06-26 | 虛擬機器的通信方法以及伺服端系統 |
CN201210240829.XA CN103516705B (zh) | 2012-06-26 | 2012-07-11 | 虚拟机的通信方法以及服务器端系统 |
US13/602,206 US8935696B2 (en) | 2012-06-26 | 2012-09-03 | Communication method of virtual machines and server-end system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW101122840A TWI470550B (zh) | 2012-06-26 | 2012-06-26 | 虛擬機器的通信方法以及伺服端系統 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201401170A true TW201401170A (zh) | 2014-01-01 |
TWI470550B TWI470550B (zh) | 2015-01-21 |
Family
ID=49775568
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101122840A TWI470550B (zh) | 2012-06-26 | 2012-06-26 | 虛擬機器的通信方法以及伺服端系統 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8935696B2 (zh) |
CN (1) | CN103516705B (zh) |
TW (1) | TWI470550B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI736457B (zh) * | 2020-10-27 | 2021-08-11 | 財團法人資訊工業策進會 | 動態網路特徵處理裝置以及動態網路特徵處理方法 |
Families Citing this family (4)
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 | 上海达龙信息科技有限公司 | 电子设备的运营管理方法、系统、介质及服务器 |
Family Cites Families (18)
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 |
JP2008299617A (ja) * | 2007-05-31 | 2008-12-11 | Toshiba Corp | 情報処理装置、および情報処理システム |
US20080301770A1 (en) * | 2007-05-31 | 2008-12-04 | Kinder Nathan G | Identity based virtual machine selector |
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 |
CN101668022B (zh) * | 2009-09-14 | 2012-09-12 | 陈博东 | 一种建立在虚拟机上的虚拟网络隔离系统及实现方法 |
EP2482496B1 (en) * | 2009-09-24 | 2018-11-28 | Nec Corporation | Identification system for inter-virtual-server communication and identification method for inter-virtual-server communication |
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 |
CN102299929B (zh) * | 2011-09-15 | 2015-05-27 | 北京天地云箱科技有限公司 | 虚拟机的访问控制方法、系统和装置 |
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 |
-
2012
- 2012-06-26 TW TW101122840A patent/TWI470550B/zh active
- 2012-07-11 CN CN201210240829.XA patent/CN103516705B/zh active Active
- 2012-09-03 US US13/602,206 patent/US8935696B2/en active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI736457B (zh) * | 2020-10-27 | 2021-08-11 | 財團法人資訊工業策進會 | 動態網路特徵處理裝置以及動態網路特徵處理方法 |
Also Published As
Publication number | Publication date |
---|---|
US20130346971A1 (en) | 2013-12-26 |
US8935696B2 (en) | 2015-01-13 |
CN103516705A (zh) | 2014-01-15 |
TWI470550B (zh) | 2015-01-21 |
CN103516705B (zh) | 2016-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9852284B2 (en) | Storage isolation using I/O authentication | |
US10581849B2 (en) | Data packet transmission method, data packet authentication method, and server thereof | |
TWI470550B (zh) | 虛擬機器的通信方法以及伺服端系統 | |
US8898665B2 (en) | System, method and computer program product for inviting other virtual machine to access a memory space allocated to a virtual machine | |
EP2824872B1 (en) | Host providing system and communication control method | |
JP6982104B2 (ja) | Brasシステムベースのパケットカプセル化方法および装置 | |
KR101857511B1 (ko) | 가상 머신 마이그레이션을 판정하는 방법 및 장치 | |
US10659361B2 (en) | Packet processing | |
JP6308601B2 (ja) | パケット処理方法およびデバイス | |
US9774584B2 (en) | Authentication of a first device by a switching center | |
US10389693B2 (en) | Keys for encrypted disk partitions | |
CN106506515B (zh) | 一种认证方法和装置 | |
US20150324387A1 (en) | Broadcast data operations in distributed file systems | |
US8762513B2 (en) | Network adapter based zoning enforcement | |
KR101715578B1 (ko) | 범용 직렬 버스 (usb) 디바이스 액세스 | |
WO2015081515A1 (zh) | 数据处理方法、装置、存储控制器和机柜 | |
US20160028628A1 (en) | Communication system, control apparatus, address allocation method, and program | |
JP2007037141A (ja) | 複数のdhcpサーバ環境内で共通のデータベースからのサービス要求を実行する方法及び装置 | |
CN104506540A (zh) | 虚拟主机的读写请求处理方法及系统、宿主机 | |
US9906953B2 (en) | Method and user equipment for discovering device user | |
WO2023160299A1 (zh) | 一种设备物理身份认证方法、系统、装置及第一平台 | |
CN105991466B (zh) | 信息备份方法及装置 | |
JP7524563B2 (ja) | Ipアドレス割付方法、ipアドレス割付装置、及びプログラム | |
JP6010672B2 (ja) | セキュリティ設定システム、セキュリティ設定方法およびプログラム | |
CN102273139B (zh) | 存储网络流信息 |