如何在 Windows 10 Pro 中使用 HyperV 执行 DHCP 保留?

如何在 Windows 10 Pro 中使用 HyperV 执行 DHCP 保留?

我最近不得不从 Linux/libvirt 世界转移到利用 HyperV 机器的 Windows 10 Pro 系统进行一些测试,坦率地说,我不知道自己在做什么。

我有一台 CentOS 虚拟机,已完全设置好并在 HyperV 中运行,可通过 HyperV 管理器访问。我想要做的是确保它在启动时执行 DHCP 时会为其分配一个静态 IP 地址。目前,它会被分配内部 Vswitch 的 DHCP 服务器决定它应该获得的任何 IP 地址。

在 libvirt 中,我为虚拟机的网络设置了一个配置,以执行 DHCP 预留。我为其提供了虚拟机的 MAC 地址,在启动时,DHCP 服务器将始终分配我指定的 IP,这样就可以轻松地设置静态 DNS 记录以从主机访问该虚拟机。

我似乎无法从 Windows 10 Pro HyperV 中执行此操作。如果我在 HyperV 管理器中选择“虚拟交换机管理器”,我会获得交换机的选项,但没有关于 DHCP 预留的任何信息。同样,在 VM Guest 的设置中,我看不到任何允许预留的内容,但也许我错过了什么。

Windows HyperV 是否为 VSwitches 上的内部 DHCP 服务器提供了此功能?我知道我可以在默认设置的虚拟 NAT 网络中静态分配 IP 地址,但我不想这样做,因为我将推出一批客户,而预先定义他们的 MAC 并让他们“自动”连接会更简洁。谢谢!

答案1

我的理解是,您有两个要求,至少在 Hyper-V 上是相冲突的:

  • 静态 IP,我认为这样虚拟机之间就可以进行通信。
  • 当将虚拟机放入另一个网络时,互联网访问是不可能的。

Hyper-V 没有静态 IP 的概念,只有静态 MAC,这没有帮助。

解决方案是为虚拟机提供两个 NIC,一个用于静态 IP,另一个用于目标网络中的动态 IP 和互联网访问。

有两点需要记住:

  • 必须将静态 IP 地址分配给虚拟机的第一个 NIC。
  • 虚拟网卡依赖于底层虚拟交换机按名字

第二点很难。如果您导出 Hyper-V VM 并将其导入不同网络上的不同主机,则新主机可能会使用不同的物理 NIC,并且任何现有的虚拟交换机的名称可能与您的不同。

这里有两种可能的解决方案:

  • 导入虚拟机之前,在目标主机上创建同名的虚拟交换机。

  • 提前找到目标主机的虚拟交换机的名称,并在您自己的实验室中创建一个同名的虚拟交换机供虚拟机使用。

相关内容