我有各种小型 NUC,每台都附有一些 USB3 LAN 适配器(因为 NUC 只有一个以太网,所以我添加了额外的 USB3 适配器)。
您可以看到产品的图片这里。
突然间,可能是由于无人值守的自动升级,这些设备开始获取随机 MAC 地址。
前:
每个 USB3 连接设备都有一个以下形式的地址:
00:0E:C6:XX:XX:XX
每一个都是不同的,并且始终相同(稳定),在重新启动后仍然存在。
现在他们的地址如下:
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
全部共享相同的随机选择的地址。
简而言之,麻烦:
- 每次机器重新启动时,这个随机 MAC 地址都会发生变化。
- 它们都共享相同的随机 MAC 地址。以前,每个人都有不同的、明显不同的。
这些设备被标识为lsusb
:
亚信电子 AX88179 千兆位以太网
我不知道自最新自动更新以来发生了什么,最近 2 天、1 小时前一切正常,在所有这些设备开始出现这种奇怪的行为之后。
会不会是更新有问题?难道是新发布的驱动每次都会随机化MAC地址?这可能是 Linux 内核、发行版或 GRUB 设置中的一项功能,其中 USB LAN 设备现在每次都会获取随机 MAC 地址吗?但在这种情况下,为什么他们都共享相同的呢?它们应该是完全随机的......
我正在寻求帮助并愿意进行测试......
关于操作系统:
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
到目前为止建议的解决方法,包括最后一个始终有效的解决方法,感谢@AB:
答案1
这6.8 内核提交,向后移植到 6.1.x:
net: usb: ax88179_178a:避免连续两次设备重置
旨在避免基于 AX88179 的 NIC 上的双重重置,但会产生为 NIC 获取随机 MAC 地址的副作用。
未来的 6.9 内核正在修复,已经向后移植到内核 6.1.85+它承认前一个问题(并且是应该要解决这个问题)。这是确认部分:
net: usb: ax88179_178a:避免接口始终配置为随机地址
在提交 d2689b6a86b9(“net:usb:ax88179_178a:避免两次连续的设备重置”)之后,绑定操作不会执行重置,并且此时不会从设备寄存器或设备树中读取 MAC 地址。由于在 usbnet_probe 的绑定操作之后检查配置分配的 mac 地址是否是随机的,因此接口保持配置为随机地址,尽管在打开操作期间正确读取和设置了地址(现在唯一的重置) )。
问题是 Debian 的内核 6.1.0-20-amd64 已经使用包含修复程序的上游内核 6.1.85。从OP的评论来看,这似乎无法正常工作,因为OP是使用内核 6.1.0-20-amd64。
保证有效的是恢复到之前的状态:在 2024 年 2 月 5 日补丁向后移植到 6.1.x 之前。目前看来这意味着恢复两个补丁:
确保它像以前一样工作(并恢复双重重置行为,这在当时似乎不是问题)。
我可以在过去几周内验证恢复net: usb: ax88179_178a:避免连续两次设备重置使其工作,我没有验证较新的状态(例如:内核 6.1.85 或 Debian 6.1.0-20-amd64)的行为方式。 OP 的 Q/A 表明,也许旨在修复第一个补丁之后引起的行为的第二个补丁还不够,可能还需要提供其他修复。
总结一下,今天可能的选择:
- 保留较旧的内核,例如 Debian 的 6.1.0-18-amd64,可从https://snapshot.debian.org/ 那里:
linux-image-6.1.0-18-amd64
- 通过恢复本答案中提到的第一个补丁并重新编译(测试工作)来修补 6.1.77 和 6.1.84 之间的内核
- 检查内核 6.1.85 或更高版本是否适合您。
要么它有效(没什么可做的)
或者它没有(OP的情况)
至少恢复第一个补丁并重新编译:
net: usb: ax88179_178a:避免接口始终配置为随机地址(可选,可以保留而不是恢复)
net: usb: ax88179_178a:避免连续两次设备重置: (需要恢复这个)
或者等待未来的补丁修复这个问题:
更新:此提交自 2024 年 4 月 18 日起:
net: usb: ax88179_178a:避免在首次读取之前写入 MAC 地址
修复它(我在 6.8.x 内核上测试过它)。它可能应该包含在下一个 6.1.x 上游内核 6.1.88 中,并且迟早会被 Debian 选择。额外的好处:重置似乎在探测时间恢复,并且界面上不再有任何重置。因此,向下和向上之间转换的延迟现在更快。