Статья написана на основе документации Debian по настройке сети.
Введение
Современные версии ОС ОН Орёл поддерживают возможность использования трёх (а с учётом версий ОС ОН для мобильных устройств - четырёх) способов конфигурирования сети:
- Служба NetworkManager - служба, обеспечивающая базовые операции с сетевыми интерфейсами.
Эта служба в первую очередь предназначена для использования на персональных компьютерах, предоставляет удобный графический интерфейс для вполнения базовых операций, но потребляет довольно много ресурсов, поэтому для серверных приложений не рекомендуется. Помимо проводных сетевых интерфейсов может работь с интерфейсами WiFi.
Использует инструмент командной строки ifconfig, который во многих источниках характеризуется как "устаревший".
При стандартной установке ОС ОН Орёл эта служба и её графический интерфейс устанавливаются и запускаются автоматически, и автоматически получают управление внешними сетевыми интерфесами. - Служба networking / resolvconf - служба для автоматизации настроек сетевых интерфейсов и (при использовании пакета resolvconf) - для автоматизации перенастройки службы DNS при переключении между сетями.
Удобна для использования в сценариях для автоматизации сложных серверных конфигураций и (при использовании пакета resolvconf) - для автоматизации автоматической перенастройки мобильных компьютеров, переключающихся между разными сетями.
Использует современный инструмент командной строки ip (пакет iproute2) и высокоуровневые надстройки над этим инструментом - ifup, ifdown, ifquery (пакет ifupdown).
Несмотря на использование современных инструментов, также характеризуется как неактуальная (legacy).
При стандартной установке ОС ОН Орёл эта служба устанавливаются и запускается автоматически, однако управление имеющимися внешними сетевыми интерфейсами автоматически не получает, и формально управляет только интерфейсом локальной обратной петли (loopback). - Служба systemd-networkd / systemd-resolved - современные службы для автоматизации настроек сетевых интерфейсов и правил разрешения имён, базирующиеся на идеологии systemd.
При стандартной установке ОС ОН Орёл эти службы устанавливаются автоматически, однако находятся в заблокированном состоянии, соответственно, не запускаются, и ничем не управляют. - Служба connman - служба и интерфейс командной строки для управления сетями в мобильных устройствах.
NetworkManager: Графические средства настройки сетевых интерфейсов
В состав диструбутива ОС ОН Орёл 2.12 входит сетевая служба NetworkManager и графический инструмент настройки сетевых интерфейсов апплет NetworkManager, обеспечивающий графический пользовательский интерфейс для выполнения всех стандартных операций по настройке сети в режиме настольного компьютера.
При стандартной установке ОС ОН Орёл служба NetworkManager и соответствующий графический инструмент устанавливаются и запускаются автоматически, получая под своё управление все внешние сетевые интерфейсы.
Графический инструмент после установки доступен через меню "Пуск" - "Панель управления" - "Сеть" - "Сетевые соединения", или через иконку быстрого запуска на всплывающей линейке в нижней части экрана.
Документация по использованию NetworkManager находится в каталоге /usr/share/doc/ drnetwork-manager/.
Конфигурационные файлы NetworkManager находятся в каталоге /etc/NetworkManager/.
В составе пакета имеется инструмент командной nmcli строки для работы с NetworkManager. Примеры применения командного интерфейса:
# устанавливаем IP-адрес для устройства eth0
nmcli device modify eth0 ipv4.address 192.168.32.97/24
# устанавливаем адрес шлюза для устройства eth0
nmcli device modify eth0 ipv4.gateway 192.168.32.1
# проверяем настройки устройства eth0
nmcli device show eth0
man nmcli-examples
man nm-online
По умолчанию в файле /etc/network/interfaces присутствует только интерфейс локальной петли (loopback).
Для того, чтобы NetworkManager прочитал изменения конфигурации (в том числе изменения списка интерфейсов, перечисленных в файле /etc/network/interfaces), следует перезапустить службу NetworkManager:
Для того, чтобы изменения настроек сетевого адаптера, сделанные через графический интерфейс, вступили в силу, следует перезапустить сетевой адаптер (на примере адаптера eth0):
сначала выключить адаптер:
И повторно включить адаптер:
Networking: Настройка сети из командной строки
Теоретически, службы NetworkManager и networking конфликтовать не должны, так как первая не работает с сетевыми интерфейсами, перечисленными в файле /etc/network/interfaces, а вторая - работает только с интерфейсами, перечисленными в этом файле, но
при переходе к использованию networking лучше отключить NetworkManager, для чего выполнить команду:
При этом можно выделить два типичных случая
- Для систем, работающих в статичной сети (например, для серверов), следует сохранять как можно более простую конфигурацию ;
- Для систем, работающих с динамически меняющимися сетями и IP-адресами (например, для мобильных компьютеров) рекомендуется дополнительно использовать для настройки пакет resolvconf, упрощающий переключение конфигураций при смене сетевого адреса.
Пакет ifupdown содержит три команды: команды ifup и ifdown, обеспечивающие настройки сетевых интерфейсов в соответствии с конфигурационным файлом /etc/network/interfaces, и команда ifquery, проверяющая корректность конфигурационного файла /etc/network/interfaces.
При этом список включенных в данный момент интерфейсов хранится в файле /run/network/ifstate
Сценарий изменения настройки сетевого интерфейса (на примере интерфейса eth0):
Остановить сетевой интерфейс командой
sudo ifdown eth0Эта команда удалит запись об интерфейсе eth0 из файла /run/network/ifstate. (Могут выдаваться сообщения об ошибке, однако эта команда в целом безопасна.)Внести изменения в файл /etc/network/interfaces в секцию, относящуюся к интерфейсу eth0.
Проверить корректность файла:
sudo ifquery eth0Повторно запустить интерфейс командой:
sudo ifup eth0
Допускается вносить изменения в файл /etc/network/interfaces заранее, после чего перезапускать интерфейс одной командой:
Типичной ошибкой при использовании команд ifdown/ifup является повторное назначение параметров интерфейса неотключенным и некорректно работающим сервисом NetworkManager,
что выглядит как игнорирование изменений, внесённых в файл /etc/network/interfaces.
Для проверки полного состояния сетевого интерфейса вместо устаревшей команды ifconfig следует использовать современную команду ip из пакета iproute2:
проверить все сетевые адреса, назначенные сетевому интерфейсу:
ip address show dev eth0очистить все сетевые адреса, назначенные сетевому интерфейсу:
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
Мобильный режим
В мобильном режиме используется сетевой менеджер connman, а файл /etc/resolv.conf заменяется на ссылку на файл /var/run/connman/resolv.conf.
Сетевой менеджер connman поддерживает собственный интерфейс командной строки connmanctl.
Описание команд commanctl доступно в системе документации: