Como renomear interfaces de rede para eth0 no CentOS
Neste artigo, aprenderemos sobre a nomenclatura da interface Linux. Ele foi escrito para distribuições Linux baseadas em RHEL como AlmaLinux, CentOS e Rocky Linux. Você aprenderá como a interface de rede no Linux chamada eth(X), ens(X), eno(X), etc.
Primeiramente, aprenderemos sobre o conceito de nomenclatura de uma interface de rede no sistema Linux, incluindo o esquema de nomenclatura clássico, biosdevname e política do sistema udev.
1. Convenção de Nomenclatura Tradicional
A Convenção de Nomenclatura Tradicional é o esquema de nomenclatura de interface tradicional padrão fornecido pelo driver do kernel Linux. Como sabemos, a Convenção de Nomenclatura Tradicional é como eth(n) para dispositivo Ethernet, wlan(n) para dispositivo LAN sem fio e usb(n) para usbnet.
Na convenção de nomenclatura tradicional, todo o hardware de rede será tratado da mesma forma pelo driver do kernel. É bom o suficiente para nos contar sobre o tipo de conexão, mas não muito para o hardware natural com o qual você está acostumado.
2. Nome do Biosdev
O Biosdevname é um projeto iniciado pela Dell para fornecer nomenclatura consistente de dispositivos de rede. O Biosdevname é um utilitário auxiliar do udev que fornece um mecanismo de nomenclatura consistente para dispositivos de rede com base na localização física do hardware, conforme sugerido pelo BIOS do sistema.
Abaixo está a política padrão do esquema de nomenclatura fornecido pelo biosdevname:
- Para os dispositivos de rede integrados, será nomeado como "em
[_ "] - Para dispositivos NICs complementares, serão nomeados como "p
p [_ ]"
Mais detalhes:
- em=dispositivos de rede integrados
=o respectivo slot PCI =Número da porta das NICs (se houver NICs multiportas) =o índice da instância SRIOV e/ou NPAR - O 'p' na NIC complementar é o slot PCI e a porta, respectivamente
3. Regras do Systemd Udev
Hoje em dia, algumas distribuições Linux populares, como Ubuntu, CentOS e Debian, estão usando o Systemd como gerenciador de sistemas e serviços. E desde a versão 197, o systemd foi adicionado às políticas e esquemas de nomenclatura nativos para interfaces de rede semelhantes ao Biosdevname.
Abaixo estão 5 políticas de nomenclatura de interface de rede para sistemas baseados em Systemd:
- Para dispositivos de rede integrados, será nomeado como 'eno1', 'eno2', etc.
- Para incorporar Firmware/BIOS, são fornecidos números de índice de slot hotplug PCI Express, denominados 'ens1'. Isso será aplicado se a primeira política falhar. Usado principalmente pela máquina virtual, como VMWare e KVM.
- Nomes que incorporam a localização física do conector do hardware (exemplo: enp2s0) são aplicados se aplicável, caso contrário, retornam diretamente ao esquema 5 em todos os outros casos.
- Nomes que incorporam o endereço MAC da interface (exemplo: enx78e7d1ea46da) não são usados por padrão, mas estão disponíveis se o usuário desejar.
- O esquema tradicional de nomenclatura imprevisível do kernel é usado se todos os outros métodos falharem (exemplo: eth0).
Agora aprendemos sobre a convenção de nomenclatura de interface do Linux.
A seguir, mostraremos como alterar o nome das interfaces de rede para o tradicional 'et0', eth1, etc. E há duas maneiras de fazer isso, alterar os nomes das interfaces de rede através do 'biosdevname' e através do 'systemd udev regras'.
1. Altere o nome da interface para eth0 desativando Biosdevname
Como sabemos acima, o biosdevname é um utilitário udev criado pela Dell para nomear interfaces de rede conforme sugerido pelo BIOS do sistema. E por padrão, o pacote biosdevname é instalado no sistema Linux.
Para desabilitar o biosdevname no sistema Linux, você precisará desabilitá-lo no nível de inicialização editando a configuração do grub em seu sistema.
Antes de prosseguir, vamos verificar as interfaces atuais do sistema usando o seguinte comando.
ifconfig -a
ip addr
E abaixo está o resultado.
Como resultado, temos duas interfaces de rede 'ens3' e 'ens8'.
A seguir, renomearemos ambas as interfaces para 'eth0' e 'eth1' em nosso sistema CentOS 8 editando a configuração do grub e a configuração de rede para cada interface.
- Configurar Grub2
Vá para o diretório '/etc/sysconfig/' e edite a configuração do 'grub' usando o editor vim.
cd /etc/sysconfig/
vim grub
Na configuração 'GRUB_CMDLINE_LINUX', adicione a seguinte configuração para desabilitar o biosdevname e o parâmetro do kernel net.ifnames.
net.ifnames=0 biosdevname=0
Salvar e fechar.
Depois disso, gere uma nova configuração do grub usando o comando ‘grub2-mkconfig’ conforme abaixo.
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
E você obterá o resultado conforme abaixo.
- Editar script de rede
Em seguida, precisamos renomear ambas as interfaces de rede na configuração localizada no diretório '/etc/sysconfig/network-scripts/'.
Vá para '/etc/sysconfig/network-scripts/'.
cd /etc/sysconfig/network-scripts/
Renomeie o nome da interface para 'ifcfg-ethX'.
mv ifcfg-enp0s3 ifcfg-eth0
mv ifcfg-enp0s8 ifcfg-eth1
Depois disso, altere ambas as interfaces para ‘ethX’ em ambos os arquivos usando o comando sed abaixo.
sed -i -e 's/enp0s3/eth0/g' ifcfg-eth0
sed -i -e 's/enp0s8/eth1/g' ifcfg-eth1
Agora reinicie o sistema CentOS 8.
sudo reboot
- Teste
Depois de fazer login novamente, verifique as interfaces de rede disponíveis usando o seguinte comando.
ifconfig
ip addr
E você verá o resultado conforme abaixo.
Ambas as interfaces de rede no sistema CentOS 8 foram alteradas e agora usam a convenção de nomenclatura tradicional. As interfaces de rede foram alteradas desativando o 'biosdevname' durante a inicialização do sistema.
- Opcionalmente
Se quiser verificar detalhes sobre as alterações na inicialização do sistema, você pode executar o seguinte comando.
dmesg | grep -i eth
Você verá que o nome da interface padrão foi alterado para o nome tradicional 'ethX', alterado por meio das regras personalizadas do udev.
2. Altere o nome da interface para eth0 usando as regras do Udev
Outra maneira de alterar o nome da interface de rede para uma nomenclatura tradicional, como eth0 etc., é criando regras personalizadas do udev. E usando as regras personalizadas do udev, as interfaces de rede serão alteradas após o sistema.
- Criar regras personalizadas do Udev
Agora vá para o diretório '/etc/udev/rules.d/' e crie a regra personalizada chamada '70-persistent-net.rules' usando o editor vim.
cd /etc/udev/rules.d/
vim 70-persistent-net.rules
Altere o endereço mac e a interface padrão 'ens3' e 'ens8' pelos seus e cole-os.
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="52:54:00:6c:a8:e6", ATTR{type}=="1", KERNEL=="ens3", NAME="eth0"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="52:54:00:97:cf:33", ATTR{type}=="1", KERNEL=="ens8", NAME="eth1"
Salvar e fechar.
- Editar script de rede
Em seguida, vá para o diretório '/etc/sysconfig/network-scripts'.
cd /etc/sysconfig/network-scripts/
Renomeie o nome da interface para 'ifcfg-ethX'.
mv ifcfg-enp0s3 ifcfg-eth0
mv ifcfg-enp0s8 ifcfg-eth1
Depois disso, altere ambas as interfaces para ‘ethX’ em ambos os arquivos usando o comando sed abaixo.
sed -i -e 's/enp0s3/eth0/g' ifcfg-eth0
sed -i -e 's/enp0s8/eth1/g' ifcfg-eth1
Agora reinicie o servidor CentOS 8.
sudo reboot
- Teste
Depois de fazer login novamente, verifique todas as interfaces de rede disponíveis usando os seguintes comandos.
ifconfig
ip addr
E você obterá a nova interface 'ethX' que foi atribuída.
- Opcionalmente
Se quiser verificar detalhes sobre as alterações na inicialização do sistema, você pode executar o seguinte comando.
dmesg | grep -i eth
Você verá que o nome 'ensX' foi alterado para o nome tradicional 'ethX', alterado por meio das regras personalizadas do udev.
Referência
- https://access.redhat.com/documentation/