Debian systemd networkd настройка сети

Обновлено: 04.07.2024

Оригинал: How to switch from NetworkManager to systemd-networkd on Linux
Автор: Dan Nanni
Дата публикации: 31 августа 2015 г.
Перевод: А.Панин
Дата перевода: 25 июля 2016 г.

Как заменить менеджер сетевых соединений NetworkManager на systemd-networkd в Linux

Процесс внедрения компонентов системы инициализации systemd в различные дистрибутивы Linux вызывает неоднозначные оценки и зачастую сопровождается полемикой между ее сторонниками и противниками. Тем не менее, на сегодняшний день в большинстве наиболее популярных дистрибутивов Linux используемой по умолчанию системой инициализации является именно systemd.

Называемая автором "постоянно совершенствуемой, никогда не завершающей свое развитие и изменяющейся по мере развития технологий", система инициализации systemd была спроектирована не как отдельный демон инициализации, а как сложная система и платформа для управления системными службами, которая предоставляет развивающуюся экосистему с эквивалентами основных системных демонов, библиотек и утилит.

Одним из многих дополнительных компонентов systemd является менеджер сетевых соединений systemd-networkd, который отвечает за конфигурацию сетевых интерфейсов в рамках экосистемы systemd. С помощью sytemd-networkd вы можете настроить интерфейсы устройств, работающих с сетями, в которых используются как серверы DHCP, так и статическая адресация. Он также может использоваться для настройки виртуальных сетевых интерфейсов, позволяющих реализовать мосты, туннели или виртуальные сети. systemd-networkd не может непосредственно работать с беспроводными сетями, но вы всегда можете воспользоваться службой wpa_supplicant для настройки адаптеров беспроводных сетей, после чего передать управление сетевыми интерфейсами этих адаптеров systemd-networkd.

Во многих дистрибутивах Linux для управления сетевыми соединениями использовался и используется по сей день широко известный менеджер сетевых соединений NetworkManager. При сравнении менеджеров сетевых соединений NetworkManager и systemd-networkd несложно прийти к выводу о том, что последний является менее стабильным и функциональным. Например, он не обладает логикой, реализованной в менеджере сетевых соединений NetworkManager и позволяющей поддерживать постоянное соединение вашего компьютера с сетью по доступному в данный момент сетевому интерфейсу из заданного пользователем множества сетевых интерфейсов. Он не позволяет использовать хуки во время активации и деактивации сетевых интерфейсов для создания дополнительных сценариев. При этом systemd-networkd отлично интегрирован с остальными компонентами systemd (такими, как системная служба resolved, предназначенная для разрешения доменных имен по протоколу DNS, системная служба timesyncd, предназначенная для синхронизации времени по протоколу NTP и системная служба udevd, предназначенная для отслеживания состояния аппаратных устройств), поэтому со временем он может начать играть более важную роль в окружении systemd.

Если вас не смущает направление развития системы инициализации systemd, вы вполне можете рассмотреть возможность замены менеджера сетевых соединений NetworkManager на systemd-networkd. Если же вы являетесь убежденным противником systemd и довольны работой NetworkManager или базовых компонентов вашего дистрибутива для управления сетевыми соединениями, вам ничего не придется делать.

Те из читателей, которые все же решили попробовать systemd-networkd в работе, смогут найти в данной статье описание методики замены менеджера сетевых соединений NetworkManager на systemd-networkd в Linux.

Начальные требования

Компонент systemd-networkd поставляется в составе пакета systemd начиная с версии 210. Исходя из этого, он может быть задействован в таких дистрибутивах, как Debian 8 "Jessie" (systemd 215), Fedora 21 (systemd 217), Ubuntu 15.04 (systemd 219) или их более новых версиях.

Если вы работаете с другим дистрибутивом, вам стоит проверить версию пакета systemd перед тем, как приступать к выполнению описанных в статье операций.

Переход с NetworkManager на systemd-networkd

Процесс перехода с NetworkManager на systemd-networkd (как и обратный процесс) не связан с какими-либо трудностями.

Во-первых, следует деактивировать системную службу NetworkManager и активировать системную службу systemd-networkd следующим образом:

Вам также потребуется активировать системную службу systemd-resolved, которая используется systemd-networkd для разрешения доменных имен. Данная системная служба по своей сути является кэштрующим DNS-сервером:

После запуска системная служба systemd-resolved создаст свой собственный файл resolv.conf в одной из поддиректорий директории /run/systemd . Однако, обычной практикой является сохранение этого файла по пути /etc/resolv.conf , причем многие сетевые приложения все еще используют именно файл /etc/resolv.conf . Исходя из этого, вам придется создать символьную ссылку с именем /etc/resolv.conf следующим образом:

Настройка сетевых соединений с помощью systemd-networkd

Давайте начнем с создания директории /etc/systemd/network:

Подключение к сети с сервером DHCP

Для начала настроим соединение с сетью с сервером DHCP. Для этого нам придется создать следующий конфигурационный файл. Имя файла может быть произвольным, но следует помнить о том, что перед загрузкой конфигурационных файлов менеджер сетевых соединений осуществляет сортировку их имен в лексическом порядке.

Как несложно увидеть выше, каждый файл конфигурации сетевого соединения содержит одну или несколько "секций", причем перед каждой из секций присутствует заголовок [XXX]. Каждая секция содержит одну или большее количество пар ключ/значение. Секция [Match] описывает сетевое устройство или множество устройств, настройка которых осуществляется с помощью данного файла конфигурации. Например, данный файл конфигурации относится к любому сетевому интерфейсу, имя которого начинается с enp3 (например, enp3s0 , enp3s1 , enp3s2 и.т.д.). Именно к этим интерфейсам применяется конфигурация сетевого соединения на основе сервера DHCP, описанная в секции [Network] .

Подключение к сети со статической адресацией

Если вы хотите установить статический IP-адрес для сетевого интерфейса, вы можете создать следующий файл конфигурации:

Как вы можете догадаться, для сетевого интерфейса enp3s0 будет установлен статический IP-адрес 192.168.10.50/24 , адрес основного шлюза 192.168.10.1 и адрес сервера доменных имен 8.8.8.8 . В данном случае имеется одна тонкость, которая заключается в том, что фактически имя сетевого интерфейса enp3s0 совпадает с шаблоном имени сетевого интерфейса, который был задан ранее при настройке соединения с сетью с сервером DHCP. Однако, ввиду того, что файл конфигурации с именем "10-static-enp3s0.network" будет обработан перед файлом конфигурации с именем "20-dhcp.network" в соответствии с порядком следования символов, статическая конфигурация сетевого соединения будет иметь приоритет перед конфигурацией сетевого соединения с использованием сервера DHCP в случае сетевого интерфейса enp3s0 .

После того, как вы закончите создание файлов конфигурации, вам придется перезапустить системную службу systemd-networkd или перезагрузить систему.

Вы можете проверить состояние описанных системных служб с помощью следующих команд:

Результат проверки состояния системных служб

Настройка виртуальных сетевых устройств с помощью systemd-networkd

Ниже я продемонстрирую методику настройки сетевого интерфейса для организации сетевого моста.

Настройка сетевого моста в Linux

Если вы желаете настроить сетевой мост в Linux (представленный сетевым интерфейсом br0 ) и добавить физический сетевой интерфейс ( eth1 ) в этот мост, вы можете создать следующий конфигурационный файл:

Наконец, нужно будет перезапустить системную службу systemd-networkd:

Впоследствии вы сможете воспользоваться инструментом brctl для проверки корректности создания интерфейса сетевого моста br0 .

Заключение

Хотя systemd и считается системой инициализации для Linux, без сомнения рано или поздно в ее составе должен был появиться инструмент для управления сетевыми соединениями, аналогичный systemd-networkd. На данном этапе, однако, менеджер сетевых соединений systemd-networkd больше подходит для серверов, которые работают с относительно стабильными конфигурациями сетевых интерфейсов. В случае настольных компьютеров и ноутбуков, которые работают с непостоянными конфигурациями проводных и беспроводных соединений, менеджер сетевых соединений NetworkManager все так же остается предпочтительным выбором.

Если вы хотите узнать немного больше о менеджере сетевых соединений systemd-networkd, вы можете обратиться к его официальной странице руководства с полным списком поддерживаемых секций и ключей файлов конфигурации.

systemd-networkd — системный демон для управления сетевыми настройками. Его задачей является обнаружение и настройка сетевых устройств по мере их появления, а также создание виртуальных сетевых устройств. Эта служба особенно полезна при работе со сложными сетевыми настройками контейнера systemd-nspawn или виртуальной машины, но вполне подойдёт и для простых соединений.

Contents

Основы использования

Пакет systemd входит в базовую установку Arch. В нём содержится всё необходимое для работы с проводной сетью. Беспроводные сетевые интерфейсы настраиваются специализированными утилитами вроде wpa_supplicant или iwd.

Службы и настройки

Чтобы включить systemd-networkd, запустите/включите службу systemd-networkd.service .

Примечание: Убедитесь, что в системе не запущены другие службы, имеющие доступ к изменению сетевых настроек — это может привести к конфликтам. Найдите такие службы командой systemctl --type=service и остановите их.

При необходимости можно также настроить systemd-resolved, который будет выполнять разрешение сетевых имён для прикладных приложений:

systemd-networkd-wait-online

По умолчанию systemd-networkd-wait-online.service ожидает получения информации о состоянии всех интерфейсов под управлением systemd-networkd, причем минимум на одном интерфейсе должно быть установлено рабочее подключение.

Если в вашей системе несколько интерфейсов, но некоторые не смогли подключиться к сети (например, Ethernet-интерфейс с двумя портами, но кабель воткнут только в один), запуск systemd-networkd-wait-online.service завершится неудачно по истечении тайм-аута в 2 минуты. Это может стать причиной неприятной паузы во время загрузки системы. Чтобы служба ожидала подключения любого интерфейса, а не всех, отредактируйте файл службы, добавив параметр --any к строке ExecStart :

Также можно настроить и другие параметры, например, ожидание включения конкретных интерфейсов и режим работы. Подробнее см. systemd-networkd-wait-online(8) .

Примеры настроек

systemd/udev автоматически назначает постоянные имена для обнаруженных Ethernet, WLAN и WWAN интерфейсов. Перечень интерфейсов можно увидеть командой networkctl list .

Чтобы изменения настроек вступили в силу необходимо будет перезапустить демон systemd-networkd.service .

Проводной интерфейс с DHCP

Проводной интерфейс со статическим IP-адресом

Беспроводной интерфейс

Беспроводной сетевой интерфейс нужно предварительно настроить приложением вроде wpa_supplicant или iwd. После этого можно подключиться к беспроводной сети посредством systemd-networkd:

Если беспроводному интерфейсу назначен статический IP-адрес, то настройка полностью (за исключением названия интерфейса) совпадает с настройкой проводного интерфейса.

Для аутентификации в беспроводной сети можно использовать wpa_supplicant или iwd.

Проводные и беспроводные интерфейсы на одной машине

Когда в системе есть и проводной, и беспроводной интерфейсы, настройте директиву ядра metric, чтобы оно могло "на лету" определять, какой из интерфейсов использовать. В этом случае при отключении проводного соединения полного обрыва связи не произойдёт.

Ядро использует настройки метрик при выборе одного из возможных маршрутов для исходящих пакетов — например, при двух включённых сетевых интерфесах, проводном и беспроводном. Если вдруг одно из соединений прерывается, то второй вариант автоматически объявляется победителем. При этом полного разрыва соединения не происходит. Правда, для текущих процессов передачи данных не всегда всё так гладко, но, сторого говоря, это проблема другого уровня сетевой модели OSI.

Переименование интерфейса

Файлы .link можно использовать для назначения интерфейсу нового имени вместо редактирования правил udev. Например, можно задать постоянное имя интерфейса для USB-to-Ethernet адаптера на основе его MAC-адреса, т.к. имена таким адаптерам обычно назначаются в зависимости от того, к какому USB-порту они подключены.

Примечание: Название пользовательского файла .link должно быть "меньше" (в лексическом смысле), чем название файла настроек по умолчанию 99-default.link . Например, название 10-ethusb0.link подходит, а ethusb0.link — нет.

Файлы настроек

Файлы настроек могут находиться в следующих каталогах (в порядке увеличения приоритета):

  • /usr/lib/systemd/network/ — системный сетевой каталог.
  • /run/systemd/network/ — runtime-каталог сетевых программ.
  • /etc/systemd/network/ — локальный каталог системного администрирования.

Существуют три типа файлов настройки.

Для этих файлов действуют следующие правила:

  • Профиль активируется, если совпали все условия в разделе [Match] .
  • Если в разделе [Match] не указано ничего, то профиль применяется для всех устройств (можно сравнить с подстановочным символом * ).
  • Файлы настроек сортируются по названиям и обрабатываются в лексическом порядке, независимо от каталога, в котором они расположены.
  • Файлы с одинаковыми названиями заменяют друг друга — в порядке приоритета каталогов, в которых они находятся.
  • Файлы в каталоге /etc/systemd/network/ имеют приоритет перед системными файлами в /usr/lib/systemd/network/ . Создайте в этом каталоге символическую ссылку на /dev/null , чтобы "замаскировать" системный файл.
  • systemd понимает значения 1, true, yes, on как логическое true, а 0, false, no, off — как false.

Файлы network

В network-файлах задаются сетевые настройки, чаще всего — для серверов и контейнеров.

[Match]

Наиболее распространенные ключи для поиска совпадающего устройства:

Параметр Описание Возможные значения Значение по умолчанию
Name= Поиск интерфейса по названию, например: en* . Символ ! в начале инвертирует результаты поиска. Разделённые пробелами названия интерфейсов (можно указывать шаблоны с подстановочными символами в стиле командной оболочки), логическое отрицание ( ! ).
MACAddress= Поиск интерфейса по MAC-адресу, например: MACAddress=01:23:45:67:89:ab 00-11-22-33-44-55 AABB.CCDD.EEFF Разделённые пробелами MAC-адреса в шестнадцатеричном формате; в качестве внутреннего разделителя в адресах можно использовать двоеточия, дефисы и точки.
Host= Поиск по имени хоста или machine ID. Имя хоста (в том числе в виде шаблона), machine-id(5)
Virtualization= Проверка на работу в виртуальном окружении. Virtualization=false — для хост-системы, Virtualization=true — для работы в контейнере или виртуальной машине. Есть возможность проверить тип виртуализации и пространство имён пользователя (параметр private-users ). булевские, логическое отрицание ( ! ), тип ( vm и container ), реализация ( qemu , kvm , zvm , vmware , microsoft , oracle , powervm , xen , bochs , uml , bhyve , qnx , openvz , lxc , lxc-libvirt , systemd-nspawn , docker , podman , rkt , wsl , proot , pouch , acrn ), private-users

[Network]

[Address]

Параметр Описание Допустимые значения Значение по умолчанию
Address= Можно настроить несколько адресов, указав этот ключ несколько раз. Опция обязательна, если не используется DHCP. Если указать значение 0.0.0.0 (для IPv4) или :: (для IPv6), то будет выделен неиспользуемый блок адресов заданного размера. сатические адреса IPv4 и IPv6 с длиной префикса (см. inet_pton(3) )

[Route]

  • Gateway= — адрес шлюза. Если не используется DHCP, то эта опция обязательна.
  • Destination= — префикс сети назначения.

Если параметр Destination не задан, то используется маршрут по умолчанию.

Совет: Если в разделах [Address] и [Route] заданы только параметры Address= и Gateway= соответственно, то для краткости оба эти параметра можно перенести в раздел [Network] .
Параметр Описание Допустимые значения Значение по умолчанию
UseDNS= Объявление DNS-сервера при работе DHCP-сервера. булевское true
Anonymize= Если задать значение true , посылаемые DHCP-серверу параметры будут соответствовать RFC:7844 (Anonymity Profiles for DHCP Clients) для сокрытия идентифицирующей информации. булевское false
UseDomains= Использование полученного от DHCP-сервера домена в качестве адреса для DNS-поиска. Если задать значение route , полученное доменное имя будет использоваться только для маршрутизации DNS-запросов, но не для поиска. Эта опция может повлиять на локальное разрешение имён с помощью systemd-resolved. булевское, route false

[DHCPServer]

Ниже приведён пример настройки DHCP-сервера с hostapd, выступающего в качестве беспроводной точки доступа. Параметр IPMasquerade включает правила межсетевого экрана для NAT, а также автоматически включает IPForward=ipv4 , что разрешает пересылку пакетов.

Файлы netdev

[Match]

  • Host= — поиск по имени хоста.
  • Virtualization= — проверка на работу в виртуальном окружении.

[Netdev]

Наиболее распространенные ключи:

  • Name= — имя интерфейса. Опция обязательна.
  • Kind= — вид интерфейса. Например, bridge, bond, vlan, veth, sit и т.д. Опция обязательна.

Файлы link

Файлы link выступают в качестве альтернативы пользовательским правилам udev и применяются при обнаружении менеджером нового устройства. Файл состоит из двух разделов, [Match] и [Link] . Ниже приведены основные параметры обоих разделов. Подробнее смотрите systemd.link(5) .

[Match]

  • MACAddress= — поиск по MAC-адресу.
  • Host= — поиск по имени хоста.
  • Virtualization= — проверка на виртуализацию.
  • Type= — поиск по типу интерфейса (например, vlan).
  • MACAddressPolicy= — использование постоянных или же случайных адресов.
  • MACAddress= — использование конкретного адреса.
  • NamePolicy= — политики выбора и назначения имён интерфейсов, например, kernel , keep и т.д.
Примечание: Настроек в системном файле /usr/lib/systemd/network/99-default.link , как правило, в большинстве случаев вполне достаточно.

Использование с контейнерами

В примерах ниже:

  • вывод команды ip a будет ограничен только рассматриваемыми интерфейсами.
  • хост будет означать вашу основную ОС, а контейнер — гостевую виртуальную машину.
  • все названия сетевых интерфейсов и IP-адреса приведены в качестве примера.

Сетевой мост с DHCP

Интерфейс моста

Первым делом необходимо создать виртуальный интерфейс моста. С помощью systemd создаём устройство-мост br0 :

Перезапустите systemd-networkd.service , чтобы настройки вступили в силу.

Совет: systemd-networkd генерирует MAC-адрес на основе названия интерфейса и идентификатора машины (machine ID) и привязывает его к мосту. Это может создать проблемы, например, при маршрутизации с фильтрацией по MAC-адресам. Чтобы избежать такого рода проблем, привязку MAC-адреса моста (возможно, совпадающего с MAC-адресом физического устройства) необходимо выполнить с помощью строки MACAddress=xx:xx:xx:xx:xx:xx в разделе NetDev в примере выше.

Чтобы увидеть новый мост на хосте или в контейнере, выполните:

Обратите внимание, что интерфейс br0 обнаружен, но он всё ещё выключен (DOWN).

Привязка Ethernet к мосту

Следующий шаг — выполнить привязку реального сетевого интерфейса к виртуальному мосту. В примере ниже мы привязываем любой интерфейс, название которого совпадает с шаблоном en* .

Сеть моста

Настройка контейнера

Результат

Замечания

Выше показано, что в системе есть мост с двумя связанными интерфейсами.

А здесь видно, что были активированы интерфейсы br0 и host0 с отдельными IP-адресами и шлюзом по умолчанию 192.168.1.254. Адрес шлюза был автоматически назначен systemd-networkd.

Сетевой мост со статическими IP-адресами

Выполните следующие настройки:

Далее, необходимо настроить IP и DNS для моста. Пример настройки:

Не забудьте проверить, что служба systemd-networkd.service в контейнере включена.

Советы и рекомендации

Интеграция сетевого интерфейса и рабочего стола

Systemd-networkd не имеет встроенной функциональности для интерактивного управления сетевыми интерфейсами, ни через графическое приложение, ни через командную оболочку. Тем не менее, существует ряд утилит для отображения состояния сети, изменения настроек или получения уведомлений.

  • Утилита командной строки networkctl позволяет вывести информацию о сетевых интерфейсах.
  • Когда networkd настраивается с помощью wpa_supplicant, утилитами wpa_cli и wpa_gui можно динамически настраивать WLAN-интерфейсы.
  • Плагин networkd-notify-gitAUR выводит уведомления при изменениях в работе интерфейса (например, при установлении соединения или его завершении).
  • Демон networkd-dispatcherAUR позволяет выполнять сценарии при изменении состояния интерфейса. Работает схожим образом с NetworkManager-dispatcher.
  • Отобразить информацию о DNS-сервере для systemd-resolved можно командой resolvectl status .

Назначение IP-адреса на основании SSID

Может возникнуть ситуация, когда дома вы используете беспроводную сеть с DHCP, а на работе — беспроводную же сеть, но со статическим IP-адресом. Пример смешанных настроек приведён ниже.

Примечание: Номер в начале имени файла определяет порядок, в котором они будут обрабатываться. В разделе [Match] можно использовать параметры SSID, BSSID или оба одновременно.

Объединение проводного и беспроводного интерфейсов

Объединение интерфейсов (bonding) позволяет использовать для одного Интернет-соединения несколько сетевых интерфейсов. Если затем, например, проводной сетевой интерфейс по какой-то причине отключится, соединение будет перенаправлено на беспроводной.

Создайте объединённый интерфейс. В качестве режима работы необходимо указать active-backup, чтобы пакеты направлялись на запасной сетевой интерфейс, если основной будет отключён.

Укажите проводной интерфейс в качестве основного:

Беспроводной интерфейс будет запасным:

Объединённый интрефейс необходимо настроить так же, как настраивается обычный сетевой интерфейс:

Теперь, если Ethernet-интерфейс будет отключён, соединение сохранится по беспроводной сети:

Ускорение TCP Slow Start

В сетях с большой пропускной способностью и значительной величиной задержки (для домашнего интернета — выше 10 Мбит/с) стандартные значения для алгоритма TCP Slow Start являются довольно консервативными. Это приводит к тому, что загрузки начинаются медленно и проходит несколько секунд, прежде чем будет задействована вся доступная пропускная способность. Особенно это заметно при обновлениях пакетов в pacman, когда загрузка каждого отдельного пакета успевает завершиться до достижения максимальной скорости для данного соединения.

Настройки TCP позволяют увеличить начальный размер окна, в результате чего соединения будут "ускоряться" быстрее [1]. Для медленных соединений это часто приводит к замедлению передачи, поскольку приходится передавать заново большое количество потерянных пакетов, но при наличии достаточной пропускной способности производительность вырастет.

Очень важно провести тестовые замеры до и после изменения значений, чтобы убедиться, что вы повысили скорость, а не уменьшили её. Если вы не замечаете, что ваши загрузки начинаются медленно, то скорее всего, текущие значения являются оптимальными для вашего соединения. При тестах следует использовать как быстрый, так и медленный удалённый сервер, чтобы убедиться, что вы не ускорили доступ к быстрым машинам, при этом сделав доступ к медленным серверам ещё медленнее.

Systemd полностью поддерживается в Ubuntu 15.04 и старше.

Запуск systemd-networkd

Чтобы использовать, запустите следующие две службы и включите их работу при загрузке системы (отключив при этом другие демоны, управляющие конфигурацией сети, например netplan):

Конфигурирование

Конфигурационные файлы systemd-networkd находятся в директории /etc/systemd/network. Доступны следующие типы файлов:

Все они следуют тем же правилам:

  • Если все условия в [Match] разделе совпали, профиль будет активирован
  • Пустая секция [Match] означает, что профиль будет применяться в любом случае (можно сравнить с шуткой *)
  • Каждая запись с синтаксисом NAME=VALUE является ключевой
  • все файлы настроек вместе сортируются и обрабатываются в лексическом порядке, независимо от каталога, в котором они живут
  • файлы с одинаковым именем сменяют друг друга

[Match] раздел

Наиболее распространенные ключи:

  • Name= имя устройства (например Br0, enp4s0, en*)
  • Host= имя машины
  • Virtualization= проверить, является ли система выполненной в виртуализированной среде или нет. Virtualization=no ключ будет применяться только на вашей машине, в то время как Virtualization=yes применяются к любому контейнеру или VM.

[Network] раздел

Наиболее распространенные ключи:

  • DHCP= включает поддержку DHCPv4 и/или DHCPv6. Принимает: yes, no, ipv4 или ipv6
  • DNS= является DNS адрес сервера. Вы можете указать этот параметр более одного раза
  • Bridge= это имя моста, чтобы добавить ссылку на
  • IPForward= по умолчанию no. Это разрешает IP forwarding, выполняя пересылку в соответствии с таблицей маршрутизации и необходим для настройки. Заметим, что включение IPForward= относится ко всем сетевым интерфейсам.
  • Domains= список доменов, используемых для разрешения имен DNS хоста.

[Address] раздел

Большинство общих ключ в разделе [Address]:

  • Address= статический IPv4 или IPv6 адрес и его длина префикса, разделенных символом / (например 192.168.1.90/24). Эта опция обязательна, если не используется DHCP

[Route] раздел

Большинство общих ключ в разделе [Route]:

  • Gateway= это адрес шлюза вашей машины. Эта опция обязательна если не используется DHCP.

Конфигурация для примера: два интерфейса со статическим IP в LAN и WAN.

Необходимо создать 4 файла в директории /etc/systemd/network/

Вот и всё: конфигурация сети завершена. Теперь можно перезапустить сервис:

В версии systemd было введено 238 схем именования сетей . Это означает, что при использовании предсказуемых имен сетевых интерфейсов , в зависимости от загруженной версии systemd, сетевые интерфейсы могут называться по-разному.

К счастью, с помощью systemd-networkd можно использовать MAC-адреса для идентификации сетевых карт вместо того, чтобы полагаться на имена сетевых интерфейсов.

С нашим Installimage и нашими автоматическими установками мы обычно стараемся придерживаться метода настройки сети по умолчанию, используемого в дистрибутивах, но поскольку реализации, такие как ifupdown или сетевые скрипты , требуют указания имен интерфейсов, в настоящее время мы также используем systemd-networkd для установки систем CentOS и Debian. использование предсказуемых имен сетевых интерфейсов.

Основные IP-адреса

Специальные серверы

Основной IP-адрес выделенного сервера обычно берется из более крупной подсети, но для предотвращения подделки IP-адреса системам разрешено разговаривать только со своим шлюзом.

Это означает, что при настройке фактической маски подсети IPv4, например / 27, другие системы в той же подсети будут недоступны.

Чтобы иметь доступ к системам в вашей подсети, вам необходимо настроить свой основной IPv4-адрес как адрес / 32. Поскольку в этом случае шлюз будет находиться за пределами сети IP-адресов, вам необходимо сообщить системе, как достичь шлюза.

В следующем примере конфигурации настраиваются основной IP-адрес 1.2.3.4 и шлюз 4.3.2.1 для сетевого интерфейса с MAC-адресом 12:34:56:78:9a:bc .

Основной IP-адрес настраивается как адрес / 32 с использованием отдельного раздела [Address], где Peer=<Gateway> сообщает системе, что она может достичь шлюза через интерфейс, для которого настроен адрес. См. Раздел Выделенные серверы для получения информации о том, почему вам следует использовать эту настройку для выделенных серверов.

IPv6 можно настроить, указав IP-адрес и шлюз .

IPv4 и IPv6

Следующая конфигурация двойного стека в основном представляет собой слияние конфигураций IPv4 и IPv6, указанных выше.

Пожалуйста, проверьте выделенные серверы и раздел IPv4 для получения информации о том, почему основной IPv4 выделенных серверов должен быть настроен как адрес / 32 и почему требуется настройка однорангового узла для связи с соседями подсети.

CX серверы

Чтобы иметь возможность использовать будущие функции без изменения конфигурации, вам следует использовать DHCP для IPv4.

IPv6 можно настроить так же, как и для выделенных серверов . Вам просто нужно указать IP-адрес и шлюз .

IPv4 и IPv6

IPv4 и IPv6 можно настроить, объединив DHCP для IPv4 и статическую конфигурацию IPv6.

Серверы CX, использующие сеть NAT

При использовании DHCP-серверов CX с использованием сети NAT не требуется специальной настройки.

Дополнительные IP / подсети

Читайте также: