Additionally, "ifconfig" no longer shows secondary addresses. Notice
that `10.17.0.6/16` in #7 above is not defined:

root@utl-ubuntu-16-04-x64-50307:~# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 4a:41:c5:1b:8a:a0  
          inet addr:138.197.91.79  Bcast:138.197.95.255  Mask:255.255.240.0
          inet6 addr: fe80::4841:c5ff:fe1b:8aa0/64 Scope:Link
          inet6 addr: 2604:a880:800:10::2ced:3001/64 Scope:Global
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:844 errors:0 dropped:0 overruns:0 frame:0
          TX packets:653 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:107141 (107.1 KB)  TX bytes:91481 (91.4 KB)

** Summary changed:

- 0.7.9-48-g1c795b9-0ubuntu1~16.04.1 with multiple eth0 definitions has no 
resolvers
+ Cloud-init update renders secondary addresses ti be incompatible with 
standard tools

** Description changed:

+ The change of how cloud-init renders 
/etc/network/interface.d/50-cloud-init.cfg, standard tools no longer work as 
expected:
+ * resolvconf will nullify nameservers
+ * if* commands ignore secondary addresses
+ 
+ The rendering is considered dangerous per Debian 
(https://wiki.debian.org/NetworkConfiguration), to whit:
+ "Also, ifupdown supports specifying multiple interfaces by repeating iface 
sections with the same interface name. The key difference from the method 
described above is that all such sections are treated by ifupdown as just one 
interface, so user can't add or remove them individually. However, up/down 
commands, as well as scripts, are called for every section as it used to be.
+ 
+ "Note however that this method is dangerous! Certain driver/hardware 
combinations may sometimes fail to bring the link up if no labels are assigned 
to the alias interfaces. (Seen this on Debian Wheezy and Jessie with 
RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 01) 
auto-negotiating to 10/full. A similar warning from another person exists in 
the history of this page.)
+ "
+ 
+ 
+ [ORIGINAL REPORT]
+ 
  Regresion from Bug #1657940.
  
  When provisioning with multiple eth0 addresses, /etc/resolv.conf is
  empty:
  
  Consider:
  root@tester:~# cat /etc/network/interfaces.d/50-cloud-init.cfg
  # 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/cloud.cfg.d/99-disable-network-config.cfg with the following:
  # network: {config: disabled}
  auto lo
  iface lo inet loopback
  
  auto eth0
  iface eth0 inet static
      address 138.197.98.102
      dns-nameservers 8.8.8.8 8.8.4.4
      gateway 138.197.96.1
      netmask 255.255.240.0
  
  # control-alias eth0
  iface eth0 inet static
      address 10.17.0.11
      netmask 255.255.0.0
  
  Which then yields an empty /etc/resolv.conf:
  root@tester:/run/resolvconf# cat interface/eth0.inet
  
  root@tester:/run/resolvconf# cat /etc/resolv.conf
  # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
  #     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
  
  The problem is that resolvconfg does pattern matching for eth*.inet. The
  second definition of eth0 has no nameserver and therefore overrides the
  definition.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1675571

Title:
  Cloud-init update renders secondary addresses ti be incompatible with
  standard tools

To manage notifications about this bug go to:
https://bugs.launchpad.net/cloud-init/+bug/1675571/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to