理解VMware的3种网络模型.docx
《理解VMware的3种网络模型.docx》由会员分享,可在线阅读,更多相关《理解VMware的3种网络模型.docx(14页珍藏版)》请在冰豆网上搜索。
理解VMware的3种网络模型
理解VMware的3种网络模型
很多朋友都曾问到关于Guest和Host互联,其实这并不是一件困难的事情,只要能够理解VMware的网
络模型即可,今天结合着我的虚拟机,来详细介绍一下VMware的3种网络结构
在说到VMware的网络模型之前,先说一下VMware的几个虚拟设备:
■VMnet0:
这是VMware用于虚拟桥接网络下的虚拟交换机;
■VMnet1:
这是VMware用于虚拟Host-Only网络下的虚拟交换机;
■VMnet8:
这是VMware用于虚拟NAT网络下的虚拟交换机;
■VMwareNetworkAdapterVMnet1:
这是Host用于与Host-Only虚拟网络进行通信的虚拟网卡;
■VMwareNetworkAdapterVMnet8:
这是Host用于与NAT虚拟网络进行通信的虚拟网卡;
■关于桥接网络:
拓扑图:
Host的物理网卡和Guest的网卡在VMnet0交换机上通过虚拟网桥进行桥接,这也就是说,我的物理网卡和我的Guest的虚拟网卡(注:
这个虚拟网卡不等于VMwareNetworkAdapterVMnet1或者VMwareNetworkAdapterVMnet8)处于同等地位,此时的Guest就好像我的Host所在的一个网段上的另外一台机器。
打个比方来说:
我的Host的物理网卡配置如下:
IP地址为手工指定方式,网关为192.168.0.1,那么我的Guest就应该和我的Host处于同一个网段,它的配置可为:
同样,IP地址也为手工指定方式,网关也为192.168.0.1,这样的话,IP地址为192.168.0.2的Host和IP地址为
192.168.0.158的Guest就可以互通了:
当然,Guest所配置的IP地址一定要在192.168.0网段没有被占用,而且我的网络管理员允许我来使用这个IP地址。
如果在192.168.0网段,存在DHCP服务器,那么Host和Guest都可以把IP地址获取方式设置为DHCP方式。
VMware中对于Bridged网络的定义(引用自VMwareGSXServerUser’sManual):
Bridgednetworkingconnectsavirtualmachinetoanetworkusingthehostcomputer'sEthernetadapter.
BridgednetworkingissetupautomaticallyifyouselectUsebridgednetworkingintheNewVirtualMachineWizardorifyouselecttheTypicalsetuppath.ThisselectionisavailableonaLinuxhostonlyifyouenablethebridgednetworkingoptionwhenyouinstallGSXServer.
IfyourhostcomputerisonanEthernetnetwork,bridgednetworkingisoftentheeasiestwaytogiveyourvirtualmachineaccesstothatnetwork.OnaWindowshost,youcanusebridgednetworkingtoconnecttoeitherawiredorawirelessnetwork.OnaLinuxhost,youcanusebridgednetworkingtoconnecttoawirednetwork.
Ifyouusebridgednetworking,yourvirtualmachineneedstohaveitsownidentityonthenetwork.Forexample,onaTCP/IPnetwork,thevirtualmachineneedsitsownIPaddress.YournetworkadministratorcantellyouwhetherIPaddressesareavailableforyourvirtualmachineandwhatnetworkingsettingsyoushoulduseintheguestoperatingsystem.Generally,yourguestoperatingsystemmayacquireanIPaddressandothernetworkdetailsautomaticallyfromaDHCPserver,oryoumayneedtosettheIPaddressandotherdetailsmanuallyintheguestoperatingsystem.
Ifyouusebridgednetworking,thevirtualmachineisafullparticipantinthenetwork.Ithasaccesstoothermachinesonthenetworkandcanbecontactedbyothermachinesonthenetworkasifitwereaphysicalcomputeronthenetwork.
Beawarethatifthehostcomputerissetuptobootmultipleoperatingsystemsandyourunoneormoreoftheminvirtualmachines,youneedtoconfigureeachoperatingsystemwithauniquenetworkaddress.
Peoplewhobootmultipleoperatingsystemsoftenassignallsystemsthesameaddress,sincetheyassumeonlyoneoperatingsystemwillrunatatime.Ifyouuseoneormoreoftheoperatingsystemsinavirtualmachine,thisassumptionisnolongertrue.
IfyoumakesomeotherselectionintheNewVirtualMachineWizardandlaterdecideyouwanttousebridgednetworking,youcanmakethatchangeinthevirtualmachinesettingseditor(VM>Settings).Fordetails,seeChangingtheNetworkingConfiguration.
■关于NAT网络
拓扑图:
在NAT网络中,会使用到VMnet8虚拟交换机,Host上的VMwareNetworkAdapterVMnet8虚拟网卡被连接到VMnet8交换机上,来与Guest进行通信,但是VMwareNetworkAdapterVMnet8虚拟网卡仅仅是用于和VMnet8网段通信用的,它并不为VMnet8网段提供路由功能,处于虚拟NAT网络下的Guest是使用虚拟的NAT服务器来连接到Internet的。
VMware功能非常强大,在NAT网络下,我们甚至可使用PortForwarding功能,来把Host的某一个TCP或者UDP端口映射到Guest上!
如图:
我的VMwareNetworkAdapterVMnet8虚拟网卡的IP地址配置如下:
IP地址是手工指定的,但却不是由我来指定的,而是VMware在安装的时候自动随机指定的一个IP地址(注意,不要修改VMwareNetworkAdapterVMnet8虚拟网卡所在的网络ID,这样的话会造成Host和Guest无法通信)那么,我的NAT网络的虚拟机的IP地址也为192.168.85.0这个网段,其IP地址配置为:
可以看到,它的IP地址分是由DHCP服务器分配的的,DHCP服务器的地址为192.168.85.254,那为什么会有DHCP服务器存在呢?
这是因为VMware安装之后,会有一台虚拟的DHCP服务器为虚拟机来分配IP地址,这个DHCP服务器,你可以ping通它,但是无法进行访问,因为实际上它就是一个系统服务而已,在开始——>运行中输入services.msc,就会看到这个服务:
此时可以看到,Guest的网卡和Host上的VMwareNetworkAdapterVMnet8虚拟网卡拥有相同的网络ID,这样的话,在Guest中,ping通Host就没有问题了:
有一点需要说明的是,在NAT方式的网络中,Guest的Gateway都指向了192.168.X.2,在本例中,X=85,也就是那个虚拟的NAT服务器的地址,这个服务器是一台虚拟的NAT服务器,可以ping通它,但是却无法访问到这台虚拟机,因为这同样也是一个系统服务:
这时候,我的Guest和Host就可以实现互访了,并且如果我的Host此时已经连接到了Internet,那么我的Guest也就可以连上Internet了。
那么Host上的VMwareNetworkAdapterVMnet8虚拟网卡在这里扮演了一个什么角色呢?
它仅仅是为Host和NAT虚拟网络提供了一个通信接口,所以,即便在Host中Disable掉这块虚拟网卡,Guest仍然是可以上网的,只是Host无法再访问VMnet8网段,也即是无法访问Guest而已。
VMware中对于NAT网络的定义(引用自VMwareGSXServerUser’sManual):
NATgivesavirtualmachineaccesstonetworkresourcesusingthehostcomputer'sIPaddress.
AnetworkaddresstranslationconnectionissetupautomaticallyifyoufollowtheCustompathintheNewVirtualMachineWizardandselectUsenetworkaddresstranslation.
IfyouwanttoconnecttotheInternetorotherTCP/IPnetworkusingthehostcomputer'sdial-upnetworkingorbroadbandconnectionandyouarenotabletogiveyourvirtualmachineanIPaddressontheexternalnetwork,NATisoftentheeasiestwaytogiveyourvirtualmachineaccesstothatnetwork.
NATalsoallowsyoutoconnecttoaTCP/IPnetworkusingaTokenRingadapteronthehostcomputer.
IfyouuseNAT,yourvirtualmachinedoesnothaveitsownIPaddressontheexternalnetwork.Instead,aseparateprivatenetworkissetuponthehostcomputer.YourvirtualmachinegetsanaddressonthatnetworkfromtheVMwarevirtualDHCPserver.TheVMwareNATdevicepassesnetworkdatabetweenone
ormorevirtualmachinesandtheexternalnetwork.Itidentifiesincomingdatapacketsintendedforeachvirtualmachineandsendsthemtothecorrectdestination.
IfyouselectNAT,thevirtualmachinecanusemanystandardTCP/IPprotocolstoconnecttoothermachinesontheexternalnetwork.Forexample,youcanuseHTTPtobrowseWebsites,FTPtotransferfilesandTelnettologontoothercomputers.Inthedefaultconfiguration,computersontheexternalnetwork
cannotinitiateconnectionstothevirtualmachine.Thatmeans,forexample,thatthedefaultconfigurationdoesnotletyouusethevirtualmachineasaWebservertosendWebpagestocomputersontheexternalnetwork.
IfyoumakesomeotherselectionintheNewVirtualMachineWizardandlaterdecideyouwanttouseNAT,youcanmakethatchangeinthevirtualmachinesettingseditor(VM>Settings).Fordetails,seeChangingtheNetworkingConfiguration.
ForamorethoroughdiscussionofNAT,seeUnderstandingNAT.
■关于Host-Only网络:
拓扑图:
在Host-Only网络中,Host-Only网络被用来设计成一个与外界隔绝的(isolated)网络,其实Host-Only网络和NAT网络非常相似,唯一不同的地方就是在Host-Only网络中,没有用到NAT服务,没有服务器为VMnet1网络做路由,它当然就没有办法访问Internet啦,可是如果此时我的Host要和Guest通信怎么办呢?
当然就要用到VMwareNetworkAdapterVMnet1这块虚拟网卡了。
如下图,这是我的Host上的VMwareNetworkAdapterVMnet1虚拟网卡的配置,同样,VMware也为我自动随机分配好了它的IP:
那么如果我把Guest的网络设置成了Host-Only的话,把它的IP获取方式设置为DHCP,它会到虚拟的DHCP服务器上拿到IP,这个DHCP服务器仍然是一个虚拟的DHCP服务器(仅仅是一个系统服务而已),而且在下图中,可以看到,这个DHCP服务器的IP地址仍然是192.168.X.254,这里X=163,因为要和我的VMnet1的网络ID相同。
所以,Guest所获得的IP和我的Host的VMwareNetworkAdapterVMnet1虚拟网卡的IP使用同一个网络ID:
可以看到,在Host-Only网络下,Guest的DefaultGateway被设置为NULL,这是由于没有默认路由器为它到外部网络提供路由的缘故,也即是上边说到的Host-Only网络没有NAT服务器!
如果使用routeadd命令加上某个地址做为它的路由器,它仍然不能访问Internet(实际上也没有地址可加)。
这样,我的Guest虽然没有办法访问Internet,但是仍然可以和我的Host进行通信,这正是因为我的Host上的VMwareNetworkAdapterVMnet1虚拟网卡起到了作用,它负责和VMnet1网络相连,为我访问Host-Only网络下的Guest提供了通信接口。
下图显示了在Host-Only网络中的Guest与我的Host的通信情况:
至于为何要把Host-Only网络设置为没有DefaultGateway的方式,这是VMware的设计使然,它就是让我们建立一个与外界隔离(isolated)的网络时而使用的。
VMware中对于Host-Only网络的定义(引用自VMwareGSXServerUser’sManual):
Host-onlynetworkingcreatesanetworkthatiscompletelycontainedwithinthehostcomputer.
Ahost-onlynetworkissetupautomaticallyifyouselectUseHost-OnlyNetworkingintheNewVirtualMachineWizard.OnLinuxhosts,thisselectionisavailableonlyifyouenabledthehost-onlynetworkingoptionwhenyouinstalledGSXServer.
Host-onlynetworkingprovidesanetworkconnectionbetweenthevirtualmachineandthehostcomputer,usingavirtualEthernetadapterthatisvisibletothehostoperatingsystem.Thisapproachcanbeusefulifyouneedtosetupanisolatedvirtualnetwork.
Ifyouusehost-onlynetworking,yourvirtualmachineandthehostvirtualadapterareconnectedtoaprivateTCP/IPnetwork.AddressesonthisnetworkareprovidedbytheVMwareDHCPserver.
IfyoumakesomeotherselectionintheNewVirtualMachineWizardandlaterdecideyouwanttousehost-onlynetworking,youcanmakethatchangeinthevirtualmachinesettingseditor(VM>Settings).Fordetails,seeChangingtheNetworkingConfiguration.
RoutingandConnectionSharingIfyouinstalltheproperroutingorproxysoftwareonyourhostcomputer,youcanestablishaconnectionbetweenthehostvirtualEthernetadapterandaphysicalnetworkadapteronthehostcomputer.Thisallowsyou,forexample,toconnectthevirtualmachinetoaTokenRingorothernon-Ethernetnetwork.
OnaWindows2000orWindowsServer2003hostcomputer,youcanusehost-onlynetworkingincombinationwiththeInternetconnectionsharingfeatureinWindowstoallowavirtualmachinetousethehost'sdial-upnetworkingadapterorotherconnectiontotheInternet.SeeyourWindowsdocumentationfordetailsonconfiguringInternetconnectionsharing.
事实上,如果我足够BT,也可以在Host上来为VMwareNetworkAdapterVMnet1虚拟网卡来做路由。
比如,我可以用Windows2000的RRAS来做,这样的话,处于Host-Only网络下的Guest就又可以上网了,它们只需要使用routeadd命令把自己的DefaultGateway指向Host上的VMwareNetworkAdapterVMnet1虚拟网卡即可,不过这样做不推荐,也没有必要.
(有兴趣的朋友可以自己实际做一下看看)。
至此,VMware的3种网络,就应该可以理解了。
可以看到,如果想要Guest上网,在3种网络模型中,最为简单的方式就是NAT,因为它不需要任何的网卡设置,IP地址也可以从虚拟的DHCP服务器来获得,要做的仅仅就是把它的网络设置为NAT方式即可。
至于Bridged模式,则需要额外的IP地址,这有可能会实现不了,因为并不是每个ISP都那么大方.。
如果是Host-Only,则又需要设置RRAS,没有几个人会愿意