Por que minha interface Ethernet é chamada enp0s10 em vez de eth0?

65

Quando corro ifconfig -a, só recebo interfaces lo e enp0s10 , não o eth0 clássico

O que significa enp0s10 ? Por que não existe eth0 ?

Nico Rodsevich
fonte
5
ifconfigestá obsoleto. Pense em mudar para ipem iproute2breve.
Solstício de
11
Como a resposta diz, é uma mudança no systemd. Para recuperar o eth0atraso, use a opção do kernel net.ifnames=0 biosdevname=0(veja este tópico ). Usar a ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.ruleresposta abaixo não funcionou no Debian 10 (Buster)
MrCalvin

Respostas:

56

Essa é uma mudança na forma como o udevd atribui nomes aos dispositivos ethernet. Agora, seus dispositivos usam os "Nomes de interface previsíveis", baseados em ( e citando as fontes ):

  1. Os nomes que incorporam Firmware / BIOS forneceram números de índice para dispositivos de bordo (exemplo: eno1)
  2. Os nomes que incorporam Firmware / BIOS forneceram números de índice do slot de hotplug do PCI Express (exemplo: ens1)
  3. Nomes que incorporam a localização física / geográfica do conector do hardware (exemplo: enp2s0)
  4. Nomes que incorporam o endereço MAC da interface (exemplo: enx78e7d1ea46da)
  5. Nomeação ethX clássica e imprevisível, nativa do kernel (exemplo: eth0)

O porquê disso mudou está documentado na página systemd freedesktop.org , junto com o método para desativar isso:

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

ou se você usa versões mais antigas:

ln -s /dev/null /etc/udev/rules.d/80-net-name-slot.rules
Braiam
fonte
7
Após o link freedesktop, org, o ponto principal é: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 17/10
87

Resposta em "O que significa enp0s10?" Pergunta, questão:

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

Fonte: udev-builtin-net_id.c no GitHub

DIG mbl
fonte
6
Veio procurando por isso.
ffledgling
5
Como não há ...fNparte no final do nome da NIC, podemos deduzir que o número da função é 0. Depois de converter os números em hexadecimal (10 = "a" em hexadecimal), sabemos que isso enp0s10significa o ID do dispositivo PCI 00:0a.0.
telcoM 13/04