Efter syv år med udvikling er Netplan 1.0-værktøjet blevet offentliggjort, som udvikler formatet til opbevaring af netværksinterfaceindstillinger og de tilknyttede værktøjer til styring af netværkskonfigurationer. Netplan sikrer lagring af parametre i YAML-format og leverer backend, der abstraherer adgangen til konfigurationen for NetworkManager og systemd-networkd. Projektets kode er skrevet i Python og C og distribueres under GPLv3-licensen.
Ud over medarbejdere fra Canonical deltager også medarbejdere fra Microsoft og Deutsche Telekom i udviklingen af projektet. Netplan er allerede anvendt i Ubuntu siden version 17.10, og det er i brug i Ubuntu 23.10 Desktop som standard backend i NetworkManager og anvendes som standard til at styre netværksindstillinger i de officielle Debian 12-udgivelser til cloud-systemer. Netplan understøttelse er også implementeret for cloud-init og Calamares-installationsprogrammet. Den nye Netplan 1.0-udgave vil blive inkluderet i Ubuntu 24.04-distributionen og vil blive leveret i Debian 13.
Netplan 1.0 er markeret som den første betydningsfulde stabile udgivelse, der har gjort det muligt at slippe af med nogle længe forældede funktioner. Fjernelsen af teknisk gæld har ført til en forenkling af vedligeholdelsen af kodebasen og har fjernet forhindringer, der har hindret implementeringen af nogle nye ideer. Udover stabilisering af API'en for biblioteket libnetplan1, er der i den nye version bemærket følgende ændringer:
- Samtidig understøttelse af WPA2 og WPA3.
- Understøttelse af Mellanox VF-LAG-netværksenheder med SR-IOV (Single-Root I/O Virtualization).
- Nye parametre "hairpin" og "port-mac-learning", nyttige ved opsætning af VXLAN-tunneler med FRRouting.
- Et nyt sæt bindingslag til Python (python3-netplan), der letter integrationen med tredjepartssystemer.
- Teamet "netplan status --diff", som gør det muligt at visualisere forskelle mellem den faktiske tilstand af indstillingerne og konfigurationsfilerne.

Anvendelsen af netplan forener definitionen af grundlæggende konfigurationsfiler, der bruges i NetworkManager og systemd-networkd, hvilket fjerner behovet for at studere detaljerne i konfigurationsformaterne for hver af disse systemer. Essensen af netplan er, at det i opstartsprocessen læser de grundlæggende netværksindstillinger fra filerne "\{lib,etc,run\}/netplan/*.yaml" og skriver konfigurationen i kataloget /run i et format, der er egnet til yderligere behandling i systemd-networkd eller NetworkManager.

Funktioner i Netplan:
- Ignorerer enheder, der ikke er angivet i konfigurationen;
- Hele konfigurationen gemmes kun i den oprindelige YAML-fil (uden brug af /etc/network/interfaces);
- Mulighed for at opdele konfigurationen i flere filer (for eksempel til at adskille indstillinger for libvirt og lxd);
- Fleksible muligheder for valg og skift af backend.
- Beskrivelsen af netværksgrænsefladens parametre i netplan sker ved hjælp af en deklarativ syntaks, der gør det forholdsvis nemt at beskrive strukturen af et komplekst netværk.
Blandt fordelene ved netplan sammenlignet med ifupdown:
- Deklarativ syntaks;
- Mulighed for at anvende masker for navne på netværksgrænseflader, MAC-adresser, drivere og andre komponenter;
- Hensyntagen til konteksten ved analyse af hierarkiet for netværksgrænsefladens parametre, hvilket gør det muligt at overføre indstillingerne korrekt og i den rigtige rækkefølge til behandlerne (i ifupdown kan der opstå problemer ved analysen af komplekse konfigurationer på grund af race tilstande).
Kilde: opennet.ru

