分类: Network 2012-02-24 16:13 4433人阅读 评论(2) 收藏 举报 html
网络vmware服务器路由器windowsserverlinux
网络原理,以及对VMware Workstation虚拟网络VMnet0、VMnet一、VMnet8的图解c++
借鉴了:http://hi.baidu.com/whitelocus/blog/item/d091ded88ac669e038012f5a.htmlshell
1. 文中符号的说明:编程
<A/B>: 能够理解成A,也能够理解成B。
2. 术语
调制解调器(Modem): 实现模拟信号与数字信号间的相互转换,能够忽略成一条网线。
路由器: 提供路由、DHCP、NAT等<功能/服务>的专门设备,链接不一样的网络(包括局域网与WAN之间的链接,提供互联网链接)。
网关: 网 关实质上是一个网络通向其余网络的IP地址。好比有网络A和网络B,网络A的IP地址范围为“192.168.1.1~192. 168.1.254”,子网掩码为255.255.255.0;网络B的IP地址范围为“192.168.2.1~192.168.2.254”,子网掩 码为255.255.255.0。在没有路由器的状况下,两个网络之间是不能进行TCP/IP通讯的,即便是两个网络链接在同一台交换机(或集线器) 上,TCP/IP协议也会根据子网掩码(255.255.255.0)断定两个网络中的主机处在不一样的网络里。而要实现这两个网络之间的通讯,则必须经过 网关。若是网络A中的主机发现数据包的目的主机不在本地网络中,就把数据包转发给它本身的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B 的某个主机。只有设置好网关的IP地址,TCP/IP协议才能实现不一样网络之间的相互通讯。那么这个IP地址是哪台机器的IP地址呢?网关的IP地址是具 有路由功能的设备的IP地址,具备路由功能的设备有路由器、启用了路由协议的服务器(实质上至关于一台路由器)、代理服务器(也至关于一台路由器)。
默认网关: 若是搞清了什么是网关,默认网关也就好理解了。就好像一个房间能够有多扇门同样,一台主机能够有多个网关。默认网关的意思是一台主机若是找不到可用的网 关,就把数据包发给默认指定的网关,由这个网关来处理数据包。如今主机使用的网关,通常指的是默认网关。默认网关通常填写255.255.255.0。配 置默认网关能够在 IP 路由表中建立一个默认路径。须要特别注意的是:默认网关必须是电脑本身所在的网段中的IP地址,而不能填写其余网段中的IP地址。
网关举例说明:
以下图2.1。假设你的名字叫小不点(很小),你住在一个大院子里,你的邻居有不少小伙伴,父母是你的网关。当你想跟院子里的某个小伙伴玩,只要你在院子 里大喊一声他的名字,他听到了就会回应你,而且跑出来跟你玩。可是你家长不容许你走出大门,你想与外界发生的一切联系,都必须由父母(网关)用电话帮助你 联系。假如你想找你的同窗小明聊天,小明家住在很远的另一个院子里,他家里也有父母(小明的网关)。可是你不知道小明家的电话号码,不过你的班主任老师 有一份大家班全体同窗的名单和电话号码对照表,你的老师就是你的DNS服务器。因而你在家里和父母有了下面的对话:小不点:妈妈(或爸爸),我想找班主任 查一下小明的电话号码行吗?家长:好,你等着。(接着你家长给你的班主任挂了一个电话,问清楚了小明的电话)问到了,他家的号码是 211.99.99.99。小不点:太好了!妈(或爸),我想找小明,你再帮我联系一下小明吧。家长:没问题。(接着家长向电话局发出了请求接通小明家电 话的请求,最后一关固然是被转接到了小明家家长那里,而后他家长把电话给转到小明)。就这样你和小明取得了联系。
图2.1 网关举例
<交换机/多接口网桥>: 交换机和网桥的功能相似,基本上能够认为是同样的。若是真要说差别在哪里:两点,一是接口数量不一样,交换机比网桥的接口数量多;二是功能的实现方式不一样, 功能是指交换机和网桥使用桥接技术,实现方式不一样是指交换机经过专门的<集成电路/芯片>来实现桥接功能,而网桥则没有专门的处理芯,因此交 换机比网桥更快更智能。
接口(interface): 路由器,交换机上那种直接插线的就称为接口。
-------------- 邪恶的分割线 ------------------------- 以上偏向硬件,如下偏向软件 ---------------------------
端口(port): 你们都知道标识WWW服务的是80,标识FTP服务的是21,这些数字就称为端口。好比www.baidu.com的IP是119.75.216.30, 那么访问www.baidu.com实质上就是访问了119.75.216.30的80端口119.75.216.30:80。
路由服务器: 提供路由<功能/服务>的服务器。如在Windows 2003 Server上加入路由服务器角色就能提供路由<功能/服务>,至关于一台路由器提供的路由<功能/服务>。
DHCP服务器: (Dynamic Host Configuration Protocol, 动态主机配置协议) 提供DHCP<功能/服务>的服务器,是一个局域网的网络协议,使用UDP协议工做,主要有两个用途:1. 给内部网络或网络服务供应商自动分配IP地址;2. 给用户或者内部网络管理员做为对全部计算机做中央管理的手段。如在Windows 2003 Server上加入DHCP服务器角色就能提供DHCP<功能/服务>,至关于一台路由器提供的DHCP<功能/服务>。
DHCP的前身是 BOOTP。BOOTP 本来是用于无磁盘主机链接的网络上面的:网络主机使用 BOOT ROM 而不是磁盘启动并链接上网络,BOOTP则能够自动地为那些主机设定 TCP/IP 环境。但 BOOTP 有一个缺点:在设定前须事先得到客户端的硬件地址,并且,与 IP 的对应是静态的。换而言之,BOOTP 很是缺少 "动态性" ,若在有限的 IP 资源环境中,BOOTP 的一一对应会形成很是严重的资源浪费。DHCP 能够说是 BOOTP 的加强版本,它分为两个部份:一个是服务器端,而另外一个是客户端。全部的 IP 网络设定数据都由 DHCP 服务器集中管理,并负责处理客户端的DHCP 要求;而客户端则会使用从服务器分配下来的IP环境数据。比较起 BOOTP,DHCP 透过 "租约" 的概念,有效且动态的分配客户端的 TCP/IP 设定,并且,做为兼容考虑,DHCP 也彻底照顾了 BOOTP Client 的需求。DHCP 的分配形式为:首先,必须至少有一台 DHCP服务器 工做在网络上面,它会监听网络的 DHCP 请求,并与客户端磋商TCP/IP 的设定环境。
DHCP有三种IP分配方式:1. Manual Allocation (人工分配):得到的IP也叫静态地址,网络管理员为某些少数特定的在网计算机或者网络设备绑定固定IP地址,且地址不会过时;2. Automatic Allocation (自动分配):一旦DHCP 客户端第一次成功的从DHCP 服务器端租用到 IP 地址以后,就永远使用这个地址;3. Dynamic Allocation (动态分配):当DHCP客户端第一次从DHCP 服务器端租用到IP 地址以后,并不是永久的使用该地址,只要租约到期,客户端就得释放(release)这个IP 地址,以给其它工做站使用。固然,客户端能够比其它主机更优先的更新(renew)租约,或是租用其它的 IP 地址。动态分配显然比手动分配更加灵活,尤为是当您的实际IP 地址不足的时候。
NAT服务器: (Network Address Translation, 网络地址转换) 提供NAT<功能/服务>的服务器:就是把在内部网络中使用的IP地址转换成外部网络中使用的IP地址,把不可路由的IP地址转化成可路由的 IP地址,对外部网络隐蔽内部网。NAT不只完美地解决了lP地址不足的问题,并且还可以有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。如 在Windows 2003 Server上加入NAT服务器角色就能提供NAT<功能/服务>,至关于一台路由器提供的NAT<功能/服务>。
①以下图2.2。这个client 的gateway 设定为NAT主机,因此当要连上Internet 的时候,该封包就会被送到NAT 主机啦,这个时候的封包Header 之source IP 为192.168.1.100 ;
②而透过这个NAT 主机,她会将client 的对外联机封包的source IP ( 192.168.1.100 ) 假装成 ppp0 ( 假设为拨接状况)这个接口所具备的公有IP 啰,由于是公有IP 了,因此这个封包就能够连上Internet 了!同时 NAT 主机会记忆这个联机的封包是由哪个( 192.168.1.100 ) client 端传送来的;
③由Internet 传送回来的封包,固然由NAT 主机来接收了,这个时候, NAT 主机会去查询本来记录的路由信息,并将目标 IP 由 ppp0 上面的公共 IP 改回原来的192.168.1.100 ;
④最后则由 NAT 主机将该封包传送给原先发送封包的 Client !
图2.2 NAT流程示意
3. 硬件设备与软件(虚拟)设备的理解
先举个例子,见图3.1,路由器和带双网卡并安装路由及防火墙<服务/功能>的服务器,组建一个多主机网络。其中安装在Windows 2003 Server上的路由<服务器角色/服务/功能>不正是一台“虚拟路由器”吗?使得Windows 2003 Server像一台真的路由器同样在这个网络中发挥做用。实际上,若是在这台Windows 2003 Server上再装上软件防火墙,用这样的软件方式也不正是虚拟出了一个网路上确实存在的硬件防火墙同样吗?
因此,从功能出发来看,<物理/实际/硬件>设备和<虚拟/软件>设备是同一的,能够将<虚拟/软件>设备当作是实 实在在的硬件设备。可是,从设计和性能出发,二者有质的不一样,前者是由专门设计的电子集成电路和微程序来实现功能,然后者是由软件编程交由CPU处理来完 成,前者的性能远赛过后者。
当这些概念清晰之后,再来看虚拟机以及虚拟设备就一目了然了。咱们大能够将以软件方式虚拟出的硬件设备大大方方的放在咱们的网络结构中,就像他们真实存在同样。windows
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.1 虚拟网卡及虚拟交换机网络
图4.2 虚拟DHCP服务器
ssh
图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