Bug 20557 - iftab2rules: не реализована автоматическая конвертация нестандартных имён интерфейсов
: iftab2rules: не реализована автоматическая конвертация нестандартных имён инт...
Status: CLOSED WONTFIX
: Sisyphus
(All bugs in Sisyphus/ifrename)
: unstable
: all Linux
: P3 normal
Assigned To:
:
:
:
:
:
  Show dependency tree
 
Reported: 2009-06-24 10:00 by
Modified: 2012-05-25 02:00 (History)


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2009-06-24 10:00:08
Не срабатывает конвертация /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 From 2009-06-24 14:48:42 -------
Содержимое /etc/iftab актуально?
------- Comment #2 From 2009-06-24 14:50:43 -------
Если 70-persistent-net.rules уже содержит результат конвертации, то iftab2rules
 будет сообщать "Added 0 new rules", поскольку добавить больше нечего.
------- Comment #3 From 2009-06-24 15:29:42 -------
Файл /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 From 2009-06-25 10:25:27 -------
Насколько я понял, преобразовалка не преобразует записи для интерфейсов с
кастомизированными именами (не eth*, не wlan* и т.п.). Записи в
persistent-rules, тем не менее, будут созданы, но при перезагрузке и с обычными
именами. Кастомизацию имён после этого придётся провести снова.
------- Comment #5 From 2009-06-25 10:27:52 -------
s/persistent-rules/persistent-net.rules/
------- Comment #6 From 2009-06-25 14:58:39 -------
(В ответ на комментарий №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 From 2009-06-25 15:23:04 -------
В этом случае нестандартные имена интерфейсов берутся из 
/etc/net/iftab

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

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

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

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