Since I just went digging for this the other day , here's what I know about what controls what Ethernet devices get named on Red Hat Enteprise (and probably also on Fedora, but I haven't looked at my Fedora systems in this level of detail).
- if
kudzuis enabled, it uses/etc/sysconfig/hwconfto name everything. If there is no such file or the data in it doesn't match current reality, various bad things happen.(You can probably hand-edit the file if necessary.)
- otherwise, interface naming is controlled by the
HWADDRsetting in theifcfg-*files in/etc/sysconfig/network-scripts. If there is no Ethernet address specified, you get no renaming.
The ifcfg files are used by both
udev
and the
ifup
scripts that actually bring interfaces up and so on. When udev detects a new network device (including at boot, I believe), it runs
/lib/udev/rename_device
, which searches the
ifcfg-*
files for a
HWADDR
that matches the new device and uses the
DEVICE
setting from that file to give a name to the new interface.
(A network device that is hotplugged after system boot also winds up running
/etc/sysconfig/network-scripts/net.hotplug
.)
During boot, the order of operation is
udev
first, then
kudzu
, and finally the
network
init script winds up
ifup
'ing all of the interfaces that are supposed to be running, potentially undoing any damage
kudzu
did (if
kudzu
left the ifcfg configuration files along, which is unlikely).
(You may gather that I have a pretty low opinion of
kudzu
; in fact, I have been turning it off on most of my systems for years. It was left enabled on this RHEL system mostly because I hadn't taken the time to audit what init scripts were getting run.)