Nmstate. Декларативное управление сетевыми настройками

2026-09-12 · 1 мин. для прочтения
blog computer-science

1 Nmstate. Декларативное управление сетевыми настройками

Nmstate. Декларативное управление сетевыми настройками.

Содержание

1.1 Общая информация

  • Репозиторий: https://github.com/nmstate/nmstate
  • Библиотека и утилита командной строки для декларативного управления сетевыми настройками хоста.
  • Описание в текстовом файле (YAML или JSON).
  • Реализует декларативный подход.
  • В качестве основного бэкенда используется NetworkManager.

1.2 Nmstate и NetworkManager

1.2.1 Императивный подход (nmcli)

  • Что нужно сделать:

    nmcli connection add type vlan con-name vlan10 ifname ens18.10 dev ens18 id 10 ipv4.addresses 10.10.10.2/24 ipv4.method manual
    
  • Не идемпотентно (если вы запустите эту команду дважды, она выдаст ошибку).

1.2.2 Декларативный подход (nmstate)

  • Какой результат нужно получить:

    interfaces:
    ​  - name: ens18.10
        type: vlan
        state: up
        vlan:
          base-iface: ens18
          id: 10
        ipv4:
          enabled: true
          address:
    ​        - ip: 10.10.10.2
              prefix-length: 24
    
  • Идемпотентность (Если профиль уже существует — ничего не произойдет. Если его нет — он будет создан).

1.3 Установка

sudo dnf -y install nmstate

1.4 Миграция на nmstate

  • Процесс миграции сводится к экспорту текущих настроек в YAML и переходу на управление через файлы.
  • В RHEL 9/10 классические скрипты /etc/sysconfig/network-scripts не поддерживаются.
  • Настройки хранятся в файлах NetworkManager (/etc/NetworkManager/system-connections/).

1.4.1 Экспорт текущей конфигурации

  • Выполните команду:
nmstatectl show > current-network.yaml
Дмитрий Сергеевич Кулябов
Authors
Профессор кафедры теории вероятностей и кибербезопасности
Работаю профессором на кафедре теории вероятностей и кибербезопасности Российского университета дружбы народов им. Патриса Лумумбы. Научные интересы относятся к области теоретической физики и математического моделирования.