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