网络原理,以及对VMware Workstation虚拟网络VMnet0、VMnet1、VMnet8的图解
借鉴了:http://hi.baidu.com/whitelocus/blog/item/d091ded88ac669e038012f5a.html
1. 文中符号的说明:
: 可以理解成A,也可以理解成B。4. VMware Workstation的虚拟网络
4.1. 虚拟网络组件
虚拟<网卡/网络适配器>:见图4.1。安装一个虚拟PC时自动安装一块虚拟<网卡/网络适配器>,可添加多块虚拟网卡。
虚拟交换机:见图4.1。安装VM时就自动安装了10台虚拟交换机。
虚拟网桥:只在虚拟网卡连接到VMnet0 (default Bridged)虚拟交换机上才应用虚拟网桥。
虚拟DHCP服务器:见图4.2。在虚拟网卡连接到VMnet1或VMnet8虚拟交换机时,自动安装运行虚拟DHCP服务器并连接至这台虚拟交换机。
虚拟NAT服务器:见图4.3。只在虚拟网卡连接到VMnet8 (NAT)虚拟交换机时才自动安装运行虚拟NAT服务器,并连接至这台虚拟交换机。
主机虚拟<网卡/网络适配器>:见图4.4。相当于一块确实存在的网卡,是连接主机和虚拟交换机用的网卡。
图4.2 虚拟DHCP服务器
图4.3 虚拟NAT服务器
图4.4 主机虚拟<网卡/网络适配器>
4.2. VMnet0 (default Bridged)
4.2.1. 用到的虚拟网络组件
虚拟<网卡/网络适配器>
虚拟交换机
虚拟网桥
4.2.2 桥接网络
在桥接模式下,VMware虚拟出来的操作系统就像是局域网中的一独立的主机,它可以访问网内任何一台机器。不过你需要多于一个的IP地址,并且需要手工为虚拟系统配置IP地址、子网掩码,而且还要和宿主机器处于同一网段,这样虚拟系统才能和宿主机器进行通信。如果你想利用VMware在局域网内新建一个虚拟服务器,为局域网用户提供网络服务,就应该选择桥接模式。
4.2.3. 虚拟网络结构图示
可将虚拟机模拟接入主机所在的局域网。
4.2.4. 一般家庭组网虚拟网络结构
4.3. VMnet1 (Host-only)
4.3.1. 用到的虚拟网络组件
虚拟<网卡/网络适配器>
虚拟交换机
虚拟DHCP服务器
主机虚拟<网卡/网络适配器>
4.3.2. 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要和VPC通信呢?怎么办?对了!当然就要用到VMware Network Adapter VMnet1这块虚拟网卡了。
可以看到,在Host-Only网络下,VPC的Default Gateway被设置为NULL,这是由于没有使用虚拟NAT服务器的缘故,但是,即便使用route add命令加上某个地址做它的路由,它仍然不能访问Internet(实际上也没有地址可加)。这样,我的VPC虽然没有办法访问Internet,但是仍然可以和我的Host进行通信。
事实上,如果我们足够BT,也可以在Host上来以VMware Network Adapter VMnet1虚拟网卡来做路由,比如,我们可以用Windows 2000的RRAS来做,这样的话,处于Host-Only网络下的Guest(VPC)就又可以上网了,他们只需要使用route add命令把自己的Default Gateway改成VMware Network Adapter VMnet1网卡即可,不过这样不推荐,也没有必要。如果仅仅想让虚拟机访问互联网,nat方式是最简单的,基本上不需要做什么操作,就能自动连接上。这也是默认的设置参数。
作为开发人员,我们通常需要主机,虚拟机,开发板 具有独立的地址,能互相访问。那么我们可以使用下面两种网络配置方式:
bridge and host-only。
1. 桥接是最简单的方式,一般是你有一个网关,你的windows主机和你VMWare里的各种unix/linux系统,都通过这个网关来通讯。
2. 而主机方式,是在没有网络的情况下, windows主机操作系统能与VMWare虚拟机上的客户操作系统(VPC)正常通讯。我们从VMWare的Virtual Network Edit里可以看出,vnet0是用来实现桥接模式的,vnet1是用来实现主机模式的。主机和客户机是直接通过vnet1通讯的。在主机方式下,windows主机操作系统不需要配置什么了,我们打开cmd.exe,输入ipconfig,就知道VMnet1的ip地址是什么了,因为这个ip就是VMWare虚拟机上的客户操作系统(VPC)的网关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里ping 192.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系统。
4.3.3. 虚拟网络结构图示
4.3.4. 一般家庭组网虚拟网络结构
4.4. VMnet8 (NAT, Network Address Translation)
4.4.1. 用到的虚拟网络组件
虚拟网<网卡/网络适配器> (虚拟网卡VMnet8)
虚拟交换机 (VMnet8)
虚拟DHCP服务器
主机虚拟<网卡/网络适配器>
虚拟NAT设备
4.4.2. NAT网络
在NAT网络中,会使用到VMnet8虚拟交换机,Host上的VMware Network Adapter VMnet8虚拟网卡被连接到VMnet8交换机上,来与VPC进行通信,但是VMware Network Adapter VMnet8虚拟网卡仅仅是用于和VMnet8虚拟交换机网段通信用的,它并不为VMnet8网段提供路由功能,处于虚拟NAT网络下的VPC是使用虚拟的NAT服务器连接的Internet的。
这时候,你的VPC和Host就可以实现互访了,并且如果你的Host此时已经连接到了Internet,那么你的VPC也就可以连上Internet了。那么VMware Network Adapter VMnet8虚拟网卡在这里扮演了一个什么角色呢?它仅仅是为Host和NAT虚拟网络下的VPC通信提供一个接口,所以,即便Disable掉这块虚拟网卡,Guest仍然是可以上网的,只是Host无法再访问VMnet8网段而已。
这种方式的时候,主机需要开启vmdhcp和vmnat服务。
使用NAT模式,就是让虚拟系统借助NAT(网络地址转换)功能,通过宿主机器所在的网络来访问公网。也就是说,使用NAT模式可以实现在虚拟系统里访问互联网。由于NAT服务协议对外部网络隐蔽内部网络,因此虚拟系统可以通过NAT服务器访问宿主机所在局域网中的其他真实主机,而反过来却不行,即宿主机以及宿主机所在网络的其他主机(更何况其它外网)不能通过NAT服务器访问虚拟机上的操作系统。(但是可以通过修改相关路由表,以让虚拟机和外网中除宿主机以外的其他主机通过VMnet1/8虚拟网卡互访。如4.3.4.图中的红色字体。对宿主机网络来说,VMnet1/8网卡被视为通往虚拟网络的网关,反之亦然)采用NAT模式最大的优势是虚拟系统接入互联网非常简单,你不需要进行任何其他的配置,只需要宿主机器能访问互联网即可。 如果你想利用VMware安装一个新的虚拟系统,在虚拟系统中不用进行任何手工配置就能直接访问互联网,建议你采用NAT模式。
4.4.3. 虚拟网络结构图示
4.4.4. 一般家庭组网虚拟网络结构
------------------------------------------------------------------------------------------------------------------------------------------
举例:主机为XP系统,VMare上为Linux系统,Nat连接方式,设置如下:
1. 虚拟机设置:
Edit -> Virtual Network Editor... -> DHCP选项卡。选中VMnet8,点Properties,设置其DHCP地址池,本VMare为:192.168.244.128~192.168.244.254。
换NAT选项卡,其Gateway IP address为:192.168.244.2。
2. 设置虚拟网卡
在主机的 网络连接 里,设置主机虚拟网卡VMnet8的IP地址为 192.168.244.1,子网掩码为:255.255.255.0,默认网关为:192.168.244.0。
3. 设置VMare上的Linux IP地址为:192.168.244.128。该地址值要在DHCP地址池范围内。
4. 设置主机网卡IP为:192.168.1.15,子网掩码为:255.255.255.0,默认网关为:192.168.1.1。
测试:
主机ping 虚拟机:ping 192.168.244.128
虚拟机 ping 主机:ping 192.168.1.15