Here's the 17th post highlighting key new features of the upcoming v257 release of systemd. #systemd257
Linux network interfaces since a longer time have not just a primary name, but any number of additional "alternative" names. Similar semantics apply, but they can be longer and there can be many.
You might know the naming policies that systemd by default applies when picking the (primary) name of hardware network interfaces, to ensure they remain stable, so that the same hw iface is...
…named the same way for the lifetime of the system. Different definitions of "same" exist, i.e. some people prefer if the very same physical device always carries the same name (in which case the MAC address is a good identifier, if the device has one), others prefer if the slot the devices are plugged into gets the fixed name so that the devices can be replaced if broken.
The policy which naming scheme to use can be configured, see the systemd.net-naming-scheme(7) man page for details.
Since a while systemd would always follow that policy for the primary name, and then add all other candidate names as alternative names to the interfaces too.
That way, you can use all applicable names for the interfaces in tools that understand the alternative names concept of Linux, and for older tools you can use the primary name as per policy.
We only made one exception from this logic so far: the MAC-address based names (i.e. "enx…" and similar) would not be applied as alternative names.
That was because in some situations MAC addresses can get "inherited" from one device to another. (Thus allowing multiple interfaces with the same mac.) Now, the kernel actually allowed to mark these cases so that we can recognize them and simply not apply alternative names bases on "inherited" MAC addresses.
Except of course that various drivers were broken in this regard, most recently some laptop docking stations which "inherited" their MAC address from the laptop's own ethernet port.
But that got fixed in the kernel a while back. And thus with v257 we decided to drop the special casing again. So from now on all applicable predictable network interface names are applied by default to network interfaces, and the naming policy simply controls which one of them to use as primary name.
And that's all for today.
@pid_eins very cool, thank you!
@pid_eins really enjoying this series! Would you be open to adding a hashtag, (or perhaps there's a more clever way I'm unaware of) to make these posts available as a distinct and browsable collection? #systemd has so many features, so many uses and implications, and such a quick rate of development that I often like to review the backlog of release notes to re-integrate and update my understanding. Thanks again!
@niklauzg you want me to edit all old stories like that? I am a lazy person, that's a lot of work...
@pid_eins if that's on offer, then "Yes!", otherwise "heavens no"
@niklauzg i tagged all v257 posts like this now.
@pid_eins oh very nice, thanks!