VMWare提供了三种工作模式,它们是bridged(桥接模式)、NAT(网络地址转换模式)和host-only(主机模式)。要想在网络管理和维护中合理应用它们,你就应该先了解一下这三种工作模式。
host-only
host-only顾名思义,这种技术提供的是主机和虚拟机之间的网络互访,而不是虚拟机访问internet的技术。
在某些特殊的网络调试环境中,要求将真实环境和虚拟环境隔离开,这时你就可采用host-only模式。在host-only模式中,所有的虚拟系统是可以相互通信的,但虚拟系统和真实的网络是被隔离开的。
提示:在host-only模式下,虚拟系统和宿主机器系统是可以相互通信的,相当于这两台机器通过双绞线互连。
在host-only模式下,虚拟系统的TCP/IP配置信息(如IP地址、网关地址、DNS服务器等),都是由VMnet1(host-only)虚拟网络的DHCP服务器来动态分配的。
如果你想利用VMWare创建一个与网内其他机器相隔离的虚拟系统,进行某些特殊的网络调试工作,可以选择host-only模式。
这应该是最为灵活的方式,有兴趣的话可以进行各种网络实验。和nat唯一的不同的是,此 种方式下,没有地址转换服务,因此,模认情况下,虚拟机只能到主机访问,这也是hostonly的名字的意义。
默认情况下,也会有一个dhcp服务加载到vmnet1上。这样连接到vmnet1上的虚拟机仍然可以设置成dhcp,方便系统的配置.
是不是这种方式就没有办法连接到外网呢,当然不是,事实上,这种方式更为灵活,你可以使用自己的方式,从而达到最理想的配置,例如:
a。使用自己dhcp服务:首先停掉vmware自带的dhcp服务,使dhcp服务更为统一。
b。使用自己的nat,方便加入防火墙。windows host可以做nat的方法很多,简单的如windows xp的internet共享,复杂的如windows server里的nat服务。
c. 使用自己的防火墙。因为你可以完全控制vmnet1,你可以加入(或试验)防火墙在vmnet1和外网的网卡间。
从以上可以看出,hostonly这种模式和普通的nat server带整个内网上网的情形类似,因此你可以方便的进行与之有关的实验,比如防火墙的设置等。
在这种工作方式下,Guest由DHCP服务器分配IP地址。并且可以在192.168.222.X之间保持
通信
。但是在Guest机器上并不能Ping通Host的172.16.1.210这个地址。因为通信被限制在主机(所以叫做Host Only)。这种方式看起来是很像NAT方式,但是在这种方式下Guest只能和Host之间通信,而不能同在局域网的计算机进行通信,除非在HOST上做转发或路由。
示:以上所提到的NAT模式下的VMnet8虚拟网络,host-only模式下的VMnet1虚拟网络,以及bridged模式下的VMnet0虚拟网络,都是由VMWare虚拟机自动配置而生成的,不需要用户自行设置。VMnet8和Mnet1提供DHCP服务,VMnet0虚拟网络则不提供
默认使用vmnet1
DHCP:默认下是DHCP
组成与独立的与物理网络相隔离的虚拟网络
但有一点是可以和宿主机器通信。
当然你可以手动指定IP,但网头一要选择VMNET1的IP哦
详解:
host-only这种模式下是独立主机的模式,意思是不可以和外界通信的。但是我们可以这样理解,这种模
式使用的是vmnet1,也就是一台虚拟的交换机。
不能上网的原因分析:
虚拟机本身是根据自身的DHCP分配的IP,本身和物理机不是一个段内的。大家要问了,如果手动分配与物
理机机段内的IP与相同的DNS解析不就可以了吗??但是告诉大家这样也是不可以的。没有桥接与NAT这些
共享与转换IP的模式,也是连不通的(这只是我的个人理解。)难道就不能上网了吗?
看看就知道了。
上网:
1、在物理主机的本地连接设置对 vmnet1的共享(一定要是vmnet1哦,为什么不用我说了吧^_^)这样
vmnet1连接的IP也就变成了192.168.0.1,这和我们平时物理机的共享连接是一样
2、、手动设置与物理机相同段内的IP,与相同的DNS解析(或者是物理主机的IP),网关设为
192.168.0.1
例:HOST(VMNET1):192.168.0.1 NETMASK 255.255.255.0
GUEST: 192.168.0.2 NETMASK 255.255.255.0 DNS 192.168.0.1
说白了,我们利用的也只是把虚拟机当作物理机来进行的共享的网络设置
NAT
网络地址转换(Network Address Translation,NAT)通过将内部网络的私有IP地址翻译成全球唯一的公网IP地址,使内部网络可以连接到互联网等外部网络上,广泛应用于各种类型因特网介入方式和各种类型的网络中。
因为IPV4地址已经出现公网IP地址不足的问题,所以,在IPV6开始正式使用以及普及以前,NAT将作为能够临时解决IPV4地址危机的方法。也是一种过渡技术。
NAT的实现方式
● →静态转换
静态转换就是将内部网络的私有IP地址转换成公有的合法的IP地址时,IP地址的想对应关系是一对一的,是不变的,即某个私有IP地址只转换为某个固定的公有IP地址。
通俗点说,就是一个内网的私有地址,只能转换为一个合法公网地址。
●→动态转换
动态转换是指将内部网络的私有地址转换成公网地址时,IP地址对应关系是不确定的,随机的,所有被授权访问因特网的私有地址可随机转换为任何合法指定地址。
通俗点说,即为:可以把内部多个私有地址转换成一个合法的公网地址。
●→NAT端口映射
因为NAT既可以节省IP地址空间,又可以隐藏内部主机。因此,就带来了一个麻烦,因为外网的PC不能够正常的访问处于内网的服务器。 于是,需要使用端口复用,将内网的服务器的IP地址和端口映射到外网,使外网用户可以正常访问到内网服务器。
打个比方,假如内网的WEB服务器的IP地址为192.168.1.1 ,端口为80端口。外网的IP地址为202.100.80.200.那么,就可以使用命令ip nat inside source static 192.169.1.1 80 202.100.80.200 80进行映射。
NAT的优点和缺点
优点:
1.NAT通过设置合法地址集,是内部网可以与因特网进行通信,从而达到节省合法地址的目的。
2.NAT可以减少规划地址集时地址重叠的情况发生。
3.隐藏内部网络。
4.可以实现负载均衡。
缺点:
1.使用NAT会使延迟增大。
2.NAT增加了配置和排错的复杂性。
3.NAT也可能会使某些需要使用内嵌IP地址的应用不能正常工作,因为他隐藏了端到端的IP地址。
桥接模式
在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而又不引入额外的复杂度?这就要使用Bridge模式。
【GOF95】在提出桥梁模式的时候指出,桥梁模式的用意是"将抽象化(Abstraction)与实现化(Implementation)脱耦,使得二者可以独立地变化"。这句话有三个关键词,也就是抽象化、实现化和脱耦。
抽象化
存在于多个实体中的共同的概念性联系,就是抽象化。作为一个过程,抽象化就是忽略一些信息,从而把不同的实体当做同样的实体对待【LISKOV94】。
实现化
抽象化给出的具体实现,就是实现化。
脱耦
所谓耦合,就是两个实体的行为的某种强关联。而将它们的强关联去掉,就是耦合的解脱,或称脱耦。在这里,脱耦是指将抽象化和实现化之间的耦合解脱开,或者说是将它们之间的强关联改换成弱关联。
将两个角色之间的继承关系改为聚合关系,就是将它们之间的强关联改换成为弱关联。因此,桥梁模式中的所谓脱耦,就是指在一个软件系统的抽象化和实现化之间使用组合/聚合关系而不是继承关系,从而使两者可以相对独立地变化。这就是桥梁模式的用意。
可以看出,这个系统含有两个等级结构,也就是:
由抽象化角色和修正抽象化角色组成的抽象化等级结构。
由实现化角色和两个具体实现化角色所组成的实现化等级结构。
桥梁模式所涉及的角色有:
抽象化(Abstraction)角色:抽象化给出的定义,并保存一个对实现化对象的引用。
修正抽象化(Refined Abstraction)角色:扩展抽象化角色,改变和修正父类对抽象化的定义。
实现化(Implementor)角色:这个角色给出实现化角色的接口,但不给出具体的实现。必须指出的是,这个接口不一定和抽象化角色的接口定义相同,实际上,这两个接口可以非常不一样。实现化角色应当只给出底层操作,而抽象化角色应当只给出基于底层操作的更高一层的操作。
具体实现化(Concrete Implementor)角色:这个角色给出实现化角色接口的具体实现。