使用桥接适配器时 VM Guest 被分配与主机相同的 IP

使用桥接适配器时 VM Guest 被分配与主机相同的 IP

我正在尝试将我的 Ubuntu 客户虚拟机设置为可以从主机外部访问的服务器。我尝试设置桥接适配器,但收效甚微。

首先我创建了桥接连接:

在此处输入图片描述

然后我在虚拟机设置中选择了新的网桥:

在此处输入图片描述

当我现在运行我的客户虚拟机时,其 IP 与我的主机 IP 相同,并且连接滞后:

在此处输入图片描述

我究竟做错了什么?

答案1

您已将虚拟机连接到 Wi-Fi 适配器。无论您使用哪种桥接方法(Windows 提供的或 VirtualBox 提供的)(您的屏幕截图显示两种方法同时使用)——尝试桥接 Wi-Fi 都会导致相同的一般问题:它不允许主机谎报其 MAC 地址。

即使虚拟机它有自己的 MAC 地址,主桥必须悄悄地在所有传出的数据包上重写它(从而实现“第 2 层 NAT”或“arpnat”)。这是必要的,因为 Wi-Fi 帧头需要无线电发射机来识别自己,并且不允许客户端(站点)填写与发送器不同的源地址。

(以太网不存在此问题。Wi-Fi 有一个可选模式可以解决这个问题,称为“4addr”,又名“WDS 桥接”,但客户端AP 必须支持它。)

正如@FrankThomas 所说,最终结果是您的路由器(DHCP 服务器)两次看到​​相同的 MAC 请求地址。根据路由器的配置(例如静态保留或出于恶意),它可能始终为相同的 MAC 提供相同的地址。

(是的,DHCP 请求携带自己的源 MAC 副本,独立于 L2 标头……但我似乎记得至少 VirtualBox 的 arpnat 实现也重写了它。我不完全确定。)

如果您确实有静态 DHCP 租约,一种可能的解决方案是将它们绑定到“客户端 ID”而不是 MAC 地址。符合标准的 DHCP 服务器必须区分具有不同客户端 ID 的请求,即使它们来自同一个 MAC 地址。(反之亦然,即使 MAC 地址不同,相同的“客户端 ID”也必须与相同的租约相关联。)

答案2

我猜想两个虚拟机上的 MAC 地址是相同的。您是否创建了一个作为另一个的副本?为其中一个生成一个新的 MAC 地址,然后重试。

相关内容