Cómo cambiarle el número a una ethX (ej: eth1 cambiarle a eth0)

Imagen de Epe

En CentOS-6 sucede algo curioso, cuando agregas una nueva tarjeta de red, ya sea porque reemplazas una dañada o porque le agregas una, se incrementa el número de la ethX

por ejemplo si tienes eth0 en tu sistema y agregas otra tarjeta, esta se llamará eth1

Qué gran negocio! Exclamarás. Es lógico que suceda!

Ahora, hay al menos dos eventos con los que me he topado que no te conviene esto (quizá más):
1- se te daña la eth0, pones una nueva, y el sistema le llamará eth1
2- Quieres invertir el orden.

Este segundo evento es el que me ocurrió hoy, tengo una máquina cuya tarjeta onboard no puedo desactivar, y tiene la pésima costumbre de colgar el sistema completamente si pasa mucho tráfico, así que me consegui una tarjeta USB ethernet, pero cuando la inserto se llama eth1 y yo necesito que se llame eth0

por qué? porque estoy virtualizando, y cuando configuro un host tengo que decirle por qué tarjeta sale, y si lo migro hacia otro equipo que tiene activa eth0, entonces no me funciona.. necesito que la tarjeta que está en eth1 se llame eth0, y en mi caso necesito que la tarjeta que está en eth0 se llame eth1 (y la dejo deshabilitada).

Realizo las siguientes operaciones:

#renombrando los scripts de inicio
cd /etc/sysconfig/network-scripts
mv ifcfg-eth0 t
mv ifcfg-eth1 ifcfg-eth0
mv t ifcfg-eth1

Luego de cambiarle de nombre a los scripts, les cambio el DEVICE para que digan lo contrario:

sed -i s/eth1/eth0/g ifcfg-eth0
sed -i s/eth0/eth1/g ifcfg-eth1

ahora viene lo interesante, quién es el que define el nombre o la posición que llevan las tarjetas? Ah bueno. es este archivito:
/etc/udev/rules.d/70-persistent-net.rules

edítalo, mira, así lo tenía originalmente yo:

# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.

# PCI device 0x14e4:0x1684 (tg3)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:23:8b:9b:29:f3", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# PCI device 0x168c:0x002a (ath9k)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:17:c4:74:c4:9d", ATTR{type}=="1", KERNEL=="wlan*", NAME="wlan0"

# USB device 0x0b95:0x772a (usb)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:80:8e:8e:43:92", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

Mira, esa tarjeta que se llama eth1, está funcionando, pero yo no quiero que se llame eth1... y la que se llama eth0 está jodida, y necesito no usarla, aparte de tenerla deshabilitada en los scripts de inicio, lo que hice fue modificar el archivo y cambiarles los nombres, así quedó este archivo:


# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.

# USB device 0x0b95:0x772a (usb)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:80:8e:8e:43:92", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# PCI device 0x14e4:0x1684 (tg3)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:23:8b:9b:29:f3", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

# PCI device 0x168c:0x002a (ath9k)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:17:c4:74:c4:9d", ATTR{type}=="1", KERNEL=="wlan*", NAME="wlan0"

compara las MAC, antes la que acababa en 43:92 era la eth1, ahora es la eth0. Y al revés, la que tiene de MAC 29:f3 al final, antes era eth0 y ahora le puse eth1.

Luego de esto, reinicio el equipo, y me funcionó todo, ya mi eth0 es la tarjeta USB que es lo que requería y la tarjeta tg3 que no la necesito le puse ONBOOT=no en el script de inicio, sólo está para que el sistema no la vaya a agregar a futuro, pero ya no está habilitada

El otro escenario:
En caso de que la antigua eth0 no funcione más, no exista, haya sido removida, es más fácil, simplemente en este mismo archivo le renombro de eth1 a eth0 .. y elimino la línea referida a la mac de la que no existe ya (que debe estar antes pues el sistema las va agregando al final de este archivo). Y por supuesto no olvides renombrar eth1 a eth0 o cambiar la MAC de la ifcfg-eth0.

Comentarios

nice!! pero q pasa en centos

Imagen de falcom

nice!! pero q pasa en centos 5x, unicamente renombrar el archivo de config ( /etc/sysconfig/network-scripts/ifcfg-eth1 ) por ifcfg-eth0 y dentro cambiar tambien el DEVICE ??
creo q era suficiente!

esa sí te la dejo de

Imagen de Epe

esa sí te la dejo de tarea.... sabes que nunca le tuve que hacer en centos-5, y cuando se sustituye una tarjeta, sí le toma en su lugar con el nomber adecuado.. creo

Saludos
epe

EcuaLinux.com

+(593) 9 9924 6504

Servicios en Software Libre

ya me toco a mi en un sever y

Imagen de falcom

ya me toco a mi en un sever y sip como en centos 6x, le cambia el orden x el siguiente, entonces
unicamente toca renombrar el archivo de config ( /etc/sysconfig/network-scripts/ifcfg-eth1 ) por ifcfg-eth0 y dentro cambiar tambien el DEVICE=eth0 y agregar las ips y demas cosas
Es todo

Excelente :-)

Imagen de iknaxio

Excelente, el otro dia me tope con esto en CentOS 6, y me hizo romper el mate un buen rato, hasta que desisti, pero ya con esto voy de nuevo a la carga jejeje

"Transporta un puñado de tierra todos los días y construirás una montaña" - Confucio
floss.iknaxio.net