我有一个运行 Hyper-V 的 Win2008 R2 服务器和两个虚拟机(Win2003 和 Win2008R2)。
我的服务器上有两个 NIC,一个用于主机,一个用于 Virtual Machine Manager。
我已经将它配置如下,但是 VMS 无法访问 Internet。我究竟做错了什么?
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?
这可能无法解决您的问题,但是...任何 Hyper-V 机器都应该有一个专用于管理主机的 NIC(用于 HOST 的 ONBOARD NIC)和一个或多个专用于 VM 的 NIC(用于 Hyper-V 的附加 NIC)。我会这样做:
在 Hyper-V 管理器中删除现有的 Hyper-V 网络。
在主机上,您现在应该只有 2 个可见的 NIC,ONBOARD NIC 和 Additional NIC。保持 ONBOARD NIC 配置如上。
禁用附加 NIC 上的所有服务(包括 IPv4 和 IPv6)。您不需要为这个 NIC 配置 IP 地址 - Hyper-V 将只使用这部分硬件来访问网络,只要它正确连接到配置的交换机端口,他们就可以使用它.
在 Hyper-V 管理器中重新创建您的外部网络,并确保您选择附加 NIC。完成此操作后,返回主机的网络控制面板,您现在应该会看到 3 个 NIC!当您创建 Hyper-V EXTERNAL 网络时,它会创建一个额外的虚拟 NIC 并将其添加到列表中。与附加 NIC 一样,它应该禁用所有服务(包括 IPv4 和 IPv6)。
现在关闭两个虚拟机,将它们的 NIC 重新分配给 Hyper-V 网络,启动它们,它应该可以工作了。
注意:所有这一切都适用于假设一切都在同一个子网上并且附加 NIC 连接到的交换机端口没有中继。如果有中继,您会将虚拟机分配给 VLAN,但如果没有中继,请不要在虚拟机配置页面上选择“使用 VLAN”复选框。
祝你好运。
在托管 HyperV 网络的适配器的高级设置下关闭 IPv4 大型发送卸载。显然 HyperV 虚拟交换机不能很好地处理这个问题。它为我解决了丢包问题。希望这对某些人有所帮助,因为我花了一段时间才弄清楚。
简而言之,如果主人可以看到互联网 - 那么您的客人也应该能够看到。
打开虚拟网络管理器并创建一个新的虚拟网络。确保它已桥接到您的两个适配器之一(我认为 Hyper-V 使用术语外部或类似的东西) - 在您的情况下,根据您的 IP 地址,它可能并不重要。
然后,在每个虚拟机配置中,确保将虚拟网络适配器设置为新创建的虚拟网络的一部分。
如果这一切都不起作用,我会再尝试两件事:
您使用的是旧版网络适配器吗?造成如此多的网络丢失需要很多时间,但这是需要检查的。
此外,你有没有可能从任何一台机器上获得大量流量?要缩小范围,请尝试创建内部网络并查看是否可以通过 RDP 从主机访问 VM。
要回答您的网关问题,如果您使用的是外部 NIC,那么网关应该与您用于任何这些 IP 的网关相同。(即,与主机使用的相同)。
此外,请确保将其中任何一台机器设置为导致网络流量循环的路由器。这也会导致巨大的数据包丢失。