VNET is the part of our system that creates and maintains the networking illusion, that the user's virtual machines are on the user's local area network. It is a simple proxying scheme that works entirely at user level. The primary dependence it has on the virtual machine monitor is that there must be a mechanism to extract the raw Ethernet packets sent by the virtual network card, and a mechanism to inject raw Ethernet packets into the virtual card. The specific mechanisms we use are packet filters, packet sockets, and VMWare's host-only networking interface. In the following, we describe VMWare's model of networking, how we build upon it, the interface of VNET, and performance results in the local and wide area.
We use the following terminology. The User is the owner of the virtual machines (his VMs) which he accesses using his Client machine. The user also has a Proxy machine for networking, although the Proxy and Client can be the same machine. Each VM runs on a Host, and multiple VMs may run on each Host. The Local environment of a VM is the LAN to which its Host it is connected, while the Remote environment is the LAN to which the Client and the Proxy are connected.