VMWARE虚拟网解析
所谓虚拟计算机(简称虚拟机),实际上就是一种应用软件模拟出来的计算机,目前流行的虚拟机软件有VMware和Vinual PC,它们都能在Windows系统上虚拟出多个计算机,用于安装Linux、0S/2、FreeBSD等其他操作系统。VMware实际上也只是一种应用软件,其特别之处在于,由它创建的虚拟机与真实的计算机几乎一模一样,不但有自己的虚拟化了的CPU、内存、硬盘、光驱,甚至还有自己的BIOS。在这个虚拟机上,可以安装Windows、Linux等真实的操作系统,及各种应用程序。根据目前的发展来看,相比而言,VMware不论是在多操作系统的支持上,还是在执行效率上,都比Virtual PC明显高出一筹,是当今的虚拟机主流。本文即分析VMWARE的虚拟网段。
在物理主机(以下简称host主机)上安装VMWARE程序,待安装结束之后,host主机上缺省会增加两块虚拟网卡。例如,使用ipeonfig查看,如图1所示。
仔细观察一下,发现虚拟网卡的命名很奇怪。其中一块称为VMware Network Adapter VMnetl,很正常;另外一块就比较奇怪,称为VMwareNetwork Adapter VMnet8,而没有按顺序把它起名为VMware Network Adapter VMnet2。查阅VMWARE的说明,这个VMnet8不同于VMnetl,是一个特殊的网卡,它具有NAT连接实际的物理网络的功能;而VMnetl在VMWARE文档里被称为host only网卡,意思是它所连接的网段不能和实际的网络联通,而只能和物理主机联系。而在虚拟机里能和实际的物理网络联通的网段是VMnet0,称为桥接方式连接,但是你在host主机里又找不到VMnet0J盘块网卡。
在VMWARE的网络管理界面里,其实还有更多的网段罗列着,只是未被缺省启用,它们的名称分别是VMnet2,VMnet3,VMnet4,VMnet5,VMnet6,VMnet7,VMnet9。
如此看来,VMWARE的网络非常复杂,很多用户难以使用,会用的往往也只使用了一块网卡,不善于同时使用多块网卡。其实,VMWARE这样的设计是非常合理的,具有非常强大的功能。我们在下文仔细阐述:
在物理主机(以下简称host主机)上安装VMWARE程序,待安装结束之后,host主机上缺省会增加两块虚拟网卡。例如,使用ipeonfig查看,如图1所示。
仔细观察一下,发现虚拟网卡的命名很奇怪。其中一块称为VMware Network Adapter VMnetl,很正常;另外一块就比较奇怪,称为VMwareNetwork Adapter VMnet8,而没有按顺序把它起名为VMware Network Adapter VMnet2。查阅VMWARE的说明,这个VMnet8不同于VMnetl,是一个特殊的网卡,它具有NAT连接实际的物理网络的功能;而VMnetl在VMWARE文档里被称为host only网卡,意思是它所连接的网段不能和实际的网络联通,而只能和物理主机联系。而在虚拟机里能和实际的物理网络联通的网段是VMnet0,称为桥接方式连接,但是你在host主机里又找不到VMnet0J盘块网卡。
在VMWARE的网络管理界面里,其实还有更多的网段罗列着,只是未被缺省启用,它们的名称分别是VMnet2,VMnet3,VMnet4,VMnet5,VMnet6,VMnet7,VMnet9。
如此看来,VMWARE的网络非常复杂,很多用户难以使用,会用的往往也只使用了一块网卡,不善于同时使用多块网卡。其实,VMWARE这样的设计是非常合理的,具有非常强大的功能。我们在下文仔细阐述:
VMWARE拥有三种属性的网卡,分别是bridge网卡,host only网卡,和NAT网卡。Hostonly网卡数量最多,VMnetl,VMnet2,VMnet3,VMnet4,VMnet5,VMnet6,VMnet7,VMnet9都是hostonly网卡;而VMnet8是NAT网卡;VMnet0是bridge网卡。 先说bridge网卡,在图1所示的ipeonfig查询里,VMnet0消失在用户的视野中,但其实并不神秘,它就是host主机的物理网卡,虚拟机复用了该物理网卡,在虚拟机里可以很明显的看到这一点,我们在桥接虚拟机里用ipconfig/all查询,详见图2,图2中上方为host主机的ipconfig结果,下方为桥接虚拟机ipconfig结果。即可发现桥接虚拟机的网卡MAC地址和host主机的网卡MAC地址是完全相同的,所以称VMnet0为bridge网卡。因为虚拟机复用该网卡,其实质好像是host主机的物理网卡和虚拟机的VMnet0性质的网卡插在同一个物理网段的交换机上,即桥接。每一个桥接虚拟机在网络上的地位与host是对等的。你可以认为每一个桥接虚拟机都是一个网络上的物理机。所以说虚拟机通过该网卡,直接和物理网络联系在一起。简而言之,VMnet0网卡和host主机网卡就是连接了VMWARE虚拟交换机上的两个端13的接口网卡。因为桥接虚拟机和host主机在网络上处于共同的物理网段上,它的网段和host主机的物理网卡网段是一致的,该虚拟机的网卡地址应该和物理网段相适应,IP地址不应该和该网段上的任何主机地址重复。
图1
图1
图2
再说host only网卡,Host only网卡数量众多,如果缺省只启用VMnetl,由图1可知,对于host主机来说,它拥有了三块网卡,我们对每个网卡接口赋予IP地址和掩码,则该 host主机连接了三个网段。如图1所示,这三个网段分别是 192.168.83.0/24,192.168.200.0124,192.168.128.0/24。既然host only的网卡是连接在另外一个网络上,当然和物理网卡所在网络是缺省不联通的.这应该就是host only的名字由来。当然,也不是说绝对不能联通,在后文叙述的应用里,我们可以在host主机上启用路由服务,连通虚拟网络和物理网络。
最后讨论NAT网卡,NAT网卡其实就是host only网卡再附加了NAT功能。其特别之处在于VMWARE使用了一个特别的手段,如图1所示,在host主机上缺省定义了一个IP地址 192.168.128.1,(注:VMWARE会随机选择网段,本例中VMWARE选择了192.168.128.0网段),在NAT虚拟机的NAT虚拟网卡上缺省定义的IP地址为192.168.128.2(当然你也可以手工改掉此地址),此.192.168.128.2的IP地址对于 NAT网卡来说是连接的内网段的IP网关地址,而非host主机上的192.168.128.1;这个手段很容易使人困惑,也许是VMWARE在实现上的一个不得已的技术实现手段。
不管如何,我们只要记得如此使用就可以了。在此例中,192.168.128.0网段上的虚拟机都可以将网关设定为192.168.128.2,然后 VMARE会将所有发送到此网关地址的数据包作NAT地址转换,转换成host主机物理网段上的IP地址,以NAT方式和外界网络连通。
WINDOWS操作系统下,缺省是不对数据包做forwarding的,所以在host only或NAT模式下各个网卡连接的网段相互间是隔离的,即物理网卡和虚拟网卡间是相互隔离的,在虚拟网卡连接的网段做实验,在不作路由的情况下是不会影响到真实的物理网段的。
再说host only网卡,Host only网卡数量众多,如果缺省只启用VMnetl,由图1可知,对于host主机来说,它拥有了三块网卡,我们对每个网卡接口赋予IP地址和掩码,则该 host主机连接了三个网段。如图1所示,这三个网段分别是 192.168.83.0/24,192.168.200.0124,192.168.128.0/24。既然host only的网卡是连接在另外一个网络上,当然和物理网卡所在网络是缺省不联通的.这应该就是host only的名字由来。当然,也不是说绝对不能联通,在后文叙述的应用里,我们可以在host主机上启用路由服务,连通虚拟网络和物理网络。
最后讨论NAT网卡,NAT网卡其实就是host only网卡再附加了NAT功能。其特别之处在于VMWARE使用了一个特别的手段,如图1所示,在host主机上缺省定义了一个IP地址 192.168.128.1,(注:VMWARE会随机选择网段,本例中VMWARE选择了192.168.128.0网段),在NAT虚拟机的NAT虚拟网卡上缺省定义的IP地址为192.168.128.2(当然你也可以手工改掉此地址),此.192.168.128.2的IP地址对于 NAT网卡来说是连接的内网段的IP网关地址,而非host主机上的192.168.128.1;这个手段很容易使人困惑,也许是VMWARE在实现上的一个不得已的技术实现手段。
不管如何,我们只要记得如此使用就可以了。在此例中,192.168.128.0网段上的虚拟机都可以将网关设定为192.168.128.2,然后 VMARE会将所有发送到此网关地址的数据包作NAT地址转换,转换成host主机物理网段上的IP地址,以NAT方式和外界网络连通。
WINDOWS操作系统下,缺省是不对数据包做forwarding的,所以在host only或NAT模式下各个网卡连接的网段相互间是隔离的,即物理网卡和虚拟网卡间是相互隔离的,在虚拟网卡连接的网段做实验,在不作路由的情况下是不会影响到真实的物理网段的。
明白了VMWARE网段的原理,我们就很容易在虚拟机上作各种网络实验,各种需要很多设备的网络实验,现在都可以利用vmware虚拟机完成,而仅仅需要一台pc机。当然,pc机的内存需要量比较高。举例来说,host主机运行Win2003_I]E务器操作系统,推荐内存需求量至少为256M,在 host主机上运行两台VMWARE虚拟机,虚拟机操作系统为Win XP,每台至少需求256M内存,那么三台机器内存累计为712M,对Pc机的内存需求量即要求大于712M,这样系统运行起来就比较顺畅。
以做DHCP中继实验为例,常规的DHCP实验会在网段内产生DHCP广播包,一个网段同时只允许一个人做此实验,而使用了虚拟机网段,就解决了这个问题。我们可以使用一个host only虚拟网段安置DHcP服务器,在此服务器上建立超级作用域,容纳多个DHCP作用域,以host主机的win2003服务器系统的路由服务来做 DHCP中继,在另外的host only虚拟网段安置客户机,这样,多个host only虚拟网段的客户机都可以在各自的虚拟网段上提出DHCP请求,host主机的操作系统中继此类请求,并转发到DHCP服务器所在的虚拟网段,由 DHCP服务器分配地址。而真正的物理网段上没有这些DHCP广播包的干扰,真正做到实验工作两不误。
在新版本的VMWARE里,又增添了一个新功能,TEAM,即分组功能。可以在VMWARE里新加组,在组里添加各种虚拟机,可以是新建的虚拟机,也可以是已经存在的虚拟机,也可以是虚拟机的克隆。在一个组里,可以添加自己的组网段,相当于前文所述的host only网段。这样,做大型网络实验的时候,你就可以不受限于VMWARE缺省提供的十个网段,自由的运用各种虚拟网段,其虚拟交换机数量几乎无限制,只受限于你的物理主机性能。综合运用多台物理主机和虚拟机,配合物理交换机、VMWARE虚拟交换机,绝大多数的网络实验都可以轻松完成。
以做DHCP中继实验为例,常规的DHCP实验会在网段内产生DHCP广播包,一个网段同时只允许一个人做此实验,而使用了虚拟机网段,就解决了这个问题。我们可以使用一个host only虚拟网段安置DHcP服务器,在此服务器上建立超级作用域,容纳多个DHCP作用域,以host主机的win2003服务器系统的路由服务来做 DHCP中继,在另外的host only虚拟网段安置客户机,这样,多个host only虚拟网段的客户机都可以在各自的虚拟网段上提出DHCP请求,host主机的操作系统中继此类请求,并转发到DHCP服务器所在的虚拟网段,由 DHCP服务器分配地址。而真正的物理网段上没有这些DHCP广播包的干扰,真正做到实验工作两不误。
在新版本的VMWARE里,又增添了一个新功能,TEAM,即分组功能。可以在VMWARE里新加组,在组里添加各种虚拟机,可以是新建的虚拟机,也可以是已经存在的虚拟机,也可以是虚拟机的克隆。在一个组里,可以添加自己的组网段,相当于前文所述的host only网段。这样,做大型网络实验的时候,你就可以不受限于VMWARE缺省提供的十个网段,自由的运用各种虚拟网段,其虚拟交换机数量几乎无限制,只受限于你的物理主机性能。综合运用多台物理主机和虚拟机,配合物理交换机、VMWARE虚拟交换机,绝大多数的网络实验都可以轻松完成。