IPv6-enabled EC2 subnets always have dhcp enabled
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
cloud-init |
Expired
|
High
|
Unassigned | ||
cloud-init (Fedora) |
Confirmed
|
Undecided
|
Bug Description
A Fedora user opened an issue[0] about an issue with cloud-init on EC2. When they launch an instance on a IPv6-enabled subnet, cloud-init sets the `ipv6.method` to `dhcp` in NetworkManager.
However, AWS uses router advertisements to let instances know about the nearest router. Using the `ipv6.method: dhcp` setting prevents router advertisements from working. The instance ends up with an IPv6 address assigned, but it cannot route traffic.
A workaround is to run NetworkManager commands to fix the issue:
```
nmcli con edit CONNECTION_UUID
nmcli> set ipv6.method auto
nmcli> save
nmcli> activate
```
The instance immediately routes IPv6 traffic after making that change. The dhcp setting appears to be applied automatically for EC2 subnets with IPv6 addresses assigned[1].
I would expect `ipv6.method` to be `auto` in these situations.
Thank you!
[0] https:/
[1] https:/
Changed in cloud-init (Fedora): | |
importance: | Unknown → Undecided |
status: | Unknown → Confirmed |
Changed in cloud-init: | |
status: | New → Triaged |
importance: | Undecided → High |
A Fedora user opened an issue[0] about an issue with cloud-init on EC2. When they launch an instance on a IPv6-enabled subnet, cloud-init sets the `ipv6.method` to `dhcp` in NetworkManager.
However, AWS uses router advertisements to let instances know about the nearest router. Using the `ipv6.method: dhcp` setting prevents router advertisements from working. The instance ends up with an IPv6 address assigned, but it cannot route traffic.
A workaround is to run NetworkManager commands to fix the issue:
```
nmcli con edit CONNECTION_UUID
nmcli> set ipv6.method auto
nmcli> save
nmcli> activate
```
The instance immediately routes IPv6 traffic after making that change. The dhcp setting appears to be applied automatically for EC2 subnets with IPv6 addresses assigned[1].
I would expect `ipv6.method` to be `auto` in these situations.
Thank you!
[0] https:/ /pagure. io/cloud- sig/issue/ 382 /github. com/canonical/ cloud-init/ blob/53a995e2f8 52d043d51ad25c1 b9afbbe1edafd57 /cloudinit/ sources/ DataSourceEc2. py#L861- L863
[1] https:/