出家如初,成佛有余

无网络环境下Vmware Host主机与Guest虚拟机通信

Posted in Uncategorized by chuanliang on 2009/06/13

    需要在一台演示用的笔记本上安装演示系统,演示系统需要安装Oracle、Tomcat、Apache等应用。由于笔记本是HP较新的 TouchSmart tx2-1012,操作系统缺省是Vista Home Premium 版本,无法安装Oracle,换成Windows XP 包括触摸屏驱动在内的很多驱动都找不到。同时由于演示系统需要供非技术人员用,需要将演示系统做成相对傻瓜化的方式,要让他们记住从系统服务里启动一堆东西是很麻烦的事情。如果所有的都做成服务随系统自动启动,Vista系统已经足够缓慢了,再加上Oracle、Tomcat等更慢的让人崩溃。

    于是乎装个VMWARE倒是不错的方案,在虚拟机中装个符合演示系统需要的最简版本的Linux,将demo、Oracle、Tomcat、Apache等装到虚拟机环境中,所有的应用都做成随系统自动启动。平常不演示时候,不用启动VMWARE,演示时候再启动,这样能够较好平衡日常使用系统性能与傻瓜化使用的需要。

    只不过又遇到一个问题,平常做演示的时候,很多地方并不具备网络环境。怎样在无网络的环境下让Host与Guest直接能够相互通信呢?

    其实很简单,问题的关键在于理解Vmware的vmnet0、vmnet1、vmnet8。

1、vmnet0

    这是Vmware Bridged模式使用的Network Adapter。在Bridged模式下,Vmware实际上构建了一个也叫vmnet0的虚拟网桥,Host的物理网卡及Guest的虚拟网卡都连接到虚拟网桥的端口上。与sniffer的原理类似,Vmware通过将Host的物理网卡设置为混杂模式,连接在虚拟网桥上的Host和Guest遵循Ethernet的CSMA/CD 协议进行信道的争用和共享,这样Host的物理网卡就可以监听多个目标地址的包。

    由于Host和guest都处在同一个Bridged网络中,Host 的物理网卡就可以把目标地址为Guest虚拟机的数据包截获下来,通过VMware Bridge Protocol协议转发给Guest的虚拟网卡,达到了“桥接”的功能。

   由于此种模式只能在具有网络环境的情况下使用,不是我们讨论的重点。

vmnet0

2、vmnet1

    这是Vmware Host-Only模式使用的Network Adapter。在Host-Only模式下,Vmware实际上构建了一个也叫VMnet1的Virtual Network。

    VMnet1 Virtual Network的子网地址为:192.168.205.0,子网掩码为:255.255.255.0,网关地址为:192.168.205.2 。  

vmnet1 gateway

    Host通过“VMWare Virtual Ethernet Adapter for VMnet1”连接到虚拟网络。对于VMnet1网络Vmware提供了DHCP服务,这样Host与Guest都可以通过Vmware的DHCP服务器可以分配到192.168.205.0网段的ip地址。

    缺省情况下在host下VMware Network Adapter VMnet1属性中,vmnet1 的ip地址已经设置为192.168.205.1/255.255.255.0。

vmnet1

   Guest虚拟机的Linux在采用DHCP的情况下,eth0获得的ip地址为192.168.205.128,由于是Host-Only模式,因此缺省情况下没有gateway。

   因此在无网络环境的情况下,Host与Guest要相互通信,可以通过VMnet1的DHCP服务器给host主机的vmnet1 Network Adapter和Guest虚拟主机的Network Adapter分配的ip地址来相互通信。

3、vmnet8

    这是Vmware NAT模式使用的Network Adapter。在NAT模式下,Vmware实际上构建了一个叫VMnet8的Virtual Network。VMnet8 Virtual Network的子网地址为192.168.8.0,子网掩码为255.255.255.0 ,NAT网关地址为192.168.8.2。  

vmnet8 gateway

    Host通过“VMWare Virtual Ethernet Adapter for VMnet8”连接到虚拟网络。对于VMnet8网络Vmware提供了DHCP服务,这样Host与Guest虚拟机都可以通过Vmware的DHCP服务器可以分配到192.168.8.0网段的ip地址。

   在Host 网络链接的VMware Network Adapter VMnet8属性中,Host主机vmnet8的ip地址已经被缺省设置为192.168.8.1/255.255.255.0。

   在Guest虚拟机的Linux采用DHCP的情况下,Guest虚拟机的eth0获得的ip地址为192.168.8.130,gateway地址为192.168.8.2,实际上就是vmnet8的网关地址。当然也可以不使用DHCP,手工将虚拟机的eth0的ip地址配置为192.168.8.0网段的ip地址。

vmnet8

   因此在具有网络环境及无网络环境的情况下,host与虚拟机要相互通信,可以通过VMnet8的DHCP服务器给host主机的vmnet8 Network Adapter适配器和虚拟主机的Network Adapter分配的ip地址来相互通信。

  总结:

    在无网络环境下,可以采用vmnet1、vmnet8的ip地址来完成host主机与Guest虚拟机之间的通信。相比较而言,NAT模式在具有网络的条件下也能够正常使用,因此在无网络的环境下,采用NAT模式比Host-Only模式方便得多。

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s

%d 博主赞过: