См. также:
Статья применима к:
- Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.8)
- Astra Linux Special Edition РУСБ.10015-01 и РУСБ.10015-10 (очередное обновление 1.7)
- Astra Linux Special Edition РУСБ.10015-37 (очередное обновление 7.7)
- Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)
- Astra Linux Special Edition РУСБ.10015-16 исп. 1
- Astra Linux Special Edition РУСБ.10015-16 исп. 2
- Astra Linux Special Edition РУСБ.10265-01 (очередное обновление 8.1)
- Astra Linux Common Edition 2.12
Введение
Современные версии Astra Linux поддерживают возможность использования трёх (а с учетом возможности использования Astra Linux для мобильных устройств - четырех) способов настройки сети:
Служба NetworkManager — служба, обеспечивающая операции с сетевыми интерфейсами. При стандартной установке Astra Linux эта служба и её графический интерфейс устанавливаются и запускаются автоматически, и автоматически получают управление внешними сетевыми интерфейсами (а в Astra Linux Special Edition 1.8 - также получает управление интерфейсом обратной петли). Помимо простых проводных сетевых интерфейсов может работать с агрегированными интерфейсами, мостами, интерфейсами WiFi, VPN. Поддерживает аутентификацию по протоколу 802.1х в проводных и беспроводных сетях, для чего использует службу wpa_supplicant.
- Служба networking / resolvconf — служба для автоматизации настроек сетевых интерфейсов. Удобна для использования в сценариях автоматизации сложных серверных конфигураций и (при использовании пакета resolvconf) - для обеспечения автоматической перенастройки мобильных компьютеров, переключающихся между разными сетями. При стандартной установке Astra Linux эта служба устанавливаются и запускается автоматически, однако:
- в Astra Linux Special Edition 1.8 управление имеющимися внешними сетевыми интерфейсами автоматически не получает;
- в обновлениях, выпущенных до Astra Linux Speciql Edition 1.8 управляет только интерфейсом локальной обратной петли (loopback).
- Служба systemd-networkd / systemd-resolved — службы для автоматизации настроек сетевых интерфейсов и правил разрешения имён, базирующиеся на идеологии systemd.
При стандартной установке Astra Linux эти службы устанавливаются автоматически, однако находятся в заблокированном состоянии, соответственно, не запускаются, и ничем не управляют. - Служба connmand — служба для управления подключениями к беспроводным сетям. Управляется через собственный интерфейс командной строки . В настоящей статье не рассматривается.
Кроме указанных выше методов настройки сети некоторые сетевые параметры можно устанавливать:
- изменяя параметры ядра (инструмент sysctl);
получая параметры настроек сетевых подключений по протоколу DHCP с помощь команды dhclient (см. DHCP: служба isc-dhcp-server и DHCP: служба kea).
Данный способ применять не рекомендуется, так как после выполнения команды получения сетевых настроек от службы DHCP:
sudo dhclientв памяти остается процесс dhclient, периодически запрашивающий параметры сети и обновляющий настройки сетевых подключений, что конфликтовать с настройками, устанавливаемыми сетевыми службами.
NetworkManager
Для удаления, добавления или изменения сетевых соединений пользователем с помощью NetworkManager необходимо участие пользователя в группе netdev. Для включения и выключения сетевых соединений участие пользователя в группе netdev не требуется. Проверить актуальные права текущего пользователя можно командой:
Конфигурационные файлы NetworkManager
Конфигурационные файлы NetworkManager:
- /etc/NetworkManager/NetworkManager.conf — стандартный конфигурационный файл, не должен изменяться при настройке ОС, не рекомендуется для внесения изменений так как может автоматически изменяться при установке обновлений;
- /etc/NetworkManager/conf.d/*.conf – файлы для размещения локальных изменений конфигурации, вносимых при настройке ОС. Не изменяется при установке обновлений, переопределяет файлы в каталоге /usr/lib/NetworkManager/conf.d/ (см. ниже);
- /usr/lib/NetworkManager/conf.d/*.conf – файлы для размещения локальных изменений конфигурации, вносимых программными пакетами;
- /var/lib/NetworkManager/NetworkManager-intern.conf – внутренний конфигурационный файл, изменяется автоматически службой NetworkManager и не должен изменяться иными способами.
Сценарии и конфигурации сетевых интерфейсов находятся в подкаталогах каталога /etc/NetworkManager/.
Документация по использованию NetworkManager находится в каталоге /usr/share/doc/network-manager/.
Графические средства настройки сетевых интерфейсов
В состав дистрибутива Astra Linux входит сетевая служба NetworkManager и графический инструмент настройки сетевых интерфейсов (апплет) NetworkManager, обеспечивающий графический пользовательский интерфейс для выполнения всех стандартных операций по настройке сети в режиме настольного компьютера.
При стандартной установке Astra Linux служба NetworkManager и соответствующий графический инструмент устанавливаются и запускаются автоматически, получая под свое управление все внешние сетевые интерфейсы.
Графический инструмент после установки доступен через меню "Пуск" - "Панель управления" - "Сеть" - "Сетевые соединения", или через иконку быстрого запуска на всплывающей линейке в нижней части экрана.
Пример настройки адреса DNS-сервера с помощью графического инструмента
При использовании графического инструмента управления настройками сети для того, чтобы указать адрес DNS-сервера, следует выполнить следующие действия:
- Нажать правой кнопкой мыши (ПКМ) на иконке NetworkManager в системном трее → "Изменить соединения...":
- В открывшемся окне выбрать используемое сетевое соединение и дважды кликнуть по нему;
- На вкладке "Параметры IPv4" задать IP-адрес, маску сети и шлюз (при необходимости), а так же IP-адрес контроллера домена в качестве адреса дополнительного DNS-сервера:
- Нажать "Сохранить";
- Чтобы изменения вступили в силу нажать левую кнопку мыши (ЛКМ) на иконке NetworkManager в системном трее, после чего ЛКМ на используемое сетевое соединение:
Инструмент командной строки 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" можно использовать опции path (выбор соединений по номеру конфигурации в шине dBus) или apath (выбор активных соединений по номеру конфигурации в шине dBus), например:
nmcli con show apath 1
Типовой задачей при настройке серверов является переключение соединения на использование статического (постоянного) IP-адреса.
Пример сценария настройки соединения (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-examples
man nm-online
Во избежание конфликтов со службой networking служба NetworkManager НЕ РАБОТАЕТ с сетевыми интерфейсами, перечисленными в файле /etc/network/interfaces или в файлах в каталоге /etc/networking/interfaces.d/. По умолчанию:
- в Astra Linux Special Edition очередное обновление 1.8 упоминания сетевых интерфейсов в указанных локациях отсутствуют, то есть при наличии службы NetworkManager все сетевые интерфейсы находятся под её управлением;
- в более ранних очередных обновлениях по умолчанию в файле /etc/network/interfaces присутствует только интерфейс локальной петли (loopback).
Для того, чтобы NetworkManager прочитал изменения конфигурации, сделанные с помощью инструмента nmcli (а также изменения списка интерфейсов, перечисленных в файле /etc/network/interfaces), следует:
выполнить команду:
sudo nmcli con reloadили перезапустить службу NetworkManager:
sudo systemctl restart NetworkManagerможно также использовать псевдоним network-manager:sudo systemctl restart network-manager
Для того, чтобы изменения настроек сетевого адаптера, сделанные через графический интерфейс, вступили в силу, следует перезапустить сетевой адаптер. При работе в графическом интерфейсе это можно сделать просто нажав левой кнопкой мыши на апплет управления сетями и ещё раз нажав левой кнопкой мыши на имя сетевого адаптера в открывшемся списке.
Предотвращение дублирования сетевых адресов
Для предотвращения дублирования сетевых адресов, присваиваемых сетевым интерфейсам, NetworkManager использует параметр сетевого интерфейса ipv4.dad-timeout.
Значения этого параметра:
любое положительное число — периодичность проверки в миллисекундах. При положительном значении параметра при смене адреса при активации интерфейса выполняется проверка дублирования. Проверка выполняется с заданной периодичностью. Активация интерфейса не завершается успехом без успешного завершения проверки (т.е., до обнаружения, что дублирование отсутствует).
Проверка дублирования выполняется только при смене (назначении) адреса. При включении интерфейса с ранее назначенным адресом проверка не выполняется.
- 0 — проверка не выполняется.
- -1 — применяется по умолчанию в обновлениях Astra Linux, выпущенных до обновлений БЮЛЛЕТЕНЬ № 2023-1023SE17 (оперативное обновление 1.7.5) и БЮЛЛЕТЕНЬ № 20231214SE16 (оперативное обновление 13). Указывает, что используется значение 0 (проверка не выполняется).
- 2222 — применяется по умолчанию начиная с обновления Astra Linux, выпущенных до обновлений БЮЛЛЕТЕНЬ № 2023-1023SE17 (оперативное обновление 1.7.5) и БЮЛЛЕТЕНЬ № 20231214SE16 (оперативное обновление 13). Задает интервал проверки 2222 миллисекунды.
Иное значение, применяемое по умолчанию, может быть задано в секции [connection] конфигурационных файлов. Для задания значения в конфигурационном файле отдельного сетевого интерфейса параметр можно разместить в секции [ipv4]:
[ipv4] dad-timeout=<значение>
[connection] ipv4.dad-timeout=<значение>
Networking: Настройка сети из командной строки
Теоретически, службы NetworkManager и networking конфликтовать не должны, так как первая не работает с сетевыми интерфейсами, перечисленными в файле /etc/network/interfaces, а вторая - работает только с интерфейсами, перечисленными в этом файле, но при переходе к использованию службы networking лучше отключить NetworkManager, для чего выполнить команду:
Также можно удалить графическую оснастку NetworkManager (значок сети в панели задач):
Традиционно, настройка сети TCP/IP из командной строки выполняется с использованием инструментов ifup и ifdown, входящих в пакет ifupdown, и предназначенных для высокоуровневой настройки сети.
При этом можно выделить два типичных случая
- для систем, работающих в статичной сети (например, для серверов), следует сохранять как можно более простую конфигурацию;
- для систем, работающих с динамически меняющимися сетями и IP-адресами (например, для мобильных компьютеров) рекомендуется дополнительно использовать для настройки пакет resolvconf, упрощающий переключение конфигураций при смене сетевого адреса.
Пакет 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
Типичной ошибкой при использовании команд ifdown/ifup является повторное назначение параметров интерфейса неотключенным и некорректно работающим сервисом NetworkManager,
что выглядит как игнорирование изменений, внесённых в файл /etc/network/interfaces.
Для проверки полного состояния сетевого интерфейса вместо устаревшей команды ifconfig следует использовать современную команду ip из пакета iproute2:
проверить все сетевые адреса, назначенные сетевому интерфейсу:
ip address show dev eth0очистить все сетевые адреса, назначенные сетевому интерфейсу:
sudo ip address flush dev eth0
Сетевые интерфейсы в статичных сетях
Полное описание синтаксиса файла настроек интерфейсов /etc/network/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.
Интерфейс локальная петля (loopback)
Автоматическое включение интерфейса локальной петли при запуске системы задаётся в /etc/network/interfaces следующими командами:
auto lo
iface lo inet loopback
Этот интерфейс всегда присутствует в стандартном файле /etc/network/interfaces.
Интерфейс, получающий адрес через DHCP
Отправка запроса DHCP и получение адреса при подключении сетевого кабеля:
allow-hotplug eth0
iface eth0 inet dhcp
Интерфейс со статическим адресом
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
Systemd-networkd / systemd-resolved
Для использования служб systemd-networkd / systemd-resolved во избежание конфликтов следует отключить, остановить и заблокировать все остальные службы управления сетевыми интерфейсами:
sudo systemctl --now mask networking
sudo systemctl --now mask resolvconf
И разблокировать и запустить systemd-networkd / systemd-resolved:
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.link
man systemd.network
man systemd.netdev
man systemd-resolved