This happened on a machine currently running Fedora 36, though it was installed at least 3 or 5 years ago, in other words: The network configuration hasn’t changed in years and the hardware configuration hasn’t changed either.
But one day, out of the blue, there was no network connectivity anymore.
The boot process took minutes because:
Job systemd-networkd-wait-online.service/start running (2min / no limit)
ip address listed both physical interfaces as down:
2: enp10s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether f4:6d:04:ab:cd:ef brd ff:ff:ff:ff:ff:ff 3: enp7s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether a0:36:9f:ab:cd:ef brd ff:ff:ff:ff:ff:ff
When I had to find out what’s wrong, I noticed that those interface names are new. The system uses systemd-networkd instead of NetworkManager, which was configured for enp11s0. So in
/etc/systemd/network, there’s a file called
enp11s0.network which starts with:
[Match] Name=enp11s0 [Network] VLAN=...
(The VLAN part is just to make it complete but it’s irrelevant here.)
This configuration literally worked fine for years until it suddenly broke someday. No hardware change was made, the last release upgrade was made half a year ago.
Why did Fedora suddenly change the name of the network adapter enp11s0 to enp10s0?
I thought these names were designed so they can be used because they wouldn’t change randomly like “eth0”? Is this assumption wrong now and if so, where is this documented? And I have to say, it seems like “eth0” would have been more reliable a name because if the order of eth0, eth1 etc. is defined by whichever device is found first on boot, those names shouldn’t change without a hardware change. Note that “eth0” still would’ve been the right name in this particular case if it weren’t renamed during boot:
# dmesg | grep enp10s0 [ 3.567800] r8169 0000:0a:00.0 enp10s0: renamed from eth0
Again, who or what decided to rename enp11s0 to enp10s0? Sounds like nobody should use those names anymore and use the MAC address to identify interfaces?