Method and system for sharing a network connection in a virtual computer system
First Claim
1. A method for sharing a network connection between a host software system and a virtual machine, the network connection connecting a single physical computer system to a computer network, the host software system and the virtual machine both executing within the single physical computer system, with a first layer 2 address being associated with the network connection, the method comprising:
- allowing the host software system to use the network connection using the first layer 2 address and a first layer 3 address;
allowing the virtual machine to attempt to use the network connection using a second layer 2 address and a second layer 3 address, the second layer 2 address being different from the first layer 2 address and the second layer 3 address being different from the first layer 3 address;
for an outgoing data frame from the virtual machine to the computer network, replacing an occurrence of the second layer 2 address within the outgoing data frame with the first layer 2 address, so that the data frame appears to have originated from a network entity using the first layer 2 address and the second layer 3 address; and
for an incoming data frame from the computer network, if the data frame is addressed using the first layer 2 address and the second layer 3 address, replacing the first layer 2 address with the second layer 2 address and conveying the data frame toward the virtual machine, so that, after modification, the incoming data frame appears to have been addressed to the virtual machine, using the second layer 2 address and the second layer 3 address.
2 Assignments
0 Petitions
Accused Products
Abstract
A virtual computer system including multiple virtual machines (VMs) is implemented in a single physical computer system. The multiple VMs have their own layer 2 and layer 3 addresses, but they share a common network connection for which only a single layer 2 address may be used, such as in the case of a standard wireless network interface card (NIC) or in the case of multiple NICs and a standard NIC teaming solution. For outgoing data frames from a VM to a network entity outside the virtual computer system, the layer 2 address of the VM contained in the source address field is generally replaced with the layer 2 address of the network connection. For incoming data frames from a network entity to a VM, the layer 2 address of the network connection contained in the destination address field is generally replaced with the layer 2 address of the VM.
492 Citations
30 Claims
-
1. A method for sharing a network connection between a host software system and a virtual machine, the network connection connecting a single physical computer system to a computer network, the host software system and the virtual machine both executing within the single physical computer system, with a first layer 2 address being associated with the network connection, the method comprising:
-
allowing the host software system to use the network connection using the first layer 2 address and a first layer 3 address; allowing the virtual machine to attempt to use the network connection using a second layer 2 address and a second layer 3 address, the second layer 2 address being different from the first layer 2 address and the second layer 3 address being different from the first layer 3 address; for an outgoing data frame from the virtual machine to the computer network, replacing an occurrence of the second layer 2 address within the outgoing data frame with the first layer 2 address, so that the data frame appears to have originated from a network entity using the first layer 2 address and the second layer 3 address; and for an incoming data frame from the computer network, if the data frame is addressed using the first layer 2 address and the second layer 3 address, replacing the first layer 2 address with the second layer 2 address and conveying the data frame toward the virtual machine, so that, after modification, the incoming data frame appears to have been addressed to the virtual machine, using the second layer 2 address and the second layer 3 address. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computer program embodied in a tangible medium, the computer program being executable in a computer system, the computer system having a network connection to a computer network, the network connection having a first layer 2 address associated therewith, the computer system also including a virtual machine, the virtual machine using a second layer 2 address and a second layer 3 address for communications with the computer network, the second layer 2 address being different from the first layer 2 address, the computer program comprising:
-
a virtual network connector for conveying data frames between the virtual machine and the computer network using the network connection; and a mapping unit for selectively modifying layer 2 addresses within data frames as they are conveyed between the virtual machine and the network connection, wherein, for an outgoing data frame from the virtual machine to the computer network, the mapping unit replaces the second layer 2 address of the virtual machine with the first layer 2 address of the network connection, and, wherein, for an incoming data frame from the computer network to the virtual machine, if the incoming data frame is addressed using the first layer 2 address of the network connection and the second layer 3 address of the virtual machine, the mapping unit replaces the first layer 2 address of the network connection with the second layer 2 address of the virtual machine. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A method for sharing a network connection between a first software entity and a second software entity, the network connection connecting a single physical computer system to a computer network, both software entities executing within the single physical computer system, the method comprising:
-
allowing the first software entity to use the network connection using a first lower layer network address and a first higher layer network address; allowing the second software entity to attempt to use the network connection using a second lower layer network address and a second higher layer network address, the second lower layer network address being different from the first lower layer network address and the second higher layer network address being different from the first higher layer network address; for an outgoing data frame from the second software entity to the computer network, replacing an occurrence of the second lower layer network address within the outgoing data frame with the first lower layer network address, so that the data frame appears to have originated from a network entity using the first lower layer network address and the second higher layer network address; and for an incoming data frame from the computer network, if the data frame is addressed using the first lower layer network address and the second higher layer network address, replacing the first lower layer network address with the second lower layer network address and conveying the data frame toward the second software entity, so that, after modification, the incoming data frame appears to have been addressed to the second software entity, using the second lower layer network address and the second higher layer network address. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27)
-
-
28. A method for sharing a network connection between a first software entity and a second software entity, the network connection connecting a single physical computer system to a computer network, the network connection having a first layer 2 address associated therewith, both software entities executing within the single physical computer system, the method comprising:
-
allowing the first software entity to attempt to use the network connection using a second lower layer network address and a second higher layer network address, the second lower layer network address being different from the first lower layer network address; allowing the second software entity to attempt to use the network connection using a third lower layer network address and a third higher layer network address, the third lower layer network address being different from the first lower layer network address and from the second lower layer network address, and the third higher layer network address being different from the second higher layer network address; for an outgoing data frame from the first software entity to the computer network, replacing an occurrence of the second lower layer network address within the outgoing data frame with the first lower layer network address, so that the data frame appears to have originated from a network entity using the first lower layer network address and the second higher layer network address; for an outgoing data frame from the second software entity to the computer network, replacing an occurrence of the third lower layer network address within the outgoing data frame with the first lower layer network address, so that the data frame appears to have originated from a network entity using the first lower layer network address and the third higher layer network address; for an incoming data frame from the computer network, if the data frame is addressed using the first lower layer network address and the second higher layer network address, replacing the first lower layer network address with the second lower layer network address and conveying the data frame toward the first software entity, so that, after modification, the incoming data frame appears to have been addressed to the first software entity, using the second lower layer network address and the second higher layer network address; and for an incoming data frame from the computer network, if the data frame is addressed using the first lower layer network address and the third higher layer network address, replacing the first lower layer network address with the third lower layer network address and conveying the data frame toward the second software entity, so that, after modification, the incoming data frame appears to have been addressed to the second software entity, using the third lower layer network address and the third higher layer network address. - View Dependent Claims (29, 30)
-
Specification