I just want to present my conclusion here succintly. https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/
Was introduced to safeguard against a rare occasion where an important network computer in a critical environment would suffer from the kernel anomaly that assigned network interface names may be unreliable. In any system not configured by the system administrator to cater to this issue, even simply forgetting to do it could result in some security breach. This is how I read the issue today. The designers wanted to create something that would never fail, and never cause this scenario to happen. But now all desktop users pay the price of having incomprehensible names for their network devices, and all server administrators who like writing scripts or defining firewalls have to deal with names that are going to change from system to system. There is a solution to map the original hardware devices (not the new names) to more meaningful names by manual choice. However, this is not usually implemented and I do not know of any distribution that does this by default. The solution requires the user to either know about the way to find help (man systemd.link) or to look it up on the web (and know that systemd causes it). Then he or she needs to create multiple files for each interface containing either the hardware address (MAC) that is easy to find, or the PCI bus address according to udev that is less easy to find. While many people would probably like a more comprehensible naming scheme, the burden is now on each individual user to create it, while a consensus on a regular scheme would not be hard to reach. For instance, calling wired internet devices "ethernet0" while wireless ones would be called "wireless0" would not be an odd thing to do at all. So what I am simply calling for is for distributions to make a choice in the names they want, and then to configure it by default. PCI hardware names can be mapped to predictable names, most likely. MAC addresses could equally be used. The only thing to decide upon is the actual naming scheme. As said, "ethernet#" and "wireless#" would be obvious. It wouldn't take more for a distribution's installer than to find these devices and create mapping files based on them. The configuration with multiple files in /dev/systemd/network is not easy, but for an installer that would not be an issue. The configuration is not easily discoverable by any user traversing the filesystem, nor is it intuitive to use multiple files for a single configuration but a likelihood of a user needing to change it, would be very low. If you want systemd to make sense, you must make it easier for users. The names I propose would be easy to understand and contain no risk for the scenario I described unless hardware is removed from a system (but not put back). And it might not even have that issue. Comprehensibility increases legibility and it could even reduce the risk of some administrator making mistakes. What it would create on a desktop OS is user-friendly names while having scarcely any implication, or not at all, for the risk situation described. PCI bus addresses could be used by default, or MAC addresses if that was an issue. The kernel-based reordering as described would never happen. And all it requires is for the current system to create a default mapping that requires the installer of the system to do some work. And not much. So what I vouch for is a default mapping, that is all. A default mapping to names such as "wireless0" "ethernet0". People could also think about renaming "lo" to "loopback". _______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/systemd-devel