Hyper-v 支持外部、内部、专用三种网络,分别对应内部、外部、专用三种虚拟交换机的类型。

image1

  1. 按照 Hyper-V 自己的说法就是 "创建一个绑定到物理网络适配器的虚拟交换机,以便虚拟机可以访问物理网络。" 网络的拓扑结构如下:

image2

简单的说,就是将虚拟机(跟物理机一样)直接连接到主机外部的某个物理交换机上。实现层面,Hyper-V 会创建一个虚拟的交换机,物理机和虚拟机都连接到该虚拟交换机上,同时该虚拟交换机向上连接到外部物理交换机。上图中,虚拟化以后,只有物理交换机与虚拟交换机之间的网线是真实存在的,对应于宿主机物理网卡与外部交换机之间的连接网线,其余的连接网线都是没有物理实体的。该图很好地解释了为什么每增加一个外部虚拟网络,宿主机上便增加一个新的连接(逻辑网卡):一个连接对应与物理机连接虚拟交换机的那块网卡,一个则是新增的虚拟交换机:

image3

点击两个网络连接的属性,你会神奇的发现,原来的以太网连接上没有启用 IP 协议,如图所示:

image4

原来有关 IP 协议的设置,全部转移到了新创建的虚拟交换机连接上。这说明:物理网卡虚拟化以后,在逻辑上已经不再是物理机的网卡,而是被视作一台虚拟的交换机。为了连接宿主机与虚拟交换机,Hyper-V 又为宿主机创建了一块虚拟网卡,并将原来物理网卡上的网络协议配置转移到了该虚拟网卡。

所以,简单来说,就是物理网卡变成了虚拟交换机,并给宿主机创建一个新的虚拟网卡,连接虚拟交换机。

理解了外部网络以后,再理解内部网络就简单了许多,内部网络的拓扑结构如下:

image5

与外部网络类似,宿主机上每创建一个内部虚拟网络,就会多出一个新的网络连接,该连接对应一块虚拟网卡,用以连接虚拟交换机,所以其上通常是启用了 IP 协议的。

专用网络,比内部网络稍微简单一些,因为其只连接虚拟机,而不连接宿主机,其拓扑结构如下:

image6

由于宿主机不连接专用网络,所以新增专用网络后,宿主机上不会增加任何新的网络连接。

接下来我们说一说虚拟机上网的问题,虚拟机要连接互联网,我们可以采用外部网络或者内部网络,如果是采用外部网络,通常情况下需要为虚拟机配置与宿主机相同网段的 IP 地址,对于启用了 DHCP 网络的情况,虚拟机将与宿主机从同一台 DHCP 服务器获得 IP 地址。

如果采用内部网络,宿主机是连接虚拟机与外部网络的桥梁,此时,宿主机需要充当路由器的角色,这一点可以通过在宿主机上启用 Internet 连接共享、DHCP 等类似服务来实现。