14 августа 2024 года состоялся релиз версии 1.1 инструментария для конфигурации сети Netplan, развивающего формат для хранения настроек сетевых интерфейсов и связанные с ним утилиты для управления сетевыми конфигурациями.
Решение Netplan обеспечивает хранение сетевых параметров в формате YAML и предоставляет бэкенды, абстрагирующие доступ к конфигурации для NetworkManager и systemd-networkd. Исходный код проекта написан на языках программирования Python и C и опубликован на GitHub под лицензией GPLv3.
Разработка Netplan идёт уже более семи лет. В проекте участвуют разработчики от Canonical, Microsoft и Deutsche Telekom. Релиз инструментария Netplan 1.0 состоялся в апреле этого года.
Проект Netplan применяется в Ubuntu начиная с выпуска 17.10, а также задействован в Ubuntu 23.10 Desktop в качестве бэкенда по умолчанию в NetworkManager и применяется по умолчанию для управления сетевыми настройками в официальных сборках Debian 12 для облачных систем.
По информации OpenNET, основные изменения в Netplan 1.1:
• возможность переопределения логики сервиса 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.
Применение 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 при разборе сложных конфигураций не исключено возникновение проблем, вызванных состоянием гонки).
Источник новости: habr.com