Why does Ubuntu server ignore systemd-networkd configuration

kvě 02 2023

There is an additional service named netplan.io that overrides it. If you get rid of it, systemd-networkd will function correctly, just as described in the documentation.

I usually use Debian as the go-to OS for server machines, however, this time we were setting up several Dell servers that just wouldn't talk with the Debian ISO images. Time was of the essence so we decided to grab the Ubuntu server 2022 LTS image instead.

We encountered trouble immediately when we tried to set up static networking. I checked if systemd-networkd was present - and to my surprise, it was already running. I checked the NIC names and configured a static network into /etc/systemd/network/ accordingly.

This did not work. Obviously, something was interfering with systemd-networkd function. We reviewed running services with systemctl status and came up with nothing. The only remaining place that could be a reasonable source of such override was dbus. A review of /usr/share/dbus-1/system-services/ revealed a suspicious file named io.netplan.Netplan.service. By finding the source package of this file with dpkg -S we were at the source at last.

It turned out that the standard systemd-networkd function was overriden by another package named netplan.io, which had its own fancy website. Since we did not know the syntax of netplan.io, it was easier to just completely remove it (along with several Ubuntu meta-packages that depended on it). Removal of netplan restored standard systemd-networkd function.