Udev: renomeando minha interface de rede

20

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

Por algum motivo obscuro, udevescolha nomear Gb0 eth1 e Gb1 eth0 . Definitivamente, este não é um bom achado para mim e apenas dá confusão.

Então eu 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. Reiniciei o servidor e não funcionou.

No dmesglog, 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 idéia do que está errado aqui? Por que udevmudar assim? Eu tenho outro servidor semelhante, onde não tenho esse problema.

Hugo
fonte
então qual é a tarefa agora? ainda Gb0 == eth1 & Gb1 == eth0?
trema
uma vez verifique grep -R 'rename5' /etc/udev/rules.d/porque nos logs, por que está sendo exibido, rename5existe outra regra para o mesmo?
Rahul Patil
Eu fiz algo semelhante para interfaces de rede e ele é exibido exatamente como no log (se você seguir a lógica, atribui um nome falso ao eth1 original para que ele possa renomear eth0 original para eth1). Então, de acordo com o log, tudo deve ficar bem. Você tem certeza que os nomes ainda não estão bem?
Zagrimsan
A atribuição ainda está errada: Gb0 == eth1 & Gb1 == eth0. É como as alterações que eu fiz no arquivo não são aplicadas. Não tenho nenhum rastro de renomear5 em /etc/udev/rules.d/. O que eu entendo é quando a inicialização do kernel eth0 e eth1 é inicializada, mas o udev os alterna. eth0 => eth1 e eth1 => eth0
Hugo Hugo
Você encontrou uma solução? Também estou lutando com esse problema. Na inicialização normal, acabo com p1p1 e p1p2. Mas desde que eu conectei um cabo de rede na p1p2, em alguma inicialização (nem todas, o que é estranho), acabei com a p1p1 e renomeei3!?!? O Udev está renomeando eth1 para renomear3 em vez de p1p2 por qualquer motivo. Isto, obviamente, quebrar a rede i / f configuração e firewall X- (Não que eu estou no Ubuntu
Huygens

Respostas:

9

Embora seja um pouco tarde, resolvi meu problema removendo o

KERNEL="eth*",

parte da regra no /etc/udev/rules.d/70-persistent-net.rulesarquivo. Isso funciona porque, uma vez que o UDEV renomeou o dispositivo para "renomear *", essa parte interrompe a correspondência de regras. Portanto, removê-lo permite que o nome correto seja atribuído ao dispositivo correto, independentemente do que o UDEV o chamou nesse meio tempo.

Ancaglon
fonte
Isso resolveu para mim também no ubuntu 14.04. Exatamente o mesmo comportamento do OP (exceto que a renomeação foi para pXpY).
Ndemou 5/06
9

No meu caso, o problema está relacionado ao fato de o endereço mac para cada interface ter sido 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.

Hugo
fonte
1
/etc/sysconfigestá no redhat / centos linux. No Ubuntu esses arquivos estaria sob/etc/network/if-up.d
nmgeek
6

Consegui resolver isso simplesmente excluindo /etc/udev/rules.d/70-persistent-net.rulese reiniciando.

Clayton Dukes
fonte
1

você já tentou criar um espaço em branco /etc/udev/rules.d/80-net-name-slot.rules?

desde o Udev v197, o udev implementou nomes previsíveis de interface de rede. Ao criar um arquivo em branco nesse caminho e depois reiniciar, você deve ter os nomes de suas interfaces de volta ao que eram.

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

cesar
fonte
1
Isso corrigiu dois dos meus três dispositivos de rede. Em vez de um arquivo em branco, criei um link para / dev / null. Espero que qualquer uma dessas abordagens funcione.
MrMas 2/11/16
Parece que este era mudanças em torno v210 esse arquivo foi removido do systemd se eu estou lendo isso corretamente: github.com/systemd/systemd/commit/...
nhed
0

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

NOME

O nome a ser usado para uma interface de rede. Consulte systemd.link (5) para obter um mecanismo de nível superior para definir o nome da interface. O nome de um nó do dispositivo não pode ser alterado pelo udev, apenas links simbólicos adicionais podem ser criados.

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

cy8g3n
fonte