From FedoraProject

< Features
Revision as of 22:49, 17 January 2013 by Lennart (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search



systemd/udev Predictable Network Interface Names


The udevd service has a long history of providing predicatable names for block devices and others. For Fedora 19 we'd like to provide the same for network interfaces, following a similar naming scheme, but only as fallback if not other solution such as biosdevname is installed or the administrator manually defined network interface names via udev rules or the old network scripts.


Current status

  • Targeted release: Fedora 19
  • Last updated: 2012-01-17
  • Percentage of completion: 100%

Detailed Description

The classic naming scheme for network interfaces applied by the kernel is to simply assign names beginning with "eth0", "eth1", ... to all interfaces as they are probed by the drivers. As the driver probing is generally not predictable for modern technology this means that as soon as multiple network interfaces are available the assignment of the names "eth0", "eth1" and so on is generally not fixed anymore and it might very well happen that "eth0" on one boot ends up being "eth1" on the next. This can have serious security implications, for example in firewall rules which are coded for certain naming schemes, and which are hence very sensitive to unpredictable changing names.

Starting with v197 systemd/udev can automatically assign predictable, stable network interface names for all local Ethernet, WLAN and WWAN interfaces. This is a departure from the traditional interface naming scheme ("eth0", "eth1", "wlan0", ...), but should fix real problems.

This feature is about enabling this as default in Fedora, but only as a fallback if the user/administrator did not manually assign names to interfaces via udev rules, or via the old networking scripts, or if biosdevname is installed.

For a longer discussion about this feature see the documentation.

Benefit to Fedora

Stable, predictable, reliable naming of all network interfaces by default, with on-board tools.


It's a simply rule we need to enable or disable in the Fedora RPM spec.

How To Test

If you don't have biosdevname installed and no explicit network interface configuration in /etc/sysconfig/network-scripts/, and did not install any udev rules that rename your interfaces for you, then your interfaces should now be named "eno1", "ens1", "enp2s0" or similar.

User Experience

Users generally won't see this, as interface names are not exposed in high-level UIs.

As biosdevname is installed by default and anaconda usually creates an interface configuration file for the hosts' ethernet network connection most administrators won't see this either.

This will be immediately visible only on systems which have no explcitly set network interface names, and do not have biosdevname installed.



Contingency Plan

We can turn the udev rule that enables this fallback default off/or on with a simple RPM spec line.



Release Notes

We should direct the user to http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames and include information how the new naming scheme can be turned off or altered.

Comments and Discussion