Dopo sette anni di sviluppo, è stato rilasciato lo strumento Netplan 1.0, che sviluppa il formato per la memorizzazione delle impostazioni delle interfacce di rete e gli strumenti correlati per la gestione delle configurazioni di rete. Netplan consente la memorizzazione dei parametri in formato YAML e fornisce backend che astraggono l'accesso alle configurazioni per NetworkManager e systemd-networkd. Il codice del progetto è scritto in Python e C ed è distribuito con licenza GPLv3.
Oltre ai dipendenti di Canonical, anche i dipendenti di Microsoft e Deutsche Telekom partecipano allo sviluppo del progetto. Netplan è già utilizzato in Ubuntu a partire dalla versione 17.10, è integrato nella versione Desktop di Ubuntu 23.10 come backend predefinito in NetworkManager e viene utilizzato per gestire le impostazioni di rete nelle versioni ufficiali di Debian 12 per sistemi cloud. Il supporto per Netplan è anche implementato in cloud-init e nell'installatore Calamares. La nuova versione di Netplan 1.0 sarà inclusa nella distribuzione di Ubuntu 24.04 e sarà fornita in Debian 13.
Netplan 1.0 è contrassegnato come il primo rilascio stabile significativo, che ha permesso di eliminare alcune funzionalità obsolete. L'eliminazione del debito tecnico ha semplificato la manutenzione della base di codice e ha rimosso gli ostacoli all'implementazione di nuove idee. Oltre alla stabilizzazione dell'API della libreria libnetplan1, la nuova versione presenta le seguenti modifiche:
- Supporto simultaneo per WPA2 e WPA3.
- Supporto per dispositivi di rete Mellanox VF-LAG con SR-IOV (Single-Root I/O Virtualization).
- Nuove opzioni 'hairpin' e 'port-mac-learning', utili per configurare tunnel VXLAN utilizzando FRRouting.
- Un nuovo set di wrapper in Python (python3-netplan), che semplifica l'integrazione con sistemi di terze parti.
- Il comando 'netplan status --diff', che consente di visualizzare le differenze tra lo stato attuale delle impostazioni e i file di configurazione.

L'uso di netplan unifica la definizione dei file di configurazione di base, utilizzati in NetworkManager e systemd-networkd, eliminando la necessità di comprendere i dettagli dei formati di configurazione di ciascun sistema. In fase di avvio, netplan legge le impostazioni di rete di base dai file '/{lib,etc,run}/netplan/*.yaml' e scrive la configurazione nella directory /run in un formato adatto per ulteriori elaborazioni in systemd-networkd o NetworkManager.

Caratteristiche di Netplan:
- Ignorare i dispositivi non contrassegnati nella configurazione;
- Tutta la configurazione è memorizzata solo nel file YAML sorgente (senza utilizzare /etc/network/interfaces);
- Possibilità di suddividere la configurazione in più file (ad esempio, per estrarre le impostazioni di libvirt e lxd);
- Flessibilità nella scelta e cambio del backend.
- La descrizione dei parametri delle interfacce di rete in netplan avviene tramite una sintassi dichiarativa, che consente di descrivere in modo relativamente semplice la struttura di una rete complessa.
Tra i vantaggi di netplan rispetto a ifupdown:
- Sintassi dichiarativa;
- Possibilità di applicare maschere ai nomi delle interfacce di rete, indirizzi MAC, driver e altri componenti;
- Considerazione del contesto durante l'analisi della gerarchia dei parametri delle interfacce di rete, che consente di trasmettere correttamente e in ordine le impostazioni ai gestori (in ifupdown, nell'analizzare configurazioni complesse, è possibile che si verifichino problemi causati da condizioni di gara).
Fonte: opennet.ru

