当移除(删除)客户机时,已保存的 VirtualBox 客户机的 IP 地址会发生什么情况?

当移除(删除)客户机时,已保存的 VirtualBox 客户机的 IP 地址会发生什么情况?

我在 LAN 中创建 VirtualBox 客户机,其中 IP 地址由 DHCP 分配。
如果我创建closeVirtualBox 客户机,然后选择Save the machine state,VirtualBox 客户机桥接适配器IP 地址不会释放回 DHCP(这样,如果我稍后启动 VirtualBox 客户机,它将有一个 IP 地址)。

我的问题是:如果我remove(删除)VirtualBox 客户机,IP 地址会被释放吗,还是会丢失到 DHCP 池中?

编辑1:

我收到的评论迫使我补充一点,当 VirtualBox 客户机在保存状态下关闭时,IP 地址会保留在 VirtualBox 生态系统中的某个地方。
然后,如果在 DHCP 撤销租约后打开 VirtualBox 客户机,那么 LAN 上就会有两台机器,相同的IP地址,令所有局域网用户欣喜不已。

编辑2:

从回复中,我了解到大家的共识是,一旦 DHCP 租约时间过去,无论是否有客人仍“持有”该 IP 地址 - 该 IP 地址都将被释放。
感谢所有花时间回复的人。

答案1

这取决于 DHCP 服务器租约设置。分配给它的地址将不可用,直到 DHCP 租约到期,或者您在 DHCP 服务器上手动清除它。

编辑:

如果虚拟机离线时间超过 DHCP 租约,则不会出现问题。当虚拟机上线时,应该将系统时间更新为当前时间。此时,虚拟机将看到租约已过期,并向 DHCP 服务器发出新的请求。

如果要保持机器的 IP 地址不变,请使用静态 IP 分配,或使用 DHCP 保留。

答案2

当 VirtualBox 客户机在保存状态下关闭时,IP 地址将保存在 VirtualBox 生态系统中的某个位置

这种说法是错误的。


有可能(很可能)客户操作系统将被冻结在一种状态下,认为它对分配给其接口的 IP 地址具有有效租约,并且该状态将被记录在转储的虚拟机内存中。

但是,VirtualBox 无法控制或固有了解虚拟接口上的 IP 地址 - 它提供的是虚拟硬件,而不是整个以太网/IP 堆栈。如果 VirtualBox 接口能够报告与特定接口关联的 IP 地址,那么这只是因为客户机正在运行支持此功能的服务。

如果客户操作系统在租约到期后恢复/解冻,那么(如果 DHCP 客户端编写正确)它将意识到租约已过期……尽管这里可能会有延迟,因为客户机可能不知道冻结期间的时间流逝……如果客户端使用错误的时钟(例如:与Linux 上的CLOCK_REALTIME时钟相比CLOCK_MONOTONIC)作为租约到期依据,那么可能是客户操作系统和另一台主机尝试使用相同 IP 的窗口。

一旦解冻,它应该立即向 DHCP 服务器发出新请求...DHCP 请求可能包括“请问我可以再次获得这个 IP 吗?“类型的请求,但不能保证它会获得相同的IP,这完全取决于DHCP服务器保留的时间长短,以及在此期间是否有另一个系统已经占用了该地址。

答案3

您的编辑不会改变问题的答案。如果您将机器休眠并重新联机,则不会获得重复的 IP。当机器联机时,它始终遵循 DHCP 中的某些步骤来确定需要做什么。如果机器从睡眠状态唤醒,它会检查当前时间与其租约的到期时间。如果租约未到期,它可以继续使用相同的 IP 地址。如果机器从头开始启动或没有现有租约,它总是会请求 DHCP。

相关内容