Network address translation for virtual machines
AssigneeGoogle Inc.
InventorEvan K. Anderson
Life of this patent
Estimating the term…
Abstract
Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for receiving a packet from a client, the packet having header information including a destination Internet Protocol (IP) address, a destination port, a source IP address, and a source port, and wherein the source IP address and source port are associated with the client; selecting a destination virtual machine based on the destination port; modifying the packet by replacing the destination IP address in the header information with an IP address of the selected destination virtual machine; and sending the modified packet to the destination virtual machine.
Claims20
A computer-implemented method comprising:
- receiving, at a host machine of a virtual machine, a packet for a client from the virtual machine, the packet having header information including a source Internet Protocol (IP) address of the virtual machine as a source IP address of the packet, a source port of the virtual machine as a source port of the packet, and a destination IP address, wherein the virtual machine is a hardware virtualization having the source IP address of the virtual machine and provides data included in the packet;
- modifying, by the host machine that hosts the virtual machine, the packet to replace the source port of the virtual machine with a different source port while maintaining both the source IP address of the packet and the destination IP address of the packet;
- sending, by the host machine, the modified packet to a gateway that is configured to perform operations of:
- further modifying the modified packet to replace the source IP address of the modified packet from the source IP address of the virtual machine to a source IP address of the gateway while maintaining both the different source port and the destination IP address of the modified packet;
- and
- sending the further modified packet to the client.
A system comprising:
- one or more computers and one or more storage devices storing instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising:
- receiving, at a host machine of a virtual machine, a packet for a client from the virtual machine, the packet having header information including a source Internet Protocol (IP) address of the virtual machine as a source IP address of the packet, a source port of the virtual machine as a source port of the packet, and a destination IP address, wherein the virtual machine is a hardware virtualization having the source IP address of the virtual machine and provides data included in the packet;
- modifying, by the host machine that hosts the virtual machine, the packet to replace the source port of the virtual machine with a different source port while maintaining both the source IP address of the packet and the destination IP address of the packet;
- sending, by the host machine, the modified packet to a gateway that is configured to perform operations of:
- further modifying the modified packet to replace the source IP address of the modified packet from the source IP address of the virtual machine to a source IP address of the gateway while maintaining both the different source port and the destination IP address of the modified packet;
- and
- sending the further modified packet to the client.
A non-transitory computer-readable medium storing software comprising instructions executable by one or more computers which, upon such execution, cause the one or more computers to perform operations comprising:
- receiving, at a host machine of a virtual machine, a packet for a client from the virtual machine, the packet having header information including a source Internet Protocol (IP) address of the virtual machine as a source IP address of the packet, a source port of the virtual machine as a source port of the packet, and a destination IP address, wherein the virtual machine is a hardware virtualization having the source IP address of the virtual machine and provides data included in the packet;
- modifying, by the host machine that hosts the virtual machine, the packet to replace the source port of the virtual machine with a different source port while maintaining both the source IP address of the packet and the destination IP address of the packet;
- sending, by the host machine, the modified packet to a gateway that is configured to perform operations of:
- further modifying the modified packet to replace the source IP address of the modified packet from the source IP address of the virtual machine to a source IP address of the gateway while maintaining both the different source port and the destination IP address of the modified packet;
- and
- sending the further modified packet to the client.
Dependencies are inferred from the claim text.