persistent-net-rules
Apr. 18th, 2007 09:41 amЯ, кажется понял, в чем засада с правилами именования сетевых интерфейсов в udev.
В том, что они работают последовательно, не зная об уже отработавших аналогичных правилах и об ещё не обработанных аналогичных устройствах.
Интуитивно ожидаемая схема работы выглядела бы так:
1. Обнюхиваем все имеющиеся сетевые карты.
2. Если обнаружились среди них те mac-адреса, которые мы видели в прошлый раз,
даем им те же имена интерфейсов, что и в прошлый раз.
3. Остальным раздаем все незадействованные на шаге два имена в порядке возрастания.
В отличие от текущей схемы, эта не будет приводить к проблемам, если в машине поменяли материнскую плату со встроенной сетевушкой, или сетевую карту. Даже если в машине три сетевых карты, и поменяли одну - две сохранят свои имена, а третья получит имя вынутой (и, в 99% случаев это будет именно тем, чего бы хотел пользователь)
Опять же, это автоматически решает вопрос с ноутбуками с PCMCIA-сетевками. Какие бы сетевки не втыкались, если она воткнута одна-единственная, она будет eth0.
Непонятно только, как это сделать при существующей архитектуре udev.
В том, что они работают последовательно, не зная об уже отработавших аналогичных правилах и об ещё не обработанных аналогичных устройствах.
Интуитивно ожидаемая схема работы выглядела бы так:
1. Обнюхиваем все имеющиеся сетевые карты.
2. Если обнаружились среди них те mac-адреса, которые мы видели в прошлый раз,
даем им те же имена интерфейсов, что и в прошлый раз.
3. Остальным раздаем все незадействованные на шаге два имена в порядке возрастания.
В отличие от текущей схемы, эта не будет приводить к проблемам, если в машине поменяли материнскую плату со встроенной сетевушкой, или сетевую карту. Даже если в машине три сетевых карты, и поменяли одну - две сохранят свои имена, а третья получит имя вынутой (и, в 99% случаев это будет именно тем, чего бы хотел пользователь)
Опять же, это автоматически решает вопрос с ноутбуками с PCMCIA-сетевками. Какие бы сетевки не втыкались, если она воткнута одна-единственная, она будет eth0.
Непонятно только, как это сделать при существующей архитектуре udev.