Renomeando interfaces de rede no Linux para eth0

Resumo

# Edite o arquivo de configuração do GRUB
vim /etc/default/grub

# Adicione a seguinte linha para desativar os novos nomes de interface
GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"

# Atualize a configuração do GRUB
grub-mkconfig -o /boot/grub/grub.cfg

# Reinicie o sistema
reboot

Agora, para quem gosta de um pouco de contexto (ou para quem se irrita tanto quanto eu com essa mudança)

Sou um sysadmin com uma certa idade, então não consigo deixar de torcer o nariz sempre que instalo alguma distribuição, seja Debian, Ubuntu, etc, e quando vou configurar as interfaces, lá estão as benditas.

root@debian:~# ip link show
1: lo: mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:44:d8:98 brd ff:ff:ff:ff:ff:ff
altname enp2s1

ENS33 ainda passa, mas o problema é quando encontramos nomes como enS4p0 e variações ainda mais estranhas.
Estes nomes são associados diretamente pelo Kernel, e podemos ver com:

root@debian:~# dmesg | grep -i eth
[ 1.391684] e1000 0000:02:01.0 eth0: (PCI:66MHz:32-bit) 00:0c:29:44:d8:98
[ 1.391690] e1000 0000:02:01.0 eth0: Intel(R) PRO/1000 Network Connection
[ 1.411684] e1000 0000:02:01.0 ens33: renamed from eth0

A explicação para essa mudança na nomenclatura das interfaces faz sentido quando consideramos que computador, ou máquina virtual, pode ter várias interfaces de rede, conectadas a diferentes barramentos PCI e mesmo conectadas ao USB. Então teríamos um problema de previsibilidade, ou basicamente saber qual interface é qual. O Kernel lida com essa questão adotando o conceito de ‘predictable network interface names’ (nomes de interface de rede previsíveis). Na prática, a maioria dos sistemas Linux não tem tantas interfaces de rede assim, tornando essa funcionalidade mais um incômodo do que uma vantagem – pelo menos na minha visão. Viva eth0!

Finalizando

Existe uma discussão sem fim quanto a utilidade deste novo padrão de nomes de interfaces, mas eu prefiro o antigo ethX, e a maioria que conheço também prefere. Pelo pouco que sei, esse novo padrão de nomenclatura é bem utilizado em instalações automatizadas via script ou orquestradas, e o pessoal de container curte bastante.
Como este é o primeiro post deste blog, achei justo começar com um dos primeiros ajustes que sempre faço ao instalar um sistema: renomear as interfaces de rede para o bom e velho eth0.

E você, também prefere o clássico ethX ou acha que os novos nomes fazem sentido? Deixe seu comentário!

Referências:

Compartilhe!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Rolar para cima