35

As we all know, to configure the network, we can edit /etc/network/interfaces and execute /etc/init.d/networking restart.

Today I try to use Ubuntu 17.10 and I've found the network configuration had changed. Now we should edit /etc/netplan01-netcfg.yaml and execute netplan apply.

OK, this might be a bad question but I really want to know why Ubuntu did such a change. Is there a strong reason to explain all of changes like this one?

2
  • 3
    Martin Pitt (Canonical) wrote in 2016 announcement "With netplan there are central /etc/netplan/*.yaml network config files for all Ubuntu -- Snappy, Server, Client, MaaS, cloud-init. ..." maybe look at wiki.ubuntu.com/Netplan & people.canonical.com/~mtrudel/netplan
    – guiverc
    Feb 12, 2018 at 9:14
  • 1
    This started with 16.04 or 16.10 iirc.
    – Rinzwind
    Feb 12, 2018 at 13:25

1 Answer 1

21

From the Ubuntu Wiki page on Migrating to Netplan:

Rationale

Netplan has been implemented to support simple, declarative representation of complex network configurations, as well as address some current limitations of ifupdown. Netplan provides a simple and elegant yaml configuration format with support for multiple backend providers.

Some of the shortcomings of ifupdown covered by netplan:

  • ifupdown cannot represent all configs with a purely declarative syntax; therefore we can not parse the config
    • all netplan config is purely declarative.
  • ifupdown can only represent interfaces by name, so it is not portable across devices
  • netplan uses matching by name, MAC address, driver, etc.
  • race conditions in complex configs
  • netplan has the context of hierarchy in the definition of the interfaces, such that this information is carried over to the renderer used and applied in the right ordering.

Given increasing demand for complex networking scenarios (large cloud uses often require complex layering of different features, such as bridges over bonds over VLANs, etc.), it has shown to be important to improve the ease of representing the network config.

Like a lot of changes to something better but incompatible, there will be some pain for a future gain.

If you still need /etc/network/interfaces, you can use it. From the Ubuntu Wiki page on Netplan:

I really do need ifupdown, can I still use it?

If you run into a case where you do need to use ifupdown instead of netplan, we would really like to know about it, so you should file a bug in Launchpad.

While we don't recommend doing so, you can remove the package named netplan.io with ifupdown after install, and fill in /etc/network/interfaces manually to configure your network the way you want it.


As we all know, to configure the network, we can edit /etc/network/interfaces and execute /etc/init.d/networking restart.

As we all know, that used to badly break the desktop.

4
  • 3
    netplan does not support aliases: bugs.launchpad.net/ubuntu/+source/nplan/+bug/1826760 Apr 28, 2019 at 19:40
  • 11
    I find the explanation from the Ubuntu Wiki leaves a lot of things unexplained, for example the 'shortcomings of ifupdown' section mentions race conditions in complex configs but doesn't give examples of such configs. Bridges require some IFs to be up before others, and I've never had a problem with that before netplan, so I don't understand why this is listed as a shortcoming. TBH, that whole page kind of reads like someone trying to push their pet project without sufficiently explaining what it does better - like it's trying to solve problems that ppl who already use ifupdown don't have. Oct 8, 2019 at 19:34
  • 3
    just to be changed again when everybody learns who to use it...
    – Vassilis
    Mar 24, 2021 at 16:01
  • RHEL has managed to deal with all these problems as far as I know - is there a reason network manager wouldn't have worked? Apr 22, 2022 at 16:58

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .