Managing external communications for provided computer networks
First Claim
1. A computer-implemented method comprising:
- providing, by one or more programmed computing systems, a virtual computer network;
receiving an indication of a communication directed to a destination network address from a first computing node of the virtual computer network;
selecting, by the one or more programmed computing systems and based at least in part on one or more attributes of the communication, and before sending the communication over a substrate network on which the virtual computer network is overlaid and that separates the first computing node from a final destination associated with the destination network address, an intermediate destination node for the communication from a group of multiple intermediate destination nodes connected to the substrate network, wherein the selecting of the intermediate destination node includes performing hashing, using the destination network address, on multiple substrate network addresses associated with the multiple intermediate destination nodes in order to obtain a substrate network address for the intermediate destination node to be selected; and
sending, by the one or more programmed computing systems and using the substrate network address associated with the selected intermediate destination node, the communication over the substrate network from the first computing node to the selected intermediate destination node, to enable forwarding of the communication by the selected intermediate destination node to the final destination.
0 Assignments
0 Petitions
Accused Products
Abstract
Techniques are described for providing managed computer networks. In some situations, the techniques include managing communications for computing nodes of a managed computer network by using a pool of multiple alternative intermediate destinations to forward at least some communications to other final destinations. For example, a manager module associated with a source computing node may select a particular one of multiple alternative intermediate destinations to use for one or more particular communications from the source computing node to an indicated final destination, such as based on network addresses associated with the source computing node and/or the final destination. The multiple alternative intermediate destinations may have various forms, including multiple alternative edge devices at a first location at which various computing nodes are co-located that operate to manage communications between those co-located computing nodes at the first location and other external computer systems at one or more other locations.
25 Citations
23 Claims
-
1. A computer-implemented method comprising:
-
providing, by one or more programmed computing systems, a virtual computer network; receiving an indication of a communication directed to a destination network address from a first computing node of the virtual computer network; selecting, by the one or more programmed computing systems and based at least in part on one or more attributes of the communication, and before sending the communication over a substrate network on which the virtual computer network is overlaid and that separates the first computing node from a final destination associated with the destination network address, an intermediate destination node for the communication from a group of multiple intermediate destination nodes connected to the substrate network, wherein the selecting of the intermediate destination node includes performing hashing, using the destination network address, on multiple substrate network addresses associated with the multiple intermediate destination nodes in order to obtain a substrate network address for the intermediate destination node to be selected; and sending, by the one or more programmed computing systems and using the substrate network address associated with the selected intermediate destination node, the communication over the substrate network from the first computing node to the selected intermediate destination node, to enable forwarding of the communication by the selected intermediate destination node to the final destination. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A computer-implemented method comprising:
-
providing, by one or more programmed computing systems, a virtual computer network; receiving an indication of a communication directed to a destination network address from a first computing node of the virtual computer network; selecting, by the one or more programmed computing systems and based at least in part on one or more attributes of the communication, and before sending the communication over a substrate network on which the virtual computer network is overlaid and that separates the first computing node from a final destination associated with the destination network address, an intermediate destination node for the communication from a group of intermediate destination nodes connected to the substrate network; tracking an association of the selected intermediate destination node with a combination of the first computing node and the final destination; sending, by the one or more programmed computing systems, the communication over the substrate network from the first computing node to the selected intermediate destination node, to enable forwarding of the communication by the selected intermediate destination node to the final destination; receiving one or more indications of one or more second communications that are each from the first computing node and directed to the final destination using the destination network address; selecting the intermediate destination node to use for each of the one or more second communications based on the tracked association; and sending each of the one or more second communications over the substrate network to the selected intermediate destination node, for forwarding by the selected intermediate destination node to the final destination.
-
-
15. A computer-implemented method comprising:
-
providing, by one or more programmed computing systems, a virtual computer network; receiving an indication of a communication directed to a destination network address from a first computing node of the virtual computer network; selecting, by the one or more programmed computing systems and based at least in part on one or more attributes of the communication that include first information associated with the communication, and before sending the communication over a substrate network on which the virtual computer network is overlaid and that separates the first computing node from a final destination associated with the destination network address, an intermediate destination node for the communication from a group of intermediate destination nodes connected to the substrate network; sending, by the one or more programmed computing systems, the communication over the substrate network from the first computing node to the selected intermediate destination node, to enable forwarding of the communication by the selected intermediate destination node to the final destination; receiving one or more indications of one or more second communications that are each from the first computing node and directed to the final destination using the destination network address; selecting, for each of the one or more second communications, the intermediate destination node to use for the second communication by dynamically selecting the selected intermediate destination node based on the first information also being associated with the second communication; and sending each of the one or more second communications over the substrate network to the selected intermediate destination node, for forwarding by the selected intermediate destination node to the final destination.
-
-
16. A non-transitory computer-readable storage medium having stored contents that cause a computing system to:
-
select, for use in forwarding a communication from a first computing node of a virtual computer network to a final destination that is indicated by a destination network address of the communication, and before sending the communication over a substrate network separating the first computing node from the final destination, an intermediate destination from multiple alternative intermediate destinations in the substrate network based at least in part on the destination network address for the communication, wherein the substrate network is operated by a service provider that manages the virtual computer network, and wherein the selecting of the intermediate destination includes performing hashing, using the destination network address, on multiple substrate network addresses associated with the multiple alternative intermediate destinations in order to determine a substrate network address that is associated with the intermediate destination to be selected; and send the communication over the substrate network from the first computing node to the selected intermediate destination using the determined substrate network address. - View Dependent Claims (17, 18, 19)
-
-
20. A computing system, comprising:
-
one or more hardware processors; and a manager module that is associated with a first computing node of a first computer network having multiple computing nodes overlaid on one or more second networks and that is configured to, when executed by at least one of the one or more hardware processors, manage a communication directed by the first computing node to a destination network address by; selecting a first intermediate destination from multiple intermediate destinations in the one or more second networks to use in forwarding the communication to a final destination associated with the destination network address, the selecting of the first intermediate destination being based at least in part on the destination network address by performing hashing, using the destination network address, on multiple substrate network addresses associated with the multiple intermediate destinations in order to obtain a substrate network address for the first intermediate destination to be selected; and sending the communication from the first computing node over the one or more second networks to the selected first intermediate destination by using the substrate network address for the selected first intermediate destination, to enable forwarding of the communication by the selected first intermediate destination to the final destination. - View Dependent Claims (21, 22, 23)
-
Specification