我在 Windows 8 主机上安装了 VirtualBox。我使用 VirtualBox DHCP 服务器已有一段时间,但现在我正尝试切换到安装在其中一个客户机上的 DHCP 服务器。VirtualBox DHCP 似乎仍在提供地址。
我将在这里使用两个特定的客人和他们的状态作为示例,其中一个是 CentOS,另一个是 Ubuntu,所以我在这里就这么称呼它们。
变更前的初始环境:
我添加了 VirtualBox DHCP(VBoxManage dhcpserver add
服务器 IP 为 10.10.10.1)。CentOS 从中获取 10.10.10.2,Ubuntu 从中获取 10.10.10.3。
近期变动:
- 在 CentOS 上安装了 DHCP 服务器,范围为 192.168.0.10 - 192.168.0.99,并为 Ubuntu 安装了固定条目 192.168.0.102。
- 在 CentOS 上设置静态 IP 192.168.0.7。
- 通过执行
VBoxManage dhcpserver remove
.删除了我之前添加的 VBox DHCP 服务器VBoxManage list dhcpservers
,确实验证了 10.10.10.1 DHCP 服务器已经消失。 - 完全重启 CentOS,然后重启 Ubuntu。
行为:
在 CentOS 上,DHCP 服务正在运行。它正确地获取了静态分配的 IP 地址。当我启动 Ubuntu 时,它仍然获取 10.10.10.3。如果我执行ifdown eth0
,它会输出DHCPRELEASE on eth0 to 10.10.10.1
。如果我然后执行 ,ifup eth0
它会输出它正在发送 DHCP 发现,然后DHCPREQUEST of 10.10.10.3 on eth0 to 255.255.255.255
,然后它获取DHCPOFFER of 10.10.10.3 from 10.10.10.1
,然后DHCPACK of 10.10.10.3 from 10.10.10.1
,之后我显然得到了 10.10.10.3 地址。
问题重申
为什么 Ubuntu 仍然会获取该地址,而且是来自 10.10.10.1?更好的是,它是如何获取该地址的?即使我执行了 a 操作,VBox DHCP 服务器不再dhcpserver remove
在列表中,它是否仍在运行?如果它仍在某处运行,我该如何摆脱它?
我做过的其他一些测试
作为额外的测试,我VBoxManage dhcpserver add
再次添加了一个 DHCP 服务器,其信息与我之前拥有的相同。我创建它时没有启用它,验证它处于禁用状态,重新启动 Ubuntu,获得 10.10.10.3,启用 VBox DHCP 服务器,重新启动 Ubuntu,这次我获得了 10.10.10.2。我禁用/启用了 VBox DHCP 几次,每次禁用或启用时,我都会执行 ifdown/ifup,然后发生的情况如下:有时它会在每个步骤(请求/提供/确认/绑定)中获得 10.10.10.2,有时每个步骤都会获得 10.10.10.3,但有时它会请求 10.10.10.2,获得提供的 10.10.10.2,但随后获得 10.10.10.3 的确认,然后绑定到 10.10.10.3,有时则与请求 10.10.10.2 相反,提供 10.10.10.2,确认 10.10.10.3,绑定 10.10.10.3。然后我再次删除了 VBox DHCP 服务器,确认它再次消失,然后我继续在 Ubuntu 上执行 ifdown/ifup,并得到与上述相同的结果:请求/提供/确认/绑定时全为 3、全为 2、或 2/2/3/3 或 3/3/2/2。现在也许我有两个 VBox DHCP 服务器在某处隐身运行…… :(
作为另一项测试,我在 Ubuntu 上静态设置了 IP,执行了 ifdown/ifup,它得到了我设置的 IP。我甚至可以正确与 CentOS 通信,因为我将其设置为位于同一子网中。将其切换回从 DHCP 获取 IP,再次重新启动接口,它又回到了 10.10.10 的东西。
CentOS上/etc/dhcp/dhcpd.conf的内容:
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.10 192.168.0.99;
option subnet-mask 255.255.255.0;
host ubuntuserver {
hardware ethernet 08:00:27:10:F0:B9;
fixed-address 192.168.0.102;
}
}
以防有人感到疑惑,是的,我也启动了更多的客人,是的,设置为从 DHCP 获取的客人是从 10.10.10.1 获取的,并且也获取了该范围内的地址。
当虚拟网络处于这种状态时,我无法正确执行完整的测试环境,该环境应该能够模拟生产环境。如果您能帮助我关闭 10.10.10.1 服务器,我将不胜感激。
答案1
根据最后一行http://zaidmunir.blogspot.in/2010/07/how-to-enabledisable-virtualboxs-dhcp.html
由于 VBox 中存在错误,直到您重新启动主机(运行 VBox 的机器)时 DHCP 才真正被禁用。
你尝试过这个吗?