Lukas Märdian
on 5 April 2024
Introducing Netplan v1.0 – stable, declarative network management
As the maintainer and lead developer of Netplan, I’m proud to announce the general availability of Netplan v1.0 after more than 7 years of development efforts. Over the years, we’ve had approximately 80 individual contributors from around the globe. This includes many contributions from our Netplan core-team at Canonical as well as organisations like Microsoft and Deutsche Telekom. Those contributions, alongside the many we receive from our community of individual contributors, solidify Netplan as an active and trusted open source project. To make Netplan even more dependable, we have also started shipping upstream patch releases, such as 0.106.1 and 0.107.1, which make it easier to integrate fixes into our users’ custom workflows.
With the release of version 1.0 the team have focused on stability. Being a major version upgrade, it allowed us to drop some long-standing legacy code from the libnetplan1 library. Removing this technical debt increases the maintainability of Netplan’s codebase going forward. The upcoming Ubuntu 24.04 LTS and Debian 13 releases will ship Netplan v1.0 to millions of users worldwide.
Netplan 1.0 highlights
In addition to stability and maintainability improvements, it’s worth looking at some of the new features that were also included in the latest release:
- Simultaneous WPA2 & WPA3 support.
- Introduction of a stable libnetplan1 API.
- Mellanox VF-LAG support for high performance SR-IOV networking.
- New hairpin and port-mac-learning settings, useful for VXLAN tunnels with FRRouting.
- New netplan status –diff subcommand, finding differences between configuration and system state.
I’d also like to shed some light on new functionality that was integrated within the past two years for those upgrading from the previous Ubuntu 22.04 LTS which used Netplan v0.104:
- We added support for the management of new network interface types, such as veth, dummy, VXLAN, VRF or InfiniBand (IPoIB).
- Wireless functionality was improved by integrating Netplan with NetworkManager on desktop systems, adding support for WPA3 and adding the notion of a regulatory-domain, to choose proper frequencies for specific regions.
- To improve maintainability, we moved to Meson as Netplan’s buildsystem, added upstream CI coverage for multiple Linux distributions and integrations (such as Debian testing, NetworkManager, snapd or cloud-init), checks for ABI compatibility, and automatic memory leak detection.
- We increased consistency between the supported backend renderers (systemd-networkd and NetworkManager), by matching physical network interfaces on permanent MAC address when the match.macaddress setting is being used, and added new hardware offloading functionality for high performance networking, such as Single-Root IO Virtualisation virtual function link-aggregation (SR-IOV VF-LAG).
The much improved Netplan documentation, that is now hosted on “Read the Docs”, and new command line subcommands, such as netplan status, make Netplan an accessible tool for declarative network management and troubleshooting.
Further integrations
Those changes pave the way to integrate Netplan into 3rd party projects, such as system installers or cloud deployment methods. By shipping the new python3-netplan Python bindings to libnetplan, it is now easier than ever to access Netplan functionality and network validation from other projects. We are proud that the Debian Cloud Team chose Netplan to be the default network management tool in their official cloud-images for Debian Bookworm and beyond. Ubuntu’s NetworkManager package now uses Netplan as it’s default backend on Ubuntu 23.10 Desktop systems and beyond. Further integrations happened with cloud-init and the Calamares installer.
Learn More
Please check out the Netplan version 1.0 release on GitHub! If you want to learn more, follow our activities on Netplan.io, GitHub, Launchpad, IRC or our Netplan Developer Diaries blog on discourse.