См. также:
Статья применима к:
|
Современные версии Astra Linux поддерживают возможность использования трёх (а с учетом возможности использования Astra Linux для мобильных устройств - четырех) способов настройки сети:
Служба NetworkManager — служба, обеспечивающая операции с сетевыми интерфейсами. Эта служба является фактическим стандартом управления сетевыми интерфейсами в Astra Linux, обеспечивая всю необходимую функциональность управления. Использовать иные службы управления сетевыми подключениями не рекомендуется. При стандартной установке Astra Linux эта служба и её графический интерфейс устанавливаются и запускаются автоматически, и автоматически получают управление внешними сетевыми интерфейсами (а в Astra Linux Special Edition 1.8 - также получает управление интерфейсом обратной петли). Помимо простых проводных сетевых интерфейсов может работать с агрегированными интерфейсами, мостами, интерфейсами WiFi, VPN. Поддерживает аутентификацию по протоколу 802.1х в проводных и беспроводных сетях, для чего использует службу wpa_supplicant.
Кроме указанных выше методов настройки сети некоторые сетевые параметры можно устанавливать:
|
Для того, чтобы определить, какие сетевые интерфейсы (сетевые карты, WiFi-адаптеры, виртуальные адаптеры систем виртуализации и пр.) доступны в операционной системе можно использовать следующие команды:
| nmcli con show |
NAME UUID TYPE DEVICE Проводное соединение 1 2726eb27-1578-36f4-9474-e72fa87e7003 ethernet eth0 |
| ip a |
lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 52:54:00:54:dc:ac brd ff:ff:ff:ff:ff:ff inet 10.107.0.220/24 brd 10.107.0.255 scope global dynamic noprefixroute eth0 valid_lft 3376sec preferred_lft 3376sec inet6 fe80::f994:d055:57ea:32/64 scope link noprefixroute valid_lft forever preferred_lft forever |
В приведенных выше примерах вывода команд имя обнаруженного физического сетевого интерфейса — eth0. На практике имена сетевых интерфейсов могут отличаться, в частности в Astra Special Edition x.8 по умолчанию используются имена вида enpXsY или enoXsY, например, enp1s0.
Имена физических сетевых интерфейсов назначаются при загрузке операционной системы. Порядок назначения имен определятся значением параметра net.ifnames в строке параметров загрузки GRUB (см. Изменение параметров загрузчика Grub2).
При значении параметра 0 (net.ifnames=0) используются имена интерфейсов вида ethX (eth0, eth1 и т.д.), номера интерфейсам присваиваются в порядке их обнаружения при загрузке. При наличии только одного интерфейса эта схема присвоения имен гарантирует присвоение интерфейсу имени eth0. При наличии нескольких интерфейсов и в сложных аппаратных конфигураций порядок обнаружения интерфейсов может изменяться, что приведет к изменению номеров в именах интерфейсов. Для исключения возможной неопределенности применяется схема назначения предсказуемых имен. Для её использования параметру загрузчика net.ifnames должно быть присвоено значение 1. При использовании этой схемы имена присваиваются по следующим правилам (приведено упрощенное описание, включающее только часто употребимые варианты):
Так, приведенный выше пример имени enp1s0 относится к сетевому адаптеру Ethernet на шине PCI номер 1, в слоте 0.
Далее в примерах используется имя eth0.
Для удаления, добавления или изменения сетевых соединений пользователем с помощью NetworkManager необходимо участие пользователя в группе netdev. Для включения и выключения сетевых соединений участие пользователя в группе netdev не требуется. Проверить актуальные права текущего пользователя можно командой:
|
Конфигурационные файлы 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/. По умолчанию:
|
Для того, чтобы 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.
Значения этого параметра:
любое положительное число — периодичность проверки в миллисекундах. При положительном значении параметра при смене адреса при активации интерфейса выполняется проверка дублирования. Проверка выполняется с заданной периодичностью. Активация интерфейса не завершается успехом без успешного завершения проверки (т.е., до обнаружения, что дублирование отсутствует).
Проверка дублирования выполняется только при смене (назначении) адреса. При включении интерфейса с ранее назначенным адресом проверка не выполняется. |
Иное значение, применяемое по умолчанию, может быть задано в секции [connection] конфигурационных файлов. Для задания значения в конфигурационном файле отдельного сетевого интерфейса параметр можно разместить в секции [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 |
При стандартной установке Astra Linux Special Edition 1.8:
В более ранних обновлениях автоматически устанавливаются обе службы, но также находятся в заблокированном состоянии.
Для использования служб systemd-networkd / systemd-resolved следует:
sudo systemctl --now mask NetworkManager |
sudo systemctl unmask systemd-networkd |
Службы systemd-networkd / systemd-resolved используют собственные конфигурационные файлы, которые хранятся в каталоге /etc/systemd/network. Доступны следующие типы конфигурационных файлов:
Описания содержимого конфигурационных файлов доступны в общей системе документации:
man systemd-networkd |