Udev: renomeando minha interface de rede

19

Acabei de instalar o RHEL 6.3 em um servidor Dell 1950. Este servidor como duas portas GBit, Gb0 e Gb1.

Por algum motivo obscuro, udev escolheu nomear Gb0 eth1 e Gb1 eth0 . Isto definitivamente não é um bom achado para mim e apenas dá confusão.

Então modifiquei a configuração em /etc/udev/rules.d/70-persistent-net.rules :

# PCI device 0x14e4:0x164c (bnx2)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", \
  ATTR{address}=="00:20:19:52:d3:c0",           \
  ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

# PCI device 0x14e4:0x164c (bnx2)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", \
  ATTR{address}=="00:20:19:52:d3:be",           \
  ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

Acabei de alterar o campo "NAME" no arquivo para refletir o que eu quero. Eu reiniciei o servidor e não funcionou.

No dmesg log posso ler o seguinte:

udev: renamed network interface eth1 to rename5
udev: renamed network interface eth0 to eth1
udev: renamed network interface rename5 to eth0

Alguma ideia do que está errado aqui? Por que udev está alternando assim? Eu tenho outro servidor semelhante, onde eu não tenho esse problema.

    
por Hugo 17.09.2013 / 18:56

5 respostas

9

No meu caso, o problema está vindo do fato de que o endereço MAC de cada interface foi definido em três arquivos:

/etc/udev/rules.d/70-persistent-net.rules
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth1

Precisamos de consistência entre o arquivo ifcfg e o net.rules para o endereço mac.

    
por 05.01.2015 / 16:51
9

Embora isso seja um pouco tarde, resolvi meu problema removendo o

KERNEL="eth*",

parte da regra no arquivo /etc/udev/rules.d/70-persistent-net.rules . Isso funciona porque, depois que o UDEV tiver renomeado o dispositivo para "renomear *", essa parte interromperá a correspondência de regras. Então, removê-lo permite que o nome correto seja atribuído ao dispositivo correto, independentemente do que o UDEV tenha chamado nesse meio tempo.

    
por 25.09.2014 / 12:06
5

Consegui resolver isso simplesmente excluindo /etc/udev/rules.d/70-persistent-net.rules e reinicializando.

    
por 30.08.2015 / 04:59
1

você tentou criar um /etc/udev/rules.d/80-net-name-slot.rules em branco?

Desde o Udev v197, o udev implementou nomes de interface de rede previsíveis, criando um arquivo em branco nesse caminho e reinicializando, você deve ter seus nomes de interface de volta ao que eles eram.

eu respondi uma pergunta semelhante em: Creating eth0 with consistent network device naming

    
por 25.09.2013 / 22:00
0

Isso também pode acontecer porque eth0, eth1, wlan0, wlan1 etc. são nomes de kernel padrão (no caso de nomeação de esquema não persistente). Na documentação do udev, é dito:

NAME

The name to use for a network interface. See systemd.link(5) for a higher-level mechanism for setting the interface name. The name of a device node cannot be changed by udev, only additional symlinks can be created.

Portanto, nunca use nomes eth *, wlan * etc. para regras do udev.

    
por 03.03.2018 / 14:58

Tags