-
Notifications
You must be signed in to change notification settings - Fork 24
vpc 4.3 Multiple Network Interface Design
This document covers changes to the VPC service for support of multiple network interfaces.
This section describes investigation / analysis of multiple network interface behaviour.
AWS/EC2 forbids network interface attachment modifications for a pending instance.
Network interface resources must be associated with the interface and not with an instance. Resources used by an eni may be released when an instance is terminated if the attachment specifies delete-on-terminate behaviour.
The NetworkInterface entity is updated to support querying for an attachment and to set the interface state based on attachment state (for hot/cold attach cases)
The PrivateAddress entity now references either an instance or a network interface for tracking resource ownership.
VmType is updated for persistence of the network interfaces limit for the type.
This section covers functionality related to the user facing VPC service implementation.
The VpcManager is updated with support for attach and detach of network interfaces.
VmTypesManager is updated to allow the network interfaces limit to be configured.
The polling of cluster controllers for instance state is updated to include processing of network interface attachments. This is used for attaching and detaching transitions.
The network broadcast is updated to include the attachment identifier for network interfaces:
<instances>
<instance name="i-1b5c4503">
<ownerId>000994694045</ownerId>
<macAddress>d0:0d:a2:f1:51:a8</macAddress>
<privateIp>172.31.2.226</privateIp>
<vpc>vpc-3b1fdc87</vpc>
<subnet>subnet-893ca466</subnet>
<networkInterfaces>
<networkInterface name="eni-a2f151a8">
<ownerId>000994694045</ownerId>
<deviceIndex>0</deviceIndex>
<attachmentId>eni-attach-e98cf499</attachmentId>
<macAddress>d0:0d:a2:f1:51:a8</macAddress>
<privateIp>172.31.2.226</privateIp>
<sourceDestCheck>true</sourceDestCheck>
<vpc>vpc-3b1fdc87</vpc>
<subnet>subnet-893ca466</subnet>
<securityGroups>
<value>sg-6300851f</value>
</securityGroups>
</networkInterface>
</networkInterfaces>
<securityGroups>
<value>sg-6300851f</value>
</securityGroups>
</instance>
The network broadcast processing also fires events ( VpcRouteStateInvalidationEvent ) for any invalid route states that are detected. VpcWorkflow has a task to process any routes that may have incorrect states and update them.
The metadata returned for a VPC instance is updated to include information for all attached network interfaces.