** 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 ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs