大家都用VMWare Workstation 做虚拟机。我自己遇到3个容易混淆问题
a) 网络的三种模式主机,桥接,NAT都是什么意思。
b) windows上怎么会自动增加两个网卡,VMnet1 和 VMnet8。
c)为什么NAT模式下,虚拟机是获取的192.168.137.0网段的IP。
**第一个容易混淆的问题:网络的三种模式主机,桥接,NAT。**
VMware里的虚拟机也是有网卡,也需要和 其他打开的虚拟机,真实的电脑(安装VMware的这台电脑)或者 其他真实的电脑或者internet上的网站通信。那么根据不同的需要,VMware就设置三种场景。
**1)主机模式**。如果虚拟机只需要开机启动,网络上只需要和真实电脑一起做一下实验,互相通信,一般也就是互相ping一下。那么虚拟机的网卡采用主机模式就可以了。这种模式下虚拟机IP可以ping真实电脑,其他打开的虚拟机,但是不能ping 办公室其他真实电脑和Internet 上的IP。真实的电脑像一个房间的大门一样,不允许房间里的虚拟机出去和其他电脑通信。
**2) 桥接模式**。如果想虚拟机的网卡在ping 其他虚拟机,自己真实电脑外,还想与办公室其他真实电脑进行网络连接,那么采用虚拟机网卡桥接模式。桥接模式也就是交换机模式。在网络中,桥接和交换机意思一样。VMware好像将虚拟机单独拿出来了,把虚拟机的网卡连接到真实电脑上的交换机端口上一样,所以虚拟机能和交换机上其他真实电脑通信,互相ping。这个时候,虚拟机和真实电脑是同等地位。虚拟机采用的IP也是真实电脑网段的IP。
当然,如果你办公室网络允许交换机上的电脑上网。这个时候,你的真实电脑可以访问internet 浏览网页,虚拟机也可以访问Internet浏览网页。换句话说这个时候,真实电脑可以连接到什么网络,虚拟机就可以连接到什么网络。
**3)NAT模式。**如果虚拟机不想被外面其他真实电脑看到(ping 到),虚拟机做点真实电脑才能连接的网络或又要上internet,那么可以采用NAT模式。这种场景下,真实的电脑像一个房间的大门一样,不允许房间里的虚拟机用它自己IP直接出去和其他电脑通信。而必须借助真实电脑的IP出去和其他电脑或者Internet通信(如果网络允许上网)。
比如虚拟机ping 办公室其他同事的电脑,同事电脑上看到是我的真实电脑IP地址发出来的ping包。
第二个容易混淆的问题:安装VMware的电脑,自动增加了VMnet1 he VMnet8两个网卡。
虚拟机和真实电脑需要通过各自的网卡通信。比如虚拟机上的网卡名字是eth0, 那么真实电脑是哪个网卡呢。
为了简单方便,VMware定义好了2块网卡给真实电脑用。
如果虚拟机网卡eth0是采用主机模式,那么真实电脑采用VMnet1和虚拟机对接。假设虚拟机eth0 IP地址是192.168.1.2,那么VMnet1是192.168.1.1,真实电脑的IP默认都是地址段第一个IP。他们在同一个IP地址段,可以互相Ping通。 IP地址段也可以是其他地址段,根据自己习惯来。地址段在VMware 菜单栏 编辑选项,选择 虚拟网络编辑器中去手工设置即可。
如果虚拟机网卡eth0采用NAT模式,真实电脑采用VMnet8和虚拟机对接。同理:假设虚拟机eth0 IP地址是192.168.2.2,那么VMnet1是192.168.2.1,真实电脑的IP默认都是地址段第一个IP。他们在同一个IP地址段,可以互相Ping通。 IP地址段也可以是其他地址段,根据自己习惯来。地址段在VMware 菜单栏 编辑选项,选择 虚拟网络编辑器中去手工设置即可。
其实,VMware还定义一块网卡给真实电脑用,VMnet0。如果虚拟机网卡eth0采用桥接模式,真实电脑采用VMnet0和虚拟机对接。因为桥接模式下,虚拟机和真实电脑都是获取交换机上允许的IP地址段,真实电脑物理网卡上本来就有一个IP了,所以不用再生成这个VMnet0了。
至于为什么VMware是这样安排VMnet0,1,8的名字,而不是VMNet0,1,2 按照顺序安排。我推测,它并无其他实际意义。虚拟机的网卡可以添加几十个(没有详细确认,有一个数字是32个),网卡自由选择三种模式,对应到真实电脑上VMnet X网卡即可。
第三个容易混淆的问题:为什么NAT模式下,虚拟机是获取的192.168.137.0网段的IP。
前面提到虚拟机网卡采用桥接模式,对应VMnet0,虚拟机获取交换机上采用的IP地址,要么是自动获取或者手工设置。
虚拟机网卡采用主机模式,对应VMnet1, 虚拟机获取IP地址,在VMware 菜单栏 编辑选项,选择 虚拟网络编辑器中去手工设置即可。
虚拟机网卡采用NAT模式,对应VMnet8, 虚拟机获取IP地址,在VMware 菜单栏 编辑选项,选择 虚拟网络编辑器中去手工设置即可。但是这个模式下,有时候会ping外面的真实电脑不成功。但是如果网络地址段设置成192.168.137.0地址段能成功。
根据已知的资料,这是VMware的一个bug。没有官方的资料说明,我依据获取的信息进行推理说明。
在Window定义的NAT网络模式下,window自动定义了一个DHCP地址池192.168.137.0(通过windows注册表见windows定义的地址池)。如果这个windows 地址池和VMware地址的不一致,也就是会有两个DHCP服务器同时工作。这样会造成IP地址混乱,影响虚拟机网卡正常工作。
解决办法分两步:
第一步, VMware将VMnet8上的DHCP IP地址段改为192.168.137.0。
第二步, 真实电脑Windows将自己的物理网卡为共享上网方式,共享给VMnet8(如下图2,图3)。
参考链接:https://florianlr.wordpress.com/2009/07/09/5/