Patent ID: 8660129
Filing Date: 2014-02-25
Classification: H04L

Abstract:
1. A virtual network routing system comprising: a virtual network (VN) configuration database for storing virtual network addresses and physical network addresses for a plurality of nodes in a first virtual network and in a second virtual network; a virtual-network configuration process, coupled to receive network-configuration requests from a client operated by a subscriber, for writing a new virtual network address and a new physical network address for a new node being added to the first virtual network; a virtual-router configuration process, coupled to receive a virtual router configuration request from the client, for writing a gateway virtual network address for a virtual router that connects the first virtual network to the second virtual network; wherein applications executing on the new node send data to other nodes in the plurality of nodes in the first virtual network using the virtual network addresses and receive data from the first virtual network addressed to the new virtual network address; wherein applications executing on the new node send data to nodes in the second virtual network using the gateway virtual network address and receive data from a node in the second virtual network addressed to the new virtual network address; a plurality of VN switch tables, wherein a VN switch table is stored on each node in the first virtual network, the VN switch table storing entries for nodes on the first virtual network and on the second virtual network, the entries storing a virtual network address and a physical network address for each node on the first virtual network and for each node on the second virtual network; a VN configuration controller, activated by the virtual-network configuration process when the VN configuration database is updated, the VN configuration controller sending updates of the VN configuration database to the plurality of nodes in the first virtual network; a plurality of virtual network management daemons running on the plurality of nodes in the first virtual network, wherein a virtual network management daemon receives the updates from the VN configuration controller and writes the updates to the VN switch table; wherein each node in the plurality of nodes on the first virtual network further comprises: a network stack that sends data to an application executing on a node when a virtual network address of an incoming packet matches a virtual network address of the node, and the network stack receives data from the application and sends the data to a virtual network address specified by the application; a network interface controller (NIC), coupled to a physical local-area network, for receiving data matching a physical network address for the node, and for sending data to a physical network address; and a VN device driver shim between the network stack and the NIC, the VN device driver shim intercepting data between the network stack and the NIC, the VN device driver shim intercepting a virtual network address from the network stack and encapsulating data with a physical network address sent to the NIC using the VN switch table, whereby data sent to virtual network addresses of the network stack are encapsulated using physical network addresses of the physical local-area network by the VN device driver shim looking up a translation in the VN switch table.