IP Library Granted Patent US 10,244,044
Granted Patent B2
US 10,244,044 · App. 15/881,545 · Granted Mar 26, 2019

Virtual network interface multiplexing

Inventors: Tobias Lars-Olov Holgers (Seattle, WA); Kevin Christopher Miller (Herndon, VA); Andrew Bruce Dickinson (Seattle, WA); David Carl Salyers (Seattle, WA); Xiao Zhang (Vienna, VA); Shane Ashley Hall (Kirkland, WA); Christopher Ian Hendrie (Centreville, VA); Aniket Deepak Divecha (Seattle, WA); Ralph William Flora (Seattle, WA)
Assignee: Amazon Technologies, Inc.
H04L67/10G06F9/45533H04L67/42
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,244,044
App. No.
15/881,545
Granted
Mar 26, 2019
Kind
B2
Abstract

A control-plane component of a virtual network interface (VNI) multiplexing service assigns one or more VNIs as members of a first interface group. A first VNI of the interface group is attached to a first compute instance. Network traffic directed to a particular endpoint address associated with the first interface group is to be distributed among members of the first interface group by client-side components of the service. The control-plane component propagates membership metadata of the first interface group to the client-side components. In response to a detection of an unhealthy state of the first compute instance, the first VNI is attached to a different compute instance by the control-plane component.

Claims (48)

1. A non-transitory computer-accessible storage medium storing program instructions that when executed on one or more processors implements a client-side component of a virtual network interface multiplexing (VNIM) service, wherein the client-side component is configured to:

receive membership metadata pertaining to a first interface group established on behalf of a client of the VNIM service, wherein the membership metadata includes a respective indication of a plurality of virtual network interfaces (VNIs) designated as members of the first interface group;

detect that a particular baseline packet is directed towards a service endpoint address assigned to the first interface group;

select, based at least on a target selection policy associated with the first interface group, a particular VNI of the plurality of VNIs indicated by the membership metadata as a destination of contents of the particular baseline packet; and

transmit an encapsulation packet including contents of the particular baseline packet to a second network address assigned to the particular VNI, wherein the second network address differs from the service endpoint address.

2. The non-transitory computer-accessible storage medium storing program instructions as recited in claim 1 , wherein the client side component is a subcomponent of an instance host of a virtual computing service.

3. The non-transitory computer-accessible storage medium storing program instructions as recited in claim 1 , wherein the client-side component is a subcomponent of an edge device of a provider network.

4. The non-transitory computer-accessible storage medium storing program instructions as recited in claim 1 , wherein the client-side component is configured to:

store connection state information indicating that the particular VNI was selected as a destination for the encapsulation packet; and

select, using the connection state information, the particular VNI as a destination for another encapsulation packet corresponding to a subsequent baseline packet directed to the service endpoint address.

5. The non-transitory computer-accessible storage medium storing program instructions as recited in claim 1 , wherein the target selection policy is based at least on one of: (a) different weights assigned to different ones of the one or more VNIs, (b) random selection of a VNI from among the one or more VNIs, or (c) a selection of a VNI from among the one or more VNIs based on performance measures obtained for previously transmitted packets.

6. The non-transitory computer-accessible storage medium storing program instructions as recited in claim 1 , wherein the client-side component is configured to:

detect another baseline network packet generated at a particular traffic source and directed to the service endpoint address;

select, based at least on the target selection policy associated with the first interface group, another VNI of the plurality of VNIs indicated by the membership metadata as a destination of contents of the particular baseline packet; and

transmit another encapsulation packet including contents of the other baseline packet to a third network address assigned to the other VNI.

7. The non-transitory computer-accessible storage medium storing program instructions as recited in claim 6 , wherein the third network address differs from the service endpoint address.

8. The non-transitory computer-accessible storage medium storing program instructions as recited in claim 6 , wherein the other encapsulation packet includes an indication of a network address of the particular traffic source.

9. A system, comprising:

one or more processors and memory storing program instructions that when executed cause the one or more processors to implement a client-side component of a virtual network interface multiplexing (VNIM) service, wherein the client-side component is configured to:

receive membership metadata pertaining to a first interface group established on behalf of a client of the VNIM service, wherein the membership metadata includes a respective indication of a plurality of virtual network interfaces (VNIs) designated as members of the first interface group;

detect that a particular baseline packet is directed towards a service endpoint address assigned to the first interface group;

select, based at least on a target selection policy associated with the first interface group, a particular VNI of the plurality of VNIs indicated by the membership metadata as a destination of contents of the particular baseline packet; and

transmit an encapsulation packet including contents of the particular baseline packet to a second network address assigned to the particular VNI, wherein the second network address differs from the service endpoint address.

10. The system as recited in claim 9 , wherein the client side component is a subcomponent of an instance host of a virtual computing service.

11. The system as recited in claim 9 , wherein the client-side component is a subcomponent of an edge device of a provider network.

12. The system as recited in claim 9 , wherein the client-side component is configured to:

store connection state information indicating that the particular VNI was selected as a destination for the encapsulation packet; and

select, using the connection state information, the particular VNI as a destination for another encapsulation packet corresponding to a subsequent baseline packet directed to the service endpoint address.

13. The system as recited in claim 9 , wherein the target selection policy is based at least on one of: (a) different weights assigned to different ones of the one or more VNIs, (b) random selection of a VNI from among the one or more VNIs, or (c) a selection of a VNI from among the one or more VNIs based on performance measures obtained for previously transmitted packets.

14. The system as recited in claim 9 , wherein the client-side component is configured to:

detect another baseline network packet generated at a particular traffic source and directed to the service endpoint address;

select, based at least on the target selection policy associated with the first interface group, another VNI of the plurality of VNIs indicated by the membership metadata as a destination of contents of the particular baseline packet; and

transmit another encapsulation packet including contents of the other baseline packet to a third network address assigned to the other VNI.

15. The system as recited in claim 14 , wherein the third network address differs from the service endpoint address.

16. The system as recited in claim 14 , wherein the other encapsulation packet includes an indication of a network address of the particular traffic source.

17. A method, comprising:

performing by a client-side component of a virtual network interface multiplexing (VNIM) service, wherein the client-side component is implemented by one or more processors and memory:

receiving membership metadata pertaining to a first interface group established on behalf of a client of the VNIM service, wherein the membership metadata includes a respective indication of a plurality of virtual network interfaces (VNIs) designated as members of the first interface group;

detecting that a particular baseline packet is directed towards a service endpoint address assigned to the first interface group;

selecting, based at least on a target selection policy associated with the first interface group, a particular VNI of the plurality of VNIs indicated by the membership metadata as a destination of contents of the particular baseline packet; and

transmitting an encapsulation packet including contents of the particular baseline packet to a second network address assigned to the particular VNI, wherein the second network address differs from the service endpoint address.

18. The method as recited in claim 17 , wherein the client side component is a subcomponent of an instance host of a virtual computing service, further comprising:

detecting generation of the baseline network packet a particular traffic source at the instance host; and

including in the encapsulation packet an indication of a network address of the particular traffic source.

19. The method as recited in claim 17 , further comprising:

storing connection state information indicating that the particular VNI was selected as a destination for the encapsulation packet; and

selecting, using the connection state information, the particular VNI as a destination for another encapsulation packet corresponding to a subsequent baseline packet directed to the service endpoint address.

20. The method as recited in claim 17 , wherein the target selection policy is based at least on one of: (a) different weights assigned to different ones of the one or more VNIs, (b) random selection of a VNI from among the one or more VNIs, or (c) a selection of a VNI from among the one or more VNIs based on performance measures obtained for previously transmitted packets.

Continuity (2)
Continuation 14565164 · Dec 9, 2014
Related Publication 20180152503A1 · May 31, 2018
Cited By (1)
US 12,531,779