I've been using systemd's "predictable network interface names" for a few days now. You know, the ones that go like "enp5s0". After thinking about it for a while, I came to the conclusion that these interface names are indeed a very good solution for most setups. For me, though, they don't work very well. I'm better off with statically assigned interface names depending on the MAC address. Reason's simple: I use an USB ethernet adapter. Now, with systemd's naming scheme, it gets named like this: "enp0s29u1u4". Hmmm. Yeah, technically correct (the USB "slot" is encoded in this name), but impractical. When I plug the adapter into another USB port, its name changes! Bummer. I'll go back to simply doing something like this: 1 SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="72:07:b9:a8:9c:19", NAME="lan" 2 SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="57:04:b6:c2:6c:33", NAME="usblan" Interfaces that I *know* get a special name. Anything else is the usual "eth0", "eth1", "wlan0", ... I've also been playing with interface names depending on the MAC address. Literally, the MAC is part of the interface name. You'd end up with "en7207b9a89c19". Pretty clumsy, eh? But you wouldn't have to worry about collisions or USB ports. Nah, too clumsy.