Dell made some changes in their 12th generation servers like the R520, R620, R720, etc. These changes reflect Consistent Network Device Naming announced by the Fedora project earlier. Onboard network interfaces are no longer know as eth0, eth1, etc. by default but now named em1, em2, etc.

System Administrators can then use BIOS-provided names, which are consistent and not arbitrarily named, for their network ports. This eliminates the confusion that non-deterministic naming brings, and eliminates the use of hard-coded MAC address based port renaming which a) is racy and error-prone, and b) introduces state into an otherwise stateless system.

But there can be some problems. What if you use licensed software that used the MAC-address as unique identifier and polls hard to /dev/eth0. Well, then you have to hack around in the boot parameters of grub to use the old ethX device naming. This is also the case if you’re current PXE of Configuration Management isn’t ready for the new device naming.

  1. cp –preserve=context /etc/grub.conf /etc/grub.bak
  2. Add biosdevname=0 to the kernel boot arguments in /etc/grub.conf.
  3. Rename /etc/sysconfig/network-scripts/ifcfg-em1 to /etc/sysconfig/network-scripts/ifcfg-eth0, changing the line DEVICE=”em1″ to DEVICE=”eth0″
  4. Delete /etc/udev/rules.d/70-persistent-net.rules
  5. Reboot.

Now the network devices have their old names again. I’ve tested this with CentOS 6.2. If you’re looking for a quick fix for your current PXE-environment just use the first two steps (Add biosdevname=0 to the kernel boot arguments in /etc/grub.conf).