Тема: фиксированные имена сетевых интерфейсов
Когда-то давно имена сетевым интерфейсам выдавались в порядке их появления в системе. То есть в порядке загрузки ядерных модулей с драйверами сетевых карт. Если они были в ядре, а не модулями, то порядок их инициализации было трудно угадать. Также, если в компе стояли несколько (больше одной) сетевых карт одного типа (например, две 3Com), то трудно угадать кто из них будет под каким номером. Вообщем, были трудности.
В Дебиане сейчас, если есть udev, имена сетевых карт привязываются к их MAC адресам. Это гораздо лучше, но всё же далеко от идеала. Например, была сетевая карта, и звали её eth0. Потом она поломалась, её заменили. Но в системе осталась запись о ней. Новая сетевая карта получит имя eth1.
IMHO лучшее решение -- это привязать имя сетевого интерфейса к номеру PCI слота. Средствами udev это возможно.
В Дебиане это пишется в файле /etc/udev/rules.d/z25_persistent-net.rules.
Вместо такого:
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:13:d4:26:94:e3", NAME="eth0"Пишем так:
SUBSYSTEM=="net", DRIVERS=="?*", KERNELS=="0000:05:01.0", NAME="eth0"
SUBSYSTEM=="net", DRIVERS=="?*", KERNELS=="0000:05:02.0", NAME="eth1"
SUBSYSTEM=="net", DRIVERS=="?*", KERNELS=="0000:02:00.0", NAME="eth2"В параметре KERNELS ставятся номера PCI устройств, как их показывает команда lspci.
Теперь имя сетевого интерфейса зависит только от того, куда воткнута сетевая карта. И не зависит от её типа, от порядка загрузки и инициализации драйверов и прочих посторонних вещей. Если карточку заменить, то все имена останутся на своих местах.
PS. А ещё есть http://etcnet.org/
Его родной дом -- Alt Linux.