Автор Тема: Netplan - новый формат сетевой конфигурации  (Прочитано 151 раз)

Оффлайн vita

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2279
  • Да будет свет!
Netplan — это фреймворк для конфигурации сетевых интерфейсов, использующий декларативный синтаксис (формат YAML) для описания сети. Описанная таким образом сетевая конфигурация может использоваться службами NetworkManager или systemd-networkd. Netplan становится инструментом, включённым в новые инсталляции Ubuntu 17.10 (Artful Aardvark) по умолчанию, и приходит на смену 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:
для генерации конфигурации для обработчиков (NetworkManager или systemd-networkd) на основе базовых YAML-настроек: netplan generateдля применения всех настроек и перезапуска обработчиков: 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
Документация по использованию — в git.launchpad.net.
Источник
Делай с нами, делай как мы, делай лучше нас!

Оффлайн vita

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2279
  • Да будет свет!
В выпущенной сегодня второй альфе Ubuntu Mate 17.10 (artful) посмотрела реализацию перехода на Netplan.
В директории /etc/netplan появился файл 01-network-manager-all.yaml следующего содержания:
Цитировать
# Let NetworkManager manage all devices on this system
network:
  version: 2
  renderer: NetworkManager
Подключение к сети по Wi-Fi прошло без проблем.
Процесс пошёл  :)
Делай с нами, делай как мы, делай лучше нас!