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.


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.


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.


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.


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


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.