System and method for distributed flow state p2p setup in virtual networks
AssigneeMidokura Sarl
InventorsDuarte NUNES, Guillermo ONTANON
Life of this patent
Estimating the term…
Abstract
Systems and methods for virtual network implementation and management based on a peer-to-peer metadata exchange are disclosed. Metadata pertaining to a flow traversing a virtual network overlaying an underlying network is generated in accordance with actions executed to send data packets via the underlying network relative to the virtual network. The metadata is encapsulated in one or more control packets sent to a set of nodes of the underlying network. Each node of the set of nodes maintains a copy of the metadata received in the one or more control packets in a local data store. The metadata is accessed via the local data store when needed to process packets of the flow.
Claims20
A computing device, comprising:
- a communication interface configured to couple the computing device to a network;
- and
- a processor coupled to a non-transitory, computer-readable storage medium having stored thereon computer-executable instructions for a virtual network agent that routes data packets using a virtual network overlaying an underlying network, the virtual network agent, when executed by the processor, configure the processor to:
- determine whether a communication flow associated with a data packet received at the first communication interface is a new flow;
- generate state information for the communication flow when the communication flow is determined to be a new flow;
- generate a control packet that includes the state information for the communication flow;
- transmit the control packet to a node associated with the communication flow;
- and
- transmit the data packet to the node.
A non-transitory, computer-readable storage medium having stored thereon computer-executable instructions for routing flows with a virtual network overlaying an underlying network, the computer-executable instructions comprising:
- a software application that, when executed by a processor, configures the processor to:
- receive a control packet that includes state information for a communication flow routed through the underlying network based on the virtual network overlay;
- write the state information to a local data store;
- receive a data packet associated with the communication flow;
- retrieve the state information from the local data store;
- transform the data packet according to the state information;
- and
- send the transformed data packet to a node of the underlying network.
A computer-implemented method of establishing a bi-directional connection comprising:
- storing a network topology comprising a graph of virtual nodes and physical nodes in a shared network database;
- providing access to the shared database to a plurality of physical nodes, the plurality of physical nodes including an ingress node and an egress node;
- receiving a data packet at the ingress node, the data packet having a header including a source field and a destination field;
- providing the packet to a decision engine hosted by the ingress node, called the ingress node decision engine, the ingress node decision engine comparing the packet to an at least one filtering rule to produce a filtering result and, based on the filtering result and on the network topology, calculating a mapping which maps the destination field to an ingress node, writing the mapping to a local mapping table, applying the mapping to the data packet, encoding the mapping in a mapping packet, and entering an inbound flow in a flow table, the inbound flow directing a plurality of following packets, which produce the same filtering result, from the ingress node to the egress node;
- sending the mapping packet to the egress node;
- and
- sending the data packet to the egress node.
Dependencies are inferred from the claim text.