Po siedmiu latach rozwoju opublikowano wydanie narzędzia Netplan 1.0, które rozwija format do przechowywania ustawień interfejsów sieciowych oraz związane z nim narzędzia do zarządzania konfiguracjami sieciowymi. Netplan zapewnia przechowywanie parametrów w formacie YAML i oferuje backendy, które abstrahują dostęp do konfiguracji dla NetworkManager i systemd-networkd. Kod projektu napisano w językach Python i C, a jego licencja to GPLv3.
Oprócz pracowników firmy Canonical, w rozwój projektu zaangażowani są także pracownicy Microsoft i Deutsche Telekom. Netplan jest już używany w Ubuntu, począwszy od wersji 17.10, a w Ubuntu 23.10 Desktop jest domyślnym backendem w NetworkManager i jest używany domyślnie do zarządzania ustawieniami sieciowymi w oficjalnych wydaniach Debiana 12 dla systemów chmurowych. Wsparcie dla Netplan zrealizowano również dla cloud-init oraz instalatora Calamares. Nowe wydanie Netplan 1.0 wejdzie w skład dystrybucji Ubuntu 24.04 i będzie dostarczane w Debianie 13.
Netplan 1.0 jest oznaczony jako pierwsze znaczące stabilne wydanie, które pozwoliło na pozbycie się niektórych długo przestarzałych funkcji. Pozbycie się długu technicznego przyczyniło się do uproszczenia konserwacji bazy kodu oraz usunięcia przeszkód utrudniających realizację niektórych nowych pomysłów. Oprócz stabilizacji API biblioteki libnetplan1, w nowej wersji zauważono następujące zmiany:
- Jednoczesne wsparcie dla WPA2 i WPA3.
- Wsparcie dla urządzeń sieciowych Mellanox VF-LAG z SR-IOV (Single-Root I/O Virtualization).
- Nowe parametry «hairpin» i «port-mac-learning», przydatne przy konfigurowaniu tuneli VXLAN z użyciem FRRouting.
- Nowy zestaw powiązań dla języka Python (python3-netplan), który ułatwia integrację z systemami zewnętrznymi.
- Polecenie «netplan status —diff», które umożliwia wizualne ocenienie różnic między aktualnym stanem ustawień a plikami konfiguracyjnymi.

Zastosowanie netplan ujednolica definicje podstawowych plików konfiguracyjnych używanych w NetworkManager i systemd-networkd, eliminując konieczność poznawania szczegółów formatów konfiguracji każdego z tych systemów. Istota działania netplan polega na tym, że w trakcie initializacji odczytuje podstawowe ustawienia sieciowe z plików «/{lib,etc,run}/netplan/*.yaml» i zapisuje konfigurację w katalogu /run w formacie odpowiednim do dalszego przetwarzania w systemd-networkd lub NetworkManager.

Cechy Netplan:
- Ignorowanie urządzeń, które nie są zaznaczone w konfiguracji;
- Cała konfiguracja jest przechowywana tylko w pierwotnym pliku YAML (bez użycia /etc/network/interfaces);
- Możliwość podziału konfiguracji na kilka plików (na przykład w celu wydzielenia ustawień libvirt i lxd);
- Elastyczne możliwości wyboru i zmiany backendu.
- Opis parametrów interfejsów sieciowych w netplan odbywa się przy użyciu deklaratywnej składni, która pozwala w dość prosty sposób opisać strukturę złożonej sieci.
Wśród zalet netplan w porównaniu do ifupdown:
- Deklaratywna składnia;
- Możliwość stosowania masek na nazwy interfejsów sieciowych, adresy MAC, sterowniki i inne komponenty;
- Uwzględnienie kontekstu podczas analizy hierarchii parametrów interfejsów sieciowych, co pozwala poprawnie i we właściwej kolejności przekazać ustawienia do obsługiwaczy (w ifupdown podczas analizy złożonych konfiguracji mogą wystąpić problemy spowodowane stanem wyścigu).
Źródło: opennet.ru

