** Description changed:
+ === 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])
-
+ 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':
+ + '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'])
+
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1657940
Title:
eni rendering dhcp6 writes aliases fails to bring up dhcp6
To manage notifications about this bug go to:
https://bugs.launchpad.net/cloud-init/+bug/1657940/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs