Перейти к содержанию

Сеть в НАЙС.ОС CLOUD: systemd-networkd и systemd-resolved

Для кого: администратор серверов НАЙС.ОС CLOUD, включая виртуальные машины.
Применимость: стандартный серверный профиль; перед изменениями проверьте фактические службы.
Уровень: от первого знакомства до эксплуатации.

В НАЙС.ОС CLOUD штатное управление сетевыми интерфейсами организовано средствами systemd-networkd, а разрешение имён — systemd-resolved. В поставке нет необходимости применять NetworkManager, netplan, ifupdown и другие сетевые конфигураторы. Межсетевой экран настраивается отдельным компонентом — iptables.

Изменение сети через SSH

Перенастройка интерфейса, маршрута по умолчанию или DNS может оборвать соединение. Для первого применения статического адреса и маршрутов рекомендуется консоль гипервизора, IPMI/KVM или облачная серийная консоль. Сохраните исходные файлы и проверьте возможность возврата до изменения сети.

Как взаимодействуют компоненты

Компонент За что отвечает Где искать настройки
Ядро Linux сетевые устройства, адреса, маршруты ip addr, ip route, ip link
systemd-udevd обнаружение устройств и назначение имён udevadm, /usr/lib/systemd/network/*.link
systemd-networkd DHCP, статические адреса, маршруты, виртуальные интерфейсы /etc/systemd/network/*.network, *.netdev
systemd-resolved DNS, домены поиска, DNS-серверы интерфейсов resolvectl, /etc/systemd/resolved.conf
iptables фильтрация трафика и NAT iptables, ip6tables
cloud-init (если установлен) первоначальная конфигурация облачного экземпляра /etc/cloud, /var/log/cloud-init.log

Настройки в /etc/systemd/network/ следует рассматривать как административную конфигурацию. Дистрибутивные профили также могут располагаться в /usr/lib/systemd/network/. Служба выбирает первый подходящий .network-файл по правилам сопоставления и лексикографического порядка имён. Следовательно, недостаточно просто создать файл — нужно выяснить, какой файл реально применён к интерфейсу.

Первый осмотр системы

cat /etc/os-release
ip -br link
ip -br address
ip -4 route
ip -6 route
networkctl list
systemctl is-active systemd-networkd
systemctl is-active systemd-resolved

Увидеть, какой конфигурационный файл применился:

networkctl status
# Замените ens3 реальным именем интерфейса из ip -br link
networkctl status ens3

В выводе networkctl status ens3 ищите поле Network File (либо соответствующую строку локализованного вывода). В реальной машине интерфейс может называться enp1s0, ens3, eth0 или иначе — не копируйте имя из примера вслепую.

Проверьте используемые сетевые профили:

find /etc/systemd/network /run/systemd/network /usr/lib/systemd/network \
  -maxdepth 1 -type f \( -name '*.network' -o -name '*.netdev' \) -print 2>/dev/null

Особенность НАЙС.ОС

По сборочному рецепту systemd в поставке предусмотрен файл 99-dhcp-en.network. Его реальное содержимое зависит от Source-файла, который не входит в переданный архив SPEC. Поэтому нельзя без проверки утверждать, какие именно устройства или профили он охватывает.

Порядок проверки работоспособности

  1. Устройство существует: ip -br link показывает интерфейс.
  2. Интерфейс управляется networkd: networkctl status ens3 содержит состояние и применённый конфигурационный файл.
  3. Адрес назначен: ip -br addr show dev ens3.
  4. Маршрут есть: ip -4 route get 1.1.1.1 (не отправляет пакет).
  5. Связь по IP проверена: ping -c 3 1.1.1.1, если ICMP разрешён политиками.
  6. DNS работает: resolvectl query niceos.ru или getent ahostsv4 niceos.ru.
  7. Прикладной протокол доступен: curl -I --connect-timeout 5 https://niceos.ru/, если исходящий HTTPS разрешён iptables.

Отсутствие ответа на ping не всегда означает потерю связи: ICMP могут блокировать промежуточные фильтры, включая штатную политику OUTPUT DROP.

Практические руководства

Логи и журналы

journalctl -u systemd-networkd -b --no-pager -n 100
journalctl -u systemd-resolved -b --no-pager -n 100
journalctl -b -p err --no-pager

journalctl -b ограничивает сообщения текущей загрузкой. Для сообщения об ошибке фиксируйте время, интерфейс, конфигурационный файл и последствия изменения.

Связанный раздел: iptables и управление доступом. Даже верно настроенные маршруты не гарантируют передачу пакетов, если правила фильтрации запрещают трафик.