1. A method for networking in a cloud computing environment having a plurality of computing nodes, the method comprising: upon receiving authorization, communicating with a plurality of virtual machines to provide at least one virtual network to service to the plurality of virtual machines, wherein each of the plurality of virtual machines communicate with a virtual network layer at a virtual interface via at least one virtual Ethernet (vEthernet); associating a first virtual Media Access Control (MAC) address to a first virtual machine; associating a second virtual MAC address to a second virtual machine; storing a mapping between the first virtual MAC address and a first Internet Protocol (IP) address of a first host machine upon which the first virtual machine executes; storing a mapping between the second virtual MAC address and a second Internet Protocol (IP) address of a second host machine upon which the second virtual machine executes; receiving, at an operating system of the first host machine from the first virtual machine, a particular packet that specifies the first virtual MAC address as a source and the second virtual MAC address as a destination; in response to receiving the particular packet, determining, in the operating system of the first host machine, and based on the mapping between the second virtual MAC address and the second IP address, that the particular packet is to be routed to the second host machine; encapsulating, at the operating system of the first host machine, the particular packet within encapsulating data that specifies the second IP address as a destination; and sending the encapsulating data containing the particular packet through a physical network interface of the first host machine.