Chinaunix首页 | 论坛 | 博客
  • 博客访问: 28718
  • 博文数量: 8
  • 博客积分: 1446
  • 博客等级: 上尉
  • 技术积分: 90
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-19 13:01
文章分类
文章存档

2011年(1)

2010年(7)

我的朋友

分类: 嵌入式

2010-10-30 21:34:59

    还在学校的时候,曾经使用过一段时间vmware,那时候主要是课程里面有需要安装linux,由于笔记本的各种原因,或者是个人对于linux的恐惧和对于windows的依赖,我果断的选择了虚拟机,虽然跑起来比较慢,但是基本还是可以满足我的需求。
    在后来回家用想在linux下面共享上网,发现可用NAT方式上网但是使用bridge怎么都上不了网,我根据网络上的各种设置来设置bridge,都是不行,由于自己一向追求解决问题就好,于是就没有去深层次的追究为什么bridge模式不可以共享上网。
   此事憋在心里比较长时间。直到后来到了公司,主机双网卡,配置了虚拟机,虚拟机里面配置了双网卡,里面的linux的interface需要桥接到物理网卡上,在公司论坛上面查过别人如何使用,同时请教了师兄们,这才逐渐弄清楚了NAT和bridge的差别。
  
   NAT这个概念,是在计算机网络中提及的,其目的是为了节省IP资源,其具体用途是我们的家庭路由器的WAN口和LAN口在不同的虚拟局域网,WAN主要针对于与Internet的数据交换,LAN则是内部局域网,LAN下面的主机在一个公共的网段进行互访,当它们需要与Internet进行数据交互的时候,会把数据交给WAN进行转换,这个过程叫做NAT(Network Address Translation)。进行NAT是对数据的IP地址和PORT进行转换,因此路由器需要维护一张表,里面需要记录局域网内主机的IP地址+端口号+源MAC地址+WAN口IP+WAN口PORT。LAN主机发送过来的数据包首先WAN口会分配一个PORT给它,然后将它们的映射关系记录下来,并将数据包的源IP地址和端口号该为WAN口IP地址和WAN口port,这样,局域网对于Internet就只有WAN口IP和PORT是可见的。局域网内可以根据需求搭建各种拓扑,以满足内部需求。
   言归正传,vmware使用NAT的概念,正是由于vmware本身提供了DHCP服务器,可以动态的分配给虚拟机IP地址,因此可以将所有虚拟机组织为一个内网。然后借助物理网卡作为WAN,这样在虚拟机中,我们可以简单的与Internet进行数据包交互,而不需要担心任何设置问题。并不清楚真正的WAN和物理网卡的关系,只是我在搭建环境的时候一直发现虚拟机ping不通host主机。
在网络上查找了一下,发现虚拟机其实是可以与host主机通信的,只是需要设置好IP地址。具体这样:首先将vmnet8设置好为A,然后在虚拟机中将IP地址设置为B,B与A在同一个网段,再将虚拟机的网关设置为A,这样就可以了。
原理如下:在计算机在,它发生数据包是不会管具体IP的,它只需要管自己的网关,其实网关的目的只有一个,通过网关的IP地址通过arp广播查询到网关的MAC地址。有了MAC地址就可以发送数据了,计算机不会记录具体的路由表,它只会把数据包发送给下一跳:网关,后面的事情让网关去处理,一般网关会是一个路由器(小区级的)它会将数据发送给电信公司的中间节点路由器,在路由器中,都会保存着一张动态的路由表,首先路由器对数据进行解包,提取出数据包的目的IP地址,然后对照路由表中的条目进行选路,这个递归过程一直持续直到目的地,或者由于跳数过多包被抛弃。其中的信号是否会衰减就不是我们需要考虑的了。
 
 
 
 
 
 
 
 
 
 
 
阅读(821) | 评论(0) | 转发(0) |
0

上一篇:起航

下一篇:关于GCC的-e命令的陷阱

给主人留下些什么吧!~~