Tags:
create new tag
view all tags

Consistent Network Interface Naming

For RHEL 7 the network interface names have changed from the legacy ethX style to a modern consistent naming scheme.

The details are described in the Dell Consistent Network Device Naming in Linux document. The Redhat networking guide also has a very useful chapter - Consistent Network Device Naming.

Supported Models

Model Name ID_NET_NAME_ONBOARD ID_NET_NAME_PATH SMBIOS
Dell Optiplex 745 enp2s0   enp2s0 2.3
Dell Optiplex 755 enp0s25   enp0s25 2.5
Dell Optiplex 780 enp0s25   enp0s25 2.5
Dell Optiplex 790 em1 eno1 enp0s25 2.6
Dell T5610 ?   enp0s25 2.7
HP DC7900 enp0s25   enp0s25 2.5
HP 8000 Elite enp0s25   enp0s25 2.6
HP 8200 Elite em1 eno1 enp0s25 2.7
HP 8300 Elite em1 eno1 enp0s25 2.7
HP 800 EliteDesk G1 em1 eno1 enp0s25 2.7
HP 800 EliteDesk G2 em1 eno1 enp0s31f6 2.7
HP Z220 em1 eno1 enp0s25 2.7
Dell PowerEdge 1950 enoX eno1 / eno2 enp3s0 / enp7s0 2.5
Dell PowerEdge R200 enoX eno1 / eno2 enp3s0 / enp4s0 2.5
Dell PowerEdge R220 emX eno1 / eno2 enp2s0f0 / enp2s0f1 2.7
Dell PowerEdge R310 emX enoX enp2s0fY 2.6
Dell PowerEdge R330 emX eno1 / eno2 enp4s0f0 / enp4s0f1 2.8
Dell PowerEdge R420 emX eno1 / eno2 enp2s0f0 / enp2s0f1 2.7
Dell PowerEdge R430 emX enoX enp2s0fY 2.8
Dell PowerEdge R510 emX enoX enp1s0f0 / enp1s0f1 2.6
Dell PowerEdge R520 emX enoX enp2s0fY 2.7
Dell PowerEdge R710 emX enoX enp1s0fY / enp2s0fY 2.6
HP DL180 G6 emX   enp8s0fY 2.6

SMBIOS Version

For older versions of the SMBIOS the name will be the ID_NET_NAME_PATH, with newer versions it will be based on ID_NET_NAME_ONBOARD. On Dell it appears that the cut-off version is 2.6, on HP it appears to be 2.7.

To find the SMBIOS version use the following commands:

/sbin/dmidecode -t 41 | grep SMBIOS
/sbin/dmidecode -t  9 | grep SMBIOS
/sbin/biosdecode | grep SMBIOS

Finding network names

To find the network interface names use the udevadm tool, something like this:

udevadm info -e | grep ID_NET_NAME

This blog article was very helpful for working out how to discover the various information.

If a machine is still using the legacy name (e.g. eth0) then the biosdevname tool can be used to find out what it would return.

/sbin/biosdevname --smbios 2.6 --nopirq --policy physical -i eth0

This is the command used in /usr/lib/udev/rules.d/71-biosdevname.rules, if this returns anything that is the interface name to use, if nothing is returned then it seems that the ID_NET_NAME_PATH name will be used instead.

Getting the real device name

The network component will refer to eth0 and has a network.device_eth0 resource which holds the real name for the device (e.g. em1). This can be useful for other components which need to know the real device name.

-- squinney - 2017-05-11

Topic revision: r12 - 2017-05-11 - squinney
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2020 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback