Product SiteDocumentation Site

Chapter 8. Consistent Network Device Naming

8.1. Understanding the Predictable Network Interface Device Names
8.2. Naming Scheme for Network Devices Available for Linux on System z
8.3. Consistent Network Device Naming Using BIOSDEVNAME
8.3.1. System Requirements
8.3.2. Enabling and Disabling the Feature
8.4. Notes for Administrators
8.5. Controlling the Selection of Network Device Names
8.6. Understanding the Device Renaming Procedure
8.7. Disabling Consistent Network Device Naming
8.8. Additional Resources
8.8.1. Installed Documentation
Fedora 20 provides methods for consistent and predictable network device naming for network interfaces. These features change the name of network interfaces on a system in order to make locating and differentiating the interfaces easier.
Traditionally, network interfaces in Linux are enumerated as eth[0123…], but these names do not necessarily correspond to actual labels on the chassis. Modern server platforms with multiple network adapters can encounter non-deterministic and counter-intuitive naming of these interfaces. This affects both network adapters embedded on the motherboard (Lan-on-Motherboard, or LOM) and add-in (single and multiport) adapters.
In Fedora 20, systemd and udevd support a number of different naming schemes. The default is to assign fixed names based on firmware, topology, and location information. This has the advantage that the names are fully automatic, fully predictable, that they stay fixed even if hardware is added or removed (no re-enumeration takes place), and that broken hardware can be replaced seamlessly. The disadvantage is that they are sometimes harder to read than the eth0 or wlan0 everybody is used to. For example: enp5s0.
The following different naming schemes for network interfaces are now supported by udevd natively:
  1. Names incorporating Firmware or BIOS provided index numbers for on-board devices (example: eno1)
  2. Names incorporating Firmware or BIOS provided PCI Express hotplug slot index numbers (example: ens1)
  3. Names incorporating physical location of the connector of the hardware (example: enp2s0)
  4. Names incorporating the interface's MAC address (example: enx78e7d1ea46da)
  5. The traditional unpredictable kernel-native ethX naming (example: eth0)
By default, systemd will name interfaces using the following policy to apply the schemes listed above:
  1. Use scheme 1 if that information from the firmware is applicable and available, falling back to scheme 2;
  2. Use scheme 2 if that information from the firmware is applicable and available, falling back to scheme 3;
  3. Use scheme 3 if applicable, falling back to scheme 5 in all other cases;
  4. Scheme 4 is not used by default, but is available if the user chooses;
  5. Scheme 5 is used if all other methods fail.
This policy, the procedure outlined above, is the default. If the system has BIOSDEVNAME enabled, it will take precedence. If the user has added udevd rules which change the name of the kernel devices, those rules will take precedence too.

8.1. Understanding the Predictable Network Interface Device Names

The names have two character prefixes based on the type of interface:
  1. en for Ethernet,
  2. wl for wireless LAN (WLAN),
  3. ww for wireless wide area network (WWAN).
The names have the following types:
Table 8.1. Device Name Types
Format Description
o<index> on-board device index number
s<slot>[f<function>][d<dev_id>] hotplug slot index number
x<MAC> MAC address
p<bus>s<slot>[f<function>][d<dev_id>] PCI geographical location
p<bus>s<slot>[f<function>][u<port>][..][c<config>][i<interface>] USB port number chain

  • All multi-function PCI devices will carry the [f<function>] number in the device name, including the function 0 device.
  • For USB devices the full chain of port numbers of hubs is composed. If the name gets longer than the maximum number of 15 characters, the name is not exported.
  • The USB configuration descriptors == 1 and USB configuration descriptors == 0 values are suppressed.