Udev: renombrar mi interfaz de red

20

Acabo de instalar RHEL 6.3 en un servidor Dell 1950. Este servidor tiene dos puertos GBit, Gb0 y Gb1.

Por alguna oscura razón, udeveligió nombrar Gb0 eth1 y Gb1 eth0 . Esto definitivamente no es un buen hallazgo para mí y solo da confusión.

Entonces modifiqué la configuración en /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"

Acabo de cambiar el campo "NOMBRE" en el archivo para reflejar lo que quiero. Reinicié el servidor y no funcionó.

En el dmesgregistro puedo leer lo siguiente:

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

¿Alguna idea de lo que está mal aquí? ¿Por qué está udevcambiando así? Tengo otro servidor similar, donde no tengo este problema.

Hugo
fuente
Entonces, ¿cuál es la tarea ahora? ¿Todavía Gb0 == eth1 & Gb1 == eth0?
umläute
una vez comprobar grep -R 'rename5' /etc/udev/rules.d/porque en los registros, ¿por qué se muestra rename5alguna otra regla para lo mismo?
Rahul Patil
He hecho algo similar para las interfaces de red y se muestra así en el registro (si sigues la lógica en él, solo asigna un nombre falso al eth1 original para que pueda cambiar el nombre del eth0 original a eth1). Entonces, de acuerdo con el registro, todo debería estar bien. ¿Estás seguro de que los nombres aún no están bien?
zagrimsan
La asignación sigue siendo incorrecta: Gb0 == eth1 & Gb1 == eth0. Es como si los cambios que hice en el archivo no se aplican. No tengo ningún rastro de rename5 en /etc/udev/rules.d/. Lo que entiendo es cuando kernel boot eth0 y eth1 son boot pero udev los cambia. eth0 => eth1 y eth1 => eth0
Hugo
¿Has encontrado una solución? Estoy luchando con este problema también. En el arranque normal, termino con p1p1 y p1p2. Pero como conecté un cable de red en p1p2, en algunos arranques (no todos, lo cual es extraño), termino con p1p1 y renombre3!?!? Udev cambia el nombre de eth1 a rename3 en lugar de p1p2 por cualquier razón. Esto, por supuesto, rompe la configuración de red i / f y el firewall X- (No es que esté en Ubuntu
Huygens

Respuestas:

9

Si bien esto es bastante tarde, solucioné mi problema eliminando el

KERNEL="eth*",

parte de la regla en el /etc/udev/rules.d/70-persistent-net.rulesarchivo. Esto funciona porque, una vez que UDEV ha cambiado el nombre del dispositivo a "renombrar *", esta parte detendrá la coincidencia de reglas. Por lo tanto, eliminarlo permite asignar el nombre correcto al dispositivo correcto, independientemente de cómo lo haya llamado UDEV mientras tanto.

Ancaglon
fuente
Esto lo resolvió para mí también en ubuntu 14.04. Exactamente el mismo comportamiento que el OP (excepto que el cambio de nombre era pXpY).
ndemou
9

En mi caso, el problema proviene del hecho de que la dirección mac para cada interfaz se configuró en tres archivos:

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

Necesitamos coherencia entre el archivo ifcfg y net.rules para la dirección mac.

Hugo
fuente
1
/etc/sysconfigestá en redhat / centos linux. En Ubuntu esos archivos estarían bajo/etc/network/if-up.d
nmgeek
6

Pude resolver esto simplemente borrando /etc/udev/rules.d/70-persistent-net.rulesy reiniciando.

Clayton Dukes
fuente
1

¿Has intentado crear un espacio en blanco /etc/udev/rules.d/80-net-name-slot.rules?

desde Udev v197, udev ha implementado nombres de interfaz de red predecibles, al crear un archivo en blanco en esa ruta y luego reiniciar, debe tener sus nombres de interfaz de nuevo a lo que eran.

respondí una pregunta similar en: Creating eth0 with consistent network device naming

cesar
fuente
1
Esto reparó dos de mis tres dispositivos de red. En lugar de un archivo en blanco, creé un enlace a / dev / null. Espero que cualquier enfoque funcione.
MrMas
Parece que esto fue cambios alrededor de v210 que el archivo se ha eliminado de systemd si estoy leyendo esto correctamente: github.com/systemd/systemd/commit/…
nhed
0

También puede ocurrir porque eth0, eth1, wlan0, wlan1, etc. son nombres de kernel estándar (en el caso de nombres de esquemas no persistentes). En la documentación de udev se dice:

NOMBRE

El nombre a usar para una interfaz de red. Consulte systemd.link (5) para obtener un mecanismo de nivel superior para configurar el nombre de la interfaz. Udev no puede cambiar el nombre de un nodo de dispositivo , solo se pueden crear enlaces simbólicos adicionales.

Por lo tanto, nunca use los nombres eth *, wlan * etc. para las reglas de udev.

cy8g3n
fuente