Linux e a Mudança dos Nomes de Rede: De ethX a enpSx

Linux e a Mudança dos Nomes de Rede: De ethX a enpSx

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.

Posted on