След седем години разработки, инструментариум Netplan 1.0 е публикуван, развиващ формат за съхранение на настройки на мрежови интерфейси и свързани с него инструменти за управление на мрежовите конфигурации. Netplan осигурява съхранение на параметри в YAML формат и предоставя бекенди, абстрагирщи достъпа до конфигурация за NetworkManager и systemd-networkd. Кодът на проекта е написан на езиците Python и C и се разпространява под лиценз GPLv3.
В разработката на проекта освен служителите от компания Canonical участват и служители на Microsoft и Deutsche Telekom. Netplan вече се прилага в Ubuntu от версия 17.10, използва се по подразбиране в Ubuntu 23.10 Desktop като бекенд в NetworkManager и по подразбиране за управление на мрежовите настройки в официалните версии на Debian 12 за облачни системи. Поддръжката на Netplan също е реализирана за cloud-init и инсталатора Calamares. Новата версия Netplan 1.0 ще бъде включена в дистрибуцията Ubuntu 24.04 и ще бъде предоставяна в Debian 13.
Netplan 1.0 е отбелязан като първият значителен стабилен релиз, който успява да се отърве от някои стари възможности. Премахването на техническия дълг доведе до опростяване на поддръжката на кодовата база и премахна пречките, които не позволяваха внедряването на нови идеи. Освен стабилизацията на API-то на библиотеката libnetplan1, в новата версия са отбелязани следните промени:
- Съвместна поддръжка на WPA2 и WPA3.
- Поддръжка на мрежови устройства Mellanox VF-LAG с SR-IOV (Single-Root I/O Virtualization).
- Нови параметри „hairpin“ и „port-mac-learning“, полезни при настройка на VXLAN тунели с FRRouting.
- Нов набор от обвивки на езика Python (python3-netplan), улесняващи интеграцията със системи на трети страни.
- Командата „netplan status —diff“, позволяваща визуално оценяване на разликите между актуалното състояние на настройките и конфигурационните файлове.

Приложението на netplan унифицира дефиницията на основните конфигурационни файлове, използвани в NetworkManager и systemd-networkd, освобождавайки от необходимостта от изучаване на подробностите около формата на конфигурация в системите. Същността на работата на netplan е, че по време на начално зареждане той чете основните мрежови настройки от файлове „/{lib,etc,run}/netplan/*.yaml“ и записва конфигурацията в директорията /run в формат, подходящ за последваща обработка в systemd-networkd или NetworkManager.

Характеристики на Netplan:
- Игнориране на устройства, които не са отбелязани в конфигурацията;
- Цялата конфигурация се съхранява само в оригиналния YAML файл (без използване на /etc/network/interfaces);
- Възможност за разделяне на конфигурацията на няколко файла (например, за изнасяне на настройки libvirt и lxd);
- Гъвкави възможности за избор и смяна на бекенда.
- Описанието на параметрите на мрежовите интерфейси в netplan се извършва с помощта на декларативен синтаксис, позволяващ достатъчно просто описване на структурата на сложната мрежа.
Сред предимствата на netplan в сравнение с ifupdown:
- Декларативен синтаксис;
- Възможност за прилагане на маски за имена на мрежови интерфейси, MAC адреси, драйвери и други компоненти;
- Отчитане на контекста при анализа на йерархията на параметрите на мрежовите интерфейси, което позволява коректно и в правилен ред предаване на настройките на обработващите; (в ifupdown при анализа на сложни конфигурации не е изключено възникването на проблеми, причинени от състояние на надпревара).
Източник: opennet.ru

