在 Windows 2008 中,我们可以在同一台物理机器上拥有多个 Hyper-V 实例。通常,该机器只有 1 个网络接口。(我假设 1 个卡有 1 个 MAC 地址)。那么 Hyper-V 机器如何获得相同的 IP 地址?网络适配器是否需要支持任何特殊功能?
答案1
如果你的虚拟机获取的是同一个 IP,那么很可能是RFC1918私有地址,由托管客户操作系统的 Hyper-V 软件进行 NAT。
如果您的虚拟机与主机在同一个 VLAN 上具有独立 IP,则 Hyper-V 可能正在使用桥接虚拟网络适配器。此虚拟适配器对网卡进行编程,使其响应第 2 层的多个 IP,并将正确的数据包转发到客户操作系统。
答案2
除了其他答案之外,您不需要特殊的 NIC。即使通过一个物理主机 NIC,虚拟机也可以获取自己的 IP 甚至 MAC 地址。这类似于(但不完全类似)在 Windows 中直接为单个 NIC 分配多个 IP 地址(即使不使用虚拟化)。但是在这种情况下,您也不会托管多个 MAC 地址。
Hyper-V,或者 VMware(如果您运行的是 VMware Server 或 ESXi)或者 XenServer(如果您使用的是后者),都负责转换网络,以便多个虚拟机可以共享同一个物理 NIC。如果您有许多虚拟机和/或高流量,则仍需要多个物理 NIC 来实现冗余和/或额外的带宽,这可能是必需的(如果您使用的是 SAN 等集中式存储,则强烈建议使用专用 NIC 或 NIC)。但只要有一个 NIC 就可以正常工作。
答案3
在 Hyper V 中创建虚拟网络时,您可以选择:
- 外部:连接到此网络的虚拟机被视为连接到 Hyper V 服务器所连接的同一网络
- 内部:Hyper V 服务器创建一个内部网络,不以任何方式连接到物理网络,但连接到它的虚拟机可以相互访问。
- 私有:连接到此网络的任何虚拟机都是完全隔离的,并且只能看到自己
这里有两个设置需要管理。在 Hyper V 控制台中创建的网络和为每个 VM 选择的网络。如果每个 VM 都连接到“私有”网络,那么它们没有理由不/不能拥有相同的 IP。
回答您的另一个问题,对于内部和私有网络,Hyper V 服务器将为这些计算机分配内部 IP。对于外部,虚拟机将获得 IP(或不获得),就像您可能连接到该网络的任何工作站一样。
** 注意:根据最佳实践,您的 Hyper V 服务器中至少应有 2 个物理网络适配器。一个用于服务器本身,另一个用于您要为 VM 流量创建的每个外部网络。我从未尝试过只使用一个 NIC,因为据说在这种情况下会产生不可预测的结果。
答案4
Hyper-V 机器不会获得相同的 IP,它们将获得与主机不同的 IP。这在单个 NIC 上有效,因为它将多个 IP 分配给主机 NIC,然后 Hyper-V 将特定 IP 的请求转发给正确的客户机。