我正在使用 Hyper-V,我的一台虚拟机访问互联网时出现问题。下图说明了基本配置:
主机有两个虚拟交换机 - 一个“外部”,一个“内部”。
外部交换机有两个 IP 地址 - 一个主地址和一个位于不同网络范围内的别名地址。默认网关与主 IP 地址位于同一网络范围内。
虚拟机 2(只有一个网络适配器,位于“内部”交换机上,具有 C 类 IP 地址)可以毫无问题地访问互联网或内部交换机上的其他虚拟机。
虚拟机 1 有两个接口:
- 一个在外部交换机上,以便可以从互联网访问它,并使用主机的别名 IP 作为默认网关
- 内部交换机上的另一个接口用于与其他虚拟机进行通信。
我遇到的问题是虚拟机 1 无法访问互联网。它可以毫无问题地 ping 通内部交换机上的其他虚拟机,并且可以 ping 通外部交换机的两个 IP 地址,但无法 ping 通网关 IP。数据包应该从 VM2 发送到主机上的别名(它们确实这样做了),但我猜主机阻止了数据包路由到网关。
如何让虚拟机 1 访问互联网?
答案1
经过多次折腾之后,似乎问题在于我正在使用 Windows Server 2012,而根据此处发布的另一个问题的答案,Hyper-V 显然直到 2016 版本才支持 NAT:
https://serverfault.com/questions/821859/configuring-nat-on-a-hyper-v-server-2012-r2
我必须将虚拟机 1 设置为所有其他虚拟机的网关。