Bug 20557 - iftab2rules: не реализована автоматическая конвертация нестандартных имён интерфейсов
Summary: iftab2rules: не реализована автоматическая конвертация нестандартных имён инт...
Status: CLOSED WONTFIX
Alias: None
Product: Sisyphus
Classification: Development
Component: ifrename (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: placeholder@altlinux.org
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-06-24 10:00 MSD by Anton Farygin
Modified: 2012-05-25 02:00 MSK (History)
7 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Anton Farygin 2009-06-24 10:00:08 MSD
Не срабатывает конвертация /etc/iftab в /etc/udev/rules.d/70-persistent-net.rules при обновлении системы. Воспроизвелось на трёх разных машинах:
# /lib/ifrename/iftab2rules
Added 0 new rules to /etc/udev/rules.d/70-persistent-net.rules based on 2 lines from /etc/iftab
WARNING: Automatic /etc/iftab -> /etc/udev/rules.d/70-persistent-net.rules conversion failed

# cat /etc/iftab
eth1    mac 00:07:e9:0a:46:72
eth0    mac 00:0e:a6:5c:01:a0
Comment 1 Dmitry V. Levin 2009-06-24 14:48:42 MSD
Содержимое /etc/iftab актуально?
Comment 2 Dmitry V. Levin 2009-06-24 14:50:43 MSD
Если 70-persistent-net.rules уже содержит результат конвертации, то iftab2rules
 будет сообщать "Added 0 new rules", поскольку добавить больше нечего.
Comment 3 Anton Farygin 2009-06-24 15:29:42 MSD
Файл /etc/udev/rules.d/70-persistent-net.rules в обоих случаях пустой

В одном случае - все интерфейсы в системе есть, но под другим именем:
2: alt: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:07:e9:0a:46:72 brd ff:ff:ff:ff:ff:ff
3: maxnet: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0e:a6:5c:01:a0 brd ff:ff:ff:ff:ff:ff
$ cat /etc/iftab
eth1    mac 00:07:e9:0a:46:72
eth0    mac 00:0e:a6:5c:01:a0


В другом случае - интерфейсы есть, содержимое /etc/iftab полностью совпадает с реальными (переименованными с помощью iftab из /etc/net/iftab, который одинаковый с /etc/iftab) именами интерфейсов в системе:
# cat /etc/iftab 
maxnet mac 00:02:b3:4c:f1:8b
elektron mac 00:11:d8:c2:48:0b
eleks mac 00:02:b3:4c:f1:ac

2: maxnet: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:02:b3:4c:f1:8b brd ff:ff:ff:ff:ff:ff
3: eleks: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:02:b3:4c:f1:ac brd ff:ff:ff:ff:ff:ff
4: elektron: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 100
    link/ether 00:11:d8:c2:48:0b brd ff:ff:ff:ff:ff:ff

# /lib/ifrename/iftab2rules
Added 0 new rules to /etc/udev/rules.d/70-persistent-net.rules based on 3 lines from /etc/iftab
WARNING: Automatic /etc/iftab -> /etc/udev/rules.d/70-persistent-net.rules conversion failed
Comment 4 Alexey Rusakov 2009-06-25 10:25:27 MSD
Насколько я понял, преобразовалка не преобразует записи для интерфейсов с кастомизированными именами (не eth*, не wlan* и т.п.). Записи в persistent-rules, тем не менее, будут созданы, но при перезагрузке и с обычными именами. Кастомизацию имён после этого придётся провести снова.
Comment 5 Alexey Rusakov 2009-06-25 10:27:52 MSD
s/persistent-rules/persistent-net.rules/
Comment 6 Sergey Vlasov 2009-06-25 14:58:39 MSD
(В ответ на комментарий №3)
> В одном случае - все интерфейсы в системе есть, но под другим именем:
> 2: alt: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP
> qlen 1000
>     link/ether 00:07:e9:0a:46:72 brd ff:ff:ff:ff:ff:ff
> 3: maxnet: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP
> qlen 1000
>     link/ether 00:0e:a6:5c:01:a0 brd ff:ff:ff:ff:ff:ff
> $ cat /etc/iftab
> eth1    mac 00:07:e9:0a:46:72
> eth0    mac 00:0e:a6:5c:01:a0

И откуда в таком случае берутся нестандартные имена интерфейсов - из /etc/net/iftab? Зачем тогда в этой системе нужен /etc/iftab или /etc/udev/rules.d/70-persistent-net.rules?

(В ответ на комментарий №4)
> Насколько я понял, преобразовалка не преобразует записи для интерфейсов с
> кастомизированными именами (не eth*, не wlan* и т.п.).
Действительно, при повторном вызове udevtrigger из /lib/ifrename/iftab2rules правила не сработают, если интерфейсы были переименованы ранее. Причём исправить ситуацию до перезагрузки вряд ли возможно, поскольку в правило должно быть вписано базовое имя интерфейса, назначенное ядром (KERNEL=="eth*" и т.п.), которое в момент установки нового пакета в данном случае уже потеряно. По этой же причине скрипт может сработать неправильно, если ранее производилось переименование интерфейса таким образом, что новое имя похоже на базовое имя, назначаемое ядром, но не совпадает с реально используемым при загрузке драйвера (типа переименования athN в wlanN).

Возможно, для правильной работы преобразование придётся откладывать до следующей перезагрузки (например, передавая желаемое имя интерфейса через переменную INTERFACE_NAME).
Comment 7 Anton Farygin 2009-06-25 15:23:04 MSD
В этом случае нестандартные имена интерфейсов берутся из 
/etc/net/iftab

Вопрос об использовании /etc/net/iftab вылез после того, как переименование с помощью /etc/iftab было сломано (в случае наличия бриджа).

Хотел вернуться обратно (на системный механизм переименования интерфейсов), но видно - не судьба. Перегружать сервер ради эксперимента не могу.
Comment 8 Dmitry V. Levin 2009-06-25 17:20:09 MSD
(In reply to comment #7)
> В этом случае нестандартные имена интерфейсов берутся из 
> /etc/net/iftab

Автоматическая конвертация нестандартных имён интерфейсов не реализована.
Comment 9 Dmitry V. Levin 2012-05-25 02:00:44 MSK
(In reply to comment #8)
> (In reply to comment #7)
> > В этом случае нестандартные имена интерфейсов берутся из 
> > /etc/net/iftab
> 
> Автоматическая конвертация нестандартных имён интерфейсов не реализована.

И, скорее всего, уже не будет реализована.