Для работы со службой NetworkManager при установке ОС ALSE необходимо:

  • на странице Установка базовой системы выбрать для установки ядро linux-5.15-generic;
  • на странице Выбор программного обеспечения выбрать следующие пункты:
    • Консольные утилиты;
    • Средства удаленного подключения SSH;
  • на странице Дополнительные настройки ОС выбрать Максимальный уровень защищенности "Смоленск";
  • на странице Дополнительные настройки ОС выбрать пункты Мандатный контроль целостности и Мандатное управление доступом.

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

Служба NetworkManager обеспечивает базовые операции с сетевыми интерфейсами. Она предназначена для создания, отображения, редактирования, удаления, активирования или деактивирования сетевых соединений, а также для контроля и просмотра статуса сетевых устройств. Управление службой NetworkManager осуществляются с помощью инструментов командной строки nmcli или nmtui.

Установка и настройка NetworkManager

  1. Для установки службы NetworkManager необходимо выполнить команду:

    sudo apt install network-manager
    После установки пакета автоматически будут сгенерированы конфигурационные файлы /etc/resolv.conf и /run/NetworkManager/resolv.conf. Файл /run/NetworkManager/resolv.conf является основным и в него автоматически вносятся nameserver записи, если при создании сетевых соединений был использован параметр ipv4.dns

    По умолчанию NetworkManager после перезагрузки ОС начинает автоматически создавать в памяти новые соединения для каждого ethernet интерфейса и присваивать им имена вида "проводное подключение N" и искать настроенные соединения прежде чем активировать интерфейс. Это может привести к неработоспособности сервисов, которым необходима привязка к адресу интерфейса при их загрузке.

    Для того, чтобы избежать этой проблемы необходимо создать новый конфигурационный файл /etc/NetworkManager/conf.d/brest.conf с содержимым, описанным в следующем шаге.

  2. Создать конфигурационный файл /etc/NetworkManager/conf.d/brest.conf:

    [main]
    no-auto-default=*
    ignore-carrier=*
    CODE
  3. Применить настройки перезагрузкой узла или перезапуском службы NetworkManager командой:

    sudo systemctl restart network-manager.service

Управление сетевыми соединениями

Для управления службой NetworkManager можно воспользоваться командами утилиты nmcli, перечисленными в таблице:

КомандаОписание
sudo nmcli device showкраткая информация по всем сетевым интерфейсам
sudo nmcli con show  вывод полного списка соединений (включая UUID, типы и интерфейсы)
sudo nmcli con show --active вывод списка только активных соединений
sudo nmcli device show <имя_сетевого_интерфейса>  краткая информация по сетевому интерфейсу
sudo nmcli con show <имя_сетевого_соединения>  подробная информация по сетевому соединению
sudo nmcli con add <имя_сетевого_соединения>  добавление сетевого соединения
sudo nmcli con down <имя_сетевого_соединения>  
отключение сетевого соединения
sudo nmcli con up <имя_сетевого_соединения>активация сетевого соединения
sudo nmcli con del <имя_сетевого_соединения>  
удаление сетевого соединения
sudo nmcli con modify <имя_сетевого_соединения>  настройка сетевого соединения

Примеры создания соединений

Агрегация сетевых интерфейсов с установленным IP-адресом

  1. Добавить агрегацию (в данном примере bond0 с адресом 10.100.100.2/24) командой:

    sudo nmcli con add type bond con-name bond0 ifname bond0 bond.options "mode=802.3ad,miimon=100,downdelay=200,updelay=200,lacp_rate=fast,xmit_hash_policy=layer2+3"  ipv4.method manual ipv4.address 10.100.100.2/24 ipv4.gateway 10.100.100.254 ipv6.method ignore

    В ОС ALSE не рекомендуется использовать настройки сети без параметра ipv6.method ignore, который отключает цикличную переинициализацию физических интерфейсов , а также всех соединений на нее настроенных.

  2. Добавить в агрегацию bond0 два физических сетевых интерфейса (в данном примере eth1 и eth2) командами:

    sudo nmcli con add type ethernet con-name eth1 ifname eth1 master bond0
    sudo nmcli con add type ethernet con-name eth2 ifname eth2 master bond0

  3. Активировать соединение:

    sudo nmcli con up bond0

  4. Перезапустить службу NetworkManager командой:

    sudo systemctl restart network-manager.service

    При наличии других настроенных сетевых интерфейсов, можно обновить конфигурационные файлы службы NetworkManager командой:

    sudo systemctl reload network-manager.service

Агрегация сетевых интерфейсов с установленным IP-адресом на VLAN 

  1. Добавить агрегацию, в данном примере bond0, командой:

    sudo nmcli con add type bond con-name bond0 ifname bond0 bond.options "mode=802.3ad,miimon=100,downdelay=200,updelay=200,lacp_rate=fast,xmit_hash_policy=layer2+3" ipv4.method disabled ipv6.method ignore

  2. Добавить в агрегацию bond0 два физических сетевых интерфейса (в данном примере eth1 и eth2) командами:

    sudo nmcli con add type ethernet con-name eth1 ifname eth1 master bond0
    sudo nmcli con add type ethernet con-name eth2 ifname eth2 master bond0

  3. Активировать соединение:

    sudo nmcli con up bond0

  4. Добавить VLAN-интерфейс (в данном примере с адресом 10.100.100.2/24) командой:

    sudo nmcli con add type vlan con-name vlan3 ifname vlan3 vlan.parent bond0 vlan.id 3 ethernet.mtu 1500 ipv4.method manual ipv4.address 10.100.100.2/24 ipv4.gateway 10.100.100.254 ipv6.method ignore

  5. Перезапустить службу NetworkManager командой:

    sudo systemctl restart network-manager.service

    При наличии других настроенных сетевых интерфейсов, можно обновить конфигурационные файлы службы NetworkManager командой:

    sudo systemctl reload network-manager.service

Агрегация сетевых интерфейсов без установленных на VLAN IP-адресов

  1. Добавить агрегацию сетевых интерфейсов (в данном примере bond1) командой:

    sudo nmcli con add type bond con-name bond1 ifname bond1 bond.options "mode=802.3ad,miimon=100,downdelay=200,updelay=200,lacp_rate=fast,xmit_hash_policy=layer2+3" ipv4.method disabled ipv6.method ignore

  2. Добавить в агрегацию bond1 два физических сетевых интерфейса (в данном примере eth3 и eth4) командами:

    sudo nmcli con add type ethernet con-name eth3 ifname eth3 master bond1
    sudo nmcli con add type ethernet con-name eth4 ifname eth4 master bond1

  3. Активировать соединение:

    sudo nmcli con up bond1

  4. Добавить VLAN-интерфейс командой:

    sudo nmcli con add type vlan con-name vlan4 ifname vlan4 vlan.parent bond1 vlan.id 4 ethernet.mtu 1500 ipv4.method disabled ipv6.method ignore

  5. Перезапустить службу NetworkManager командой:

    sudo systemctl restart network-manager.service

    При наличии других настроенных сетевых интерфейсов, можно обновить конфигурационные файлы службы NetworkManager командой:

    sudo systemctl reload network-manager.service

Добавление сетевого моста с дополнительным VLAN

Предварительно необходимо создать агрегацию сетевых интерфейсов (в данном примере bond1).

  1. Добавить сетевой мост командой:

    sudo nmcli con add type bridge con-name br77 ifname br77 bridge.stp no ipv4.method manual ipv4.address 192.168.1.10/24 ipv6.method ignore

  2. Добавить дополнительный (slave) VLAN командой:

    sudo nmcli con add type vlan con-name vlan1001 ifname bond1.1001 vlan.parent bond1 vlan.id 1001 master br77

Изменение настроек сети на сервере с ifupdown на NetworkManager

  1.  Установить службу NetworkManager (если она не была установлена в ОС ранее):

    sudo apt install network-manager
    Или, если при установке ОС был выбран флаг Запрет автонастройки сети, снять маскировку со службы:
    sudo systemctl unmask NetworkManager
    sudo systemctl unmask NetworkManager-wait-online.service
    sudo systemctl unmask network-manager.service
    sudo systemctl enable network-manager
    sudo systemctl start network-manager

  2. В конфигурационном файле /etc/NetworkManager/NetworkManager.conf проверить значение раздела ifupdown, в нем должно быть установлено значение false.
    Пример вида конфигурационного файла:

    [main]
    plugins=ifupdown,keyfile
     
    [ifupdown]
    managed=false
    CODE
  3. Открыть конфигурационный файл /etc/network/interfaces, очистить или закомментировать конфигурацию сетевых настроек.

    auto bond0
    iface bond0 inet static
            bond-slaves eth0 eth1
            bond-mode 4
            bond-miimon 100
            bond-downdelay 200
            bond-lacp-rate 1
            bond-xmit-hash-policy layer2+3
            address 10.11.123.11/24
            gateway 10.11.123.254
     
    auto bond1
    iface bond1 inet static
            bond-slaves eth2 eth3
            bond-mode 4
            bond-miimon 100
            bond-downdelay 200
            bond-lacp-rate 1
            bond-xmit-hash-policy layer2+3
            address 10.11.123.12/24
            gateway 10.11.123.254
    CODE
  4. Применить изменения:

    sudo systemctl restart networking.service

  5. Настроить сеть утилитой nmcli:

    sudo nmcli con add type bond con-name bond0 ifname bond0 bond.options "mode=802.3ad,miimon=100,downdelay=200,updelay=200,lacp_rate=fast,xmit_hash_policy=layer2+3"  ipv4.method manual ipv4.address 10.11.123.11/24 ipv4.gateway 10.11.123.254 ipv6.method ignore
    sudo nmcli con add type ethernet con-name eth0 ifname eth0 master bond0
    sudo nmcli con add type ethernet con-name eth1 ifname eth1 master bond0
    sudo nmcli con up bond0
    sudo systemctl restart network-manager.service
    sudo nmcli con add type bond con-name bond1 ifname bond1 bond.options "mode=802.3ad,miimon=100,downdelay=200,updelay=200,lacp_rate=fast,xmit_hash_policy=layer2+3"  ipv4.method manual ipv4.address 10.11.123.12/24 ipv4.gateway 10.11.123.254 ipv6.method ignore
    sudo nmcli con add type ethernet con-name eth2 ifname eth0 master bond1
    sudo nmcli con add type ethernet con-name eth3 ifname eth1 master bond1
    sudo nmcli con up bond1
    sudo systemctl restart network-manager.service

  6. Выполнить перезагрузку ОС.

Применение соединений созданных службой NetworkManager в ПК СВ "Брест"

В данном примере предварительно создана агрегация bond1, в которую входят тегированные (диапазон VLAN 1001 - 1100) физические сетевые интерфейсы eth3 и eth4:

sudo nmcli con add type bond con-name bond1 ifname bond1 bond.options "mode=802.3ad,miimon=100,downdelay=200,updelay=200,lacp_rate=fast,xmit_hash_policy=layer2+3" ipv4.method disabled ipv6.method ignore
sudo nmcli con add type ethernet con-name eth3 ifname eth3 master bond1
sudo nmcli con add type ethernet con-name eth4 ifname eth4 master bond1
sudo nmcli con up bond1

  1. В веб-интерфейсе ПК СВ "Брест" в меню слева выбрать пункт меню Сеть — Вирт.сети и на открывшейся странице Вирт.сети нажать на кнопку +, а затем в открывшемся меню выбрать пункт Создать.
  2. На открывшейся странице Создать Виртуальную сеть во вкладке Общие в поле Название задать наименование виртуальной сети.
  3. На странице Создать Виртуальную сеть во вкладке Конфигурация:
    • в выпадающем списке Режим работы сети выбрать 802.1q;
    • в поле VLAD ID выбрать Ручной номер VLAN и задать значение 1001;
    • в поле Физическое устройство задать значение bond1:

  4. На странице Создать Виртуальную сеть во вкладке Адреса задать значения в полях Первый IPv4 адрес и Размер.
  5. Во вкладке Контекст задать значения в полях Адрес сети и Маска подсети.
  6. Нажать кнопку Создать.
  7. Для шаблонов ВМ, использующих готовые образы с установленным пакетом NetworkManager, дополнительно необходимо добавить в шаблон ВМ параметр NETCFG_TYPE со значением nm.
  8. Создать ВМ из шаблона.
    Как только процесс ВМ будет создан, на том хосте виртуализации где этот процесс расположен, в список соединений автоматически добавятся еще несколько:

    onebr.1001
    bond1.1001@bond1
    one-0-0
    CODE

    где onebr.1001 — основное (master) соединение типа bridge, дополнительными для которого являются соединение типа vlan (bond1.1001) и соединение типа tun (one-0-0).

    При миграции ВМ на другой сервер виртуализации:

    • соединения bond1.1001 и one-0-0 на текущем узле будут удалены и добавлены к созданному onebr.1001 на том сервере виртуализации, куда мигрировала ВМ;
    • если же в текущей виртуальной сети несколько ВМ, то на текущем сервере виртуализации удалится только соединение one-N-N и добавится дополнительное вместе с созданными bond1.1001 в onebr.1001 на на том сервере виртуализации, куда мигрировала ВМ.

    При удалении ВМ, удаляются все соединения которые создавались для обеспечения сетевой связности процессов этих ВМ, кроме onebr.N, это соединение удалится только при перезагрузке узла, так как создается только для подключения к нему процесса ВМ.