A mudança do nome de interfaces de rede de ethX
para enpSx
(e outras variações como enoX
, ensX
, etc.) no Linux foi impulsionada pela necessidade de ter nomes de interface de rede previsíveis e persistentes entre reinicializações do sistema e mudanças de hardware.
O problema com o nome ethX
Anteriormente, o kernel atribuía nomes como eth0
, eth1
, etc., à medida que os drivers detectavam as interfaces. O problema era que a ordem de detecção dos drivers não era sempre previsível. Se você tivesse múltiplas placas de rede, especialmente em servidores ou sistemas com hardware hot-pluggable, a eth0
de uma inicialização poderia se tornar eth1
na próxima.
Isso causava sérios problemas para:
-
Regras de firewall: Regras configuradas para
eth0
poderiam de repente se aplicar a uma interface diferente, abrindo buracos de segurança ou bloqueando tráfego inesperadamente. -
Configurações de rede: Scripts ou arquivos de configuração que dependiam de nomes fixos para interfaces específicas falhariam.
-
Confiabilidade do sistema: A instabilidade na identificação das interfaces dificultava a automação e a manutenção de redes complexas.
A solução: Nomes de Interface de Rede Previsíveis (Predictable Network Interface Names)
Para resolver essa imprevisibilidade, o systemd (com a ajuda do udev) introduziu o conceito de "Nomes de Interface de Rede Previsíveis" (Predictable Network Interface Names). Essa nova convenção de nomenclatura, que começou a ser implementada em distribuições Linux a partir do systemd v197 (por volta de 2013-2014), baseia os nomes em informações persistentes do hardware, como o caminho do dispositivo PCI Express.
Como os novos nomes são formados:
Os nomes são mais longos e podem parecer mais complexos, mas fornecem informações sobre a localização física da interface no sistema. As partes comuns dos novos nomes incluem:
-
en
: Indica uma interface Ethernet. (Para interfaces wireless, você veráwl
, e para dispositivos USB,usb
). -
o
: Usado para interfaces de rede onboard (integradas à placa-mãe), seguido por um número de índice fornecido pelo firmware/BIOS (ex:eno1
). -
s
: Usado para interfaces em slots PCI Express, indicando o número do slot (ex:ens1
). -
p
: Indica o barramento PCI (Peripheral Component Interconnect), seguido por números que representam o domínio, barramento, slot e função do dispositivo (ex:enp0s31f6
significa Ethernet no barramento PCI 0, slot 31, função 6).
Vantagens do novo esquema:
-
Consistência: Os nomes das interfaces permanecem os mesmos em várias reinicializações, mesmo que a ordem de detecção dos dispositivos mude.
-
Segurança aprimorada: As regras de firewall e outras configurações de rede permanecem aplicadas às interfaces corretas.
-
Facilidade de gerenciamento: Em sistemas com múltiplas interfaces de rede, é mais fácil identificar fisicamente qual interface corresponde a qual nome lógico.
Apesar da mudança inicial ter causado alguma confusão para usuários acostumados com o esquema ethX
, a adoção dos nomes previsíveis trouxe uma estabilidade e robustez significativas para a configuração de rede no Linux, especialmente em ambientes de servidor e sistemas com hardware mais complexo.
Se você ainda prefere o esquema ethX
por algum motivo (embora não seja recomendado para a maioria dos casos), é possível desativar a nomenclatura previsível adicionando net.ifnames=0
à linha de comando do kernel no GRUB.