This commit is contained in:
LennartPoettering 2013-01-07 22:19:48 +00:00 committed by Zbigniew Jędrzejewski-Szmek
parent 128faa63f2
commit ce7c9f453a

View file

@ -8,7 +8,7 @@ The classic naming scheme for network interfaces applied by the kernel is to sim
To fix this problem multiple solutions have been proposed and implemented. For a longer time udev shipped support for assigning permanent "ethX" names to certain interfaces based on their MAC addresses. This turned out to have a multitude of problems, among them: this required a writable root directory which is generally not available; the statelessness of the system is lost as booting an OS image on a system will result in changed configuration of the image; on many systems MAC addresses are not actually fixed, such as on a lot of embedded hardware and particularly on all kinds of virtualization solutions. The biggest of all however is that the userspace components trying to assign the interface name raced against the kernel assigning new names from the same "ethX" namespace, a race condition with all kinds of weird effects. As a result support for this has been removed from systemd/udev a while back.
Another solution that has been implemented is "biosdevname" which tries to find fixed slot topology information in certain firmware interfaces and uses them to assign fixed names to interfaces which incorporate their physical location on the mainboard. (Unfortunately biosdevname did a lot more than this which is more problematic).
Another solution that has been implemented is "biosdevname" which tries to find fixed slot topology information in certain firmware interfaces and uses them to assign fixed names to interfaces which incorporate their physical location on the mainboard. In a way this naming scheme is similar to what is already done natively in udev for various devices via /dev/*/by-path/ symlinks. biosdevname departs from the low-level kernel device identification schemes that udev generally uses for these symlinks, and instead invents its own enumeration schemes.
Finally, many distributions support renaming interfaces to user-chosen names (think: "internet0", "dmz0", ...) keyed off their MAC addresses or physical locations as part of their networking scripts. This is a very good choice but does have the problem that it implies that the user is willing and capable of choosing and assigning these names.
@ -16,7 +16,7 @@ We believe it is a good default choice to generalize the scheme pioneered by "bi
== What has changed v197 precisely? ==
With systemd 197 we have moved a scheme similar to biosdevname (but generally more powerful) into systemd/udev proper. A number of different naming schemes for network interfaces are now supported by udev natively:
With systemd 197 we have moved a scheme similar to biosdevname (but generally more powerful, and closer to kernel-internal device identification schemes) into systemd/udev proper. A number of different naming schemes for network interfaces are now supported by udev natively:
1. Names incorporating Firmware/BIOS provided index numbers for on-board devices (example: {{{eno1}}})
2. Names incorporating Firmware/BIOS provided PCI Express hotplug slot index numbers (example: {{{ens1}}})