[CentOS] eth enumeration order

Mon Sep 19 15:04:35 UTC 2011
Volker Poplawski <volker at openbios.org>

I have installed Centos 6 on a server with two NICs. It so happens that 
the NIC with the lower ARP adr is assigned 'eth1' and the NIC with the 
higher ARP 'eth0'. (Not sure if this a bug but it is at least inconvenient)

I have modified the udev rules in
/etc/udev/rules.d/70-persistent-net.rules
by swapping eth0 with eth1 in the NIC's rules.

However: the file gets changed on reboot. A third rule is automaticaly 
added for some reason, for one of the NICs which already has a rule. See 
below.
The system ends up with no network interface set up at all, because the 
init-script gets confused.

So....
How do you specifiy the order in which NICs are enumerated?
or at least how to tell centos to stop messing with the 
70-persistent-net.rules?


Regards
.....Volker



Contents of /etc/udev/rules.d/70-persistent-net.rules (arps anonymized):

(These are the two rules modified by me, assigning eth0/eth1 in 
ascending arp order)

# PCI device 0x8086:0x10d3 (e1000e) (custom name provided by external tool)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", 
ATTR{address}=="xx:xx:xx:xx:8f:ea", ATTR{type}=="1", KERNEL=="eth*", 
NAME="eth0"

# PCI device 0x8086:0x1502 (e1000e) (custom name provided by external tool)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", 
ATTR{address}=="xx:xx:xx:xx:8f:eb", ATTR{type}=="1", KERNEL=="eth*", 
NAME="eth1"

(This is the rule which gets automaticaly added on reboot)

# PCI device 0x8086:0x1502 (e1000e) (custom name provided by external tool)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", 
ATTR{address}=="xx:xx:xx:xx:8f:eb", ATTR{type}=="1", KERNEL=="eth*", 
NAME="eth0"