2017-01-20 02:00:57 |
Scott Moser |
bug |
|
|
added bug |
2017-01-24 14:32:33 |
Scott Moser |
cloud-init: status |
New |
Confirmed |
|
2017-01-24 14:32:35 |
Scott Moser |
cloud-init: importance |
Undecided |
High |
|
2017-01-25 21:48:41 |
Launchpad Janitor |
merge proposal linked |
|
https://code.launchpad.net/~raharper/cloud-init/+git/cloud-init/+merge/315633 |
|
2017-01-25 23:12:48 |
Jon Grimm |
cloud-init: assignee |
|
Ryan Harper (raharper) |
|
2017-01-25 23:13:08 |
Jon Grimm |
cloud-init: status |
Confirmed |
In Progress |
|
2017-01-28 01:25:17 |
Scott Moser |
cloud-init: status |
In Progress |
Fix Committed |
|
2017-01-28 01:25:26 |
Scott Moser |
bug task added |
|
cloud-init (Ubuntu) |
|
2017-01-28 01:25:35 |
Scott Moser |
cloud-init (Ubuntu): status |
New |
Fix Committed |
|
2017-01-28 01:25:42 |
Scott Moser |
cloud-init (Ubuntu): status |
Fix Committed |
Confirmed |
|
2017-01-28 01:25:44 |
Scott Moser |
cloud-init (Ubuntu): importance |
Undecided |
Medium |
|
2017-02-04 03:49:52 |
Launchpad Janitor |
cloud-init (Ubuntu): status |
Confirmed |
Fix Released |
|
2017-03-03 07:22:17 |
Scott Moser |
nominated for series |
|
Ubuntu Yakkety |
|
2017-03-03 07:22:17 |
Scott Moser |
bug task added |
|
cloud-init (Ubuntu Yakkety) |
|
2017-03-03 07:22:17 |
Scott Moser |
nominated for series |
|
Ubuntu Xenial |
|
2017-03-03 07:22:17 |
Scott Moser |
bug task added |
|
cloud-init (Ubuntu Xenial) |
|
2017-03-03 07:22:24 |
Scott Moser |
cloud-init (Ubuntu Xenial): status |
New |
Incomplete |
|
2017-03-03 07:22:27 |
Scott Moser |
cloud-init (Ubuntu Yakkety): status |
New |
Confirmed |
|
2017-03-03 07:22:30 |
Scott Moser |
cloud-init (Ubuntu Xenial): status |
Incomplete |
Confirmed |
|
2017-03-03 07:22:33 |
Scott Moser |
cloud-init (Ubuntu Xenial): importance |
Undecided |
Medium |
|
2017-03-03 07:22:35 |
Scott Moser |
cloud-init (Ubuntu Yakkety): importance |
Undecided |
Medium |
|
2017-03-03 17:16:28 |
Scott Moser |
description |
Currently, a config like this:
| version: 1
| config:
| - 'type': 'physical'
| 'name': 'iface0'
| 'subnets':
| - {'type': 'dhcp4'}
| - {'type': 'dhcp6'}
Will render:
| auto lo
| iface lo inet loopback
|
| auto iface0
| iface iface0 inet dhcp
| post-up ifup iface0:1
|
|
| auto iface0:1
| iface iface0:1 inet6 dhcp
Below is an example test case that shows the output.
Heres the problem:
$ sudo sh -c 'ifdown eth0; ifup eth0'
$ sudo sh -c 'ifdown eth0; ifup eth0'
Killed old client process
Internet Systems Consortium DHCP Client 4.3.3
Copyright 2004-2015 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Listening on LPF/eth0/06:b3:0a:3a:2d:e3
Sending on LPF/eth0/06:b3:0a:3a:2d:e3
Sending on Socket/fallback
DHCPRELEASE on eth0 to 172.31.16.1 port 67 (xid=0x32b625f1)
Internet Systems Consortium DHCP Client 4.3.3
Copyright 2004-2015 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Listening on LPF/eth0/06:b3:0a:3a:2d:e3
Sending on LPF/eth0/06:b3:0a:3a:2d:e3
Sending on Socket/fallback
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 3 (xid=0xa4d5f301)
DHCPREQUEST of 172.31.29.161 on eth0 to 255.255.255.255 port 67 (xid=0x1f3d5a4)
DHCPOFFER of 172.31.29.161 from 172.31.16.1
DHCPACK of 172.31.29.161 from 172.31.16.1
bound to 172.31.29.161 -- renewal in 1801 seconds.
Failed to bring up eth0:1.
Failed to bring up eth0.
$ sudo ifup -v eth0:1
Parsing file /etc/network/interfaces.d/50-cloud-init.cfg
Parsing file /etc/network/interfaces.d/60-ipv6.cfg
Configuring interface eth0:1=eth0:1 (inet6)
/bin/run-parts --exit-on-error --verbose /etc/network/if-pre-up.d
run-parts: executing /etc/network/if-pre-up.d/ethtool
run-parts: executing /etc/network/if-pre-up.d/ifenslave
+ [ inet6 = meta ]
+ IF_BOND_SLAVES=
+ [ ]
+ [ ]
+ [ -z ]
+ exit
run-parts: executing /etc/network/if-pre-up.d/vlan
/sbin/modprobe -q net-pf-10 > /dev/null 2>&1 || true # ignore failure.
/sbin/sysctl -q -e -w net.ipv6.conf.eth0:1.accept_ra=1
/bin/ip link set dev eth0:1 up
/lib/ifupdown/wait-for-ll6.sh
/sbin/dhclient -1 -6 -pf /run/dhclient6.eth0:1.pid -lf /var/lib/dhcp/dhclient6.eth0:1.leases -I -df /var/lib/dhcp/dhclient.eth0:1.leases eth0:1
--- a/tests/unittests/test_net.py
+++ b/tests/unittests/test_net.py
@@ -813,6 +813,27 @@ class TestEniRoundTrip(TestCase):
self.assertEqual(
expected, [line for line in found if line])
+ def test_dhcp4_and_dhcp6(self):
+ conf = yaml.load(textwrap.dedent("""\
+ version: 1
+ config:
+ - 'type': 'physical'
+ 'name': 'iface0'
+ 'subnets':
+ - {'type': 'dhcp4'}
+ - {'type': 'dhcp6'}
+ """))
+
+ #conf = [
+ # {'type': 'physical', 'name': 'iface0',
+ # 'subnets': [
+ # {'type': 'dhcp4'},
+ # {'type': 'dhcp6'},
+ # ]},
+ #]
+ files = self._render_and_read(network_config=conf)
+ raise Exception(files['/etc/network/interfaces'])
+ |
=== Begin SRU Template ===
[Impact]
cloud-init rendered ENI (/etc/network/interfaces) configuration using
"aliases" (eth0:1). That fails in some scenarios to bring up all interfaces
on boot.
Most specifically problematic is dhcp with ipv4 and dhcp with ipv6.
In that case ipv6 dhcp just would not come up on boot.
[Test Case]
There are unit tests to verify that the new network configuration
is written as expected. Additionally, this is now using the same
ENI rendering format that curtin uses, which has good test cases
in its 'vmtest'.
[Regression Potential]
Users who had done:
ifup eth0:1
will no longer be able to do that. However now this will reliably work:
ifup eth0
to bring up all ip addresses on eth0.
=== End SRU Template ===
Currently, a config like this:
| version: 1
| config:
| - 'type': 'physical'
| 'name': 'iface0'
| 'subnets':
| - {'type': 'dhcp4'}
| - {'type': 'dhcp6'}
Will render:
| auto lo
| iface lo inet loopback
|
| auto iface0
| iface iface0 inet dhcp
| post-up ifup iface0:1
|
|
| auto iface0:1
| iface iface0:1 inet6 dhcp
Below is an example test case that shows the output.
Heres the problem:
$ sudo sh -c 'ifdown eth0; ifup eth0'
$ sudo sh -c 'ifdown eth0; ifup eth0'
Killed old client process
Internet Systems Consortium DHCP Client 4.3.3
Copyright 2004-2015 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Listening on LPF/eth0/06:b3:0a:3a:2d:e3
Sending on LPF/eth0/06:b3:0a:3a:2d:e3
Sending on Socket/fallback
DHCPRELEASE on eth0 to 172.31.16.1 port 67 (xid=0x32b625f1)
Internet Systems Consortium DHCP Client 4.3.3
Copyright 2004-2015 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Listening on LPF/eth0/06:b3:0a:3a:2d:e3
Sending on LPF/eth0/06:b3:0a:3a:2d:e3
Sending on Socket/fallback
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 3 (xid=0xa4d5f301)
DHCPREQUEST of 172.31.29.161 on eth0 to 255.255.255.255 port 67 (xid=0x1f3d5a4)
DHCPOFFER of 172.31.29.161 from 172.31.16.1
DHCPACK of 172.31.29.161 from 172.31.16.1
bound to 172.31.29.161 -- renewal in 1801 seconds.
Failed to bring up eth0:1.
Failed to bring up eth0.
$ sudo ifup -v eth0:1
Parsing file /etc/network/interfaces.d/50-cloud-init.cfg
Parsing file /etc/network/interfaces.d/60-ipv6.cfg
Configuring interface eth0:1=eth0:1 (inet6)
/bin/run-parts --exit-on-error --verbose /etc/network/if-pre-up.d
run-parts: executing /etc/network/if-pre-up.d/ethtool
run-parts: executing /etc/network/if-pre-up.d/ifenslave
+ [ inet6 = meta ]
+ IF_BOND_SLAVES=
+ [ ]
+ [ ]
+ [ -z ]
+ exit
run-parts: executing /etc/network/if-pre-up.d/vlan
/sbin/modprobe -q net-pf-10 > /dev/null 2>&1 || true # ignore failure.
/sbin/sysctl -q -e -w net.ipv6.conf.eth0:1.accept_ra=1
/bin/ip link set dev eth0:1 up
/lib/ifupdown/wait-for-ll6.sh
/sbin/dhclient -1 -6 -pf /run/dhclient6.eth0:1.pid -lf /var/lib/dhcp/dhclient6.eth0:1.leases -I -df /var/lib/dhcp/dhclient.eth0:1.leases eth0:1
--- a/tests/unittests/test_net.py
+++ b/tests/unittests/test_net.py
@@ -813,6 +813,27 @@ class TestEniRoundTrip(TestCase):
self.assertEqual(
expected, [line for line in found if line])
+ def test_dhcp4_and_dhcp6(self):
+ conf = yaml.load(textwrap.dedent("""\
+ version: 1
+ config:
+ - 'type': 'physical'
+ 'name': 'iface0'
+ 'subnets':
+ - {'type': 'dhcp4'}
+ - {'type': 'dhcp6'}
+ """))
+
+ #conf = [
+ # {'type': 'physical', 'name': 'iface0',
+ # 'subnets': [
+ # {'type': 'dhcp4'},
+ # {'type': 'dhcp6'},
+ # ]},
+ #]
+ files = self._render_and_read(network_config=conf)
+ raise Exception(files['/etc/network/interfaces'])
+ |
|
2017-03-07 23:25:12 |
Chris Halse Rogers |
cloud-init (Ubuntu Xenial): status |
Confirmed |
Fix Committed |
|
2017-03-07 23:25:16 |
Chris Halse Rogers |
bug |
|
|
added subscriber Ubuntu Stable Release Updates Team |
2017-03-07 23:25:26 |
Chris Halse Rogers |
bug |
|
|
added subscriber SRU Verification |
2017-03-07 23:25:31 |
Chris Halse Rogers |
tags |
|
verification-needed |
|
2017-03-07 23:33:45 |
Chris Halse Rogers |
cloud-init (Ubuntu Yakkety): status |
Confirmed |
Fix Committed |
|
2017-03-08 20:49:12 |
Scott Moser |
tags |
verification-needed |
verification-done-xenial verification-done-yakkety |
|
2017-03-16 16:18:49 |
Launchpad Janitor |
cloud-init (Ubuntu Xenial): status |
Fix Committed |
Fix Released |
|
2017-03-16 16:19:11 |
Brian Murray |
removed subscriber Ubuntu Stable Release Updates Team |
|
|
|
2017-03-16 16:19:33 |
Launchpad Janitor |
cloud-init (Ubuntu Yakkety): status |
Fix Committed |
Fix Released |
|
2017-09-23 02:14:49 |
Scott Moser |
cloud-init: status |
Fix Committed |
Fix Released |
|
2023-05-10 20:04:57 |
James Falcon |
bug watch added |
|
https://github.com/canonical/cloud-init/issues/2791 |
|