EC2 IPv4 and IPv6 Dual Stack Does Not work when instance is not assigned public IPv4 address
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
cloud-init |
Fix Released
|
High
|
Chad Smith | ||
cloud-init (Ubuntu) |
Fix Released
|
High
|
Chad Smith | ||
Xenial |
Fix Released
|
High
|
Chad Smith | ||
Zesty |
Fix Released
|
High
|
Chad Smith | ||
Artful |
Fix Released
|
High
|
Chad Smith | ||
Bionic |
Fix Released
|
High
|
Chad Smith |
Bug Description
=== Begin SRU Template ===
[Impact]
Support for configuration of IPV6 addresses on the primary network
interface in EC2 changed behavior of the automatic network configuration.
This changed behavior in 2 ways:
a.) Instances with only a private ipv4 address would not get *any* ipv4
address.
b.) Instances with multiple NICs attached at boot would get all NICs
configured. Previously only the primary network interface would be
configured by cloud-init.
'b' is not necessarily a bug for Artful. A new release can bring new
behavior. However, the change of behavior was not intended and not desired
for an SRU. In an effort to keep this behavior consistent across 16.04+
we will be changing the behavior of Artful to only configure the primary
network interface.
[Test Case]
To verify this code is fixed for all cases involved:
1. Verify that instances without public ipv4 get an ipv4 address.
* Launch an instance on EC2 without a public IPV4 address.
* Verify the instance has its Ipv4 address configured via ssh and
checking 'ip' output.
2. Verify no regression is done to public systems.
* Launch an instance on EC2 with a public IPV4 address.
* Verify the instance has its ipv4 address configured.
3. Verify only the primary NIC is configured (17.10 only)
* Launch an instance on EC2 with multiple nics configured.
* Verify that only the primary nic has configuration by default.
For each of the above, verification entails inspection of
network config (/etc/network/
and also network state ('ip a' output).
[Regression Potential]
Regression in this area of code is certainly limited to EC2,
and most likely limited to network configuration.
Complete failure would show itself as no networking at all and
a WARNING or stack trace on the console logs.
[Other Info]
Upstream commit at
https:/
=== End SRU Template ===
With the following cloud-init configuration:
system_info:
network:
renderers: ['netplan', 'eni', 'sysconfig']
network:
version: 2
ethernets:
id0:
match:
name: e*
dhcp4: true
dhcp6: true
with version 17.1-18-
# This file is generated from information provided by
# the datasource. Changes to it will not persist across an instance.
# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/
# network: {config: disabled}
network:
version: 2
ethernets:
ens3:
dhcp6: true
match:
----
This instance is in a (default) VPC with a private IPv4 address and no public IPv4 addresses.
Related branches
- Server Team CI bot: Approve (continuous-integration)
- Scott Moser: Pending requested
-
Diff: 307 lines (+160/-12)4 files modifiedcloudinit/distros/gentoo.py (+1/-1)
cloudinit/sources/DataSourceEc2.py (+19/-5)
debian/changelog (+10/-0)
tests/unittests/test_datasource/test_ec2.py (+130/-6)
- Server Team CI bot: Approve (continuous-integration)
- Scott Moser: Pending requested
-
Diff: 307 lines (+160/-12)4 files modifiedcloudinit/distros/gentoo.py (+1/-1)
cloudinit/sources/DataSourceEc2.py (+19/-5)
debian/changelog (+10/-0)
tests/unittests/test_datasource/test_ec2.py (+130/-6)
- Server Team CI bot: Approve (continuous-integration)
- Scott Moser: Pending requested
-
Diff: 307 lines (+160/-12)4 files modifiedcloudinit/distros/gentoo.py (+1/-1)
cloudinit/sources/DataSourceEc2.py (+19/-5)
debian/changelog (+10/-0)
tests/unittests/test_datasource/test_ec2.py (+130/-6)
- Server Team CI bot: Approve (continuous-integration)
- Scott Moser: Pending requested
-
Diff: 307 lines (+160/-12)4 files modifiedcloudinit/distros/gentoo.py (+1/-1)
cloudinit/sources/DataSourceEc2.py (+19/-5)
debian/changelog (+10/-0)
tests/unittests/test_datasource/test_ec2.py (+130/-6)
- Server Team CI bot: Approve (continuous-integration)
- Scott Moser: Approve
-
Diff: 276 lines (+149/-11)2 files modifiedcloudinit/sources/DataSourceEc2.py (+19/-5)
tests/unittests/test_datasource/test_ec2.py (+130/-6)
Changed in cloud-init: | |
importance: | Undecided → High |
assignee: | nobody → Chad Smith (chad.smith) |
Changed in cloud-init: | |
status: | New → Confirmed |
Changed in cloud-init: | |
status: | Confirmed → In Progress |
summary: |
- IPv4 and IPv6 Dual Stack Does Not work when instance is not assigned + EC2 IPv4 and IPv6 Dual Stack Does Not work when instance is not assigned public IPv4 address |
Changed in cloud-init (Ubuntu Xenial): | |
status: | New → Confirmed |
Changed in cloud-init (Ubuntu Zesty): | |
status: | New → Confirmed |
Changed in cloud-init (Ubuntu Artful): | |
status: | New → Confirmed |
Changed in cloud-init (Ubuntu Bionic): | |
status: | New → Confirmed |
Changed in cloud-init (Ubuntu Xenial): | |
importance: | Undecided → High |
Changed in cloud-init (Ubuntu Zesty): | |
importance: | Undecided → High |
Changed in cloud-init (Ubuntu Artful): | |
importance: | Undecided → High |
Changed in cloud-init (Ubuntu Bionic): | |
importance: | Undecided → High |
description: | updated |
Changed in cloud-init: | |
status: | In Progress → Fix Committed |
Changed in cloud-init (Ubuntu Xenial): | |
assignee: | nobody → Chad Smith (chad.smith) |
Changed in cloud-init (Ubuntu Zesty): | |
assignee: | nobody → Chad Smith (chad.smith) |
Changed in cloud-init (Ubuntu Artful): | |
assignee: | nobody → Chad Smith (chad.smith) |
Changed in cloud-init (Ubuntu Bionic): | |
assignee: | nobody → Chad Smith (chad.smith) |
Changed in cloud-init (Ubuntu Xenial): | |
status: | Confirmed → In Progress |
Changed in cloud-init (Ubuntu Zesty): | |
status: | Confirmed → In Progress |
Changed in cloud-init (Ubuntu Artful): | |
status: | Confirmed → In Progress |
Changed in cloud-init (Ubuntu Bionic): | |
status: | Confirmed → In Progress |
This bug was fixed in the package cloud-init - 17.1-27- geb292c18- 0ubuntu1
--------------- geb292c18- 0ubuntu1) bionic; urgency=medium
cloud-init (17.1-27-
* New upstream snapshot.
- EC2: Limit network config to fallback nic, fix local-ipv4 only
instances. (LP: #1728152)
- Gentoo: Use "rc-service" rather than "service".
[ckonstanski] (LP: #1727121)
-- Chad Smith <email address hidden> Tue, 31 Oct 2017 12:51:10 -0600