Here's my problem: I have a bunch of identical 1U servers (SunFire X2100 M2s) with four onboard Ethernet ports, driven by two different chipsets (two nVidia ones, two Broadcom ones). I want to configure our RHEL installs so that no matter which physical unit I stuff the system disks into, the Ethernet ports come up with consistent names that match the ports on the back of the server;
eth0
should always be the port labeled 'port 0' and so on.
(Since they have hotswap drive bays, we want to be able to easily swap drives between units in case of hardware failure or the like. It also simplifies general administration a bunch if the Ethernet naming matches the hardware naming.)
In the good old days, this was simple; just set up
/etc/modprobe.conf
to alias
eth0
and
eth1
to the
tg3
driver and
eth1
and
eth2
to the
forcedeth
driver, and everything usually worked .
In the new world of
udev
, not so much; much like with Ubuntu , everything really wants to name things based on known Ethernet addresses, and there seems to be no way to control what order modules are loaded in. The furthest I've gotten is a configuration that does nothing with any 'new' Ethernet ports, so you have to log in on the console and change all of the
HWADDR
values in the ifcfg files to have the correct Ethernet addresses.
(To do this, you have to turn off
kudzu
with '
chkconfig --del
kudzu
'. If you leave it enabled, it will helpfully configure any 'new' Ethernet ports to do DHCP on boot, and in the process it will replace your working ifcfg files with new ones. Yes, it leaves the old files around with
.bak
extensions, but I am pretty sure that if you swap hardware twice you will lose them entirely.)