nombres de interfaz de red predecibles en systemd

15

La versión reciente de Ubuntu y Debian (stretch) trae un nuevo esquema de nombres de interfaz de red.

Ahora, al actualizar desde un sistema que usa nombres de estilo antiguo como "eth0", me gustaría saber antes de arrancar cuál será el nuevo nombre.

¿Cómo puedo hacer esto? ¿Existe una invocación mágica de "systemd" que puedo usar para editar / etc / network / interface antes del arranque (y luego perder la conectividad de red)?

Ralf Hildebrandt
fuente
1
Me topé con esto, y es la mejor explicación de cómo funciona que he encontrado hasta ahora: lists.debian.org/debian-user/2017/07/msg01453.html
Neil

Respuestas:

7

Hay dos esquemas diferentes disponibles: biosdevname vs nombre de interfaz de red predecible.

biosdevname

Biosdevname parece ser el predeterminado en ubuntu. Se activa instalando el paquete biosdevname.

El biosdevname de una interfaz se puede encontrar con:

biosdevname -i eth0

Nombres de interfaz de red predecibles

Creo que este es el valor predeterminado en la extensión de Debian, pero debe habilitarse explícitamente en la actualización de versiones anteriores.

El nombre predecible para eth0 se puede encontrar con:

udevadm test-builtin net_id /sys/class/net/eth0 | grep '^ID_NET_NAME_'
GnP
fuente
Aunque la respuesta real sobre cómo predecir "antes de arrancar cuál será el nuevo nombre" (según el enlace proporcionado por @Neil) es que el nuevo nombre será el mismo que el anterior , porque todavía hay reglas de udev que configuran los viejos nombres en /etc/udev/rules.d/70-persistent-net.rules. El enlace proporcionará una guía de migración, si desea cambiar al nuevo esquema de nombres.
Tuomas el
2

El nuevo esquema aparentemente se llama "nombres de interfaz de red predecibles", pero no encuentro mucha documentación sobre cómo predecir realmente el nombre. Todo lo que he encontrado al respecto básicamente apunta a este comentario del código fuente (que en sí mismo apunta al primer enlace). Según el comentario, no está nada claro cómo saber qué esquema de direccionamiento utilizará udev para el nombre del dispositivo de red.

Según el primer enlace, puede deshabilitarlo y usar los nombres tradicionales agregando net.ifnames=0en la línea de comando del núcleo en Grub. Según este comentario , podría ser necesario si planea crear una interfaz etiquetada VLAN, ya que la extensión agregada hará que el nombre de la interfaz sea demasiado largo.

De lo contrario, podría ser mejor volver a hacer la pregunta para explicar qué está tratando de hacer con el nombre (por ejemplo, configurar la interfaz a través de ansible o algo similar)

DerfK
fuente
2

No estoy seguro de si este sigue siendo el caso con las versiones actualizadas, pero en mis viejos sistemas pude crear un archivo vacío en /etc/udev/rules.d/80-net-name-slot.rulesy deshabilitaría la función de nombres "predecible". También puede crear su propia regla y nombrar las interfaces usted mismo según la dirección MAC o las conexiones PCI / USB.

usuario143311
fuente
0

Esta documentación puede ayudar un poco. Consulte la sección bajo "¿Qué ha cambiado exactamente en v197?". Sí, me doy cuenta de que esto tiene un valor algo limitado, pero podría darle una vía para futuras investigaciones.

Charles Burge
fuente