Home
Multiple virtual machines sharing a single IP address
Contents
1. be implemented in adapters coupled to I O slots 180 An I O adapter is one suitable network interface 150 that may be implemented in an external card that is plugged into one ofthe YO slots 180 In addition other I O devices such as modems can be plugged into one of the I O slots 180 Main memory 120 preferably contains an operating system 121 Operating system 121 is preferably a multitasking oper ating system such as AIX or Linux however those skilled in US 8 363 656 B2 3 the art will appreciate that the spirit and scope of this disclo sure is not limited to any one operating system Any suitable operating system can be used Operating system 121 is a sophisticated program that contains low level code to manage the resources of computer system 100 Some of these resources are processors 110 main memory 120 mass stor age interface 130 display interface 140 network interface 150 system bus 160 and I O slots 180 Each virtual machine may also have an operating system The operating system in each virtual machine or partition may be the same as the operating system in virtual machines or may be a completely different operating system Thus one virtual machine can run the AIX operating system while a different virtual can run another instance of AIX possibly a different release or with different environment settings e g time zone or language In this manner the virtual machines can provide completely different computing e
2. is configured to intercept packets sent to the shared IP address assigned to virtual machines and to forward into the destina tion machine based on the packet destination port number All outgoing packets are typically transmitted to the external network unmodified If the host is also using the shared IP address a unique port range is assigned to the host In this case the host is allocating permanent and ephemeral ports 20 25 30 35 40 45 50 55 60 65 6 from this range The packets received by the host for the shared address are intercepted by interceptor and directed to a virtual machine If the host is using the shared IP all packets that are not matched by the one of virtual machine port range are returned back to the host networking stack FIG 5 illustrates is a block diagram for a computer system with multiple virtual machines that share the same IP address on an external network address space The computer system of FIG 5 is similar to the system shown in FIG 2 but shows an example of how the system can be scaled to multiple physical host computers In FIG 5 the host computer 510A has a virtual network manager 123 similar to the host com puter 100 described in FIG 2 In contrast to the system in FIG 2 the virtual network manager 123 in FIG 5 communicates with virtual machines that reside on one or more other hosts Inthe example shown the virtual network manager 123 sends data packets to Virtual
3. types of thresholds are expressly intended to be included within the scope of the claims Thus while the disclosure is particularly shown and described above it will be understood by those skilled in the art that these and other changes in form and details may be made therein without departing from the spirit and scope of the claims The invention claimed is 1 An apparatus comprising a host computer system with a processor and a memory US 8 363 656 B2 9 a physical interface with a single internet protocol IP address connecting the host computer to an external network a plurality of virtual machines each with a virtual machine number in the memory a data packet with a destination port number received on the physical interface a virtual network manager that forwards the data packet to aunique one ofthe plurality of virtual machines depend ing on the destination port number in the data packet and a port range table with a plurality of port ranges and a corresponding virtual machine number for each port range and wherein the virtual network manager deter mines the virtual machine number of the unique one of the plurality of virtual machines by selecting the virtual machine number stored in the port range table corre sponding to a port range that includes the destination port number in the data packet 2 The apparatus of claim 1 further comprising a firewall protecting the host computer from the external network 3
4. The apparatus of claim 1 wherein the plurality of virtual machines are located on a plurality of host computer systems 4 The apparatus of claim 1 and wherein the virtual network manager forwards the data packet to the virtual machine on a virtual network 5 The apparatus of claim 1 wherein the data packets con form to a protocol chosen from the following TCP Trans mission Control Protocol and User Datagram Protocol UDP 6 The apparatus of claim 1 wherein ephemeral ports of the virtual machines are configured to use port numbers in a range of port numbers in the port range table assigned to the virtual machine 7 A computer implemented method for sending data to a virtual machine on a host computer system the method com prising the steps of A configuring multiple virtual machines with a single internet protocol IP address B configuring a virtual network manager with a port range table with a plurality of port ranges and a corre sponding virtual machine number for each port range C configuring ephemeral ports of the virtual machines to use port numbers in a range of port numbers in the port range table assigned to the virtual machine and D routing an incoming data packet from a physical inter face to a unique one of the multiple virtual machines based on a destination port number in the data packet 8 The method of claim 7 wherein the step of routing the incoming data packet further comprises determining a
5. a single processor and a single system bus those skilled in the art will appreciate that a virtual network manager may be practiced using a computer system that has multiple proces sors and or multiple buses In addition the interfaces that are used preferably each include separate fully programmed microprocessors that are used to off load compute intensive processing from processor 110 However those skilled in the art will appreciate that these functions may be performed using I O adapters as well Display interface 140 is used to directly connect one or more displays 165 to computer system 100 These displays 165 which may be non intelligent 1 e dumb terminals or fully programmable workstations are used to provide system administrators and users the ability to communicate with computer system 100 Note however that while display interface 140 is provided to support communication with one or more displays 165 computer system 100 does not neces sarily require a display 165 because all needed interaction with users and other processes may occur via network inter face 150 e g web client based users Network interface 150 is used to connect computer system 100 to other computer systems or workstations 175 via net work 170 Network interface 150 broadly represents any suit able way to interconnect electronic devices regardless of whether the network 170 comprises present day analog and or digital techniques or via some networki
6. or both The port range table 126 includes a plurality of destination port ranges 410 and an associated virtual machine 412 for each port range A port range 410 defines one or more destination port numbers that are used by the virtual network manager to route data to the corresponding virtual machine 412 In the illustrated example a port range of 0 25 414 is associated with Virtual Machine 1 416 and a port range of 26 80 418 is associated with Virtual Machine 2 420 The port range table 126 may include any number of other port ranges as indicated by the other range 422 associated with the other virtual machine 424 The port range table 126 may be stored in any suitable format to show a logical condition between the port ranges and virtual machines as described herein An entire port range may be closed on the host computer to disable packets for an entire virtual machine thus simplifying system administra tion when managing virtual machines on the host For TCP and UDP protocols a single IP address has a limited number of destination ports and port numbers typi cally may not conflict between applications when using one IP address One IP address may permit only one application on a virtual machine to be the receiver of communication to a certain port For example only one virtual machine can use the TCP port 21 for communication where only one IP address exists as described herein By allowing the address space visible to the virtual machi
7. virtual machine number corresponding to the destination port number in the data packet where the destination port number matches a port range in the port range table and routing the data packet to the unique one virtual machine with the determined virtual machine number 9 The method of claim 7 further comprising the steps of E discarding the incoming packet where the incoming packet is not allowed by a firewall and F returning the incoming packet if the packet does not conform to a protocol chosen from the following TCP Transmission Control Protocol and User Datagram Protocol UDP 10 The method of claim 7 wherein the virtual network manager forwards the data packet to the virtual machine on a virtual network 5 10 a 5 30 40 45 50 65 10 11 The method of claim 7 wherein the plurality of virtual machines are located on a plurality of host computers 12 A computer implemented method for sending data to a virtual machine on a host computer system the method com prising the steps of A configuring multiple virtual machines located on at least one physical host computer with a single internet protocol IP address B configuring a virtual network manager with a port range table with a plurality of port ranges and a corre sponding virtual machine number for each port range C routing an incoming data packet from a physical inter face to a unique one of the multiple virtual machines based
8. A virtual machine is thus a duplicate or instance of a virtual computer residing on a physical host computer A virtual machine is sometimes also called a logical partition principle advantage of a virtual machine system is that multiple operating system OS envi ronments can co exist on the same computer in isolation from each other In addition a virtual machine can provide an instruction set architecture that is different from that of the real machine A virtual machine can be utilized to improve application provisioning maintenance high availability and disaster recovery Virtual machines residing on a physical host computer typically must share a physical network interface of the host computer The physical network interface of the host com puter is connected to an external network As used herein an external network is any network residing outside of a single physical machine and may may not be indirectly contacted through a series of firewalls In some cases it is advantageous to have a single IP address from the external network address space assigned to the physical interface of the host computer Virtual machines residing on the host have their own virtual network interfaces connected to the same external network via the host physical interface In the prior art there have been various approaches to having multiple virtual machines use the same physical network interface BRIEF SUMMARY The disclosure and claims herein are
9. Jan 29 2013 Sheet 4 of 5 US 8 363 656 B2 Configure Multiple Mr 610 Machines With A Single bee Address BRONNEN Conf igure nenatis Ports To Use 630 The Port Numbers in The TS Assigned Port Range Of The Virtual Machines Kn Route Incoming Data On Physical interface To the Multiple Virtual Machines Based On The Destination Port in The Data Has U S Patent Jan 29 2013 For Each incoming Packet E AH d NG a X we tn Sheet 5 of 5 710 2 Daa 22 a 5 ie Ee Poi ie y i hin Na N aina Yes em in 740 7 E TEP or UDR een M we K im awe No ins s M Wadi Yes n s 760 m d M 2 d T Matches Virtua hen Forward To Virtual Machine FIG 7 630 P 730 Discard A MEN Return Packet H H i H 7 AAA AMAA AMAA AAA AAA AA AAA ELLE AE US 8 363 656 B2 US 8 363 656 B2 1 MULTIPLE VIRTUAL MACHINES SHARING A SINGLE IP ADDRESS BACKGROUND 1 Technical Field This disclosure generally relates to computer systems and more specifically relates to sharing a single IP address among multiple virtual machines residing on one or more physical host computers 2 Background Art A singlehost computer may hold multiple virtual instances of a computer referred to as a virtual machine A virtual machine is sometimes defined as an efficient and isolated duplicate of a real machine
10. Machine A 125 A and virtual Machine B 125B on HostB 510B and Virtual Machine C 125 C and virtual Machine D 125D on HostC 510C In this case the virtual network manager handles communication to the vir tual machines on different physical host computers over a physical network 512 rather than a virtual network between the host computers 510A 510B 510C The connection to the virtual machines on the other hosts computers can use any suitable physical network connection This architecture allows a virtual machine to migrate to a different physical host without changing the IP address FIG 6 shows a method 600 for assigning the same IP address on an external network to multiple virtual computers as claimed herein The steps in method 600 are preferably performed by the virtual network manager 123 FIG 1 but portions of the method may also be performed by other soft ware associated with the computer system or by a system administrator First configure multiple virtual machines to use a single IP address step 610 Next configure a port range table with a range of ports for each virtual machine step 620 Then configure ephemeral ports of each of the virtual machines to use source port numbers in the assigned port range for the virtual machine in the port range table step 630 Then route incoming data on a physical interface to the multiple virtual machines based on a destination port number in the data packet step 640 The method is then
11. US008363656B2 az United States Patent 10 Patent No US 8 363 656 B2 Klink et al 45 Date of Patent Jan 29 2013 54 MULTIPLE VIRTUAL MACHINES SHARING 7 830 882 B2 11 2010 Johnson nnn 370 392 A SINGLE IP ADDRESS 7 908 353 B2 3 2011 Hepburn 709 223 2009 0259740 Al 10 2009 Hepburn 75 Inventors Jeffrey Klink Ajax CA Mikhail OTHER PUBLICATIONS Shop khan Thom en VMWARE Workstation 5 Powerful Virtual Machine Software fi orkstation ower irtua achine gt 50 are Tor 73 Assignee International Business Machines tho H V dais a eae 1672003 pp 1 www vmware com pdf ws5 manual pdf Corporation Armonk NY US International Search Report and Written Opinion of the ISA dated Sep 14 2011 International Application No PCT EP201 1 065945 Notice Subject to any disclaimer the term of this kri apk a CE DA pe pP cM PUE under 35 cited by examiner S C y ays Primary Examiner Ayaz Sheikh 21 Appl No 12 882 795 Assistant Examiner Blanche Wong 22 Filed Sep 15 2010 74 Attorney Agent or Firm Martin amp Associates LLC 57 ABSTRACT 65 Prior Publication Data A method and apparatus allow multiple virtual machines to US 2012 0063458 A1 Mar 15 2012 share the same IP address on an external network address space The virtual machines reside on one or more physical 51 Int CI host computer systems A virtual network manager handles HOAL 12 28 2006 01 network
12. achines U S Patent Jan 29 2013 Sheet 1 of 5 US 8 363 656 B2 o9 M e 110 L110 Processori sas Processor N EEEE d r i Network HP Ed ATG ER SE U S Patent Jan 29 2013 Sheet 2 of 5 US 8 363 656 B2 123 3200 e GAB i nns i i E j Virtual Network EG x n i e ae intenceptor ded 214 212 we P P 12 A 3 i oe E Fi Nebwork i E Cloud b amp i Srk Virtual Virtual Machine A Machine B 127A AZB P TTR va Nes eve irewall Physical interlace S tinne M io i 7j r i i 180 i P ud ou i i H 4 i Inc c 230 218 FIG 2 Data Packet x IP Address Port Range Table Do Port Range 418 414 28 80 23 Other 418i 0 25 siga ME US 8 363 656 B2 Sheet 3 of 5 Jan 29 2013 U S Patent 500 pu M h HEM VLEES 218 HORA 512 EE 9 Har 8 A K ag H A zx 5 ERO e E lt a Machine A Machine C AAA ANSA RANA AS RA NAA A A AAA A A AAA A AA AAA A AA AAA AAA AAA AAA AAA AAA AAA AA DANA AAA A AA AAA A AA AAA A AA AAA AA AA AAA A AA AAA A AA AAA A AAA qM FIG 5 U S Patent
13. anages outgoing data The mixer 125 receives outgoing packets from the virtual machines 127A 127B and sends them to the external network 212 The interceptor 124 intercepts incoming traffic to the shared address and depend ing on the target port either sends it to the destination virtual machine via the via the virtual interface or returns it back to the host networking stack if the destination port does not match any of assigned port ranges The interceptor uses a port range table 126 to determine where to send each data packet The interceptor looks at the destination port number in the data packet and sends the data packet to the virtual machine assigned to receive data packets with that particular destina tion port number as determined by the port range table 126 FIG 3 is a block diagram that represents a highly simpli fied diagram of a data packet used for data communication on US 8 363 656 B2 5 the external network The data packed may be a TCP or UDP data packet as known in the art The data packet 300 includes an IP address 310 and a destination port number 312 Other elements 314 of the data packet are not described here but are well known in the art FIG 4 illustrates a table that represents one suitable imple mentation of a port range table 126 used by the interceptor 124 FIG 2 in the virtual network manager 123 FIG 2 The port range table 126 is preferably a file of records stored in memory in a data storage device
14. ble storage medium would include the following a portable computer diskette a hard disk a random access memory RAM a read only memory ROM an eras able programmable read only memory EPROM or Flash memory an optical fiber a portable compact disc read only memory CD ROM an optical storage device a magnetic storage device or any suitable combination ofthe foregoing In the context of this document a computer readable storage medium may be any tangible medium that can contain or store a program for use by or in connection with an instruction execution system apparatus or device A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein for example in baseband or as part of a carrier wave Such a propagated signal may take any of a variety of forms includ ing but not limited to electro magnetic optical or any suit able combination thereof A computer readable signal medium may be any computer readable medium that is not a 0 jak 5 40 45 55 65 8 computer readable storage medium and that can communi cate propagate or transport a program for use by or in con nection with an instruction execution system apparatus or device Program code embodied on a computer readable medium may be transmitted using any appropriate medium including but not limited to wireless wireline optical fiber cable RF etc or any suitable combination o
15. directed to multiple virtual machines virtual computers that collectively are assigned the same IP address on an external network address space The virtual machines reside on one or more physical host computer systems A virtual network manager handles network traffic from a physical interface on the host computer and forwards network data to the appropriate virtual machine based on a destination port number Data packets on the external network each have a destination and source port number The virtual network manager uses a port range table that associates each virtual machine with a range of destina tion port numbers for incoming data packets Each of the virtual machines is assigned a unique destination port range in the port range table and incoming data traffic on the exter nal network is routed to the receiving virtual machines based on the destination port number in the data packet The foregoing and other features and advantages will be apparent from the following more particular description as illustrated in the accompanying drawings BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWING S The disclosure will be described in conjunction with the appended drawings where like designations denote like ele ments and 20 25 30 35 40 45 50 55 60 65 2 FIG 1 is a block diagram of a computer system with a virtual network manager utilizing a port range table to enable multiple virtual computers to u
16. done FIG 7 shows a method 630 for routing data on a physical interface to multiple virtual machines based on the port range table Method 630 is an example of performing the step 630 in FIG 6 according to the examples described in the previous paragraph The steps in method 630 are preferably performed by the virtual network manager 123 FIG 1 but portions of the method may also be performed by other software associ ated with the computer system Method 630 is performed for each new incoming data packet on the physical interface step 710 Next the data packed is checked by the firewall step 720 If the data packet is not allowed by the firewall step 720 no then the data packed is discarded step 730 and the method returns to step 710 If the data packet is allowed by the firewall step 720 yes then check if the data packed con forms to the TCP or UDP protocols step 740 If the data packet does not conform to the TCP or UDP protocols step 740 no then return the packet step 750 and return to step 710 If the data packet does conform to the TCP or UDP protocols step 740 yes then determine if the destination port number of the packet matches a destination port number in a port range for a virtual machine in the port range table step 760 If the destination port number of the packet does not matches a destination port number in the port range table step 760 no then return the packet step 750 and return to step 710 I
17. f the destination port number of the packet does US 8 363 656 B2 7 matches a destination port number in the port range table step 760 yes then forward the data packet to a unique one ofthe virtual machines depending on the destination port number in the data packet step 770 and return to step 710 In the embodiment described above the virtual machine number of the unique virtual machine to forward the packet is deter mined by selecting the virtual machine number stored in the port range table corresponding to a port range that includes the destination port number in the data packet The flowchart and block diagrams in the Figures illustrate the architecture functionality and operation of possible implementations of systems methods and computer program products according to various embodiments of the present invention In this regard each block in the flowchart or block diagrams may represent a module segment or portion of code which comprises one or more executable instructions for implementing the specified logical function s It should also be noted that in some alternative implementations the functions noted in the block may occur out ofthe order noted in the figures For example two blocks shown in succession may in fact be executed substantially concurrently or the blocks may sometimes be executed in the reverse order depending upon the functionality involved It will also be noted that each block of the block diagra
18. f the foregoing Computer program code for carrying out operations for aspects of the present invention may be written in any com bination of one or more programming languages including an object oriented programming language such as Java Smalltalk C or the like and conventional procedural pro gramming languages such as the C programming language or similar programming languages The program code may execute entirely on the user s computer partly on the user s computer as a stand alone software package partly on the user s computer and partly on a remote computer or entirely on the remote computer or server In the latter scenario the remote computer may be connected to the user s computer through any type of network including a local area network LAN or a wide area network WAN or the connection may be made to an external computer for example through the Internet using an Internet Service Provider Aspects of the present invention are described below with reference to flow chart illustrations and or block diagrams of methods appa ratus systems and computer program products according to embodiments of the invention It will be understood that each block of the flowchart illustrations and or block diagrams and combinations of blocks in the flowchart illustrations and orblock diagrams can be implemented by computer program instructions These computer program instructions may be provided to a processor of a general pur
19. he virtual machines is assigned a unique destination port range in the port range table and incoming data traffic on the external network is routed to the receiving virtual machines based on the destination port number in the data packet Referring to FIG 1 a computer system 100 is one suitable implementation of a computer system that includes a virtual network manager as described herein Computer system 100 is an International Business Machines Corporation IBM Power System which can run multiple operating systems including the IBM i operating system and Linux operating system However those skilled in the art will appreciate that the disclosure herein applies equally to any computer system capable of being connected to an external network As shown in FIG 1 computer system 100 comprises one or more pro cessors 110 a main memory 120 a mass storage interface 130 a display interface 140 and a network interface 150 and a plurality of I O slots 180 These system components are interconnected through the use of a system bus 160 Mass storage interface 130 is used to connect mass storage devices with a computer readable medium such as direct access storage devices 155 to computer system 100 One specific type of direct access storage device 155 is a readable and writable CD RW drive which may store data to and read data from a CD RW 195 Note that mass storage interface 130 display interface 140 and network interface 150 may actually
20. l machine number for each port range and wherein the virtual network manager determines the virtual machine number of the unique one of the plurality of virtual machines by selecting the virtual machine number stored in the port range table corresponding to a port range that includes the destina tion port number in the data packet 14 The article of manufacture of claim 13 wherein a fire wall protects the host computer from the external network 15 The article of manufacture of claim 13 and wherein the plurality of virtual machines are located on a plurality of host computers 16 The article of manufacture of claim 13 wherein the virtual network manager forwards the data packet to the vir tual machine on a virtual network 17 Thearticle of manufacture of claim 13 wherein the data packets conform to a protocol chosen from the following TCP Transmission Control Protocol and User Datagram Protocol UDP 18 Thearticle of manufacture of claim 13 wherein ephem eral ports of the virtual machines are configured to use port numbers in a range of port numbers in the port range table assigned to the virtual machine
21. ms and or flowchart illustration and combinations ofblocks in the block diagrams and or flowchart illustration can be implemented by special purpose hardware based systems that perform the specified functions or acts or combinations of special purpose hard ware and computer instructions As will be appreciated by one skilled in the art aspects of the present invention may be embodied as a system method or computer program product Accordingly aspects of the present invention may take the form of an entirely hardware embodiment an entirely software embodiment including firmware resident software micro code etc or an embodi ment combining software and hardware aspects that may all generally be referred to herein as a circuit module or system Furthermore aspects of the present invention may take the form ofa computer program product embodied in one or more computer readable medium s having computer read able program code embodied thereon Any combination of one or more computer readable medi um s may be utilized The computer readable medium may be a computer readable signal medium or a computer read able storage medium A computer readable storage medium may be for example but not limited to an electronic mag netic optical electromagnetic infrared or semiconductor system apparatus or device or any suitable combination of the foregoing More specific examples a non exhaustive list ofthe computer reada
22. ne to belong to the external network address space the address space of the virtual machines is transparent to all protocols including peer to peer protocols and Voice over IP protocols Both the mixer 125 and interceptor 124 are located behind the host firewall 216 thus protecting virtual machines from external threats Firewalls for the host system and client sys tem may remain unchanged Since the shared IP address is seen as local to the host it treats any packet rule as though it is a local rule and directing it for a local application A secondary firewall or rule set is not required since only one IP address is used In the preferred example described above all the virtual machines are configured to use the same IP address on the network interface Each virtual machine is assigned a unique port range which may consist of one or more non contiguous ranges All applications that are accepting incoming TCP or UDP packets are configured to use ports from the assigned range only as these will be the only known incoming outgo ing ports The virtual machine operating systems may be configured to use ephemeral ports from the assigned range Ephemeral ports are used as temporary ports in outgoing TCP and UDP packets The virtual machines assign the source port on outgoing messages in the same range of ports assigned to the virtual machine in the port range table so that returning messages will return to the proper virtual machine The host
23. ng mechanism of the future In addition many different network protocols can be used to implement a network These protocols are special ized computer programs that allow computers to communi cate across a network TCP Transmission Control Protocol and User Datagram Protocol UDP are examples of suitable network protocols FIG 2 illustrates a block diagram for a host computer with multiple virtual machines to share the same IP address on an external network address space The host computer 100 in FIG 2 is the host computer described above with reference to FIG 1 or a similar computer system The host computer 100 is connected to a network cloud 212 by a physical network 214 The network cloud represents an external network of computers connected together and communicating with the host computer 100 Data communications from other com puters in the network cloud 212 flows to the host computer 100 through a Firewall 216 Data is sent to the host computer over the network 214 in data packets according to different data protocols The data packets are routed to multiple virtual machines 127A 127B residing on the host computer 100 by a virtual network manager 123 The virtual network manager 123 receives the data packets on a physical interface 216 and then sends the data packets to the appropriate virtual machine using a virtual interface 220 The virtual network manager has an interceptor 124 that manages incoming data and a mixer 125 that m
24. nvironments on the same physical com puter system The memory further includes a software appli cation 122 The memory includes a virtual network manager 123 The virtual network manager includes an interceptor 124 a mixer 125 and a port range table 126 The memory also includes one or more virtual machines or computers 127 Each of these entities in the memory is described further below The virtual machine s 127 are shown to reside within main memory 120 However one skilled in the art will recognize that a virtual machine or logical partition is a logical con struct that includes resources other than memory A virtual machine 127 typically specifies a portion of memory along with an assignment of processor capability an other system resources such as I O slots 180 and I O adapters which may reside in I O slots 180 Thus one virtual machine could be defined to include two processors and a portion of memory 120 along with one or more I O processors that can provide the functions of mass storage interface 130 display interface 140 network interface 150 or interfaces to I O adapters or other devices such as modems plugged into I O slots 180 Another virtual machine could then be defined to include three other processors a different portion of memory 120 and one or more I O processors The virtual machine s is shown in FIG 1 to symbolically represent virtual machines or logi cal partitions which would include system resources ou
25. on a destination port number in the data packet by determining a virtual machine number corresponding to a port range in the port range table which includes the destination port number in the data packet and routing the data packet to the unique one virtual machine with the determined virtual machine number D discarding the incoming packet where the incoming packet is not allowed by a firewall E returning the incoming packet if the packet does not conform to a protocol chosen from the following TCP Transmission Control Protocol and User Datagram Protocol UDP F configuring ephemeral ports of the virtual machines to use port numbers in a range of port numbers in the port range table assigned to the virtual machine G wherein the data packet is routed on a virtual network 13 An article of manufacture comprising software stored on non transitory computer readable storage medium the software comprising a virtual network manager that forwards a data packet with a destination port number received on a physical inter face to a unique one of a plurality of virtual machines depending on the destination port number in the data packet where the plurality of virtual machines share the physical interface having a single internet protocol IP address connecting a host computer to an external net work wherein the virtual network manager further com prises a port range table with a plurality of port ranges and a corresponding virtua
26. pose computer spe cial purpose computer or other programmable data process ing apparatus to produce a machine such that the instruc tions which execute via the processor of the computer or other programmable data processing apparatus create means for implementing the functions acts specified in the flowchart and or block diagram block or blocks These computer pro gram instructions may also be stored in a computer readable medium that can direct a computer other programmable data processing apparatus or other devices to function in a par ticular manner such that the instructions stored in the com puter readable medium produce an article of manufacture including instructions which implement the function act specified in the flowchart and or block diagram block or blocks The computer program instructions may also be loaded onto a computer other programmable data processing apparatus or other devices to cause a series of operational steps to be performed on the computer other programmable apparatus or other devices to produce a computer imple mented process such that the instructions which execute on the computer or other programmable apparatus provide pro cesses for implementing the functions acts specified in the flowchart and or block diagram block or blocks One skilled in the art will appreciate that many variations are possible within the scope of the claims While the examples herein are described in terms of time these other
27. se a single network IP address as described herein FIG 2 is a block diagram that illustrates how data packets are routed to multiple virtual machines residing on a host computer by a virtual network manager FIG 3 is a block diagram that represents a data packet sent over the network described herein FIG 4 is a block diagram that shows an example of a port range table FIG 5 is a block diagram similar to FIG 1 that illustrates multiple physical hosts with virtual machines utilizing the same IP address FIG 6 is a method flow diagram for sharing a single IP address among multiple virtual machines and FIG 7 is an example of a method flow diagram for routing incoming data to multiple virtual machines based on a port range table according to step 630 in FIG 6 DETAILED DESCRIPTION Described herein is an apparatus and method for multiple virtual machines to share the same IP address on an external network address space The virtual machines reside on one or more physical host computer systems A virtual network manager handles network traffic from a physical interface on the host computer and forwards network data to the appro priate virtual machine based on a destination port number Data packets on the external network each have a destination and source port number The virtual network manager uses a port range table that associates each virtual machine with a range of destination port numbers for incoming data packets Each of t
28. traffic from a physical interface on the host computer HOAL 12 56 2006 01 and forwards network data to the appropriate virtual machine 52 US CL 4 imer 370 392 based on a destination port number Data packets on the 58 Field of Classification Search 370 392 external network each have a destination and source port See application file for complete search history number The virtual network manager uses a port range table that associates each virtual machine with a range of destina 56 References Cited tion port numbers for incoming data packets Each of the U S PATENT DOCUMENTS 6 665 295 B1 12 2003 Burns etal 370 389 7 228 337 Bl 6 2007 Bornstein et al 7 444 408 B2 10 2008 Rajaveluet al 709 227 7 706 303 B2 4 2010 Bose et al ttt ttt ehh Configure Multiole Virtual Machines With A Single IP Address eve 3 virtual machines is assigned a unique destination port range in the port range table and incoming data traffic on the exter nal network is routed to the receiving virtual machines based on the destination port number in the data packet 18 Claims 5 Drawing Sheets Conf Ha ie A Virtual Network 620 i Manager With A ron Range Tabe Configure Ephemeral Ports To Use The Port Numbers In The W Assigned Port Range Of The Physical interface To the Multiple i Virtual Machinas Based On Tha 37 Destination Port in The Data Packet ncoming Data Qn Virtual M
29. tside of memory 120 within computer system 100 Computer system 100 utilizes well known virtual address ing mechanisms that allow the programs of computer system 100 to behave as if they only have access to a large single storage entity instead of access to multiple smaller storage entities such as main memory 120 and DASD device 155 Therefore while operating system 121 application 122 vir tual network manager 123 and the virtual machine s 127 are shown to reside in main memory 120 those skilled in the art will recognize that these items are not necessarily all com pletely contained in main memory 120 at the same time It should also be noted that the term memory is used herein generically to refer to the entire virtual memory of computer system 100 and may include the virtual memory of other computer systems coupled to computer system 100 Processor 110 may beconstructed from one or more micro processors and or integrated circuits Processor 110 executes program instructions stored in main memory 120 Main memory 120 stores programs and data that processor 110 may access When computer system 100 starts up processor 110 initially executes the program instructions that make up oper ating system 121 and later executes the program instructions that make up the application 122 and the virtual network manager 123 20 25 30 35 40 45 50 55 60 65 4 Although computer system 100 is shown to contain only
Download Pdf Manuals
Related Search
Related Contents
JVC CS-V517 Instruction Manual CGV wired volume master Whirlpool EB21DKXDB01 User's Manual Evaluación de variedades de morera en la alimentación del gusano Elections départementales, mode d`emploi (format pdf) 回 目納期=フラック ーヶ月程廣 EcoMail - Frama Deutschland Philips DVP3950 User Guide Manual User Manual MP134E - Physik Instrumente Copyright © All rights reserved.
Failed to retrieve file