Hello,

I'm new to the Debian ecosystem, so if there is a more preferable place for
this conversation, please let me know and I'm happy to move it.

I'm using the Debian 10.4 genericcloud image (specifically
debian-10-genericcloud-amd64-20200610-293.qcow2) and trying to use a
cloud-init nocloud datastore to define a static IP address (using cloud-init
v2 network configuration
<https://cloudinit.readthedocs.io/en/latest/topics/network-config-format-v2.html>).
Cloud-init seems to be working fine, it sets the hostname, configures user
accounts, etc. But when it comes to networking I run into a few problems.

First, it seems that the contents of /etc/network/interfaces has two
source-directory directives for multiple directories:

$ cat /etc/network/interfaces
# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d

# Cloud images dynamically generate config fragments for newly
# attached interfaces. See /etc/udev/rules.d/75-cloud-ifupdown.rules
# and /etc/network/cloud-ifupdown-helper. Dynamically generated
# configuration fragments are stored in /run:
source-directory /run/network/interfaces.d

The /etc/network/interfaces.d/ directory contains a single, properly
configured file based on the network configuration I have defined in the
cloud-init nostore mount:

$ 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 ens3
iface ens3 inet static
    address 10.0.0.197/27
    dns-nameservers 8.8.8.8 1.1.1.1
    gateway 10.0.0.193

# control-alias ens3
iface ens3 inet6 static
    address fd00:fe2e:2:6:b5:50ff:fedb:3ff4/64
    gateway fe80::216:3eff:fe58:d9e7

(I've changed these IP addresses for the mailing list).

Then over in /run/network/interfaces.d/, there is a single file I assume
either comes from cloud-init or the Debian cloud image:

$ cat /run/network/interfaces.d/ens3
auto ens3
allow-hotplug ens3

iface ens3 inet dhcp

It's this second file that seems to be causing problems, as well as a
similar issue to the one described in
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=867921 where interfaces
can't have an extension. I can resolve all of this by doing the following:

rm /run/network/interfaces.d/ens3
mv /etc/network/interfaces.d/50-cloud-init.cfg
/etc/network/interfaces.d/50-cloud-init
systemctl restart networking

and the interface comes up properly.

This feels like a bug in the debian cloud image, but I could certainly be
doing something wrong here. The first thing I noticed is that the version
of cloud-init on the genericcloud image is ~2 years old (version 18.3). Is
it possible that #867921 has not been resolved in Debian 10.4's cloud
images? There also appears to be something wrong with the automatically
created file in /run/network/interfaces.d.

Thank you for any assistance, or suggestions on where to take this
conversation.

Reply via email to