Summary: | Неверный порядок назначения имён сетевым интерфейсам | ||||||
---|---|---|---|---|---|---|---|
Product: | Sisyphus | Reporter: | Стас <stas.grumbler> | ||||
Component: | udev-rules | Assignee: | Alexey Shabalin <shaba> | ||||
Status: | CLOSED NOTABUG | QA Contact: | qa-sisyphus | ||||
Severity: | normal | ||||||
Priority: | P3 | CC: | asy, evg, mike, shaba | ||||
Version: | unstable | ||||||
Hardware: | all | ||||||
OS: | Linux | ||||||
URL: | https://github.com/systemd/systemd/issues/1390 | ||||||
Attachments: |
|
С такими масштабными предложениями наверное лучше обращаться в апстрим. К тому же, это очень напоминает дубль уже известных багов с прошивками от вендоров (см. например по ссылке). Резюме апстрима такое что нужно жаловаться вендору материнской платы и возможно, фильтровать в ядре. Как обходной путь предлагается дать udev-у хинт о том, как называть какие устройства, например по используемому драйверу. А udev-rule-generator-net ситуацию не спасает ? Выбирайте любую политику именования интерфейсов, как вам нравится. просто добавьте настройки в /etc/systemd/network/99-default.link Документация тут. https://www.freedesktop.org/software/systemd/man/systemd.link.html (In reply to comment #3) > Выбирайте любую политику именования интерфейсов, как вам нравится. > просто добавьте настройки в > /etc/systemd/network/99-default.link > Документация тут. > https://www.freedesktop.org/software/systemd/man/systemd.link.html Во время создания тикета systemd отсутствовал в системе. Эти настройки влияют на udev, и работают в отсутствии systemd. (In reply to comment #5) > Эти настройки влияют на udev, и работают в отсутствии systemd. А почему они тогда в /etc/systemd/network ? Это путаница получается. |
Created attachment 6685 [details] Приоритет признака ID_NET_NAME_PATH при переименовании интерфейса На интеловских серверных платформах udev не может назначить уникальные имена отдельным "набортным" интерфейсам. В /lib/udev/rules.d/80-net-name-slot.rules сначала имя назначается по признаку ID_NET_NAME_ONBOARD, затем по ID_NET_NAME_SLOT и в последнюю очередь по ID_NET_NAME_PATH В результате udevd пытается назначить имя eno1 двум интерфейсам. Вот пример свойств ID_NET_NAME_* двух интерфейсов в udev: ID_NET_NAME_MAC=enx001e67ce3321 ID_NET_NAME_ONBOARD=eno1 ID_NET_NAME_PATH=enp2s0 ID_NET_NAME_MAC=enx001e67ce3321 ID_NET_NAME_ONBOARD=eno1 ID_NET_NAME_PATH=enp0s25 Решение: поставить ID_NET_NAME_PATH первым в списке. Патч прилагаю. Другой вариант решения - поставить ID_NET_NAME_ONBOARD последним. Считаю его менее надёжным. Ошибка возникает только в случае двух разных чипов сетевых контроллеров. Если установлен один многоканальный чип, ID_NET_NAME_ONBOARD у его интерфейсов различаются.