¿Cómo puedo crear un alias para un dispositivo de red?


13

Estoy tratando de ejecutar un software en particular que utiliza un administrador de licencias que no se ha dado cuenta de que las distribuciones de Linux más nuevas ya no nombran sus dispositivos de red eth0. Está tratando de verificar la dirección MAC, pero como mi NIC se llama ens1en Centos 7, esto no funciona.

El proveedor de este software ya lo arregló en una computadora diferente, y me gustaría entender cómo lo hicieron. Crearon algún tipo de alias para ens1que el administrador de licencias pueda encontrar eth0nuevamente.

El alias no se muestra en absoluto si lo hago ifconfig -a, pero es visible cuando se llama explícitamente ifconfig eth0. Usando el ip linkcomando es visible de la siguiente manera:

eth0@ens1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT
link/ether [mac address] brd ff:ff:ff:ff:ff:ff

¿Qué hicieron exactamente aquí y cómo puedo recrear este tipo de alias en otra computadora?


2
¿Tal vez lo usaron ip link set ens1 name eth0@ens1? Dudo que sobreviva un reinicio como ese, pero ¿tal vez puedas hacer el cambio en la DEVICElínea ifcfg-ens1o algo así? ¿Puedes ver ambos eth0@ens1y ens1en tu ip linklista, o solo el nuevo nombre?
Eric Renouf

1
Acabo de probar esto en una máquina virtual, también ip link set ens1 name eth0@ens1muestra el nuevo nombre ifconfig -a. y se ip link set ens1 alias eth0muestra alias eth0en una línea separada cuando corres ip link.
cas

Respuestas:


5

Esto probablemente se haga usando la macvlanfunción. Permite agregar interfaces virtuales de Ethernet sobre una interfaz de hardware existente. En su caso, podría haberse hecho así:

ip link add link ens1 name eth0 type macvlan

Por defecto, la nueva interfaz obtiene una dirección MAC de unidifusión administrada localmente elegida al azar. Alternativamente, puede especificar la dirección MAC con address <MAC>.


1

Puede usar una regla udev para cambiar el nombre de la NIC al eth0estilo anterior.

por ejemplo, editar /etc/udev/rules.d/70-persistent-net.rulespara tener una línea como esta:

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="xx:xx:xx:xx:xx:xx", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

¿Dónde xx:xx:xx:xx:xx:xxestá la dirección MAC de su NIC?

También deberá actualizar cualquier configuración de red para que use el eth0nombre en lugar deens1

Consulte Nombres de interfaz de red predecibles para obtener más información sobre por qué se produjo este cambio.


2
Me gustaría evitar renombrar por completo las interfaces, y también tengo curiosidad por saber cómo funciona el alias que implementaron.
Mad Scientist

1
Nunca he visto esa eth0@ens1forma antes, y buscar en Google solo muestra tu pregunta. ¿Lo has intentado grep -r eth0 /etc? si lo encuentra, publíquelo porque tengo curiosidad también.
cas
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.