36

What is the difference between the network interface name ethX (e.g. eth1) and enoX (e.g. eno1), given by ifconfig or lshw ?

Covich
  • 471

3 Answers3

24

The difference between eth0 and eno1 is the method/scheme the Linux kernel used to assign a name the Ethernet interface in question.

In the 1990s, Linux assigned the names of the form ethX (where X is a numeral) to Ethernet network interfaces.

However, on a machine with multiple network interfaces, an interface would not receive the same name consistently across reboots due to boot-time race conditions.

Consequently, a new naming scheme was introduced. Most commonly (at least in my experience), these names were of the form enpXsY, where X and Y are numerals. These interface names were consistent across boots (provided no hardware was added, removed, or moved to a different slot between boots).

I suspect (but have not been able to confirm) that interface names of the form enoX or ensY are more likely to appear when the machine boots via UEFI (as opposed to booting via legacy BIOS).

Freedesktop.org says that as of Systemd v197:

The following different naming schemes for network interfaces are now supported by udev natively:

  1. Names incorporating Firmware/BIOS provided index numbers for on-board devices (example: eno1)
  2. Names incorporating Firmware/BIOS provided PCI Express hotplug slot index numbers (example: ens1)
  3. Names incorporating physical/geographical location of the connector of the hardware (example: enp2s0)
  4. Names incorporating the interfaces's MAC address (example: enx78e7d1ea46da)
  5. Classic, unpredictable kernel-native ethX naming (example: eth0)

You may also find additional information at these links:
https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/
https://wiki.debian.org/NetworkInterfaceNames
https://en.wikipedia.org/wiki/Consistent_Network_Device_Naming

mpb
  • 405
6

eth1 is the onboard Ethernet (wired) adapter on your Linux machine.

eno1 is your embedded NIC (onboard Network Interface Card). It is a regular physical network interface.

You can use this link as reference.

This is a way of representing the Ethernet names. If machine has already eth1 in its config file for the second adapter it will use eno1 rather than using eth2.

They both are same. Its just a name of config file. You can also change the name eno1 to eth2 by doing a simple Google search.

Here is the link for changing the same: Click

manjesh23
  • 1,742
3

Consistent Network Device Naming

Red Hat Enterprise Linux 7 introduces a new network naming scheme as part of systemd (Also in Ubuntu 16x, 17x, 18x)

Onboard interfaces at firmware index numbers eno[1-N]

Then, eno1, eno2, etc, are embedded network interfaces (usually we can see them on HP Proliant servers, among others)

acgbox
  • 844