用VMware构建真实的虚拟网络

时间:2022-12-24 10:41:14
很多有志于成为合格网管的朋友往往看了很多书却缺乏实践的条件,毕竟一个网络至少需要两台计算机,如果想实践构建一些复杂点的网络(例如包括多个子网),3-4电脑是最小的要求了。而对于学习者而言,要同时拥有这么多台电脑有一定困难,即使你可以接触一些有多台电脑的网络环境(例如在办公室网络),也不是每台电脑都允许你随意设置的。特别是一些管理工作(如建立域,对域进行管理等)。好在,我们有 VMware,这个软件允许你在同一台机器上建立多台虚拟机并将之构建成网络。当然,在同一台主机上同时开启多台虚拟机会需要较大的内存,不过,近来 内存价格一降再降,为电脑配备较大内存不再成为不可承受的开销,配备GB内存以上的个人电脑已经不是非常少见。事实上,只需要有768M以上内存,就可以同时开启三台虗拟机(每台分配196M内存),再加上主机,四台电脑已经可以完成绝大部分网络实验了。如果你把每台虚拟机的内存再设得小一点(例如96M),并安装一些并不很占资源的操作系统(如win98),那还可以同时启用更多的虚拟机来构造更复杂的网络。下面,我们将一步步在VMware环境中建立一个完全真实的windows网络。这里,我们使用的是VMware Workstaion 5.5。

  VMware网络基础

  我们以前的文章里,曾经介绍过简单的VMware网络,VMWare提供了三种工作模式,它们是bridged(桥接模式)、NAT(网络地址转换模式)和host-only(主机模式)。这三种模式主要是为了用户建立虚拟机后可以根据现实网络情况方便的把虚拟机接入网络。我们理解了这三种网络的工作原理,就可以用VMware任意定制自己网络结构。

  当我们安装完成VMware Workstation后,我们会发现在网络连接里将多出两块块虚拟网卡(如下图),

用VMware构建真实的虚拟网络
新增了两块虚拟网卡

  用ipconfig命令查看新增加的网卡的属性可以发现,这两块网卡分别属于不同的子网(见下图)。

用VMware构建真实的虚拟网络
新增的虚拟网卡的信息

  在前面的文章里我们介绍过三种典型的VMware网络,桥接模式是把虚拟机的网卡直接桥接在你的真实网卡上,并不会在你的系统中生成一块独立的网卡。桥接模式组成的网络在VMware中以VMnet0表示,实际上可以看成你本机所在的真实局域网在虚拟机网络中映射,通过VMnet0也即桥接模式接入网络的虚拟机相当于通过一个交换机和你的真实机器一起接入了你实际所在的局域网。如果你的局域网提供了DHCP服务,那么你的桥接网络机器可以自动获得局域网的IP。如果你在通过桥接网络接入网的虚拟机上运行ipconfig命令,可以看到虚拟机的IP地址在在现实的局域网段内。对于网上的其它机器而言,就如同本网段新增了一台真实的机器一样。

再来看新增的两块网卡:

  “Ethernet adapter VMware Network Adapter VMnet1”用于本机与使用NAT网络模式的虚拟机相连,使用这种模式建立的虚拟机所于虚拟机的VMnet1子网内,在这个子网中,VMware还提供了DHCP服务让子网的虚拟机可以方便的获得IP地址。当然,你也可以为处于此子网的虚拟机手动设置IP,不过一定要注意地址要VMnet1设定的网段内。这时,你的真实主机将做为VMnet1的网关,也即虚拟网络VMnet1与现实局域网之间的路由器在两个网段间转发数据。VMnet1的特殊之处在于VMware为这个网段默认启用了NAT服务(如下图),

用VMware构建真实的虚拟网络
在虚拟子网中启用NAT

  “VMware Network Adapter VMnet8”这块网卡主要用于真实主机与处于host-only(主机模式)的虚拟机相连,处于这种模式的虚拟机位于VMware虚拟网络的VMnet8子网内,这个子网除了IP段不同和没有提供NAT服务外,与VMnet1也就是NAT模式组成的虚拟子网没有什么不同。如果你喜欢你完全可以激活VMnet8子网的NAT服务,这样VMnet8就成为了另一个NAT模式的子网。如果在默认的不激活NAT的情况下,该子网的虚拟机将只能与VMnet8网内的其它虚拟机以及真实主机通信,这就是“host-only”名称的由来。

  打开VMware的网络设置界面你可以对VMware网络模式有更深刻的理解(见下图),

用VMware构建真实的虚拟网络
VMware中的各个子网与主机中网卡的对应关系

在VMware里最多可以有9个不同的虚拟子网(有三个在软件装好后已经启用了,它们是VMnet0,VMnet1,VMnet8),你可以在这里点击每个字网后的“>”按纽设置该子网的IP地址和是否启用DHCP等。在“Host Virtual Adapers”标签页里(如下图)可以添加更多的虚拟网卡并把这些网卡通过如上面的图所示界面接入相应的虚拟网络。

 

用VMware构建真实的虚拟网络
向真实主机中新增虚拟网卡

  综上所述,我们可以看到,VMware中的三种网络模式只是为了方便快速将虚拟机加入现实网络的一种预定义模式而已,当你安装好VMware Workstaion后,软件会预先设置好三个虚拟子网以对应三种基本模式。我们完全可以通过定制这些网络的属性改变它的默认行为,例如让host-only模式转变为NAT模式或反之亦然。也可以向真实主机添加更多的虚拟网卡从而启用更多的虚拟子网(虚拟子网数最多可以有9个)。真实的主机是所有虚拟子网的中心,连接着全部虚拟子网。同事,你可以向一台虚拟机中加入多块分属不同虚拟网络的网卡,让一台虚拟机连接不同的虚拟子网(如下图,在虚拟机中添加虚拟网卡),这样,由连接全部虚拟子网与现实网络的主机,与多台属于一个或多个虚拟子网的虚拟机就可以共同组建复杂的虚拟与现实混合网络。我们可以在这个真实的虚拟网络中实际各种网络技巧。之所以在这个虚拟网络前面加上“真实”两个字,是因为在这个虚拟网络中做任何操作的方法与在现实网络中是一致的,虚拟机上安装的全是真实的操作系统,除了你不用与交换机网线等硬件设备打交道外,与现实网络没有任何区别。你完全可以把这个虚拟网络接入现实网络并与现实网络中的其它系统通讯,此时,对于现实网络中的客户机而言,与之通信的虚拟机与其它任何现实网络系统中的终端没有任何区别。

用VMware构建真实的虚拟网络
在虚拟机中新增虚拟网卡

用VMware构建真实的虚拟网络
一个定制的VMware虚拟网络结构拓扑图

  以上对VMware中的网络实现方法做了简单的分析,在以后的文章里,我们将实际构建一个这种虚拟网络并用之完成各种现实局域网环境中常见的网管任务。

上一篇文章里,我们重点介绍了VMware虚拟网络的基础知识,从本篇文章开始,我们将实际建立并设置一个虚拟网络。

  实验目标

  这里首先说一下我们准备构建的网络拓扑。我们的目标是建立两个定制的子网VMnet2和VMnet3,这两个网络与真实主机是不直接相连的(真实主机中我并不添加连接到这两个网络的虚拟网卡),而是通过一台以桥接模式创建的属于VMnet0的虚拟机连接VMnet0,真实的局域网也即VMnet0通过本地的网关连接internet,我们将VMnet2的虚拟机称为VMnet2PC,VMnet3的虚拟机称为VMnet3PC,VMnet0的PC称为VMnet0PC,现在把VMnet3PC作为域控制器,VMnet0PC作为路由器和DNS服务器,要求PC和VMnet0PC都加入VMnet3PC建立的域,三个网段要求互联互通,并都可以访问internet。网络拓扑图如下:

用VMware构建真实的虚拟网络
目标网络拓扑图

  本例中需要建立3台虚拟机,而真实的PC也处于VMnet0子网中,再次强调一下,VMnet0实际上是现实局域网在虚拟网络中的映射。

  下面,让我们首先来构建这个基础的网络架构——建立起各台虚拟机并分别为它们添加所需的虚拟网卡然后将之接入指定的网络。

构建“物理”网络

  首先,我们建立第一台虚拟机VMnet0PC,建立时在连接模式选择处我们选择桥接网络如下图(这里我们并没有修改默认的虚拟网络行为),这样,这台虚拟机会有一块连接到VMnet0的虚拟网卡,与真实PC处于同一个网段内。

用VMware构建真实的虚拟网络
新增虚拟机时选择网络模式

  我们在前面的网络拓扑图中看到,VMnet0PC应该有三块不同的网卡分别接入三个不同的虚拟网络,在建立虚拟机机,VMware已经自动添加了一块接连到VMnet0的虚拟网卡,现在我们为它更添加两块分别连接到VMnet2和VMnet3的网卡。

打开虚拟机的属性点“hardware”标签下面的“add”按钮(如下图)。

用VMware构建真实的虚拟网络
向虚拟机增加新网卡

  在弹出的硬件添加向导中选择添加网卡,随后弹出如下所示的对话框,在里面选择网卡装要连接的网络。分别添加两块网卡连接到VMnet2和VMnet3。然后在虚拟机中安装Windows server 2003专业版操作系统并设置好桥接网卡以连接到internet打好必要的服务器补丁。至此,第一台服务器VMnet0PC设置基本完成并接入了目标网络。

用VMware构建真实的虚拟网络
选择新网卡接入的网络

在第一台机器设置完成后,关闭虚拟机,点窗口左侧上的“clone virtual machine”命令,对第一台虚拟机进行复制(如下图),将新虚拟机命名为VMnet2PC,因为VMnet2PC仅需一块网卡,因此,需要在虚拟机硬件属性中删除多余的两块网卡并把剩余那块网卡接入VMnet2。重复以上步骤建立虚拟机VMnet3PC并将之连入网络。

 

用VMware构建真实的虚拟网络
复制虚拟机

  至此,“硬件”的建立与连接已经完成。下面对各虚拟机网卡的TCP/IP属性分别进行设置,让VMnet2PC和VMnet3PC分别可以与VMnet0PC互联(跨网的互联这里先不涉及,那将是下一篇文章的内容)。这里简述一下各个子网的设置。VMnet0PC三块网卡中,一块用真实局域网的IP地址,一块用VMnet2子网的地址192.168.2.1/255.255.255.0,一块用VMnet3子网的地址192.168.3.1/255.255.255.0,位于VMnet2的VMnet2PC使用IP192.168.2.2/255.255.255.0,网关和DNS为192.168.2.1。位于VMnet3的VMnet3PCIP为192.168.3.2/,网关和DNS设为192.168.3.1。

  到目前为止,仅有VMnet0PC可以连接internet并访问所有的网段。在下一篇文章里,我们将让这个“物理上”已经连接的虚拟机网络的各网段互联互通,并都可以访问internet。.

  小知识:

  在VMware5.0以前版本没有提供虚拟机复制命令,不过可以通过对虚拟机文件夹的复杂方便的达到同样的目的。但新版本中的虚拟机复制不是简单的文件复制,而是提供了很多增强,新虚拟机可以来源与源虚拟机的一个快照,还可以与源虚拟机关联起来以减少存储所需空间。在第一台用于试验的虚拟机建立以后,最好保存一个此时状态的快照,在试验完成以后可以随时还原到系统刚安装完成时的状态,这将为今后的实验节省大量的时间。