Patent ID: 8254261

Claim:
A system, comprising: a first virtual machine (VM) executing on a host, the first virtual machine sharing physical hardware resources of the host, comprising: a first Virtual Network Interface Card (VNIC) associated with a first hardware address (HA); a first VM proxy comprising a first proxy VNIC associated with a second HA and a first proxy driver; and a first virtual switch configured to couple the first VNIC and the first proxy VNIC, wherein the first virtual switch is associated with a first Vswitch table, wherein the first Vswitch table comprises an entry associating the first HA with the first VNIC and an entry associating the second HA with the first proxy VNIC; a second virtual machine executing on the host, the second virtual machine sharing the physical hardware resources of the host, comprising: a second VNIC associated with the second hardware address (HA); a second VM proxy comprising a second proxy VNIC associated with the first HA and a second proxy driver; a second virtual switch configured to couple the second VNIC and the second proxy VNIC, wherein the second virtual switch is associated with a second Vswitch table, wherein the second Vswitch table comprises an entry associating the second HA with the second VNIC and an entry associating the first HA with the second proxy VNIC; and a hypervisor executing on the host and configured to send packets between the first and second virtual machines, and wherein one of the first and second VM proxy is configured to only communicate packets to the other of the first and second VM proxy; wherein the first virtual switch is configured to: receive a first packet associated with the second HA, and send the first packet to the first proxy VNIC when an entry in the Vswitch table associates the second HA with the first proxy VNIC, and wherein the first proxy VNIC is configured to: receive the first packet from the first virtual switch when the first virtual switch determines that the entry in the first Vswitch table associates the second HA with the first proxy VNIC, and send the first packet to the first proxy driver wherein the first proxy driver is configured to send the first packet to the second proxy driver via the hypervisor; wherein the second proxy driver is configured to send the first packet to the second proxy VNIC; wherein the second proxy VNIC is configured to send the first packet to the second virtual switch; wherein the second virtual switch is configured to: receive the first packet associated with the second HA, and send the first packet to the second VNIC when an entry in the second Vswitch table associates the second HA with the second VNIC.