您的位置:首页 > 理论基础 > 计算机网络

Vmware中提供的与网络通讯的三种网络模式的讲解:Bridge、NAT 、host-only

2014-03-15 10:45 686 查看
VMWare提供了三种工作模式,它们是bridged(桥接模式)、NAT(网络地址转换模式)和host-only(主机模式)。

如果你想利用VMWare在局域网中新建一个独立的虚拟服务器,为局域网用户提供网络服务;或者想创建一个与网内其他机器相隔离的虚拟系统,进行特殊的调试工作。此时,对虚拟系统工作模式的选择就非常重要了。如果你选择的工作模式不正确,就无法实现上述目的,也就不能充分发挥VMWare在网络管理和维护中的作用。现在,让我们一起走近VMWare的三种工作模式。

理解三种工作模式

  VMWare提供了三种工作模式,它们是bridged(桥接模式)、NAT(网络地址转换模式)和host-only(主机模式)。要想在网络管理和维护中合理应用它们,你就应该先了解一下这三种工作模式。

1.[color=red]bridged(桥接模式)[/color]

  在这种模式下,VMWare虚拟出来的操作系统就像是局域网中的一台独立的主机,它可以访问网内任何一台机器。在桥接模式下,你需要手工为虚拟系统配置IP地址、子网掩码,而且还要和宿主机器处于同一网段,这样虚拟系统才能和宿主机器进行通信。同时,由于这个虚拟系统是局域网中的一个独立的主机系统,那么就可以手工配置它的TCP/IP配置信息,以实现通过局域网的网关或路由器访问互联网。

  使用桥接模式的虚拟系统和宿主机器的关系,就像连接在同一个Hub上的两台电脑。想让它们相互通讯,你就需要为虚拟系统配置IP地址和子网掩码,否则就无法通信。

  如果你想利用VMWare在局域网内新建一个虚拟服务器,为局域网用户提供网络服务,就应该选择桥接模式。

2.[color=red]host-only(主机模式)[/color]

  在某些特殊的网络调试环境中,要求将真实环境和虚拟环境隔离开,这时你就可采用host-only模式。在host-only模式中,所有的虚拟系统是可以相互通信的,但虚拟系统和真实的网络是被隔离开的。

  提示:在host-only模式下,虚拟系统和宿主机器系统是可以相互通信的,相当于这两台机器通过双绞线互连。

  在host-only模式下,虚拟系统的TCP/IP配置信息(如IP地址、网关地址、DNS服务器等),都是由VMnet1(host-only)虚拟网络的DHCP服务器来动态分配的。

  如果你想利用VMWare创建一个与网内其他机器相隔离的虚拟系统,进行某些特殊的网络调试工作,可以选择host-only模式。

3.[color=red]NAT(网络地址转换模式)[/color]

  使用NAT模式,就是让虚拟系统借助NAT(网络地址转换)功能,通过宿主机器所在的网络来访问公网。也就是说,使用NAT模式可以实现在虚拟系统里访问互联网。NAT模式下的虚拟系统的TCP/IP配置信息是由VMnet8(NAT)虚拟网络的DHCP服务器提供的,无法进行手工修改,因此虚拟系统也就无法和本局域网中的其他真实主机进行通讯。采用NAT模式最大的优势是虚拟系统接入互联网非常简单,你不需要进行任何其他的配置,只需要宿主机器能访问互联网即可。

  如果你想利用VMWare安装一个新的虚拟系统,在虚拟系统中不用进行任何手工配置就能直接访问互联网,建议你采用NAT模式。

提示:以上所提到的NAT模式下的VMnet8虚拟网络,host-only模式下的VMnet1虚拟网络,以及bridged模式下的VMnet0虚拟网络,都是由VMWare虚拟机自动配置而生成的,不需要用户自行设置。VMnet8和VMnet1提供DHCP服务,VMnet0虚拟网络则不提供。

bridge:这种方式最简单,直接将虚拟网卡桥接到一个物理网卡上面,和linux下一个网卡绑定两个不同地址类似,实际上是将网卡设置为混杂模式,从而达到侦听多个IP的能力.

  在此种模式下,虚拟机内部的网卡(例如linux下的eth0)直接连到了物理网卡所在的网络上,可以想象为虚拟机和host机处于对等的地位,在网络关系上是平等的,没有谁在谁后面的问题.

  使用这种方式很简单,前提是你可以得到1个以上的地址.对于想进行种种网络实验的朋友不太适合,因为你无法对虚拟机的网络进行控制,它直接出去了.

  nat方式:这种方式下host内部出现了一个虚拟的网卡vmnet8(默认情况下),如果你有过做nat服务器的经验,这里的vmnet8就相当于连接到内网的网卡,而虚拟机本身则相当于运行在内网上的机器,虚拟机内的网卡(eth0)则独立于vmnet8.

  你会发现在这种方式下,vmware自带的dhcp会默认地加载到vmnet8界面上,这样虚拟机就可以使用dhcp服务.更为重要的是,vmware自带了nat服务,提供了从vmnet8到外网的地址转换,所以这种情况是一个实实在在的nat服务器在运行,只不过是供虚拟机用的.很显然,如果你只有一个外网地址,此种方式很合适.

  hostonly方式:这应该是最为灵活的方式,有兴趣的话可以进行各种网络实验.和nat唯一的不同的是,此种方式下,没有地址转换服务,因此,默认情况下,虚拟机只能到主机访问,这也是hostonly的名字的意义.

  默认情况下,也会有一个dhcp服务加载到vmnet1上.这样连接到vmnet8上的虚拟机仍然可以设置成dhcp,方便系统的配置.

  是不是这种方式就没有办法连接到外网呢,当然不是,事实上,这种方式更为灵活,你可以使用自己的方式,从而达到最理想的配置,例如:a.使用自己dhcp服务:首先停掉vmware自带的dhcp服务,使dhcp服务更为统一.

  b.使用自己的nat,方便加入防火墙.windows host可以做nat的方法很多,简单的如windows xp的internet共享,复杂的如windows server里的nat服务.

  c. 使用自己的防火墙.因为你可以完全控制vmnet1,你可以加入(或试验)防火墙在vmnet1和外网的网卡间.

  从以上可以看出,hostonly这种模式和普通的natserver带整个内网上网的情形类似,因此你可以方便的进行与之有关的实验,比如防火强的设置等

  1、Bridge模式(一切都跟host一样,只有ip不能与host相同)

  ip 192.168.39.222

  netmask:255.255.252.0

  gateway:192.168.39.254

  Primary nameserve:192.168.39.252

  2、NAT模式

  首先在host中查看VMnet8的IP(e.g. 192.168.255.1).

  启动VMware,点Edit下Virtual Network Setting… ,弹出Virtual network Editor对话框;

  产看NAT选项卡,记录NAT的Gateway IP address:192.168.255.2

  在config中,填写:

  ip:192.168.255.5(与192.168.255.1在同一个网段的不同地址)

  netmask:255.255.255.0(与192.168.255.1的隐码相同)

  Gateway IP:填写VMware中的NAT网关192.168.255.2

  Primary nameserver:填写与主机中一样的网关192.168.39.252,这样就可以上网冲浪了.

  如果填写192.168.255.1,则不能连上外网.这里也可以不停,总之不能写错误的地址

  3、hostonly模式

  (1)查看你的连接外网的网卡的属性,选择“高级”标签,设置成允许共享,并设定允许的网络接口为VMNET1

  (2)再插看一下你的VMnet1 的属性,看一下TCP/IP协议的设置,你发现已经被自动设置为

192.168.0.1/255.255.255.0,

  (3)windows下的设置完成,转入到跑linux的虚拟机.将你的eth0的ip地址设置为静态的(如果安装时没有选静态的话)

  按红帽子图标->系统设置->网络(或其它你了解的方法)

  ip: 192.168.0.2(或其它在此网段上的地址)

  netmask: 255.255.255.0

  default gateway: 192.168.0.1 (VMnet1的地址)

  dns:输入你自己的DNS (host中用的DNS)

  保存设置.如果你还没有设置好主机名称:

  cd /etc/sysconfig

vi network

  编辑HOSTNAME

  cd /etc

  vi hosts

  加入:

  192.168.0.2 yourhostname

  重新启动服务

  su

  /sbin/service network restart

  (4)测试一下

  网关: ping 192.168.0.1

  dns: ping dnsserver

  =============================

  (1)Bridged方式

  用这种方式,虚拟系统的IP可设置成与本机系统在同一网段,虚拟系统相当于网络内的一台独立的机器,与本机共同插在一个Hub上,网络内其他机器可访问虚拟系统,虚拟系统也可访问网络内其他机器,当然与本机系统的双向访问也不

  成问题.

  (2)NAT方式

  这种方式也可以实现本机系统与虚拟系统的双向访问.但网络内其他机器不能访问虚拟系统,虚拟系统可通过本机系统用NAT协议访问网络内其他机器.

  NAT方式的IP地址配置方法:虚拟系统先用DHCP自动获得IP地址,本机系统里的VMware services会为虚拟系统分配一个IP,之后如果想每次启动都用固定IP的话,在虚拟系统里直接设定这个IP即可.

  (3)host-only方式

  顾名思义这种方式只能进行虚拟机和主机之间的网络通信,既网络内其他机器不能访问虚拟系统,虚拟系统也不能访问其他机器.

  (4)not use方式

  既是不使用网络,虚拟系统为一个单机.

  一般来说,Bridged方式最方便好用.但如果本机系统是win2000而网线没插(或者根本没有网卡),网络很可能不可用(大部分用PCI网卡的机器都如此),此时就只能用NAT方式或host-only,之前所说的那两块虚拟网卡就是适应这两种网络准备的.

vmware三种网络连接实例

vmware有三种网络连接方式:bridge ,NAT, host-only,我在三种连接上花了不少时间研究,并将研究结果写成此bokee.

三个名词,vmware的使用,电脑基础等基础知识请看书,在此不再解释。

实例1

bridge连接 虚拟机可和宿主机通信,可上外网如www.baidu.com,会和宿主机局域网同IP地址的机器冲突。

宿主机:

ip: 192.168.10.153

submask:255.255.255.0

gateway:192.168.10.1

DNS: 192.168.10.7

VMNET1网卡host-only

ip: 192.168.0.111

submask:255.255.255.0

gateway:192.168.0.111 or null

DNS: null

VMNET8网卡NAT

ip: 192.168.100.1

submask:255.255.255.0

gateway:192.168.100.2 or null

DNS: null

虚拟机:

ip: 192.168.10.154

submask:255.255.255.0

gateway:192.168.10.1

DNS: 192.168.10.7

实例2

NAT连接 虚拟机可和宿主机通信,可上外网如www.baidu.com,不会和宿主机局域网同IP地址的机器冲突。(VMNET8)

宿主机:

ip: 192.168.10.153

submask:255.255.255.0

gateway:192.168.10.1

DNS: 192.168.10.7

VMNET1网卡host-only

ip: 192.168.0.111

submask:255.255.255.0

gateway:192.168.0.111 or null

DNS: null

VMNET8网卡NAT

ip: 192.168.100.1

submask:255.255.255.0

gateway:192.168.100.2 or null

DNS: null

虚拟机:

ip: 192.168.100.3

submask:255.255.255.0

gateway:192.168.100.2 important!!!(VMware中NAT的网关)

DNS: 192.168.10.7(host的DNS)

实例3

host-only连接 虚拟机只能和宿主机通信,外网屏蔽。(VMNET1)

宿主机:

ip: 192.168.10.153

submask:255.255.255.0

gateway:192.168.10.1

DNS: 192.168.10.7

VMNET1网卡host-only

ip: 192.168.0.111

submask:255.255.255.0

gateway:192.168.0.111 or null

DNS: null

VMNET8网卡NAT

ip: 192.168.100.1

submask:255.255.255.0

gateway:192.168.100.2 or null

DNS: null

虚拟机:

ip: 192.168.0.113

submask:255.255.255.0

gateway:null or 192.168.0.111(VMNET1的地址)

DNS: null or 192.168.10.7(host的DNS)

我的Host是Windows7,安装VMware虚拟机,在虚拟机中装了Ubuntu10.04,首先介绍下VMware下的几个虚拟设备:

VMnet0:VMware用于虚拟桥接网络下的虚拟交换机;

VMnet1:VMware用于虚拟Host-Only网络下的虚拟交换机;

VMnet8:VMware用于虚拟NAT网络下的虚拟交换机;

VMware Network Adapter VMnet1:这是Host用于与Host-Only虚拟网络进行通信的虚拟网卡;

VMware Network Adapter VMnet8:这是Host用于与NAT虚拟网络进行通信的虚拟网卡;

一.虚拟机和虚拟网卡之间的关系

在使用VMware Workstation创建虚拟机时,创建的虚拟机中可以包括网卡。你可以根据需要选择使用何种虚拟网卡,从而表明想要连接到那个虚拟交换机。在VMware Workstation中,默认有3个虚拟交换机,分别是VMnet0(使用桥接网络)、VMnet1(仅主机网络)和VMnet8(NAT网络),还可以根据需要添加VMnet2~VMnet7和VMnet9等7个虚拟机交换机,而在VMware Workstation 5以后的版本中,还可以使用Team中的提供的虚拟交换机。

二、桥接网络(bridge)

在桥接模式下,VMware虚拟出来的操作系统就像是局域网中的一独立的主机,它可以访问网内任何一台机器。不过你需要多于一个的IP地址,并且需要手工为虚拟系统配置IP地址、子网掩码,而且还要和宿主机器处于同一网段,这样虚拟系统才能和宿主机器进行通信。 如果你想利用VMware在局域网内新建一个虚拟服务器,为局域网用户提供网络服务,就应该选择桥接模式。可将虚拟机模拟接入主机所在的局域网。

三、nat网络

在NAT网络中,会使用到VMnet8虚拟交换机,Host上的VMware Network Adapter VMnet8虚拟网卡被连接到VMnet8交换机上,来与Guest进行通信,但是VMware Network Adapter VMnet8虚拟网卡仅仅是用于和VMnet8网段通信用的,它并不为VMnet8网段提供路由功能,处于虚拟NAT网络下的Guest是使用虚拟的NAT服务器连接的Internet的。

这时候,你的Guest和Host就可以实现互访了,并且如果你的Host此时已经连接到了Internet,那么你的Guest也就可以连上Internet了。那么VMware Network Adapter VMnet8虚拟网卡在这里扮演了一个什么角色呢?它仅仅是为Host和NAT虚拟网络下的Guest通信提供一个接口,所以,即便Disable掉这块虚拟网卡,Guest仍然是可以上网的,只是Host无法再访问VMnet8网段而已。

这种方式的时候,主机需要开启vmdhcp和vmnat服务。

使用NAT模式,就是让虚拟系统借助NAT(网络地址转换)功能,通过宿主机器所在的网络来访问公网。也就是说,使用NAT模式可以实现在虚拟系统里访问互联网。NAT模式下的虚拟系统的TCP/IP配置信息是由VMnet8(NAT)虚拟网络的DHCP服务器提供的,无法进行手工修改,因此虚拟系统也就无法和本局域网中的其他真实主机进行通讯。采用NAT模式最大的优势是虚拟系统接入互联网非常简单,你不需要进行任何其他的配置,只需要宿主机器能访问互联网即可。
如果你想利用VMware安装一个新的虚拟系统,在虚拟系统中不用进行任何手工配置就能直接访问互联网,建议你采用NAT模式。

四、host-only

在某些特殊的网络调试环境中,要求将真实环境和虚拟环境隔离开,这时你就可采用Host-only模式。在Host-only模式中,所有的虚拟系统是可以相互通信的,但虚拟系统和真实的网络是被隔离开的。可以利用Windows XP里面自带的Internet连接共享(实际上是一个简单的路由NAT)来让虚拟机通过主机真实的网卡进行外网的访问。虚拟系统的TCP/IP配置信息(如IP地址、网关地址、DNS服务器等),都是由VMnet1(Host-only)虚拟网络的DHCP服务器来动态分配的。如果你想利用VMware创建一个与网内其他机器相隔离的虚拟系统,进行某些特殊的网络调试工作,可以选择Host-only模式。

在Host-Only网络中,Host-Only网络被用来设计成一个与外界隔绝的网络,其实Host-Only网络和NAT网络非常相似,唯一不同的地方就是在Host-Only网络中,没有用到NAT服务,没有服务器为VMnet1做路由,它当然就没有办法访问Internet啦,可是如果我的Host要和Guest通信呢?怎么办?对了!当然就要用到VMware Network Adapter VMnet1这块虚拟网卡了。

可以看到,在Host-Only网络下,Guest的Default Gateway被设置为NULL,这是由于没有使用虚拟NAT服务器的缘故,但是,即便使用route add命令加上某个地址做它的路由,它仍然不能访问Internet(实际上也没有地址可加)。这样,我的Guest虽然没有办法访问Internet,但是仍然可以和我的Host进行通信。实施上,如果我们足够BT,也可以在Host上来为VMware Network Adapter VMnet1虚拟网卡来做路由,比如,我们可以用Windows
2000的RRAS来做,这样的话,处于Host-Only网络下的Guest就又可以上网了,他们只需要使用route add命令把自己的DefaultGateway改成VMware Network Adapter VMnet1网卡即可,不过这样不推荐,也没有必要。如果仅仅想让虚拟机访问互联网,nat方式是最简单的,基本上不需要做什么操作,就能自动连接上。这也是默认的设置参数。

作为开发人员,我们通常需要主机,虚拟机,开发板具有独立的地址,能互相访问。那么我们可以使用下面两种网络配置方式,bridge and host-only。

桥接是最简单的方式,一般是你有一个网关,你的windows主机和你VMWare里的各种unix/linux系统,都通过这个网关来通讯.

而主机方式,是在没有网络的情况下, windows主机操作系统能与VMWare虚拟机上的客户操作系统正常通讯。我们从VMWare的Virtual Network Edit里可以看出,vnet0是用来实现桥接模式的,vnet1是用来实现主机模式的。主机和客户机是直接通过vnet1通讯的。

在主机方式下,windows主机操作系统不需要配置什么了,我们打开cmd.exe,输入ipconfig,就知道VMnet1的ip地址是什么了,因为这个ip就是VMWare虚拟机上的客户操作系统的网关ip地址。我的VMWare虚拟机上一般装的是redhat,因为linux系列里redhat是最常见的,公司用的有suse, slaceware,unix使用solaris,freeBSD。那么我们在客户操作系统上配置网络,主要注意的是,网关的IP就是你在windows主机操作系统里用ipconfig命令查看到的VMnet1的ip地址。

例如:我在windowsXP主机下用ipconfig看到VMnet1的IP地址是192.168.159.1,那我在redhat里就把网关IP配置为192.168.159.1,把redhat的IP配置为192.168.159.2。我们从windowsXP主机cmd.exe里ping192.168.159.2,如果redhat启动sshd服务器, 我们可以telnet 192.168.159.2 22,若连接成功则一切安装OK,说明我们从windowsXP主机连接redhat系统没有问题了。反之,我们怎么从redhat系统连接windowsXP主机,
从redhat系统角度来看,VMnet1的IP地址就是windowsXP主机的地址,在redhat系统里ping 192.168.159.1, 再telnet 192.168.159.1 139, 若连接成功则一切安装OK,说明我们从redhat系统连接windowsXP主机没有问题了。

想学习unix/linux上c/c++开发或者其它,一个好方法就是在windows系统上装VMWare,然后在WMWare里安装各种unix/linux系统,通过crt、winscp等shell工具来连接unix/linux系统进行操作, 这样既不会因为没有windows系统而做其它事不方便,又能在一台pc机器上安装各种unix/linux系统。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐