首页
美国服务器出租
美国独立主机租用
达拉斯服务器租用
美国加州服务器租用
不限流量的服务器
预防DDos抗攻击服务器
高配置服务器(大内存)
美国VPS主机
Linux VPS租用
洛杉矶VPS(Linux)
中文版Windows VPS
不限流量Windows Vps
美国Xen VPS租用
全球VPS主机
亚洲VPS租用
欧洲VPS主机租用
大洋洲VPS主机(澳洲)
南美洲,非洲,北美等
国内vps租用(中国)
国外域名注册
100元加盟域名代理商
国外虚拟主机空间
便宜的美国虚拟主机
技术文档
服务器教程
Kloxo使用教程
Virtualmin使用教程
Windows/IIS使用教程
LinuxVPS使用教程
你的位置:
首页
>
技术文档
>
服务器
> 正文
文字广告
深入浅出VMware的组网模式
大家都知道VMWare的三种组网模式,分别为Bridge,NAT,Host-Only。VMWare认为使用这三种组网模式则可以搭建出任意的网络拓扑了,事实上也正是如此。如果你对网络很精通,那么应该很容易就可以理解VMWare的网络配置模式,然而即使如此,VMWare由于只是一个虚拟机,没有形象的拓扑展示出来。本文简单的给出三种组网模式的形象化的图示,另外,VMWare的帮助文档中也有相当详细的介绍VMNet的章节。
www.2cto.com 一.Bridge模式顾名思义,Bridge模式就是桥接模式,虚拟机里面的网卡直接桥接在宿主机的某一个物理网卡所在的网段。示意图如下:
这种方式很多时候是为像我这样的懒人提供的,然而在非DHCP的情况下,很容易造成IP地址冲突,因此如果不是非要将虚拟机配置在一个网段,就不要用Bridge模式。Bridge模式的组网拓扑如下: www.2cto.com
二.NAT模式所谓NAT模式就是将虚拟机网卡隐藏在了一个NAT设备之后,在外界看来,只能看到宿主机物理网卡,甚至连NAT设备都看不到,NAT设备默默地转换着虚拟机内部出来的连接的源地址,如下图所示:
然而,有一个细节,那就是上图中的菱形到底是如何实现的,VMWare到底如何在不同的宿主操作系统下模拟出一个一致的NAT设备的。为了实现的一致和简单,VMWare使用了用户态连接代理的方式来实现NAT设备,因此NAT设备其实就是一个用户态进程,它来执行地址转换,如下图所示: www.2cto.com
所谓的地址转换其实不是真正的IP网络意义上的地址转换,而是一个代理。虚拟机里面发起的连接在宿主机的NAT进程中完全被截获,然后NAT进程偷梁换柱代替虚拟机里面的连接单独向目的地发起一个连接,随后和目的地通信,然后将数据转发给虚拟机。我们可以通过一个简单试验来说明这一点:1.只允许本地的TCP syn包发出去,禁止任何回包iptables -A OUTPUT -p tcp --tcp-flags SYN SYN -j ACCEPT
iptables -A OUTPUT -j DROP
iptables -A INPUT -j DROP
2.在虚拟机中建立到百度的tcp连接telnet 74.125.128.94 803.查看宿主机上的用户态nat进程的文件描述符lsof -p 271 -n
...
vmnet-nat 271 root 7u IPv4 0xffffff8017b62160 0t0 TCP 192.168.1.101:49256->74.125.128.94:http (ESTABLISHED)
...4.结论虚拟机里面只能发出syn包,然而宿主机里面到74.125.128.94的连接已经建立,说明nat进程是一个用户态的连接代理。同样的结论还可以通过tcp抓包来观测到,怎么观测呢?很简单,查看序列号即可,虚拟机里面抓取的数据包的序列号和确认号和宿主机上抓取的“同样连接”(实际上不是一个连接,而是被代理的)的序列号以及确认号不是一致的,而我们知道,常规的NAT只修改五元素,不会修改序列号。
可见,由于NAT是一个代理,NAT模式可能会造成目的主机TCP连接统计的不准确,比如上述实验中,虚拟机明明没有连接成功目的地,然而宿主机的NAT进程却已经建立了一个TCP连接。使用NAT模式,就需要知道它所带来的一切副作用。最后NAT模式的组网拓扑如下:
三.Host-Only模式这种模式其实是最纯粹的了,虚拟机和宿主机的一块网卡(虚拟网卡)直连,仅此而已,如下图所示:
可是Host-Only模式的虚拟机如何连接外网呢?虚拟机可以将宿主机作为一台路由器来看待,如此一来,剩下的问题就是如何来配置这个路由器了。以下步骤是必须的:1.在虚拟机中将默认网关指向宿主机的虚拟网卡vmnet1,如果你不嫌麻烦也可以配置主机路由2.打开宿主机的路由功能Linux:sysctl -w net.ipv4.ip_forward=1
Mac OS:sysctl -w net.inet.ip.forwarding=1
Windows:打开Tcpip的IPEnableRouter注册表项
3.以下方法选其一3.1.配置SNAT。Linux使用iptables配置出口网卡的SNAT;Mac OS使用natd以及ipfw配置;Windows使用网卡的“共享”上网来配置3.2.配置纯路由,主要是解决回程路由的问题,然而很多外网服务器的路由我们没法配置,因此这个只适用于实验环境Host-Only模式的组网拓扑如下所示:
四.vnnetX的含义VMWare在宿主机中虚拟了几块网卡,这些网卡实际上都是一些带有多个port的二层或者三层网络设备。本文到此为止没有谈到DHCP,实际上每种组网模式都可以有一台DHCP服务器插入这些虚拟设备的port,为虚拟机里面的网卡分配IP地址。 www.2cto.com
默认情况下,VMWare提供了vmnet0/1/8三块虚拟网卡,vmnet0外界看不到,它实际上是一个纯链路层Bridge,该Bridge设备没有任何三层功能,该Bridge的其中一个port就是宿主机的某一块物理网卡。vmnet1专门给Host-Only来使用,vmnet8专门用于NAT,这两个虚拟网卡都有三层的功能,都可以配置IP地址,实实在在是一块宿主机上可见的网卡啊,除此之外,这两块网卡同时也是Bridge设备,只是该Brdige并没有桥接任何宿主机上的任何物理网卡。
点这里复制本页地址发送给您QQ/MSN上的好友
300*300广告