近来相信不少朋友都在测试体验Hyper-V,有些甚至已经开始在生产环境下进行评估,但是同时可能会遭遇到这样的问题,当添加了hyper-VRoles,安装了虚拟机,并将虚拟机的网卡配置为外部网络类型,以桥接到宿主网卡上与宿主网络进行通讯。此时以为大功告成便上架开始使用,但是却发现HostOS无法连接了。本人也遭遇到了这个情况,呵呵!受之前产品的影响没有仔细去了解Hyper-V的网络结构,昨天前往实验机所在办公室进行了调试,总算解决了该问题,现在与大家分享。
在之前所使用的虚拟机平台时,如:VirtualServer/PC以及VMware,我们都惯用桥接方式将虚拟机网卡桥接到宿主网卡上,便可以直接进行通讯。但是在Hyper-V平台上,这一方式被改进了,我个人猜想应该是微软出于整个宿主环境与虚拟环境的兼容性、稳定性与安全性才修改了网络结构。即,当我们对Hyper-V进行初始配置时需要为虚拟机环境提供一块用于通讯的物理网卡,当执行完配置后,系统会为当前的HostOS添加一块虚拟网卡,用于HostOS与网络的通讯。而此时的物理网卡除了作为网络的物理连接外,还兼做虚拟交换机,为HostOS及GuestOS提供网络通讯。如果还是对这个概念比较模糊,那么请注意下面的网络示意图。
传统模式:
应用程序直接与物理网卡连接并与物理网络建立通讯,在VirtualServer/PC上,虚拟机网卡与物理网卡桥接后与物理网络建立通讯。
Hyper-VExternalNetwork:
在Hyper-V上当配置了外部网络后,系统则自动添加一块虚拟网卡用于HostOS的通讯,而物理网卡则用于物理连接及虚拟交换机。
明白以上的示意图后,我们再次登录系统去查看一下当前的网卡及连接状态,图中“LocalAreaConnection2”是一块未连接的物理网卡,排除在外。其中"LocalAreaConnection"是已经连接至网络的物理网卡,而"LocalAreaConnection4"则是真正用于HostOS连接网络的网卡。
我们分别看一下各网卡的连接状况,"LocalAreaConnection"状态显示并未使用任何网络协议连接,通过查看该连接的网络属性我们可以看到,该网卡只绑定了"MicrosoftVirtualNetworkSwitchProtocol"。
"LocalAreaConnection4"连接状态显示正常,此外连接速率竟然高达10Gbps,呵呵!该网卡的网络属性中我们可以看到它进行了常规的协议和服务绑定。
OK,以上的粗鲁讲解希望大家已经明白是怎么回事!因为物理网络中存在有效的DHCP,所以当系统添加了"LocalAreaConnection4"后自动获取到了IP地址,并不会给出明显的提示,因为它已经自动获取到IP,在不了解Hyper-V的网络模式时,我们便会忽略!如果是远程方式进行配置则会造成网络中断。
为此,我们需要正确的为"LocalAreaConnection4"配置网络,添加IP等相关信息。
最后不要忘记为你当前的网络配置网络类型,因我用于实验的Dell2950处于内网,所以我选择为专用网络,并允许了网络发现及网络共享。