Представлен релиз инструментария Netplan 1.1, развивающего формат для хранения настроек сетевых интерфейсов и связанные с ним утилиты для управления сетевыми конфигурациями. Netplan обеспечивает хранение параметров в формате YAML и предоставляет бэкенды, абстрагирующие доступ к конфигурации для NetworkManager и systemd-networkd. Инструментарий применяется в дистрибутиве Ubuntu начиная с выпуска 17.10 и в сборках Debian 12 для облачных систем. Проект развивается компанией Canonical при участии сотрудников из Microsoft и Deutsche Telekom. Код проекта написан на языках Python и C, и распространяется под лицензией GPLv3.
Работа netplan сводится к чтению сетевых настроек из файлов “/{lib,etc,run}/netplan/*.yaml” в процессе начальной загрузки и записи конфигурации в каталог /run в формате, подходящем для дальнейшей обработки в systemd-networkd или NetworkManager. Вся конфигурация хранится только в исходном YAML-файле без использования “/etc/network/interfaces”, при этом допускается разделение конфигурации на несколько файлов, например, для выноса в отдельные файлы настроек libvirt и lxd. Описание параметров сетевых интерфейсов осуществляется при помощи декларативного синтаксиса, позволяющего достаточно просто описать структуру сложной сети.
В отличие от формата ifupdown в netplan применяется декларативный синтаксис; имеется возможность применения масок для имён сетевых интерфейсов, MAC-адресов, драйверов и других компонентов; при при разборе иерархии параметров сетевых интерфейсов учитывается контекст, что позволяет корректно и в правильном порядке передать настройки обработчикам (в ifupdown при разборе сложных конфигураций не исключено возникновение проблем, вызванных состоянием гонки).
В новом выпуске:
- Возможность переопределения логики сервиса systemd-networkd-wait-online для ожидания отдельных внутренних (link-local) и маршрутизируемых (с состоянием routable) сетевых интерфейсов.
- Поддержка изменения настроек режима eswitch (embedded-switch-mode) для сетевых интерфейсов без виртуальных функций (VF, virtual-function) на устройствах SR-IOV (Single Root I/O Virtualization).
- Поддержка флагов, позволяющих влиять на парсер конфигурации для игнорирования отдельных некорректных настроек без остановки генерации всей конфигурации бэкенда.
- Внесены исправления, решающие проблемы, специфичные для ProtonVPN и Microsoft Azure Linux.