Consistent Network Device Naming

Consistent Network Device Naming is a convention for naming Ethernet adapters in Linux.

It was created around 2009 to replace the old ethX naming scheme that caused problems on multihomed machines because the network interface controllers (NICs) would be named based on the order in which they were found by the kernel as it booted. Removing existing or adding new interfaces could cause the previously added ones to change names.[1] An Engineering Change Request was submitted to the PCI SIG firmware group on how system firmware can provide device naming to operating systems via the ACPI interface.[2]

Adoption

The convention was implemented for Dell in a module called biosdevname.[3]

Among the first major Linux distributions to adopt the module were Fedora 15 in May 2011[4][5] and Red Hat Enterprise Linux version 6.1.[6][7] It was also released in SUSE Linux Enterprise Server 11 Service Pack 2 in February 2012.[7] The newer Dell PowerEdge and Dell Precision models support the new names.[7]

An open-source implementation is available, based on the udev mechanism.[8][9] Red Hat Enterprise Linux 7 started using systemd for networking.[10]

Device naming rules

  • Onboard interfaces at firmware index numbers eno[1-N]
  • Interfaces at PCI Express hotplug slot numbers ens[1-N]
  • Adapters in the specified PCI slot, with slot index number on the adapter enp<PCI slot>s<card index no>
  • If firmware information is invalid or rules are disabled, use traditional eth[0-N][11]

References