После семи лет разработки опубликован релиз инструментария 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