KERNEL=="eth?", SYSFS{address}=="00:21:e9:17:64:b5", NAME="eth1" # Now, all three network cards get assigned as eth0! eth1 and eth2 are no longer found. The pci-express nics (onboard) get detected first, and the pci nic is last, so it ends up "owning" the eth0 alias.
Changing SYSFS to ATTR should do it.
Tom,
Now I get in the syslog: Unknown key: ATTR{address}
I also tried ATTRS{address} seen in some examples, same error.
Digging around google a bit more I came up with different rules, and fingers crossed, they seem to work!
SUBSYSTEM=="net", SYSFS{address}=="00:1b:21:4d:c3:e8", NAME="eth0" # pro/1000gt SUBSYSTEM=="net", SYSFS{address}=="00:e0:81:b5:7a:30", NAME="eth1" # internal 1 SUBSYSTEM=="net", SYSFS{address}=="00:e0:81:b5:7a:31", NAME="eth2" # internal 2
Sorry. I was at an F12 box and udev uses there (and on U9.10) "ATTR{address}". For CentOS, it is "SYSFS{address}" as you are using... :(