Dlaczego mój interfejs Ethernet nazywa się enp0s10 zamiast eth0?

65

Kiedy uruchamiam ifconfig -a, dostaję tylko interfejsy lo i enp0s10 , a nie klasyczny eth0

Co oznacza enp0s10 ? Dlaczego nie ma eth0 ?

Nico Rodsevich
źródło
5
ifconfigjest przestarzałe. Myśleć o przeprowadzce do ipod iproute2zaraz.
solsTiCe
1
Jak mówi odpowiedź, jest to zmiana w systemd. Aby odzyskać eth0siły, użyj opcji jądra net.ifnames=0 biosdevname=0(zobacz ten wątek ). Użycie ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.ruleponiższej odpowiedzi nie zadziałało w Debianie 10 (Buster)
MrCalvin

Odpowiedzi:

56

To zmiana w sposobie, w jaki teraz udevd przypisuje nazwy do urządzeń Ethernet. Teraz twoje urządzenia używają „przewidywalnych nazw interfejsów”, które są oparte na ( i cytują źródła ):

  1. Nazwy zawierające numery indeksowe dostarczone przez Firmware / BIOS dla urządzeń pokładowych (przykład: eno1)
  2. Nazwy zawierające numery indeksów gniazd hotplug PCI Express dostarczone przez Firmware / BIOS (przykład: ens1)
  3. Nazwy zawierające fizyczne / geograficzne położenie złącza sprzętu (przykład: enp2s0)
  4. Nazwy zawierające adres MAC interfejsów (przykład: enx78e7d1ea46da)
  5. Klasyczne, nieprzewidywalne nazewnictwo ethX dla jądra (przykład: eth0)

Dlaczego ta zmiana została udokumentowana na stronie systemd freedesktop.org , wraz z metodą jej wyłączenia:

ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules

lub jeśli korzystasz ze starszych wersji:

ln -s /dev/null /etc/udev/rules.d/80-net-name-slot.rules
Braiam
źródło
7
Po freedesktop, org link, głównym punktem jest:The classic naming scheme for network interfaces applied by the kernel is to simply assign names beginning with "eth" 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 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...
lepe
86

Odpowiedz na „Co oznacza enp0s10?” pytanie:

enp0s10:
| | |
v | |
en| |   --> ethernet
  v |
  p0|   --> bus number (0)
    v
    s10 --> slot number (10)

Źródło: udev-builtin-net_id.c na GitHub

DIG mbl
źródło
6
Przyszedłem tego szukać.
sfledgling
5
Ponieważ ...fNna końcu nazwy karty sieciowej nie ma części, możemy wywnioskować, że liczba funkcji wynosi 0. Po przetłumaczeniu liczb na wartości szesnastkowe (10 = „a” w postaci szesnastkowej), wiemy, że enp0s10oznacza to identyfikator urządzenia PCI 00:0a.0.
telcoM