vmware workstation是广泛使用的一个桌面级虚拟化软件。可以实现在windows的宿主机上虚拟各种x86系统,windows,Linux,Solaris,freeBSD,甚至是OSX。

  很多SAP顾问也采用vmware workstation搭建自己的测试环境。由于很多SAP顾问本身不是basis出身,或者对vmware的网络结构不是很了解,经常会见到有网友问为什么连不上虚拟机里面的应用之类的问题,故结合自身对vmware的理解,整理了这篇博文,以供参考。

  众所周知的是,vmware workStation提供了bridged,NAT,host-only 3种网络接入的方式,并且会生成vmnet8,vmnet1两张虚拟网卡。这3种接入方式几乎能满足各种复杂的业务需求。具体每种接入方式简介如下:
   1.bridged:翻译成中文就是桥接。是最简单的一种入网方式,在这种入网方式的情况下,相当于在虚拟机和物理机之间加入了一个交换机(宿主机通过服务实现交换机的功能)直接将虚拟机接入物理网络,如果物理网络本身可以无限制接入互联网,那么虚拟机也可以直接联网,如果需要拨号等才能入网,那么虚拟机也必须拨号后才能连入互联网。虚拟机在局域网内所处的地位跟宿主机所在的局域网内的其他机器并无不同。其他机器能直接通过虚拟机的IP访问虚拟机,跟访问局域网内的其他机器一模一样。正因如此,所以采用桥接入网的虚拟机,IP的网段会跟宿主机相同。如果宿主机经常移动到不同的地方,并且网段不同,那么虚拟机内的IP如果是DHCP,那么会自动获取到新网段的IP,如果是静态IP那么需要手动更改为跟宿主机一样的网段才能正常使用。宿主机也才能连接到虚拟机。在多网卡的机器上,可以选择桥接的网卡,可以通过这个功能实现虚拟机通过有线接入一个网段,而宿主机使用无线接入另外一个网络,互不干扰。

  2.NAT:NAT的接入方式说得直白一点,就相当于在虚拟机和物理机之间接入了一个路由器。所以虚拟机的网段跟宿主机的物理网段是不同的,外部也无法感知虚拟机的存在,更无法通过虚拟机的IP直接去访问虚拟机。采用NAT方式入网,那么物理宿主机的入网方式是什么,只要宿主机能上网,能访问的机器,虚拟机均可以直接访问,但是其他机器检测到客户端IP将还是宿主机的IP(跟真正采用路由器入网,完全相同)。宿主机可以通过vmnet8跟虚拟机通信,可以通过vmnet8网卡,使用虚拟机的IP跟虚拟机直接相连。外部机器如果需要访问nat模式入网的虚拟机中的服务,可以通过端口映射的方式实现。端口映射的原理跟真实路由器的原理并无不同。端口映射以后,可以通过访问宿主机IP的指定端口而访问到虚拟机内的服务。NAT接入方式不随着宿主机物理网段的改变而改变,对于宿主机需要经常移动,并且需要接入各种物理网络的情况下,尤其适用,是我目前使用最多的入网方式之一。NAT类型的入网方式,只能配置一个。

  3.Host-only:host-only类型的入网方式其实相当于在物理机和虚拟机之间接入了一个不带路由功能的路由器。虚拟机也会获取到独立的网段,虚拟机内无法访问外部的网络和机器,外部机器也无法访问虚拟机内的任何应用和服务。宿主机可以通过vmware1来跟虚拟机通信。采用同一个host-only网卡的虚拟机之间可以正常通信。host-only网卡最多可以配置8个。

3种入网方式的适用场景:

1.bridged:适用于想快速入网,局域网内没有限制网卡的混杂模式(采用桥接入网的方式,宿主机的网卡会处于混杂模式来获取IP给虚拟机使用,如果物理网内有限制,可能无法正常工作),且宿主机的网络几乎不怎么变化的情况下。由于采用桥接方式入网,虚拟机跟局域网内的所有机器都处于对等地位,那么其他机器可以很容易的访问虚拟机的各种服务,如SAP IDES,和HANA等。使用bridged入网,还需要注意不能跟局域网内的现有机器发生IP冲突,否则都可能无法正常使用。

2.NAT:适用于宿主机经常接入不同网络,虚拟机内的服务需要使用固定IP的情况。例如SAP的各种虚拟机,均推荐采用NAT入网,外部机器可以通过端口映射的方式来访问虚拟机内的SAP和HANA服务等。

3.Host-only:适用于虚拟机内的网络需要完全独立的情况下,例如在虚拟机内测试病毒,要防止外部感染;做双机测试时的心跳网络等都推荐采用host-only的方式。

问题答疑:

  1.虚拟网卡vmnet8,vmnet1能否禁用和修改IP
   答:这两个虚拟网卡分别是nat和host-only情况下,宿主机跟虚拟机之间通信用的,本身禁用掉,并不会影响到虚拟机的运行,但是宿主机将无法通过网络的方式去访问虚拟机。如果是NAT,禁用掉vmnet8后,虚拟机本身还是可以访问外网和局域网内的其他机器的。另外一个广泛使用的虚拟机软件Vbox在2.0版本之前,nat模式是没有虚拟网卡的。在对双网卡有限制(例如校园拨号的客户端会检查双网卡)的网内,可以通过禁用虚拟网卡的方式来正常使用虚拟机。

  2.怎么连通虚拟机和宿主机,并且设置静态IP

  答:采用NAT或者桥接的方式,虚拟机内通过DHCP获取IP,禁用宿主机和虚拟机的防火墙,然后通过网络测试虚拟机跟宿主机是否通畅。等网络通了以后再改成静态IP。通过vmware的virtual network Editor维护nat和host-only的网段,严禁私自修改vmnet8和vmnet1这两个虚拟网卡的IP。

3.从别人那里copy的虚拟机如何能快速入网

  答:启动虚拟机确认别人之前给虚拟机配置的虚拟IP的具体IP地址和网段,通过virtual network editor维护nat的网段为虚拟机内配置的网段,修改虚拟机的入网方式为nat,测试网络是否通。如果不通,记录下虚拟机内本身设置的IP,修改网络模式为DHCP以后看获取到的IP是否通,然后将静态IP再设置回去。

总结:

     首先感谢很久很久以前在vmsky上看到的那份vmware网络模式释疑的那我作者,虽然已经久远得不记得文档的名字和作者的名字了,但是正是因为你的解释,才彻底让我清楚了各种网络模式的区别。

     其次对于虚拟机的使用还有一个小小建议就是,永远不要把虚拟机当成虚拟机来看,虚拟机软件仅仅是给我们提供机器的一种手段而已,跟物理机其实并无太大不同,尤其很多基础理论上根本就是一模一样的。在没有理清楚一些基础理论之前,最好不要使用虚拟机提供的特殊功能,例如做双机的时候,共享存储尽量不要一来就使用vmware提供的共享存储功能,采用iscsi等通用技术,将不会局限你的思维,当你最终理解以后,则可以任意使用。

     最后个人能力有限,出错之处敬请谅解,本文原创总结,心血之作,可以转载,但请保留出处,希望能对所有看到这个文章的人都有所帮助。