This issue has been solved as of systemd
v197 with the introduction of persistent naming for network devices.
According to the freedesktop Predictable Network Interface Names page, the kernel simply assigned names based on the order they were probed by the relevant drivers:
The classic naming scheme for network interfaces applied by the kernel is to simply assign names beginning with "eth0", "eth1", ... to all interfaces as they are probed by the drivers. As the driver probing is generally not predictable for modern technology this means that as soon as multiple network interfaces are available the assignment of the names "eth0", "eth1" and so on is generally not fixed anymore and it might very well happen that "eth0" on one boot ends up being "eth1" on the next.
If your distro uses systemd, you can either use the predictably assigned but perhaps unwieldy names like wlp0s11
or you can write a udev
rule to give them a name you are more comfortable with, like wifi1
, based on the mac address...
Include a file in /etc/udev/rules.d/
called 10-network-device.rules
:
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="22:bb:cc:33:44:dd", NAME="wifi1"