
Tengo varios NUC pequeños con algunos de estos adaptadores LAN USB3 conectados en cada uno (debido a que los NUC tienen solo una Ethernet, agregué unos adicionales con adaptadores USB3).
Puedes ver una imagen del producto.aquí.
De repente, probablemente debido a una actualización automática desatendida, estos dispositivos comenzaron a recibir direcciones MAC aleatorias.
Antes:
Cada dispositivo USB3 conectado tenía una dirección con el formato:
00:0E:C6:XX:XX:XX
Cada uno era distinto y siempre igual (estable), sobreviviendo a los reinicios.
Ahora tienen direcciones como:
eth1 - be:7d:ee:6a:26:ab
eth2 - be:7d:ee:6a:26:ab
eth3 - be:7d:ee:6a:26:ab
eth4 - be:7d:ee:6a:26:ab
eth5 - be:7d:ee:6a:26:ab
todos comparten la misma dirección elegida al azar.
En resumen, problemas:
- Cada vez que la máquina se reinicia, esta dirección MAC aleatoria cambia.
- Todos comparten la misma dirección MAC aleatoria. Anteriormente cada uno tenía uno diferente y claramente diferenciado.
Los dispositivos se identifican en lsusb
como:
ASIX Electronics Corp. AX88179 Gigabit Ethernet
No tengo idea de qué pasó desde la última actualización automática, es cuestión de los últimos 2 días, hace 1 hora todo estaba funcionando bien, después de que todos estos dispositivos comenzaron a tener este comportamiento extraño.
¿Podría ser una actualización problemática? ¿Podría ser que se haya lanzado un nuevo controlador que aleatorice la dirección MAC cada vez? ¿Podría ser una característica del kernel de Linux o de la distribución o configuración de GRUB donde los dispositivos USB LAN ahora obtienen una dirección MAC aleatoria cada vez? Pero en este caso ¿por qué todos comparten lo mismo? Deberían ser totalmente aleatorios....
Busco ayuda y estoy dispuesto a hacer pruebas...
Respecto al sistema operativo:
Versión Debian:12.5
Linux 6.1.0-20-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.85-1 (2024-04-11) x86_64 GNU/Linux
Soluciones alternativas sugeridas hasta ahora, incluida la última que siempre funciona gracias a @AB:
- Utilice el atributo principal "serial" en la configuración de UDEV para asignar otro nombre a la interfaz LAN en lugar de depender de la dirección MAC
- Utilice la ruta USB de una dirección USB NIC en las reglas de udev para asignar un nombre de interfaz en lugar de una dirección MAC
- ¿Cómo restablecer el estado de un adaptador de red antes de asignar el nombre en un conjunto de reglas udev?
Respuesta1
Este6.8 confirmación del kernel, respaldado a 6.1.x:
net: usb: ax88179_178a: evite dos reinicios consecutivos del dispositivo
La intención de evitar un doble reinicio en la NIC basada en AX88179 tuvo como efecto secundario obtener una dirección MAC aleatoria para la NIC.
Se está trabajando en una solución para el futuro kernel 6.9.ya respaldado al kernel 6.1.85+que reconoce el problema anterior (y essupuestoarreglarlo). Aquí está la parte de reconocimiento:
net: usb: ax88179_178a: evitar la interfaz siempre configurada como dirección aleatoria
Después de la confirmación d2689b6a86b9 ("net: usb: ax88179_178a: evitar dos reinicios consecutivos del dispositivo"), el reinicio no se ejecuta desde la operación de enlace y la dirección mac no se lee de los registros del dispositivo o del árbol de dispositivos en ese momento. Dado que la verificación para configurar si la dirección mac asignada es aleatoria o no para la interfaz, ocurre después de la operación de enlace desde usbnet_probe, la interfaz se mantiene configurada como dirección aleatoria, aunque la dirección se lee y configura correctamente durante la operación de apertura (el único restablecimiento ahora ).
El problema es que el kernel 6.1.0-20-amd64 de Debian ya usa el kernel 6.1.85 que incluye la solución. Según el comentario de OP, esto no parece funcionar correctamente, ya que OPesusando el núcleo 6.1.0-20-amd64.
Lo que se garantiza que funcionará es volver al estado anterior: antes de que el parche se trasladara a 6.1.x el 2024-02-05. Parece que actualmente eso significa revertir DOS parches:
- net: usb: ax88179_178a: evitar la interfaz siempre configurada como dirección aleatoria
- net: usb: ax88179_178a: evite dos reinicios consecutivos del dispositivo
tener la garantía de que funcionará como antes (y recuperar el comportamiento de doble reinicio, que no parecía ser un problema en ese momento).
Pude comprobar en las últimas semanas que revertirnet: usb: ax88179_178a: evite dos reinicios consecutivos del dispositivolo hice funcionar, no verifiqué cómo se comporta el estado más nuevo (por ejemplo: kernel 6.1.85 o Debian 6.1.0-20-amd64). Las preguntas y respuestas del OP sugieren que tal vez el segundo parche destinado a corregir el comportamiento causado después del primer parche no sea suficiente y posiblemente se deba proporcionar otra solución.
En resumen, posibles opciones hoy:
- mantenga un kernel más antiguo, como el 6.1.0-18-amd64 de Debian disponible enhttps://snapshot.debian.org/ allá:
linux-image-6.1.0-18-amd64
- parchear un kernel entre 6.1.77 y 6.1.84 revirtiendo el primer parche mencionado en esta respuesta y recompilando (funcionamiento probado)
- compruebe si un kernel 6.1.85 o posterior funciona tal como está.
o funciona (no hay nada más que hacer)
o no (caso de OP)
revierta al menos el primer parche y vuelva a compilar:
net: usb: ax88179_178a: evitar la interfaz siempre configurada como dirección aleatoria(opcional, se puede conservar en lugar de revertirlo)
net: usb: ax88179_178a: evite dos reinicios consecutivos del dispositivo: (es necesario revertir este)
o espere un parche futuro que arregle esto:
ACTUALIZAR: este compromiso del 18/04/2024:
net: usb: ax88179_178a: evite escribir la dirección mac antes de la primera lectura
lo soluciona (lo probé en un kernel 6.8.x). Probablemente debería incluirse en el próximo kernel 6.1.x ascendente 6.1.88, y Debian lo elegirá tarde o temprano. Bonificación adicional: el reinicio parece realizarse nuevamente en el momento de la sonda y no más en la interfaz ARRIBA. Por lo tanto, el retraso en las transiciones entre bajada y subida ahora es más rápido.