Статья применима к:
|
Современные версии Astra Linux поддерживают возможность использования трёх (а с учётом возможности использования Astra Linux для мобильных устройств - четырёх) способов настройки сети:
Кроме указанных выше методов настройки сети некоторые сетевые параметры можно устанавливать:
|
Конфигурационные файлы NetworkManager:
Сценарии и конфигурации сетевых интерфейсов находятся в подкаталогах каталога /etc/NetworkManager/.
Документация по использованию NetworkManager находится в каталоге /usr/share/doc/network-manager/.
В состав дистрибутива Astra Linux входит сетевая служба NetworkManager и графический инструмент настройки сетевых интерфейсов (апплет) NetworkManager, обеспечивающий графический пользовательский интерфейс для выполнения всех стандартных операций по настройке сети в режиме настольного компьютера.
При стандартной установке Astra Linux служба NetworkManager и соответствующий графический инструмент устанавливаются и запускаются автоматически, получая под свое управление все внешние сетевые интерфейсы.
Графический инструмент после установки доступен через меню "Пуск" - "Панель управления" - "Сеть" - "Сетевые соединения", или через иконку быстрого запуска на всплывающей линейке в нижней части экрана.
При использовании графического инструмента управления настройками сети для того, чтобы указать адрес DNS-сервера, следует выполнить следующие действия:



В составе пакета имеется инструмент командной строки nmcli для работы с NetworkManager.
Инструмент может работать с устройствами (devices, dev) или с соединениями (connection, con).
Примеры применения командного интерфейса к устройствам:
# установить IP-адрес для устройства eth0 # установить адрес шлюза для устройства eth0 # установить адрес DNS для устройства eth0 # проверить настройки устройства eth0 |
При установке ОС по умолчанию устанавливается сетевой интерфейс "Проводное соединение 1", настроенный на получение динамического адреса по протоколу DHCP.
Кроме "длинного" имени "Проводное соединение 1" можно использовать опции path (выбор соединений по номеру конфигурации в шине dBus) или apath (выбор активных соединений по номеру конфигурации в шине dBus), например:
| nmcli con show path 3 nmcli con show apath 1 |
Типовой задачей при настройке серверов является переключение соединения на использование статического (постоянного) IP-адреса.
Пример сценария настройки соединения (connection, сокращенно con), выполняющего эту задачу:
#!/bin/bash # Имя соединения, и устанавливаемые начальные параметры: адрес/маска (ip), адрес шлюза (gw), адреса DNS (dns, можно несколько адресов через пробел), шлюз для статического маршрута (gwroute) # Задать адрес и адрес шлюза # Задать адреса DNS # Добавить статический маршрут # Отключаем DHCP, переводим в "ручной" режим настройки # Перезапустить соединение для применения новых настроек. Лучше всегда делать перезапуск одной командой, чтобы не терять машину при работе через удаленное подключение: nmcli con down "$con" ; nmcli con up "$con" else |
Полное описание командного интерфейса доступно в общей системе документации:
man nmcli |
| Во избежание конфликтов со службой networking служба NetworkManager НЕ РАБОТАЕТ с сетевыми интерфейсами, перечисленными в файле /etc/network/interfaces или в файлах в каталоге /etc/networking/interfaces.d/. По умолчанию в файле /etc/network/interfaces присутствует только интерфейс локальной петли (loopback). |
Для того, чтобы NetworkManager прочитал изменения конфигурации (в том числе изменения списка интерфейсов, перечисленных в файле /etc/network/interfaces), следует перезапустить службу NetworkManager:
| sudo systemctl restart NetworkManager |
| При работе со службой NetworkManager можно использовать её псевдоним network-manager: sudo systemctl restart network-manager |
Для того, чтобы изменения настроек сетевого адаптера, сделанные через графический интерфейс, вступили в силу, следует перезапустить сетевой адаптер. При работе в графическом интерфейсе это можно сделать просто нажав левой кнопкой мыши на апплет управления сетями и ещё раз нажав левой кнопкой мыши на имя сетевого адаптера в открывшемся списке.
Для предотвращения дублирования сетевых адресов, присваиваемых сетевым интерфейсам, NetworkManager использует параметр сетевого интерфейса ipv4.dad-timeout.
Значения этого параметра:
любое положительное число — периодичность проверки в миллисекундах. При положительном значении параметра при смене адреса при активации интерфейса выполняется проверка дублирования. Проверка выполняется с заданной периодичностью. Активация интерфейса не завершается успехом без успешного завершения проверки (т.е., до обнаружения, что дублирование отсутствует).
Проверка дублирования выполняется только при смене (назначении) адреса. При включении интерфейса с ранее назначенным адресом проверка не выполняется. |
Для задания значения в конфигурационном файле отдельного сетевого интерфейса параметр можно разместить в секции [ipv4]:
[ipv4] dad-timeout=<значение> |
Для задания значения, используемого по умолчанию, оно должно быть размещено в секции [connection] (если такой секции нет - то добавить её). Например, файл переопределения умолчаний может называться /etc/NetworkManager/conf.d/dad.conf и иметь следующий вид:
[connection] ipv4.dad-timeout=<значение> |
Синтаксис команды переопределения значения с помощью интерфейса командной строки:
sudo nmcli con mod <имя_соединения> ipv4.dad-timeout <значение> |
sudo nmcli con mod Проводное\ соединение\ 1 ipv4.dad-timeout -1 |
Теоретически, службы NetworkManager и networking конфликтовать не должны, так как первая не работает с сетевыми интерфейсами, перечисленными в файле /etc/network/interfaces, а вторая - работает только с интерфейсами, перечисленными в этом файле, но при переходе к использованию службы networking лучше отключить NetworkManager, для чего выполнить команду:
| sudo systemctl --now mask NetworkManager |
Также можно удалить графическую оснастку NetworkManager (значок сети в панели задач):
Иконка будет скрыта в следующей сессии пользователя. |
Традиционно, настройка сети TCP/IP из командной строки выполняется с использованием инструментов ifup и ifdown, входящих в пакет ifupdown, и предназначенных для высокоуровневой настройки сети.
При этом можно выделить два типичных случая
| Пакеты resolvconf и NetworkManager могут конфликтовать, так как работают с одним файлом /etc/resolv.conf |
Пакет ifupdown содержит три команды: команды ifup и ifdown, обеспечивающие настройки сетевых интерфейсов в соответствии с конфигурационным файлом /etc/network/interfaces, и команда ifquery, проверяющая корректность конфигурационного файла /etc/network/interfaces.
При этом список включенных в данный момент интерфейсов хранится в файле /run/network/ifstate
Сценарий изменения настройки сетевого интерфейса (на примере интерфейса eth0):
Внести изменения в файл /etc/network/interfaces в секцию, относящуюся к интерфейсу eth0.
Проверить корректность файла:
| sudo ifquery eth0 |
Перезапустить интерфейс. Лучше всегда делать это одной командой, чтобы не потерять машину при работе через удалённое подключение:
| sudo ifdown eth0; sudo ifup eth0 |
| Не следует использовать низкоуровневые конфигурационные команды как, например, ifconfig(8) и ip(8) для переключения сетевых интерфейсов во включенное (up) состояние. |
Типичной ошибкой при использовании команд ifdown/ifup является повторное назначение параметров интерфейса неотключенным и некорректно работающим сервисом NetworkManager,
что выглядит как игнорирование изменений, внесённых в файл /etc/network/interfaces.
Для проверки полного состояния сетевого интерфейса вместо устаревшей команды ifconfig следует использовать современную команду ip из пакета iproute2:
проверить все сетевые адреса, назначенные сетевому интерфейсу:
| ip address show dev eth0 |
очистить все сетевые адреса, назначенные сетевому интерфейсу:
| sudo ip address flush dev eth0 |
Полное описание синтаксиса файла настроек интерфейсов /etc/network/interfaces доступно по команде
| man interfaces |
Основные опции настройки:
Опция | Значение |
|---|---|
auto <Имя_интерфейса> | Автоматический запуск указанного интерфейса при запуске системы |
allow-auto <Имя_интерфейса> | Автоматический запуск указанного интерфейса при запуске системы |
allow-hotplug <Имя_интерфейса> | Автоматический запуск указанного интерфейса при обнаружении ядром события подключения к этому интерфейсу |
Опции, начинающиеся с "iface <config_name> …" | Определяют сетевую конфигурацию <config_name> и имеют следующий синтаксис: iface <config_name> <address_family> <method_name> |
Опции, начинающиеся с "mapping <interface_name_glob>" | Определяют соответствие значения <config_name> и <interface_name>. Для простых конфигураций не применяются. |
Опции, начинающиеся с симовола "#" | Игнорируются, как комментарии. Комментарии, начинающиеся не с начала строки не поддерживаются. |
| Опции, заканчивающиеся символом "\" | Продолжение опции в следующей строке |
Не допускается определять повторяющиеся имена в опциях iface. |
Автоматическое включение интерфейса локальной петли при запуске системы задаётся в /etc/network/interfaces следующими командами:
auto lo |
Этот интерфейс всегда присутствует в стандартном файле /etc/network/interfaces.
Отправка запроса DHCP и получение адреса при подключении сетевого кабеля:
allow-hotplug eth0 |
| 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 |
В примере подразумевается следующее:
При этом, если не используется пакет resolvconf, соответствующая настройка параметров DNS должна быть выполнена вручную в файле /etc/resolv.conf:
nameserver 192.168.11.1 |
Для использования служб systemd-networkd / systemd-resolved во избежание конфликтов следует отключить, остановить и заблокировать все остальные службы управления сетевыми интерфейсами:
sudo systemctl --now mask NetworkManager |
И разблокировать и запустить systemd-networkd / systemd-resolved:
sudo systemctl unmask systemd-networkd |
Конфигурационные файлы сетевых служб systemd хранятся в каталоге /etc/systemd/network.
Доступны следующие типы конфигурационных файлов:
Описания содержимого конфигурационных файлов доступны в общей системе документации:
man systemd-networkd |
В мобильном режиме используется сетевой менеджер connman, а файл /etc/resolv.conf заменяется на ссылку на файл /var/run/connman/resolv.conf.
Сетевой менеджер connman поддерживает собственный интерфейс командной строки connmanctl.
Описание команд connmanctl доступно в системе документации:
| man connmanctl |
Графический интерфейс для работы с connman доступен в мобильной версии ОС Astra Linux.