Udev: rinominare la mia interfaccia di rete


20

Ho appena installato RHEL 6.3 su un server Dell 1950. Questo server ha due porte GBit, Gb0 e Gb1.

Per qualche oscura ragione, houdev scelto di nominare Gb0 eth1 e Gb1 eth0 . Questa non è sicuramente una buona scoperta per me e dà solo confusione.

Quindi ho modificato la configurazione in /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"

Ho appena cambiato il campo "NAME" sul file per riflettere ciò che voglio. Ho riavviato il server e non ha funzionato.

Nel dmesgregistro posso leggere quanto segue:

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

Qualche idea su cosa non va qui? Perché il udevpassaggio è così? Ho un altro server simile, dove non ho questo problema.


quindi qual è il compito ora? ancora Gb0 == eth1 e Gb1 == eth0?
umläute,

una volta verifica grep -R 'rename5' /etc/udev/rules.d/perché nei registri perché viene visualizzata rename5un'altra regola per la stessa?
Rahul Patil,

Ho fatto qualcosa di simile per le interfacce di rete e nel registro appare esattamente come quello (se segui la logica in esso, assegna semplicemente un nome falso a eth1 originale in modo che possa rinominare eth0 originale in eth1). Quindi, secondo il registro, tutto dovrebbe andare bene. Sei sicuro che i nomi non siano ancora ok?
Zagrimsan,

L'assegnazione è ancora errata: Gb0 == eth1 e Gb1 == eth0. È come se le modifiche apportate al file non fossero applicate. Non ho alcuna traccia di rename5 in /etc/udev/rules.d/. Quello che capisco è quando boot kernel eth0 ed eth1 sono boot ma udev li cambia. eth0 => eth1 ed eth1 => eth0
Hugo

Hai trovato una soluzione? Sto lottando anche con questo problema. All'avvio normale, finisco con p1p1 e p1p2. Ma dal momento che ho collegato un cavo di rete su p1p2, su alcuni boot (non tutti, il che è strano), finisco con p1p1 e rename3!?!? Udev sta rinominando eth1 in rename3 invece di p1p2 per qualunque motivo. Questo ovviamente rompe la configurazione di I / F della rete e il firewall X- (Non che io sia su Ubuntu
Huygens,

Risposte:


9

Mentre questo è piuttosto tardi, ho risolto il mio problema rimuovendo il

KERNEL="eth*",

parte della regola nel /etc/udev/rules.d/70-persistent-net.rulesfile. Questo funziona perché, una volta che UDEV ha rinominato il dispositivo in "rinomina *", questa parte interromperà la corrispondenza delle regole. Quindi, rimuoverlo consente di assegnare il nome corretto al dispositivo corretto indipendentemente da come UDEV lo ha chiamato nel frattempo.


Questo ha risolto il problema anche per me su Ubuntu 14.04. Esattamente lo stesso comportamento dell'OP (tranne per il fatto che la ridenominazione era in pXpY).
ndemou,

9

Nel mio caso, il problema deriva dal fatto che l'indirizzo mac per ciascuna interfaccia era impostato in tre file:

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

Abbiamo bisogno di coerenza tra il file ifcfg e net.rules per l'indirizzo mac.


1
/etc/sysconfigè su redhat / centos linux. Su Ubuntu quei file sarebbero sotto/etc/network/if-up.d
nmgeek l'

6

Sono stato in grado di risolverlo semplicemente eliminando /etc/udev/rules.d/70-persistent-net.rulese riavviando.


1

hai provato a creare uno spazio /etc/udev/rules.d/80-net-name-slot.rules?

da Udev v197, udev ha implementato nomi di interfaccia di rete prevedibili, creando un file vuoto in quel percorso e quindi riavviando, dovresti riportare i nomi delle tue interfacce a quelli che erano.

ho risposto a una domanda simile a: Creating eth0 with consistent network device naming


1
Ciò ha risolto due dei miei tre dispositivi di rete. Invece di un file vuoto, ho creato un collegamento a / dev / null. Mi aspetto che entrambi gli approcci funzionino.
MrMas

Sembra che questo sia stato un cambiamento nella v210 che il file è stato rimosso da systemd se lo sto leggendo correttamente: github.com/systemd/systemd/commit/…
nhed

0

Potrebbe anche accadere perché eth0, eth1, wlan0, wlan1 ecc. Sono nomi di kernel standard (in caso di denominazione di schema non persistente). Nella documentazione di udev si dice:

NOME

Il nome da utilizzare per un'interfaccia di rete. Vedere systemd.link (5) per un meccanismo di livello superiore per l'impostazione del nome dell'interfaccia. Il nome di un nodo del dispositivo non può essere modificato da udev, è possibile creare solo collegamenti simbolici aggiuntivi.

Quindi non usare mai nomi eth *, wlan * ecc. Per le regole udev.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.