Ubuntu переходит на формат сетевой конфигурации netplan

2 месяца ago admin 0

Разработчики Ubuntu сообщили о переводе находящегося в разработке осеннего выпуска дистрибутива (17.10) на использование системы netplan для хранения настроек сетевых интерфейсов, вместо ранее применяемого инструментария ifupdown, хранящего настройки в файле /etc/network/interfaces. Netplan обеспечивает хранение параметров в формате YAML и предоставляет бэкенды, абстрагирующие доступ к конфигурации для NetworkManager и systemd-networkd.

Для миграции на Netplan предусмотрена команда «netplan ifupdown-migrate», которая осуществляет преобразование старых настроек /etc/network/interfaces в формат netplan. Пользователям также предоставлена возможность продолжить использование ifupdown, явно установив данный пакет («sudo apt install ifupdown»). В ежедневных сборках Ubuntu Server новая система уже задействована для записи сетевой конфигурации в каталог /etc/netplan. В Ubuntu Desktop простейшая конфигурация netplan уже применяется в NetworkManager, начиная с выпуска 16.10.

Применение netplan унифицирует определение базовых конфигурационных файлов, используемых в NetworkManager и systemd-networkd, избавляя от необходимости изучения деталей форматов конфигурации каждой из этих систем. Суть работы netplan сводится к тому, что в процессе начальной загрузки он читает базовые сетевые настройки из файлов «/{lib,etc,run}/netplan/*.yaml» и записывает конфигурацию в каталог /run в формате, подходящем для дальнейшей обработки сетевыми демонами (по умолчанию конфигурация передаётся systemd-networkd, но опционально поддерживается NetworkManager).

Из особенностей netplan также отмечается: игнорирование устройств, не отмеченных в конфигурации; вся конфигурация хранится только в исходном YAML-файле (без использования /etc/network/interfaces); поддерживается разбиение конфигурации на несколько файлов (например, для выноса настроек libvirt и lxd); гибкие возможности выбора и смены бэкенда. Из поддерживаемых команд отмечаются: «netplan generate» для генерации конфигурации для обработчиков (NetworkManager или systemd-networkd) на основе базовых YAML-настроек; «netplan apply» для применения всех настроек и перезапуска обработчиков.

Описание параметров сетевых интерфейсов в netplan осуществляется при помощи декларативного синтаксиса, позволяющего достаточно просто описать структуру сложной сети. Из достоинств netplan по сравнению с ifupdown отмечается декларативный синтаксис; возможность применения масок для имён сетевых интерфейсов, MAC-адресов, драйверов и других компонентов; учёт контекста при разборе иерархии параметров сетевых интерфейсов, что позволяет корректно и в правильном порядке передать настройки обработчикам (в ifupdown при разборе сложных конфигураций не исключено возникновение проблем, вызванных состоянием гонки).

В случае применения DHCP простейшая конфигурация netplan будет выглядеть следующим образом:

    network:    version: 2    ethernets:     enp3s0:       dhcp4: yes  

Более сложный пример:

  network:    version: 2     ethernets:     id0:      match:       macaddress: 00:11:22:33:44:55      wakeonlan: true      dhcp4: true      addresses:       - 192.168.14.2/24       - 2001:1::1/64      gateway4: 192.168.14.1      gateway6: 2001:1::2      nameservers:       search: [foo.local, bar.local]       addresses: [8.8.8.8]     lom:      match:       driver: ixgbe      set-name: lom1      dhcp6: true     switchports:      match:       name: enp2*      mtu: 1280    wifis:     all-wlans:      match: {}      access-points:       "Joe's home":        password: "s3kr1t"     wlp1s0:      access-points:       "guest":         mode: ap         channel: 11    bridges:     br0:      interfaces: [wlp1s0, switchports]      dhcp4: true    routes:     - to: 0.0.0.0/0      via: 11.0.0.1      metric: 3 


Source: pirates.in.ua