Порядок конфигурации интерфейса с systemd-networkd

. Я использую Ubuntu 20.04 с systemd-networkd и Netplan. У меня есть два физических интерфейса (ens3 и ens4), которые настроены DHCP (с оговорками, поэтому я всегда получаю одни и те же адреса).

Кроме того, у меня есть два туннельных устройства. Они находятся вне контроля Netplan/networkd (они созданы Strongswan, но во всех смыслах и целях они создаются вручную, запустив что-то вроде iptunnel add... ). К этим туннельным устройствам добавлен ip-маршрут для отправки на них трафика.При первоначальном создании они работают нормально, но systemd-networkd в конечном итоге удалит маршруты.

Чтобы противостоять этому, я успешно настроил туннельные устройства в systemd-networkd, но маршрут не может быть создан, потому что он был предпринят до настройки ens3/ens4 (я вижу tunnel1: не удалось установить маршрут: неверный адрес prefsrc. Неверный аргумент в системном журнале). Я подтвердил заказ, включив ведение журнала отладки.

Я могу добавить маршрут вручную:

ip route add 10.0.32.0/20 dev tunnel1 scope link src 10.0.16.170 metric 100

... это работает нормально, но позже будет удалено systemd-networkd.

В документации говорится: «Все файлы конфигурации коллективно сортируются и обрабатываются в лексическом порядке, независимо от каталогов, в которых они находятся». Поэтому я поискал другие файлы конфигурации и нашел их в /run/systemd/network:

10-netplan-ens3.link
10-netplan-ens3.network
10-netplan-ens4.link
10-netplan-ens4.network

Я пытался назвать свои файлы netdev и network как 99-tunnel1.netdev или zzzz-tunnel1.netdev и т.д., и даже пробовал с 00- и т.д. Что бы я ни делал, всегда кажется, что ens3 и ens4 настроены после туннельных интерфейсов, поэтому маршрут всегда не добавляется.

Я также пытался настроить свои устройства в Netplan. Это усложняет некоторые вещи, но в конечном итоге имеет ту же проблему. Несмотря на то, что он создает такие файлы, как 10-netplan-tunnel1.network (которые лексически идут после файлов ens3/ens4), они по-прежнему применяются networkd в неправильном порядке.

Я уверен, что что-то здесь упускаю, но не могу понять что. Есть идеи?

Мой tunnel1.netdev выглядит так:

[NetDev]
Name=tunnel1
Kind=vti
MTUBytes=1419

[Tunnel]
Remote=1.2.3.4
Local=2.3.4.5
Key=100

...а .network выглядит так:

[Match]
Name=tunnel1

[Link]
RequiredForOnline=no
MTUBytes=1419

[Address]
Address=169.254.102.162/30
Peer=169.254.102.161/30

[Route]
Destination=10.0.32.0/20
PreferredSource=10.0.16.170
Metric=100
Scope=link
2
задан 22 September 2021 в 10:18

0 ответов

Другие вопросы по тегам:

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