Network Manager (NetworkManager): Графические средства настройки сетевых интерфейсова в Astra Linux (Астра Линукс)

#1 2022.06.28 13:01:07

0

В состав диструбутива Astra Linux входит сетевая служба NetworkManager и графический инструмент настройки сетевых интерфейсов апплет NetworkManager, обеспечивающий графический пользовательский интерфейс для выполнения всех стандартных операций по настройке сети в режиме настольного компьютера.

При стандартной установке Astra Linux служба NetworkManager и соответствующий графический инструмент устанавливаются и запускаются автоматически, получая под своё управление все внешние сетевые интерфейсы.

Графический инструмент после установки доступен через меню "Пуск" - "Панель управления" - "Сеть" - "Сетевые соединения", или через иконку быстрого запуска на всплывающей линейке в нижней части экрана.

Документация по использованию NetworkManager находится в каталоге

/usr/share/doc/ network-manager/

Конфигурационные файлы NetworkManager находятся в каталоге

/etc/NetworkManager/
#2 2022.06.28 13:04:42

0

Инструмент командной строки nmcli для работы с NetworkManager
В составе пакета имеется инструмент командной строки nmcli для работы с NetworkManager.

Инструмент может работать с устройствами (devices, dev) или с соединениями (connection, con).

Примеры применения командного интерфейса к устройствам:

# устанавливаем IP-адрес для устройства eth0
nmcli device modify eth0 ipv4.address 192.168.32.97/24

# устанавливаем адрес шлюза для устройства eth0
nmcli device modify eth0 ipv4.gateway 192.168.32.1

# устанавливаем адрес DNS для устройства eth0
nmcli device modify eth0 ipv4.dns 192.168.32.1

# проверяем настройки устройства eth0
nmcli device show eth0


При установке ОС по умолчанию устанавливается сетевой интерфейс "Проводное соединение 1", настроенный на получение динамического адреса по протоколу DHCP.

Кроме "длинного" имени "Проводное соединение 1" можно использовать опции path (выбор соединений по номеру конфигурации в шине dBus) или apath (выбор активных соединений по номеру конфигурации в шине dBus), например:

nmcli con show path 3
nmcli con show apath 1


При этом типовой задачей при настройке серверов является задача переключения этого соединения на статический адрес.

Пример сценария настройки соединения (connection, сокращенно con), выполняющего эту задачу:

#!/bin/bash

# Имя соединения, и устанавливаемые начальные параметры: адрес/маска (ip), адрес шлюза (gw), адреса DNS (dns, можно несколько адресов через пробел), шлюз для статического маршрута (gwroute)
con="Проводное соединение 1"
ip="10.0.2.254/24"
gw="10.0.2.1"
dns="10.0.2.254 8.8.8.8"
gwroute="10.0.2.2"

# Проверяем наличие соединения
if nmcli con show "$con" > /dev/null ; then
echo "Настраиваем «$con» на работу со статическим адресом $ip gw $gw."

# Задаем адрес и адрес шлюза
nmcli con mod "$con" ip4 $ip gw4 $gw

# Задаем адреса DNS
nmcli con mod "$con" ipv4.dns "$dns 8.8.8.8"

# Добавим статический маршрут
nmcli con mod "$con" +ipv4.routes "192.168.1.0/24 $gwroute"

# Отключаем DHCP, переводим в "ручной" режим настройки
nmcli con mod "$con" ipv4.method manual
echo "Применены следующие настройки:"
nmcli -p con show "$con" | grep ipv4

# Перезапускаем соединение для применения новых настроек. Лучше всегда делать перезапуск одной командой, чтобы не терять машину при работе через удалённое подключение:

nmcli con down "$con" ; nmcli con up "$con"

else
echo "Соединение «$con» не найдено, настройте адрес вручную."
exit 1
fi


Полное описание командного интерфейса доступно в общей системе документации:

man nmcli
man nmcli-examples
man nm-online


 Astra Linux писал(а) 
Во избежание конфликтов со службой networking настроенная по умолчанию служба NetworkManager НЕ РАБОТАЕТ с сетевыми интерфейсами, перечисленными в файле

/etc/network/interfaces

По умолчанию в файле

/etc/network/interfaces

присутствует только интерфейс локальной петли (loopback).


Для того, чтобы NetworkManager прочитал изменения конфигурации (в том числе изменения списка интерфейсов, перечисленных в файле

/etc/network/interfaces

), следует перезапустить службу NetworkManager:

sudo systemctl restart NetworkManager

При работе со службой NetworkManager можно использовать её псевдоним network-manager:

sudo systemctl restart network-manager

Для того, чтобы изменения настроек сетевого адаптера, сделанные через графический интерфейс, вступили в силу, следует перезапустить сетевой адаптер. При работе в графическом интерфейсе это можно следать просто нажав левой кнопкой мыши на апплет управления сетями и ещё раз нажав левой кнопкой мыши на имя сетевого адаптера в открывшемся списке.
#3 2022.06.28 13:11:21

0

Networking: Настройка сети из командной строки

Теоретически, службы NetworkManager и networking конфликтовать не должны, так как первая не работает с сетевыми интерфейсами, перечисленными в файле

/etc/network/interfaces

, а вторая - работает только с интерфейсами, перечисленными в этом файле, но при переходе к использованию службы networking лучше отключить NetworkManager, для чего выполнить команду:

sudo systemctl --now mask NetworkManager

По желанию после удаления службы NetworkManager можно скрыть графическую оснастку NetworkManager (значок сети в панели задач).Для запрета запуска графической оснастки выполнить команду

sudo mv /etc/xdg/autostart/nm-applet.desktop /etc/xdg/autostart/nm-applet.desktop.disabled

Иконка будет скрыта в следующей сессии пользователя. Если нужно, чтобы оснастка была скрыта немедленно, перезапустить fly-dm:

sudo systemctl restart fly-dm

При перезапуске fly-dm пользовательская сессия будет перезапущена.

Традиционно, настройка сети TCP/IP из командной строки выполняется с использованием инструментов ifup и ifdown, входящих в пакет ifupdown, и предназначенных для высокоуровневого конфигурирования сети.

При этом можно выделить два типичных случая
1. Для систем, работающих в статичной сети (например, для серверов), следует сохранять как можно более простую конфигурацию;
2. Для систем, работающих с динамически меняющимися сетями и IP-адресами (например, для мобильных компьютеров) рекомендуется дополнительно использовать для настройки пакет resolvconf, упрощающий переключение конфигураций при смене сетевого адреса.

Пакеты resolvconf и NetworkManager могут конфликтовать, так как работают с одним файлом /etc/resolv.conf

Пакет ifupdown содержит три команды: команды ifup и ifdown, обеспечивающие настройки сетевых интерфейсов в соответствии с конфигурационным файлом

/etc/network/interfaces

, и команда ifquery, проверяющая корректность конфигурационного файла

/etc/network/interfaces

При этом список включенных в данный момент интерфейсов хранится в файле

/run/network/ifstate


Сценарий изменения настройки сетевого интерфейса (на примере интерфейса eth0):

1. Внести изменения в файл /etc/network/interfaces в секцию, относящуюся к интерфейсу eth0.

2. Проверить корректность файла:

sudo ifquery eth0

3. Перезапустить интерфейс. Лучше всегда делать это одной командой, чтобы не потерять машину при работе через удалённое подключение:

sudo ifdown eth0; sudo ifup eth0

 Astra Linux писал(а) 
Не следует использовать низкоуровневые конфигурационные команды как, например, ifconfig(8) и ip(8) для переключения сетевых интерфейсов во включенное (up) состояние.


Типичной ошибкой при использовании команд ifdown/ifup является повторное назначение параметров интерфейса неотключенным и некорректно работающим сервисом NetworkManager,
что выглядит как игнорирование изменений, внесённых в файл /etc/network/interfaces.

Для проверки полного состояния сетевого интерфейса вместо устаревшей команды ifconfig следует использовать современную команду ip из пакета iproute2:

1. проверить все сетевые адреса, назначенные сетевому интерфейсу:

ip address show dev eth0

2. очистить все сетевые адреса, назначенные сетевому интерфейсу:

sudo ip address flush dev eth0
#4 2022.07.18 12:29:49

0

Сетевые интерфейсы в статичных сетях

Полное описание синтаксиса файла настроек интерфейсов /etc/network/interfaces доступно по команде

1. auto <Имя_интерфейса>
- Автоматический запуск указанного интерфейса при запуске системы

2. allow-auto <Имя_интерфейса>
- Автоматический запуск указанного интерфейса при запуске системы

3. allow-hotplug <Имя_интерфейса>
Автоматический запуск указанного интерфейса при обнаружении ядром события подключения к этому интерфейсу

4. Опции, начинающиеся с "iface <config_name> …"

5. Определяют сетевую конфигурацию <config_name> и имеют следующий синтаксис:
iface <config_name> <address_family> <method_name>
<option1> <value1>
<option2> <value2>
...


6. Опции, начинающиеся с "mapping <interface_name_glob>"

7. Определяют соответствие значения <config_name> и <interface_name>
Для простых конфигураций не применяются.

8. Опции, начинающиеся с симовола "#"
Игнорируются, как комментарии. Комментарии, начинающиеся не с начала строки не поддерживаются.

9. Опции, заканчивающиеся символом "\"
Продолжение опции в следующей строке

Не допускается определять повторяющиеся имена в опциях iface.
#5 2022.07.18 12:42:37

0

Интерфейс локальная петля (loopback)

Автоматическое включение интерфейса локальной петли при запуске системы задаётся в /etc/network/interfaces следующими командами:

auto lo
iface lo inet loopback


Этот интерфейс всегда присутствует в стандартном файле /etc/network/interfaces.
#6 2022.07.18 12:43:55

0

Интерфейс, получающий адрес через DHCP

Отправка запроса DHCP и получение адреса при подключении сетевого кабеля:

allow-hotplug eth0
iface eth0 inet dhcp
#7 2022.07.18 14:05:35

0

Интерфейс со статическим адресом

allow-hotplug eth0
iface eth0 inet static
address 192.168.11.100
netmask 255.255.255.0
gateway 192.168.11.1
dns-domain example.com
dns-nameservers 192.168.11.1


В примере подразумевается следующее:
- Диапазон IP-аресов локальной сети: 192.168.11.0 - 192.168.11.255
- IP-адрес шлюза: 192.168.11.1
- Собственный IP-адрес интерфейса 192.168.11.100
- The resolvconf package: installed
- Имя домена: "example.com" (используется пакетом resolvconf)
- IP-адрес сервера DNS: 192.168.11.1 (используется пакетом resolvconf)

При этом, если не используется пакет resolvconf, соответствующая настройка параметров DNS должна быть выполнена вручную в файле /etc/resolv.conf:

nameserver 192.168.11.1
domain example.com
#8 2022.07.18 14:08:29

0

Systemd-networkd / systemd-resolved

Для использования служб systemd-networkd / systemd-resolved во избежание конфликтов следует отключить, остановить и заблокировать все остальные службы управления сетевыми интерфейсами:

sudo systemctl --now mask NetworkManager
sudo systemctl --now mask networking
sudo systemctl --now mask resolvconf


И разблокировать и запустить systemd-networkd / systemd-resolved:

sudo systemctl unmask systemd-networkd
sudo systemctl enable systemd-networkd
sudo systemctl start systemd-networkd
sudo systemctl unmask systemd-resolved
sudo systemctl enable systemd-resolved
sudo systemctl start systemd-resolved


Конфигурациионные файлы сетевых служб systemd хранятся в каталоге /etc/systemd/network.

Доступны следующие типы конфигурационных файлов:
- .link – описывают физические параметры каждого интерфейса: имя, MAC, MTU и другие
- .network – описывают параметры сети: IP, маршруты, DNS и другие
- .netdev – описывают виртуальные интерфейсы, мосты.

Описания содержимого конфигурационных файлов доступны в общей системе документации:

man systemd-networkd
man systemd.link
man systemd.network
man systemd.netdev
man systemd-resolved



Мобильный режим

В мобильном режиме используется сетевой менеджер connman, а файл /etc/resolv.conf заменяется на ссылку на файл /var/run/connman/resolv.conf

Сетевой менеджер connman поддерживает собственный интерфейс командной строки connmanctl.

Описание команд commanctl доступно в системе документации:

man connmanctl

Графический интерфейс для работы с connman доступен в мобильной версии ОС Astra Linux.