网络虚拟化系列文章


理解VMware网络模式:桥接、仅主机和NAT

vmware支持三种网络模型:桥接模式(VMnet0)、仅主机模式(默认VMnet1)和NAT模式(vmnet8)。这三种网络模式都会创建虚拟交换机(vmnet0/vmnet1等就是虚拟交换机)。且桥接网络和NAT网络只支持存在一个,仅主机网络可创建多个。

vmware的桥接模式

当创建桥接网络时,vmware会创建一个虚拟交换机,并且将放在桥接模式下的虚拟机的网卡和物理机的物理网卡(可选择哪个物理网卡)都连接到此虚拟交换机上。

所以:

  • 桥接网络内的虚拟机和物理网卡在同一个网段,各虚拟机及宿主机之间可以互相通信
  • 虚拟机桥接网络的网关默认和物理网卡的网关相同,所以物理网卡能上网,虚拟机就能上网

它的模型大概如下:

vmware的仅主机(host-only)网络模式

host-only网络可以同时创建多个。

每次创建host-only网络时,会在宿主机上创建一个虚拟交换机和DHCP服务,并将所有设置为host-only模式的虚拟机网卡连接在此虚拟交换机上。因此,仅主机模式的虚拟机之间可以互相通信。

此时的host-only网络模型大概如下:

VMware的host-only还可以配置是否让仅主机模式的虚拟机和物理机通信。只要勾选【将主机虚拟适配器连接到此网络】,就会在宿主机上创建一个虚拟网卡(不勾选就不会创建虚拟网卡),并将这个虚拟网卡连接在host-only的虚拟交换机上,这样就能让物理机和各host-only内的虚拟机进行通信。

例如,我没有勾选vmnet3的【将主机虚拟适配器连接到此网络】,就没有vmnet3的虚拟网卡。

勾选【将主机虚拟适配器连接到此网络】时的host-only网络模型如下:

host-only网络访问外网

对于host-only网络模式,当未勾选【将主机虚拟适配器连接到此网络】时,只有虚拟机之间可以互相通信,无法和宿主机进行通信。这时显然无法访问外网。

对于host-only网络模式,当勾选了【将主机虚拟适配器连接到此网络】时,宿主机上有一个虚拟网卡连接到了host-only的虚拟交换机上,因此虚拟机之间和宿主机之间可以互相通信,但此时虚拟机无法访问外网。

如果想要让host-only模式下的虚拟机访问外网,需要在宿主机上将可访问外网的物理网卡共享给宿主机上的虚拟网卡,并将所有虚拟机的网关设置为宿主机虚拟网卡的地址即可。

可访问外网的host-only网络模型大概如下:

vmware的NAT网络

创建vmware的NAT网络时,会在宿主机上创建一个虚拟交换机、NAT服务,并可选择性地创建虚拟网卡、DHCP服务。

所有设置为NAT网络模式的虚拟机网卡都会连接到这个虚拟交换机上,因此它们可以互相通信。且在访问外网时,数据包将通过NAT服务做地址转换。

如果没有勾选【将主机虚拟适配器连接到此网络】,虚拟机之间可以互相通信且可以和宿主机通信,但宿主机无法访问NAT隔离的私网,即宿主机无法和虚拟机通信。

此时的NAT网络模型大概如下:

如果勾选了【将主机虚拟适配器连接到此网络】,将在宿主机上创建一个虚拟网卡并连接到此虚拟交换机上,此时,宿主机上的虚拟网卡也是被NAT隔离在私网中的一个节点。因此,虚拟机之间和宿主机之间都可以互相通信。

此时的NAT网络模型大概如下: