我刚刚将两台服务器从Debian 10 (Buster)升级到了Debian 11 (Bullseye)。之后,我再也无法通过网络联系到他们中的任何一个。经过一番调查,发现以下问题:
这两台机器都配置了一个桥接设备。显然,Debian用于为桥接设备分配MAC地址的算法已从版本10改为11。升级后,第一服务器上的桥接设备与第二服务器上的桥接设备具有相同的MAC地址,这以前肯定不是这样。
一个答案在那里声称一个桥是一个纯粹的内部设备,因此一个桥的MAC地址并不重要。不过,这显然是错误的。至少在我的情况下,来自这两台机器的数据包都是传出的,硬件源地址是桥的MAC地址,而且两台机器上的网络端口只有在到达桥的MAC地址时才会处理传入的数据包。
由于这两台机器上的MAC地址是相同的,网络变得不可用,这是完全合乎逻辑的,也是可以理解的。
如何让Debian为位于不同机器(甚至在同一台机器上)的桥设备生成不同的MAC地址,但这不是我的问题。
发布于 2022-10-01 15:27:05
首先,A.B的答案显示了正确的解决方案。如果你有同样的问题,遵循A.B的答案,以正确的方式解决它。
然而,为了完整起见,我想展示一种替代的(低得多的)解决方案。我承受着压力,没想到很快就会得到正确的答案。因此,我通过稍微修改/etc/network/interfaces,暂时解决了这个问题:
auto br0
iface br0 inet static
bridge_ports eno1
address 192.168.20.11
netmask 255.255.255.0
broadcast 192.168.20.255
gateway 192.168.20.250
hwaddress ether 02:01:01:01:11:01最后一行是关键。它使操作系统将指定的MAC地址分配给网桥。所显示的MAC地址是半官方专用MAC地址范围内的地址.我已经证实,当您移除或添加设备到桥接器时,此MAC地址保持不变。
当然,您必须给每个网桥一个不同的MAC地址,不管网桥是否在同一台机器上。
再次,上述方法只解决了网桥MAC地址问题。我相信,如果在不同的机器上有相同的机器if,那么会有更多的错误。A.B的回答提到了如何创建一个新的机器ID,并且一个快速测试表明,每个以这种方式创建的机器ID都不同于以这种方式创建的所有其他机器ID。
https://unix.stackexchange.com/questions/719379
复制相似问题