У меня есть хост systemd с 4 портами Ethernet.
один порт зарезервирован для изолированных контейнеров. Он установлен как:
# /etc/systemd/network/20-eth3-reserved.network
[Соответствовать]
Имя=eth3
[Соединять]
Неуправляемый=да
Я также устанавливаю псевдонимы для портов, каждый в своем файле ссылок, например.
# /etc/systemd/network/12-alias-eth3.link
[Соответствовать]
MAC-адрес=42:42:42:42:42:03
[Соединять]
Имя=eth3
Позже я буду использовать неуправляемый интерфейс в контейнере systemd-nspawn с
# /etc/systemd/nspawn/container1.nspawn
...
[Сеть]
Частный=да
Виртуальный Ethernet=нет
Интерфейс=eth3
В какой-то момент (сентябрь) он работал нормально. Но несколько месяцев назад интерфейс с неуправляемой настройкой просто пропал из системы.
nspawn не может вызвать контейнер, говоря, что интерфейс не найден.
IP-ссылка
не показывает ни eth3, ни mac-адрес.
лшв
странно показывает все управляемые порты, но НЕ перечисляет macaddress (сериал
поле) для неработающего.
dmesg
показывает все порты просто отлично и перечисляет правильный mac-адрес для всех, включая отключенный. Позже он также показывает применяемый псевдоним!
[Ср, 10 ноября, 11:44:31 2021] igb 0000:03:00.3 eth3: переименован из enps0f4
Таким образом, systemd отлично видит устройство даже после того, как проблема началась.
networkclt
показывает все управляемые порты плюс вот
как неуправляемый
. Но никаких признаков eth3.
Я не против найти решение этой проблемы, если есть лучший способ «зарезервировать» физический интерфейс для использования с nspawn вместо Неуправляемый=да