我正在 Windows Server 2012 机器上玩 Hyper-V。它有3个NIC。#0 专用于主机,#1 在虚拟交换机上,上面有所有 VM。
我希望 NIC #2 专用于特定的 VM,例如主机不应该打扰它,它应该只有 1 个 MAC 和 IP 用于客户端 VM。(好像 VM 是具有该特定 NIC 的物理机)
我现在看到的执行此操作的唯一方法是创建一个“外部”虚拟网络并仅将该 VM 放置在网络上。这当然有优势,但也让我处理 2 个 IP 和 2 个 MAC:一个用于主机,一个用于 VM。
这可能吗?如果可能的话,如何(并且是否推荐?)
创建外部网络不会创建两个 MAC 地址和两个 IP 地址,除非您还选择“允许管理操作系统共享此网络适配器”。如果您不选中该框(或 PowerShell 中的等效操作),则管理操作系统将不会绑定任何东西,除了开关。如果您在其上启用 VMQ 或 SR-IOV,那么您甚至可以使用专用硬件将流量路由到 VM。
我意识到这个问题几年前就有人问过,但我最近发现了一个尚未在其他任何地方出现过的解决这个问题的新方法。
如果您为 NIC #2 创建一个虚拟交换机,将您的 VM(或多个 VM)绑定到该虚拟交换机,然后使用主机中的控制面板禁用该适配器(虚拟交换机,而不是物理适配器),那么主机将完全忽略它,但它仍然会为客人正常工作(甚至没有警告或任何东西)。
换句话说,您可以通过先绑定虚拟交换机(这将防止主机直接使用物理网卡)然后禁用虚拟交换机来为 Hyper-V“保留”物理网卡。在我看来,这是一种奇怪的行为,但它在重新启动后仍然有效并持续存在,这才是最重要的。