bridged,host-only,nat

i_f45.gifbridged(桥接模式)

一种网络连接模式,也是VMware的一种工作模式。

bridge   就是“桥”的意思,说起桥接,就不能不说局域网。比如我们有两个局域网络,他们的ip段都处于192.168.0.*,同时,我们希望把这两个网络链接起来,这种情况下,我们就可以采用桥接。这个时候,“桥”就是一个主机,这个机器拥有两块网卡,分别处于两个局域网中,同时在“桥”上,运行着程序,让局域 网A中的所有数据包原封不动的流入B,反之亦然。这样,局域网A和B就无缝的在链路层连接起来了(当然要保证两个局域网没有冲突的  IP)。这就是桥的作用,在链路层无缝的沟通两个局域网。

而VMWare的桥也是同样的道理,只不过,本来作为硬件的一块网卡,现在由  VMWare软件虚拟而来罢了!当采用桥接时,VMWare会虚拟一块网卡和真正的物理网卡就行桥接,这样,发到物理网卡的所有数据包就到了VMWare   虚拟机,而由VMWare发出的数据包也会通过桥从物理网卡的那端发出,这样,如果物理网卡可以上网,那么桥接的软网卡也没有问题了,这就是桥接上网的原 理了。

在桥接时,VMWare网卡和物理网卡应该处于同意ip网段,所以在虚拟机中ping物理网卡ip,或者在主机总ping虚拟机网卡ip,都可以ping通。
这种方式下,虚拟机就像一台真正的计算机一样,直接连接到实际的网络上,与宿主机没有任何联系。

在这种模式下,VMWare虚拟出来的操作系统就像是局域网中的一台独立的主机,它可以访问网内任何一台机器。在桥接模式下,你需要手工为虚拟系统 配置IP地址、子网掩码,而且还要和宿主机器处于同一网段,这样虚拟系统才能和宿主机器进行通信。同时,由于这个虚拟系统是局域网中的一个独立的主机系 统,那么就可以手工配置它的TCP/IP配置信息,以实现通过局域网的网关或路由器访问互联网。
  使用桥接模式的虚拟系统和宿主机器的关系,就像连接在同一个Hub上的两台电脑。想让它们相互通讯,你就需要为虚拟系统配置IP地址和子网掩码,否则就无法通信。
  如果你想利用VMWare在局域网内新建一个虚拟服务器,为局域网用户提供网络服务,就应该选择桥接模式。
 
这种方式最简单,直接将虚拟网卡桥接到一个物理网卡上面,和linux下一个网卡 绑定两个不同地址类似,实际上是将网卡设置为混杂模式,从而达到侦听多个IP的能力。

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

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

i_f40.gifhost-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和                          
                                                                默认使用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
说白了,我们利用的也只是把虚拟机当作物理机来进行的共享的网络设置,在这里问一下,那么如果用代
理呢,想想吧。
                                   VMnet1提供DHCP服务,VMnet0虚拟网络则不提供

i_f39.gifnat
端口映射:是在路由器上发布内网的服务器,方便外网的用户访问公司内部的服务器。
 internet   a-pc ----》222.12.13.1:80 router---》lan  192.168.100.1:80  web-server
===
tcpdump  -i eth1 -p icmp 抓包命令
===
debug ip nat  调试命令
no  debug ip nat   关闭调试命令
===
内网进行nat转换后:内网机器知道外网的ip,但是外网的机器不知道内网的ip,只知道路由器外网卡的ip
===
nat配置步骤:
1.给路由器配置ip
2.定义acl
3.定义地址池(直接使用接口名称)
4.绑定地址池和acl
5.在内网和外网接口,启用nat功能
====
打开linux服务器的路由转发功能
[root@teacher iso]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1  修改这项配置的值为1
[root@teacher iso]# sysctl -p  让配置生效
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
error: "net.bridge.bridge-nf-call-ip6tables" is an unknown key
error: "net.bridge.bridge-nf-call-iptables" is an unknown key
error: "net.bridge.bridge-nf-call-arptables" is an unknown key
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 4294967295
kernel.shmall = 268435456

你可能感兴趣的:(虚拟机,局域网,bridge,网络连接,数据包)