Estou renomeando interfaces de rede modificando os arquivos /etc/sysconfig/network-scripts
.
- eth0 -> nic0
- eth1 -> nic1
O conteúdo dos scripts de rede fica assim, após a modificação:
# cat /etc/sysconfig/network-scripts/ifcfg-nic0
DEVICE=nic0
BOOTPROTO=static
ONBOOT=yes
HWADDR=xx:xx:xx:xx:xx:xx
USERCTL=no
IPV6INIT=no
MASTER=bond0
SLAVE=yes
Uma reinicialização ativa a nova configuração. Mas como ativo essa configuração sem reiniciar?
A systemctl restart network
não faz o truque.
Posso desligar uma interface pelo nome antigo ( ifdown eth0
), mas ifup
resulta na mensagem abaixo, independentemente do nome antigo ou novo:
ERRO: [/ etc / sysconfig / network-scripts / ifup-eth] O dispositivo nic0 não parece estar presente, atrasando a inicialização.
/etc/init.d/network status
mostra esta saída:
Configured devices:
lo bond0 nic0 nic1
Currently active devices:
lo eth0 eth1 bond0
Ambos ifconfig
e ip a
mostram os nomes antigos da interface.
centos
configuration
network-interface
udondan
fonte
fonte
Respostas:
Você pode renomear o dispositivo usando o comando ip:
Editar :
Você também pode ter certeza de configurar uma regra do udev, para que isso funcione também na próxima reinicialização. O caminho para o udev foi movido no CentOS 7 para /usr/lib/udev/rules.d/60-net.rules, mas você ainda pode gerenciá-lo da mesma maneira. Se você adicionou "net.ifnames = 0 biosdevname = 0" à sua cadeia de inicialização do kernel para retornar ao antigo esquema de nomenclatura das suas placas de rede , você pode remover
E substitua-o por
Você precisa de uma entrada por nic. Certifique-se de usar o endereço MAC correto e atualize o campo NAME. Se você não usou "net.ifnames = 0 biosdevname = 0", tenha cuidado, pois isso pode causar consequências não intencionais.
fonte
/etc/udev/rules.d/90-eno-fix.rules
porque ele substitui todas as soluções que funcionavam anteriormente para renomear os dispositivos de rede.eno########
valor que substitui todas essas tentativas de renomeá-la para algo comoeth0
. Isso faz sentido? Vou ter que verificar na minha máquina qual versão estou usando, mas atualizei para o último CentOS 7.3 ontem, então acho que terei a versão mencionada.Na verdade, a melhor resposta que acredito é a combinação das duas respostas já postadas. Para alterar o nome do dispositivo sem reiniciar os serviços de rede, use os
ip link
comandos sugeridos por James Shewey (ip link set <old_device_name> name <new_device_name>
).Para fazer as alterações sobreviverem a uma reinicialização no Red Hat Linux, modifique o arquivo relevante em
/etc/sysconfig/network-scripts/
. Renomeie o arquivoifcfg_<old_device_name>
paraifcfg_<new_device_name>
e mudar oDEVICE
interior variável<new_device_name>
. Além disso, verifique se aHWADDR
variável está definida e está correta. Não há necessidade de tocar nas regras do udev , pois60-net.rules
existe para ler os arquivos de configuração do ifcfg/etc/sysconfig/network-scripts
.fonte
Para restaurar a convenção de nomenclatura antiga, você precisa editar o
/etc/default/grub
arquivo e adicionar o seguinteno final da
GRUB_CMDLINE_LINUX
variávelfonte
biosdevname
pacote se ele estiver instaladofonte
A resposta dada por James Shewey parece ser o caminho certo para fazê-lo.
Se você quiser apenas trabalhar com os arquivos de configuração
/etc/sysconfig/network-scripts
e acionar uma recarga, descarregar e carregar o módulo do kernel, conforme mencionado por @Tom Hunt nos comentários, também funciona:Se você acessar a máquina remotamente, certifique-se de executar todos os comandos em um nohup ou se bloqueará:
O driver para recarregar, é claro, depende da sua interface.
fonte
Eu tentei o acima com Vagrant / VirtualBox e ansible, mas de alguma forma isso não funcionou no meu ambiente de desenvolvimento.
Os nomes antigos da interface foram mantidos, independentemente do que eu fiz até uma reinicialização completa.
Adicionei as seguintes regras em
/etc/udev/rules.d/60-persistent-net.rules
(com base em: https://access.redhat.com/solutions/112643 )Meu objetivo era atribuir à interface um nome especificado com base no endereço PCI.
Exemplo:
Depois de adicionar essas regras, executei os seguintes comandos:
A mensagem de erro estava
Cannot find device "int0"
noip link set * up
comando. E/var/log/messages
notei as seguintes mensagensMas o seguinte funcionou acessando a VM através do VirtualBox e execute os seguintes comandos para remover e adicionar novamente o módulo do kernel.
Encontrei isso no seguinte tópico: https://www.centos.org/forums/viewtopic.php?t=54695
O estranho que notei foi que
lsmod
me dá (observe oUsed by
)fonte
ip link set eth0 down; ip link set eth0 name int0; ip link set int0 up
:? Nenhumudev...
comando!