Добавление IP-адресов в systemd-network помимо netplan

На сервере Ubuntu 20.04 netplan используется для настройки сети. Он может настраивать обычные статические IP-адреса, но мне нужны дополнительные IPv6-адреса с предпочитаемым_lft = 0. Netplan не может этого сделать это (для этого есть открытая ошибка). Итак, я обнаружил, что на самом деле это выглядит примерно так:

  • Netplan читает свою собственную ограниченную конфигурацию и преобразует ее в конфигурацию для более мощной systemd-network.
  • systemd-network вероятно, передает свои данные таким вещам, как команда ip , когда появляется сетевое устройство.
  • Сетевое устройство затем применяет фактическую конфигурацию. Здесь все возможно.

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

Я попытался создать файл /etc/systemd/network/web-ipv6.conf с таким содержанием:

[Match]
Name=ens33 (this is the name from the existing netplan file)

[Address]
Address=fd9e:21a7:a92c:2323::2/64
PreferredLifetime=0

Адрес fd9e: 21a7: a92c: 2323 :: 1 настраивается статически через netplan. В этой демонстрации это локальный адрес, на самом деле это основной IPv6-адрес моего сервера. Дополнительные адреса имеют другое значение интерфейса, например ... :: 2.

Думаю, мне нужно применить свою конфигурацию с systemctl restart systemd-networkd , но я не уверен. В журнале написано то, что я считаю успешным. Но новый IPv6-адрес ... :: 2 не отображается в ip addr .

На странице руководства для systemd.network я прочитал, что только один файл для [Match] будет использоваться. Теперь у меня явно есть два файла: один из netplan (/run/systemd/network/10-netplan-ens33.network), а другой - из моего. Так что, похоже, это не работает. Но я не хочу редактировать файл netplan, поскольку он наверняка когда-нибудь будет перезаписан.

Как мне продолжить? Я хотел бы иметь отдельный и постоянный файл, в который добавляются только мои дополнительные адреса. Я собираюсь управлять этим файлом с помощью специального сценария.

Должен ли я вернуться к ifupdown или к тому, что было раньше? В предыдущей настройке сервера я использовал файл с именем /etc/network/if-up.d/dynamic6, который содержит все команды ip addr add ... dev ... preferred_lft 0 . Судя по тому, что я видел, сегодня это считается устаревшим.

0
задан 30 June 2020 в 23:36
1 ответ

Кажется, старая функциональность ifupdown была воссоздана для systemd-networkd. Пакет networkd-dispatcher, предустановленный на Ubuntu Server 20.04, позволяет мне добавить скрипт в /etc/networkd-dispatcher/routable.d/, который выполняется при появлении устройства. В этом скрипте я могу запускать команды ip addr add по мере необходимости. Он вызывается netplan apply, systemctl перезапуска systemd-networkd и при загрузке системы. Во всех случаях мои дополнительные адреса IPv6 были добавлены как «устаревшие», хотя в противном случае они отсутствовали бы.

Вот статья, которая объясняет это, с коротким примером скрипта: https://andreas.scherbaum.la/blog/archives/963-if-up-and-if-down-scripts-with-systemd .html

0
ответ дан 1 July 2020 в 20:53

Теги

Похожие вопросы