原文出处:http://wangchunhai.blog.51cto.com/225186/381225服务器
VMware Workstation是一款很是不错的虚拟机软件,许多爱好者用VMware Workstation设计多种实现环境作测试。VMware Workstation的虚拟网络部分,功能很是的强大,但对于初学者来讲,稍显复杂。基于此,本文将深刻介绍VMware的虚拟网络,让读者深入理解VMware虚拟网络之间的关系,从而能够设计多种复杂的广域网、局域网的实验环境,知足读者的实验需求。因为VMware Server与VMware Workstation一体相乘,因此本文的内容也一样适用于VMware Server。同时,VMware Workstation的虚拟网络,也是VMware企业产品VMware ESX Server的基础,熟悉了VMware Workstation的虚拟网络后,对你们深刻学习、使用VMware Server也有必定的帮助做用。网络
VMware Workstation(或VMware Server)安装在物理计算机,这台计算机称做“主机”,假设这台主机有一块物理网卡,而且链接到网络的一台交换机中,此时,网络拓扑如图3-1所示。学习
图3-1 主机物理网络测试
【关键点】VMware Workstation与VMware Server,支持VMnet0~VMnet9共10块(虚拟)网卡,对于每一块虚拟网卡来讲(VMnet0~VMnet9),同一时刻只能选择一种网络属性:或者使用主机物理网卡,或使用虚拟网卡。操作系统
在VMware虚拟网络中,包括两种网络:一种是“仅主机网络”,另外一种是“NAT网络”。对于VMware Workstation(或VMware Server)主机来讲,能够有多块虚拟网卡具备“仅主机网络”特性,但同一时刻只能有1块虚拟网卡具备“NAT网络”属性。设计
在主机上安装VMware Workstation或VMware Server的时候,默认会安装3块虚拟网卡,这3块虚拟网卡的名称分别为VMnet0、VMnet一、VMnet8,其中VMnet0的网络属性为“物理网卡”,VMnet1与VMnet8的网络属性为“虚拟网卡”。在默认状况下,VMnet1虚拟网卡的定义是“仅主机虚拟网络”,VMnet8虚拟网卡的定义是“NAT网络”,同时,主机物理网卡被定义为“桥接网络”,主机物理网卡也能够称为VMnet0。3d
在默认状况下,VMware Workstation虚拟网络拓扑关系如图3-2所示。代理
图3-2 虚拟机网络拓扑blog
在图3-2中,有3个虚拟交换机、2块虚拟网卡、1块物理网卡、1个虚拟路由器,组成了默认虚拟网络的整个结构。当VMware Workstation(或VMware Server)安装的时候,会从192.168.x.0/24(在之前的某个版本中,也用过172.16.0.0/12的地址段,但很快放弃了)的地址中,随机选择2个地址段,并将每一个段的第1个地址分配给对应的虚拟网卡(VMnet1与VMnet8)使用。ip
在图3-2中, VMnet1使用了192.168.10.0/2四、VMnet8使用了192.168.80.0/24的地址段,这是我习惯使用的地址段,你能够根据本身的爱好与习惯设置。若是你想修改这些IP地址,在后文会有介绍。
在图3-2中,还有1个虚拟DHCP服务器没有标出,该虚拟DHCP服务器,用来为使用VMnet一、VMnet8(或其余)虚拟网卡(或者说链接到VMnet一、VMnet8虚拟交换机)的虚拟机自动分配IP地址、子网掩码、网关与DNS等参数。
在VMware Workstation中,每一个虚拟机最多能够支持10块虚拟网卡,这些虚拟网卡,能够(根据须要)链接到不一样的虚拟网络,例如图3-2中的VMnet一、VMnet8或VMnet0虚拟交换机。有两种状况能够选择虚拟网络,一种是在建立虚拟机的时候,另外一种是在建立虚拟机后,在“虚拟机设置”中修改虚拟网络属性。
(1)在建立虚拟机的时候,在“Network Type(网络属性)”页中,在“Network connection(网络链接)”选项组中,为当前虚拟机选择链接到的虚拟网络,如图3-3所示。
图3-3 网络属性
(2)在虚拟机建立完成后,修改“虚拟机设置”,也能够修改虚拟网络属性,如图3-4所示。
图3-4 修改虚拟机设置
不论是在建立虚拟机的时候,选择网络属性,仍是在“虚拟机设置”页中,每块虚拟网卡,都有3种选择,分别是VMnet0(桥接网络)、VMnet1(仅主机网络)与VMnet8(NAT网络)三种链接属性,还有一种是“不使用网络链接”,就是代表这块虚拟网卡,不链接到任何网络。下面分别介绍链接到VMnet一、VMnet八、VMnet0虚拟交换机时的网络属性。
【说明】(1)在VMware Workstation 6.0以后,新增长了“Team”功能,同时在“Team”中也增长了Team虚拟交换机。在Team中的虚拟机,除了可使用VMnet0、VMnet一、VMnet8等虚拟交换机外,还可使用Team中的虚拟交换机。
(2)VMware Workstation(或VMware Server),除了VMnet0、VMnet一、VMnet8虚拟交换机外,还能够建立(或添加)VMnet2~VMnet七、VMnet9等虚拟交换机,这些虚拟交换机的属性,能够在“仅主机网络”、“桥接网络”、“NAT网络”之间选择。
3.3 VMnet一、VMnet八、VMnet0虚拟网卡的关系
在VMware Workstation或VMware Server的虚拟机中,虚拟机之间、主机之间的网络关系能够参照图3-5所示的网络拓扑。
图3-5 虚拟机与主机网络拓扑
在图3-5中,虚拟机A十一、A十二、~、虚拟机A03等,是VMware Workstation(或VMware Server)建立的虚拟机。虚拟机A十一、A十二、A13使用VMnet1(仅主机网络)虚拟网卡,则在图3-5的网络拓扑中,“至关于”链接到VMnet1虚拟交换机;虚拟机A8一、A82使用VMnet8虚拟网卡(NAT网络,则至关于链接到VMnet8虚拟交换机);虚拟机A0一、A0二、A03使用VMnet0虚拟网卡(桥接网络,至关于链接到VMnet0虚拟交换机)。
物理主机B,表明与物理主机A属于同一局域网内的其余一台或多台计算机。这里面的“同一局域网”,表示能够是同一子网(VLAN)的计算机,也能够是不一样子网的计算机。
Internet计算机Z,表明Internet网络上的其余计算机或服务器,能够是一台或多台的计算机。
将图3-5的关系,画成网络拓扑的方式,如图3-6所示。
图3-6 简化后的网络拓扑
下面介绍各虚拟机之间与主机之间的网络关系。
当虚拟机选择使用VMnet1虚拟网卡时,表示这台虚拟机链接到VMnet1虚拟交换机。
VMnet1,官方定义“仅主机网络”,其默认的网络行为,只与主机或其余使用VMnet1虚拟网卡的虚拟机有网络链接。使用VMnet1虚拟网卡的虚拟机,不能访问与物理主机以外的其余计算机.
在图3-5(图3-6)中,虚拟机A十一、A十二、A13使用VMnet1虚拟网卡,代表链接到VMnet1虚拟交换机。在图3-5(图3-6)的网络拓扑中,虚拟机A十一、A十二、A1三、物理主机A之间能够互相通信。将图3-5(图3-6)中与VMnet1相关的计算机,简化成图3-7所示的拓扑。
图3-7 VMnet1虚拟网络拓扑图3-
深刻理解:“能够互相通信”,这句话表示,当A十一、A十二、A1三、A都链接到VMnet1虚拟交换机时,这4台计算机能够互相通信,但不必定能通信。为何呢?若是A十一、A十二、A1三、A没有设置同一子网的IP地址,这是不能互相通信(互相访问)的;或者虽然设置同一网段的地址,但A十一、A十二、A1三、A有防火墙,禁止其余计算机访问,这时也是不能通信的。
只有当A十一、A十二、A1三、A链接到同一个虚拟交换机,而且在网一网段(IP地址还不能冲突)、而且没有防火墙(或者有防火墙,但容许其余计算机访问)时,才有可能通信。
小实验:在VMware Workstation中建立1台虚拟机,VMnet1虚拟网卡,设置与主机VMnet1相同网段的IP地址,或者在虚拟机中设置“自动得到IP地址”,关闭主机与虚拟机的防火墙,尝试用“网上邻居”或使用ping命令,检查这个虚拟机与主机可否互相通信。
还要注意物理主机A,在A上有三块网卡(1块物理网卡、2块虚拟网卡),分别是VMnet一、VMnet8和物理网络(称为VMnet0),若是A十一、A十二、A13是192.168.10.0/24网段的计算机,但VMnet1不是192.168.10.0/24网段的,但你在VMnet8或VMnet0设置的是与A十一、A十二、A13同一网段的地址(例如192.168.10.0/24)时,A与A11(或A十二、A13)也是不能通信的。
另外,还须要说明,虽然在“虚拟网络设置”中,设置VMnet1虚拟网段使用192.168.10.0/24网段,但在使用中,当A十一、A十二、A13链接到同一个虚拟交换机时,只要A十一、A十二、A1三、物理机A的VMnet1虚拟网卡,设置同一网段的地址(能够是192.168.10.0/24,也能够是其余网段,但最好不要与VMnet八、VMnet0网段冲突),A十一、A十二、A1三、A就能够互相通信。
使用VMnet1虚拟网卡的计算机,不能访问外网,外网也不能访问VMnet1虚拟网卡的计算机。在图3-5(图3-6)的网络中,虚拟机A十一、A十二、A13与B、Z没有网络关系,它们不能互相访问。
若是虚拟机使用“桥接方式”,即VMnet0,则虚拟机至关于主机网络中的一台计算机,虚拟机若是选择VMnet0(或桥接网络),则经过“VMnet0虚拟交换机”链接到主机所属网络,这时与主机“VMnet0虚拟网卡”是否设置IP地址无关。
在图3-5(图3-6)的网络拓扑中能够看到,若是虚拟机A0一、A0二、A03使用VMnet0虚拟交换机,无论主机VMnet0虚拟网卡,是否设置了正确的IP地址、子网掩码与网关,只要A0一、A0二、A03设置了正确的IP地址、子网掩码、网关等参数,是能够访问主机以外网络上的其余计算机(例如B),以及Internet网络上的其余计算机(例如Z)。VMnet0虚拟机、虚拟网络拓扑如图3-8所示。
图3-8 VMnet0虚拟网络
其中B及Z,便可以是物理计算机,能够也是使用了VMnet0虚拟网卡的虚拟机。在图3-8中,使用VMnet0的虚拟机(A0一、A0二、A03)与物理主机A、B能够互相访问。
若是虚拟机使用VMnet8,则虚拟机能够经过主机网络,单向(从虚拟机到主机、外网)访问物理主机以外的网络,而主机之外的网络不能访问使用VMnet8的虚拟机。但这个的前提是,主机要能访问外网(或网络上的其余计算机),若是主机不能访问外网,则配置为VMnet8虚拟网卡的虚拟机,也不能访问外网。
将图3-5(图3-6)中与VMnet8的虚拟网络与虚拟机,简化成图3-9的方式。
图3-9 VMnet8虚拟网络
主机A的VMnet8虚拟网卡,链接到VMnet8虚拟交换机,VMnet8虚拟交换机链接到“虚拟路由器”,“虚拟路由器”再链接到“VMnet0虚拟网卡(也即主机物理网卡)”,并经过“VMnet0虚拟网卡”链接到“VMnet0虚拟交换机”,“VMnet0虚拟交换机”链接到主机物理网络。这也就代表,链接到“VMnet8虚拟交换机”的计算机(虚拟机或主机),须要经过“虚拟路由器”→“VMnet0虚拟网卡”→“VMnet0虚拟交换机”的方向链接到主机物理网络。
虚拟机A8一、A82为物理机A上的链接到VMnet8虚拟交换机的虚拟机。则A8一、A82能够访问A(双向互访),能够经过“虚拟路由器”单向访问虚拟机A0一、A0二、A03,并经过A单向访问A所属的网络上的其余计算机B,并能够单向访问Internet网络上的其余计算机Z。但A所属网络上的其余计算机及Internet网络上的其余计算机(默认状况下)不能访问A8一、A82,因此说,这里的访问是“单向访问”。
上节所说的“默认状况”,是指在虚拟机上,启用NAT与DHCP服务而且虚拟机的IP地址是“自动得到IP地址与DNS状况下”,而且主机物理网卡,网络参数(IP地址、子网掩码、网关、DNS)设置正确的状况下。
在启用NAT与DHCP服务的状况下,虚拟机会自动得到合适的IP地址、子网掩码、网关与DNS。
若是虚拟机A8一、A82没有设置为“自动得到IP地址与DNS地址”,但“手动”设置的IP地址、子网掩码和网关地址、DNS地址,与DHCP服务器分配的类似时,也是能够访问外网的。例如,在图3-5(图3-6)中,VMnet8虚拟交换机使用的是192.168.80.0/24网段,只要虚拟机设置了192.168.80.3~192.168.80.253的地址、子网掩码为255.255.255.0、网关地址为192.168.80.2,就能够访问A及网络上的其余主机。
若是物理网络上的其余计算机(例如B、Z),想要访问A8一、A82,则应该经过“VMnet0虚拟交换机”→“VMnet0虚拟网卡”→“虚拟路由器”→“VMnet8虚拟交换机”到A8一、A82,但“虚拟路由器”默认配置,是禁止“外网”访问“内网”,在这里,VMnet0虚拟网卡及VMnet0虚拟交换机所属的网络,属性“外网”,而“VMnet8虚拟交换机”所属网络,属于内网。
若是配置了这个“虚拟路由器”,例如,使用“端口映射”状况, Internet网络上的其余计算机,也是能够访问虚拟机A8一、A82的。
前面介绍了使用同一种虚拟网卡的虚拟机与主机之间的关系,那么,在同一个物理主机中,使用不一样虚拟网卡的虚拟机,它们之间是什么关系呢?
图3-10 虚拟网络拓扑图3-
从图3-10中能够看到,链接到VMnet1的虚拟机(A十一、A十二、A13),与链接到VMnet8的虚拟机以及链接到VMnet0的虚拟机(A0一、A0二、A03),默认状况下,是不能互相访问的。
若是它们之间要想互相访问,必须在物理主机A上,启用默认路由或者代理服务器功能,才能够互相(或者单向)访问。例如,物理主机能够安装Windows Server 2003(或Windows 2000 Server、Windows Server 2008),在该计算机上,启用“路由和远程访问”功能,而且将该计算机作成一个“路由器”,这时候,各虚拟机之间,能够互相访问。
若是物理主机安装的是Windows 2000、XP等操做系统,能够启用“Internet链接共享功能”,让VMnet1单向访问VMnet8或VMnet0,反之亦然。例如,可让VMnet8单向访问VMnet1等,这都是很容易的事情。
VMnet8在默认状况下,不能访问VMnet1,能够经过虚拟路由器,单向访问VMnet0。若是VMnet8想要访问VMnet1,则像VMnet1访问VMnet8同样,在主机A上启用“路由器”或“Internet链接共享服务”。
3 VMnet0默认不能访问VMnet八、VMnet1
VMnet0默认状况下,不能访问VMnet1与VMnet8。若是要想访问VMnet8,除了启用“路由器”或“Internet链接共享外”,还能够经过配置“VMnet8”到“VMnet0”之间的“虚拟路由器”,进行端口映射的方式,访问VMnet8中的虚拟机。