17

I recall not too long ago, interfaces were identified by eth0, eth1, wlan0, etc.

Now I'm finding interface names like enp0s3, enp0s8, etc.

In another question I asked here only moments ago, someone mentioned that the new format was:

"ethernet network peripheral # serial #"

and that got me wondering:

1.Why did it change?
2.When did it change?
3.What does the first number signify?
4.Why does the 's' stand for serial, why is that in the interface name?
5.What does the second number signify?

I've googled around for answers but didn't find anything that covers the transition from the old naming system to the new one.

4
  • You'd have got all your answers from the wiki article and its sources, which BTW happens to be the first result for a simple search. Hardly difficult to do, so what were you searching for?
    – Karan
    May 14, 2015 at 2:47
  • it's easier to search when you know what to look for :p I had been searching for things like "enp0s3 vs eth0" and "network interface names" I did arrive at the freedesktop.org predictable interface naming article, but I didn't know that was this. May 14, 2015 at 12:28
  • 2
    This is a legit question and has a rather insightful answer. Don't know why it was being downvoted. Dec 10, 2015 at 2:25
  • 1
    It wouldn't be stackexchange if people didn't nitpick the legitimacy of every word used in every question...and then bash it anyway :p Dec 10, 2015 at 15:31

1 Answer 1

13

Why it changed

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.

http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/

When it changed

Depends on what distribution you're using. It startwed with systemd v197. So any distro that is using that version or higher will most likely use this naming convention.

What the letters and numbers mean

I can't find anything to verify this, but I believe the p stands for physical peripheral, and the s stands for slot. The en stands for ethernet. This is just what I gathered from the link above, but it does not explicitly state this. Nor could I find anytning on Google.

5
  • the p is for peripheral not physical its in wireless too like so : wlp3s0 being WireLess Peripheral 3 Slot 0 May 14, 2015 at 2:44
  • @linuxdev2013, thank you. Do you have any references I could post? May 14, 2015 at 2:45
  • 3
    Lowercase p doesn't stand for physical or peripheral, it indicates the next number is the index of the pci bus the device is connected to.
    – Paul
    May 14, 2015 at 3:01
  • @Paul, wouldn't it stand to reason that if p is for the PCI bus, and PCI stands for Peripheral Component Interconnect, then the p in this case stands for Peripheral? Apr 23, 2018 at 15:03
  • @DrewChapin Hah. Well in the same way that if it was a s390 system the c in encf1f1 would stand for ccw and not 'channel'.
    – Paul
    Apr 23, 2018 at 21:23

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .