I'm not sure I completely understood the whole relationships between ifupdown, systemd-networkd and netplan. I think netplan transforms its YAML configuration into a more verbose systemd-network configuration that I could also maintain myself. Does this have anything to do with the classic ifupdown way and /etc/network/interfaces? I don't know how the tools behind the old solution are called, I just know that /etc/network/interfaces was the place to set things up. Some magic tools would read that file and do something.

So now I face the situation that Ubuntu 20.04 comes with netplan but that doesn't support additional IPv6 addresses with preferred_lft=0, a feature I need today. So I cannot use netplan for that. systemd-network doesn't seem to allow multiple matching config files for one interface, so I think I must not use netplan at all.

Now the question is: where should I go to? Can I keep systemd-network and maintain that config file fully myself? Or do I have to (or should I, and why) go all the way back to /etc/network/interfaces and ifupdown?

There are a number of tutorials and answers available that explain the way back to ifupdown, not mentioning systemd-network at all. So I don't know whether that would be a viable option, maybe a more future-proof one (ifupdown is in the universe archive now, probably getting less or shorter support). Those articles also suggest editing the Linux kernel command line which seems like a rather massive impact. Does the kernel really need to know what userland tools will manage the network?

My environment is a server in a data centre used for shared web hosting and other services that has a static address, needs a few additional addresses and uses a VLAN to connect to other servers in the same data centre. It doesn't have any contact with WLAN. It may serve as a VPN server in some form.

1 Answer 1


Yes, you can.

Just keep the default /etc/network/interfaces file, which just defines the loopback ("lo") interface, remove any netplan YAML config from /etc/netplan/*.yaml and define your own, manual systemd-networkd configuration in /etc/systemd/network/* as specified by the systemd documentation:


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.