I'm currently installing 2 new servers, exactly the same hardware & installation procedure.

Both machines have 4 NICs, 2 x 1Gbit and 2 x 10Gbit

The 1Gbit ones get a different name and I have no idea why. There are no active rules in /etc/udev.

Machine 1:

[    4.887853] ixgbe 0000:5e:00.0 enp94s0f0: renamed from eth1
[    4.941268] ixgbe 0000:5e:00.1 enp94s0f1: renamed from eth2
[    5.070409] i40e 0000:1a:00.0 eno1: renamed from eth0
[    5.105394] i40e 0000:1a:00.1 eno2: renamed from eth1

Machine 2:

[    5.708490] ixgbe 0000:5e:00.0 enp94s0f0: renamed from eth0
[    6.059514] ixgbe 0000:5e:00.1 enp94s0f1: renamed from eth1
[    6.595102] i40e 0000:1a:00.0 enp26s0f0: renamed from eth0
[    6.621863] i40e 0000:1a:00.1 enp26s0f1: renamed from eth1

So 1 machine uses the 'eno*' naming convention and the other the 'enp26s0f*'. Any ideas about how this is caused and how I can fix it are highly appreciated... Thanks.


  • Unless everything between the two systems in the hardware is identical i.e. chipsets, firmware versions, etc. you can end up with different designations for the Ethernet ports. Honestly, if you want the same Ethernet port names across the systems don't use Predictive Naming. There is nothing wrong with the way it is shown here, but if you do scripts or software that relies on exact naming of ports I would recommend non-Predictive Naming. – Terrance Mar 9 '18 at 17:39
  • Look at configs in /etc/systemd/network/ Perhaps there's difference in settings and based on that systemd assigns different naming. May I ask, what particular issue you expect to have with this ? Are there scrips which going to rely on the interface naming ? – Sergiy Kolodyazhnyy Mar 9 '18 at 18:25

From the bottom link in Freedesktop:

Two character prefixes based on the type of interface:
 *   en — Ethernet
 *   sl — serial line IP (slip)
 *   wl — wlan
 *   ww — wwan

Type of names:
 *   b<number>                             — BCMA bus core number
 *   c<bus_id>                             — bus id of a grouped CCW or CCW device,
 *                                           with all leading zeros stripped [s390]
 *   o<index>[n<phys_port_name>|d<dev_port>]
 *                                         — on-board device index number
 *   s<slot>[f<function>][n<phys_port_name>|d<dev_port>]
 *                                         — hotplug slot index number
 *   x<MAC>                                — MAC address
 *   [P<domain>]p<bus>s<slot>[f<function>][n<phys_port_name>|d<dev_port>]
 *                                         — PCI geographical location
 *   [P<domain>]p<bus>s<slot>[f<function>][u<port>][..][c<config>][i<interface>]
 *                                         — USB port number chain
 *   v<slot>                               - VIO slot number (IBM PowerVM)
 *   a<vendor><model>i<instance>           — Platform bus ACPI instance id

So ...

  • eno is a "ethernet" "onboard" device so uses the "onboard" method.
  • enp is a "ethernet" "not onboard" device so uses the "PCI geographical location" or "USB port number chain" method.

how I can fix it

Fix what? There is nothing wrong (but do see the "I don't like this, how do I disable this?" part in the link).

| improve this answer | |
  • Well, same servers, same hardware, different names. IMHO the names should be the same... Why is it naming the interfaces different...? – Dirk Mar 9 '18 at 14:59
  • Interesting. My NIC is onboard and comes up as enp0s10. From RedHat it states that the p just means a physical location. However, they state that eno means Firmware or BIOS designate its location. I would have to beg to differ on the enp part since my NIC appears via lspci and not lsusb. – Terrance Mar 9 '18 at 15:10
  • This might be something: "This combined policy is only applied as last resort. That means, if the system has biosdevname installed, it will take precedence. If the user has added udev rules which change the name of the kernel devices these will take precedence too. Also, any distribution specific naming schemes generally take precedence. " "eno" is the 1st rule in the naming and is related to firmware. – Rinzwind Mar 9 '18 at 15:26
  • From my observations here on 3 different systems eno means onboard, that has to deal with boards that support UEFI and control the ethernet. I have a Dell desktop at work that is UEFI Intel and it shows up as eno. At home I have two different AMD boards using Legacy BIOS and one of the systems has a PCI card in it with onboard. Both those systems come up as enp. On the one with 2 it matches the enp# to the PCI bus number they come up as in lspci enp2 matches 02: and enp3 matches 03:. I think USB ehternet comes up as enx001122334455. I will have to test at work. – Terrance Mar 9 '18 at 15:42
  • @Terrance " I think USB ehternet comes up as enx001122334455" Correct. The numbers 001122 etc. correspond to the device's MAC address. – chili555 Mar 9 '18 at 16:34

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.