That's just bad though. Device naming should be consistant through reboots.
That's HOW it stays consistant between reboots. You should be able to take the cards out, move them around and they'd still stay consistant.
Because device names are generally granted on a ad-hoc basis. First come first serve. Now this is computer hardware and software and it will stay consistent between reboot just because thats how it works. But between kernel changes, driver updates, userland updates, bios updates, and changing hardware this stuff can't be expected (as in 90-100%) to always be a reliable way to determine which port gets the paticular 'eth*' address over the long term.
So if you have 3 4 port intel nic cards what does that get you with OpenBSD (for instance). int* devices or something?
int0
int1
int3
int4
int5
int6
int7
int8
int9
int10
int11
int12
Something like that? How do you keep track of those with a BSD system?
I know with modern Linux I just write udev rules for device naming based on their mac addresses (or other mechanism depending on what I want)... That way if I add or remove cards or have to work on the computer and put them back together differently or whatnot then they'll remain consistant..
KERNEL=="eth*",SYSFS{address}=="00:0e:2e:57:22:23",NAME="eth0"
KERNEL=="eth*",SYSFS{address}=="00:50:b4:01:93:3f",NAME="eth1"
KERNEL=="eth*",SYSFS{address}=="00:13
😀4:ef:4B:Ec",NAME="eth2"
etc etc.
This sort of thing is based on hardware information from /sys. (which is lowercase, which is different from ifconfig, kinda stupid)
I know it's not perfect, but it's better then it was just a years or so ago.
So If I have this big firewall/router thingy built with all these pf or iptables and dynamic routing stuff then it should, theoreticly, work consistantly for the life of the OS/hardware. Otherwise if I decide to add or remove a card or change something in the kernel or drivers that affect hardware detection then that would be a mess to fix.