我有一台运行 Hyper-V 的 Win2008 R2 服务器,其中有两台虚拟机(Win2003 和 Win2008R2)。
我的服务器上有两个 NIC,一个用于主机,一个用于虚拟机管理器。
我已按如下方式配置,但 VMS 无法访问互联网。我做错了什么?
ONBOARD NIC for HOST
IP: a.b.c.19
Mask: 255.255.255.192
Gateway: a.b.c.1
DNS1: a.b.c.130
DNS1: a.b.c.131
Additional NIC for Hyper-V
IP: a.b.c.30
Mask: 255.255.255.192
Gateway: a.b.c.1
DNS1: a.b.c.130
DNS1: a.b.c.131
VM1
IP: a.b.c.9
Mask: 255.255.255.192
Gateway: a.b.c.1
DNS1: a.b.c.130
DNS1: a.b.c.131
VM2
IP: a.b.c.20
Mask: 255.255.255.192
Gateway: a.b.c.1
DNS1: a.b.c.130
DNS1: a.b.c.131
我的虚拟机网关是否应进行特殊配置以指向 Hyper-V 的 NIC?
答案1
这可能无法解决您的问题,但是...任何 Hyper-V 盒都应有一个专用于管理主机的 NIC(用于主机的 ONBOARD NIC)和一个或多个专用于虚拟机的 NIC(用于 Hyper-V 的附加 NIC)。我会这样做:
在 Hyper-V 管理器中删除现有的 Hyper-V 网络。
在主机上,您现在应该只有 2 个可见的 NIC,即 ONBOARD NIC 和附加 NIC。保留 ONBOARD NIC 的配置,如上所示。
禁用附加 NIC 上的所有服务(包括 IPv4 和 IPv6)。您不需要为该 NIC 配置 IP 地址 - Hyper-V 只会使用这部分硬件来访问网络,因此只要将其正确连接到已配置的交换机端口,他们就可以使用它。
在 Hyper-V 管理器中重新创建 EXTERNAL 网络,并确保选择“附加 NIC”。完成此操作后,返回主机的网络控制面板,您现在应该会看到 3 个 NIC!创建 Hyper-V EXTERNAL 网络后,它会创建一个附加虚拟 NIC 并将其添加到列表中。与附加 NIC 一样,它应该禁用所有服务(包括 IPv4 和 IPv6)。
现在关闭两个虚拟机,将其 NIC 重新分配给 Hyper-V 网络,启动它们,然后它就可以正常工作了。
注意:以上所有情况都适用于假设所有设备都在同一子网中,并且附加 NIC 所连接的交换机端口没有进行中继的情况。如果有中继,您将为虚拟机分配 VLAN,但如果没有中继,请不要在虚拟机配置页面上选中“使用 VLAN”复选框。
祝你好运。
答案2
在托管 HyperV 网络的适配器的高级设置下关闭 IPv4 大型发送卸载。显然 HyperV 虚拟交换机不能很好地处理这个问题。它为我修复了数据包丢失问题。希望这对某些人有所帮助,因为我花了一段时间才弄清楚。
答案3
您使用的是旧版网络适配器吗?造成如此严重的网络丢失需要花费很多时间,但这是需要检查的。
另外,是否有可能从任何一台机器上产生大量流量?为了缩小范围,请尝试创建一个内部网络,看看是否可以通过 RDP 从主机访问虚拟机。
回答您的网关问题,如果您使用的是外部 NIC,那么网关应该与您用于任何这些 IP 的网关相同。(即与主机使用的网关相同)。
另外,请确保其中一台机器设置为导致网络流量循环的路由器。这也会导致大量数据包丢失。
答案4
简而言之,如果主人可以看到互联网 - 那么您的客人也应该可以看到互联网。
打开虚拟网络管理器并创建一个新的虚拟网络。确保它已桥接(我认为 Hyper-V 使用术语“外部”或类似的术语)到您的两个适配器之一 - 就您而言,根据您的 IP 地址,这可能并不重要。
然后,在每个虚拟机配置中,确保虚拟网络适配器设置为新创建的虚拟网络的一部分。
如果所有这些都不起作用,我会尝试另外两件事:
- 尝试不同的网络类型,例如 NAT。检查整个网络堆栈 - DNS、Ping、HTTP... 看看是否有任何一种可以工作。
- 禁用你能找到的所有防火墙。主机。访客。第三方。这些数据包正在某处被拦截!