一、物理网络
先说说通常情况下物理网络的结构。我们先要注意两个不同的名词: internet 和 Internet,前者是一般意义下的网间网,后者是世界范围内的网间网,后者其实是前者的一个特例。我们的研究对象就是一个简单的 internet。
举个例子吧(我最喜欢举例了),你的公司有两个工作组,他们分别在不同的局域网,如图所示:
那么在同一个工作组,也就是在同一个LAN上,各个机器如何通信呢?如果我们假设LAN 内的机器都是互相友好的,那么我们可以这样做,当m1 要向 m4 传输信息时,它的网卡(adapter)就向LAN 内的所有机器发送这个信息(广播),并在包中包含m4的IP(dest IP),每个机器的网卡(adapter)都收到信息,但只有m4 发现目的IP是自己,并作出反应。实际的LAN运行的基本原理也是如此,一些扫描软件做的就是捕获所有的包并加以分析,提取有用的信息。
显然,如果一台机器有两个网卡,一个属于 net1,一个属于 net2,那么它就可以同时发送和接收两个网络上的数据,从而联系两个网络。所以,两个工作组要通信,就得有一个中介,这个中介就是我们通常所说的路由器,这也是为什么路由器得有两个网卡。
这里,我们就假设 net1.m1 和 net2.m1 为同一台机器,而且拥有两个网卡,如图:
可是,m1.adapter1 如何知道它收到的数据是发向 net2的呢(前面说过,LAN内的包是广播的),这就要用到网络号了。我们知道,网络上的每一台机器(确切地说是每一个网卡)都有一个IP(有时一个网 卡也不止一个,后面会看到),如果 net1 和 net2 上的机器的IP 前缀不同,我们就可以用这个IP 前缀来标识两个网络了,比如,net1 上的机器的IP都是 192.168.221.x, net2上的都是 192.168.48.x。这样,当 m1.adapter1 收到的包的目的(dest)IP的前缀是 192.168.221,那么这个包就是发往 net1的;同样,如果前缀是 192.168.48,那就是发往 net2的。 这个IP前缀可以通过IP mask来得到,我们分配给 net1 和 net2 的mask都是 255.255.255.0,把它与各自的IP相与(AND),就得到网络号。这样,m1 成了两个网络之间的门,实际上是两道门,中间还有一个黑盒,其中 adapter1是一道通向 net1的门,称它为 net1 的网关,adapter2 是 net2的网关,m1就是两个网络之间的路由器。
前面说的例子是两个地位相等的网络,而实际上我们要参与的一般都是两个地位并不相等的网络。假设你有十台机器,但只向ISP(Internet Service Provider)申请了一个IP,你想让每一台机器都能上网,怎么办?
这也是我们要组建的VMware网络的基本结构。
NAT. 对,实际情况下用的就是NAT。这时,你得有一台机器作为NAT服务器,这台机器在架构上和路由器相同,只是它比路由器多做了一点点工作,就在我们刚才说的黑盒里面干的。你的机器的连线将如图所示。
NAT 做了什么呢,简单地说,就是共享一个IP,其详细原理请见其它资料。
二、vmnet
好了,轮到VM们粉墨登场了。
VMware 默认配置了三种连网方式,bridge, NAT, host on
1. Bridge
前面说过,一个网卡可以获得多个IP,那么在 bridge方式里面,就是利用网卡的这种功能为每一个VM分配一个外网的IP;这样,每一个VM在网络上的地位与 host是对等的。你可以认为每一个VM都是一个网络上的物理机。这种方式要求你能够得到多个IP。这种网络的示意连接图如下:

2. Host on
先说这个,是因为后面的NAT方式实际上是在这种方式上加了一个功能而已。先看图吧,host on
那么,有什么办法让VM们能够访问外网呢,把host 配置成一个简单的NAT服务器。下面是在Windows XP 下使用的方法:打开网络连接(Network Connections),找到代表物理网卡的那个连接(一般是Local Area Connection),右击,属性,高级,找到 Internet Connection Sharing(ICS),Check 它,VMware默认给你装了两个网卡,这个地方你还要选择把物理网卡的IP给谁共享,应该是 vmnet1。确定,XP会弹出一个对话框,说你不能再用共享文件了。也就是使用ICS之后,你不能在局域网里把你的文件设为共享了。不管它,继续。XP 会把你的vmnet1上的 Host Virtual Adapter的IP设为 192.168.0.1,不过没有给你提供DHCP,所以你可以把VM们的IP静态地设为 192.168.0.x,比如,第一台VM为192.168.0.2,第二台为192.168.0.3。网关当然要设成Host Virtual Adapter(192.168.0.1)啦,因为没有DHCP,VM们的DNS也要设置成静态的,就设置成你的主机的DNS。
在 Windows 2003下,你还可以把主机配置成一个具有完全功能的NAT服务器。
Host on

3. NAT
这种方式可以简单地认为是在host on
NAT方式中,Host Virtual Adapter并没有提供特殊的作用,Host Virtual Adapter在各种配置中都起了一个相同的作用,就是与主机进行通信。若安装了VMware Tools,虚拟机可以使用 Folder Sharing,具体怎么使用略。这种服务就是通过Host Virtual Adapter来的。(这一点参考VMware 的文档)
