Patent ID: 8396946

Claim:
A computer-implemented method comprising: receiving configuration information indicating a specified network topology for a first virtual computer network and indicating multiple virtual network addresses for use with multiple computing nodes of the first virtual computer network, wherein the multiple virtual network addresses include an indicated range of virtual network addresses that are a subset of the multiple virtual network addresses and that are for use with an external location having a first external device of the first virtual computer network, wherein the multiple computing nodes are connected to a substrate network, and wherein the external location of the first external device is separated from the substrate network via one or more external connections that are not part of the substrate network; and providing, by one or more programmed computing systems, the first virtual computer network in accordance with the received configuration information by overlaying the first virtual computer network on the substrate network without physically implementing the specified network topology for the first virtual computer network, the providing of the first virtual computer network including: for a first communication that is sent by one of the multiple computing nodes to a destination that is another of the multiple computing nodes, encoding the first communication in a manner specific to the substrate network, and forwarding the encoded first communication over the substrate network to the destination another computing node; after receiving an indication of a second communication that a source one of the multiple computing nodes specifies to be sent to a first virtual network address in the indicated range that is associated with the first external device, encoding the second communication in a manner specific to the substrate network, and forwarding the encoded second communication over the substrate network from the source one computing node to a translation manager module associated with the first external device; and under control of the translation manager module, decoding the forwarded encoded second communication to remove information specific to the substrate network; and further forwarding the decoded second communication from the substrate network to the first external device over the one or more external connections.