VMWare组网攻略

来源:互联网 发布:林姗姗sunny淘宝店 编辑:程序博客网 时间:2024/05/16 19:05

在实际情况中,在没有现实的网络环境的情况下,常常需要模拟网络的环境,利用VMware可以模拟一个虚拟局域网的环境,该虚拟局域网可以供那些没有网络环境的读者来测试、实践书中所介绍的入侵与防御技术。可以到VMware的官方网站“http://www.vmware.com/”下载最新版本的VMwareWorkstation 7.1.3,并在官方网站上注册获得一个免费使用三十天的序列号。安装完VMWare Workstation后,VMware相当于一台裸机,需要为其安装操作系统。

 

当我们安装完成VMware Workstation后,我们会发现在网络连接里将多出两块虚拟网卡,即VMWare Network Adapter VMnet1VMWare Network Adapter VMnet8。用ipconfig命令查看新增加的网卡的属性可以发现,这两块网卡分别属于不同的子网。在Edit--->Virtual Network Editor菜单中可以看到VMWare Workstation支持的虚拟局域网的个数(Windows版本的支持10个虚拟子网,即VMnet0-VMnet9)。比如虚拟子网VMnet8,子网IP192.168.48.0,是NAT模式(使用网络地址转换),默认网关地址为192.168.48.2。把虚拟网卡VMWareNetwork Adapter VMnet8连接到了这个子网上,虚拟网卡的IP在主机中可以看到是192.168.48.1。启用了本地的DHCP服务,并设置了能动态分配的IP地址范围192.168.48.128-192.168.48.254

我们知道,要组网,就需要使用网卡、交换机等组网设备,同样地,在VMware Workstation中组网也需要使用这些设备,只不过在VMware Workstation虚拟的计算机和网络中,这些设备在形式上也都是虚拟的(但在功能上,它们跟真实的网络设备没有大的区别)。下面,我们就来看看 VMware Workstation都为我们虚拟了哪些网络设备。

1、交换机。和一台物理交换机一样,一台虚拟交换机能把主机、虚拟计算机和其它网络设备连接在一起。在VMware Workstation安装后,交换机将根据组网的需要由VMware Workstation自动创建并自动使用,在Windows系列的主机上,您最多可用10台虚拟的交换机,但在Linux 主机上,您可使用多达256台的虚拟交换机。通过VMware Workstation创建的虚拟交换机,您可以将一台或多台虚拟机连接到主机或其它虚拟机。

2、网桥。当您在主机和虚拟机之间使用桥接网络组网时,网桥虚拟设备将被自动启用,该设备直接将虚拟机中的虚拟以太网适配器桥接到主机中的物理以太网适配器,能将您的虚拟机连接到主机所在的局域网(LAN)。这和Linux下一个网卡绑定两个不同地址类似,实际上是将网卡设置为混杂模式,从而达到侦听多个IP的能力。经它桥接的虚拟机,能和主机一样成为主机所在网络上的一台额外的真实计算机,能拥有主机所在局域网上的IP地址,能够使用主机所在网络上的所有服务,包括打印机、文件服务、网关以及其它服务;同样地,主机、主机所在网络上的任何物理计算机以及其它虚拟机也都可以使用由它提供的所有资源或服务。从Virtual Network Editor中可以看到,VMnet0默认设置为桥接模式。

3NAT适配器。该设备在VMware Workstation安装时为您的主机自动安装并在主机上显示为“VMware Network Adapter VMnet8”。该设备为主机和其它使用NAT网络类型的虚拟机提供了通讯接口,同时它还兼有NATNetwork AddressTranslation)也即网络地址转换的功能。如果您的主机通过另外一个以太网适配器连接在一个外部网络上,该设备能把本地网中虚拟机的IP地址转换为主机的外部网络地址,让虚拟机以主机的外部网络地址访问外部网络上的资源,包括虚拟机可以使用许多标准的TCP/IP协议连接到外部网络上的其他机器。例如,可以使用HTTP协议浏览网页,用FTP协议传送文件以及使用Telnet登录到其它计算机。但是,外部网络上的计算机不能建立到虚拟机的主动连接,这意味着你不能使用NAT网络中的虚拟机作为一个Web服务器发送Web页面到外部网络上的计算机。

这种方式也可以实现本机与虚拟机的双向访问。但外部网络上的其他机器不能访问虚拟机,虚拟机可通过本机系统用NAT协议访问外部网络的其他机器。NAT方式下VMWare自带的DHCP会默认地加载到VMnet8界面上,这样虚拟机就可以用DHCP自动获得IP地址,之后如果想每次启动都用固定IP的话,在虚拟机系统里直接设定这个IP即可。

4Host-only适配器。仅主机适配器是一个标准的虚拟的以太网适配器,在主机的操作系统上,它在主机上显示为“VMware Network Adapter VMnet1”,它只为主机和使用Host-only网络类型的虚拟机提供数据交换的接口,所以由主机和使用Host-only网络类型的虚拟机组建的网络是典型的私有内部局域网络。和NAT模式唯一不同的是这种方式下没有NAT服务,因此默认情况下只能进行虚拟机和主机之间的网络通信,既外部网络的其他机器不能访问虚拟机,虚拟机也不能访问外部网络的其他机器,这也是Host-only名字的意义。如果你喜欢你完全可以激活VMnet1子网的NAT服务,这样VMnet1就成为了另一个NAT模式的子网,与VMnet8子网一样。默认情况下,也会有一个DHCP服务加载到VMnet1上。这样连接到VMnet1上的虚拟机仍然可以设置成DHCP,方便系统的配置。是不是这种方式就没有办法连接到外网呢,当然不是。事实上,这种方式更为灵活,你可以使用自己的方式,从而达到最理想的配置。例如:

a)使用自己DHCP服务。首先停掉VMWare自带的DHCP服务,使DHCP服务更为统一。

b)使用自己的NAT以方便加入防火墙。Windows 主机可以做NAT的方法很多,简单的如Windows XPInternet共享,复杂的如Windows Server里的NAT服务。

c)使用自己的防火墙。因为你可以完全控制VMnet1,你可以VMnet1和外网的网卡间加入(或试验)防火墙。

从以上可以看出,Host-only这种模式和普通的NAT Server与整个内网上网的情形类似,因此你可以方便的进行与之有关的实验,比如防火墙的设置等。

5DHCP服务器。DHCP(动态主机配置协议)服务在VMware Workstation安装时为您的主机自动安装,它是一个自动启动的服务(在控制面板--->管理工具--->服务中可以看到),它把您的主机变成了一台DHCP服务器,能为使用Host-only NAT配置的虚拟机自动分配动态IP地址,比起手动为虚拟机分配静态固定IP地址来,它为分配IP地址提供了更为简单和自动化的方法。

6、虚拟机的创建及其网络配置实例

这里VMware Workstation安装在Window 7中。我们在虚拟机中安装RedHat Enterprise Linux 6.0。单击“New VirtualMachine”以创建新的虚拟机,选”Typical”然后指定RHEL 6.0的映像文件,输入Linux的登录用户名和密码,然后可以指定系统的安装位置,分配的硬盘空间,单击”Customize Hardware…”可定制虚拟机支持的虚拟硬件(也可以在安装完后设置)。系统安装完后,默认是使用自定义的NAT模式来连接外部网络。更改该虚拟机的Network Adapter,可以设置成使用VMnet8(也是NAT模式),当然也可以设置成使用其他模式。登录到Linux系统,网卡参数配置为/etc/sysconfig/network-scripts/ifcfg-eth0,主机名配置为/etc/sysconfig/networkDNS配置文件为/etc/resolv.conf。也可以直接在右上角的网络管理器中配。如下:

1NAT模式:虚拟机设置成使用VMnet8

IP192.168.48.130,要与192.168.48.1在同一个网段的不同地址,或者也可以配置成DHCP方式,这时VMnet8必须是启用了DHCP服务。

Netmask 255.255.255.0,要与192.168.48.1的掩码相同。

Gateway IP:填写VMnet8的网关192.168.48.2

DNS: 填写 VMnet8的网关地址192.168.48.2,也可以设置成你真实主机中使用的DNS地址。事实上,如果是DHCP方式,nameserver会自动设置成VMnet8 Gateway IPAddressnameserver就起到Windows下的DNS Server作用,这种设置类似于Windows域环境下的DNS转发器,说明这个地址会自动转发DNS查询到主机的DNS

配置好后用service network restart命令重启网络。

2Host-only模式:虚拟机设置成使用VMnet1

查看真实主机中连接外网的网卡属性,选择“共享”标签,设置成允许其他网络的用户共享此连接,并设定允许的网络接口为VMware Network Adapter VMnet1。再查看一下你的VMnet1 的属性,看一下TCP/IP协议的设置,你会发现已经被自动设置为192.168.137.1/255.255.255.0Windows下的设置完成后,转入Linux虚拟机,将你的eth0IP地址设置为静态的。

IP192.168.137.2(或其它在此网段上的地址)。

Netmask 255.255.255.0,与VMnet1的一致。

Default Gateway: 192.168.137.1 ,为VMnet1 Adapater的地址。

DNS:输入你自己的DNS (主机中用的DNS)。

3Bridged模式:虚拟机设置成使用VMnet0

一切都跟主机一样,只有IP不能与主机相同,但在同一个网段。

7、组网实例

我们的目标是建立两个定制的子网VMnet2VMnet3,这两个网络与真实主机是不直接相连的(真实主机中我并不添加连接到这两个网络的虚拟网卡),而是通过一台以桥接模式创建的属于VMnet0的虚拟机连接VMnet0,真实的局域网也即VMnet0通过本地的网关连接Internet,我们将VMnet2的虚拟机称为VMnet2PCVMnet3的虚拟机称为VMnet3PCVMnet0PC称为VMnet0PC。现在把VMnet0PC作为路由器和DNS服务器,要求三个网段互联互通,并都可以访问Internet。注意本例中需要建立3台虚拟机,而真实的PC也处于VMnet0子网中,再次强调一下,VMnet0实际上是现实局域网在虚拟网络中的映射。

首先,我们建立第一台虚拟机VMnet0PC,可以直接使用刚才的RHEL6.0虚拟机,设置成桥接模式。这样,这台虚拟机会有一块连接到VMnet0的虚拟网卡eth0,与真实PC处于同一个网段内,设为这个子网IP192.168.0.0,这个网段的网关为192.168.0.1。由要求可知,VMnet0PC另外还要增加两块虚拟网卡eth1eth2,这样VMnet0PC应该有三块不同的网卡分别接入三个不同的虚拟网络(VMnet0, VMnet 2, VMnet3)。打开VMnet0PC虚拟机的属性设置Hardware标签下面的“Add…”按钮,分别添加两块网卡连接到VMnet2VMnet3

其次,我们需要配置子网VMnet2VMnet3,并在其中创建虚拟机。打开Edit--->Virtual Network Editor,可以看到VMnet2的子网IP192.168.193.0,为Host-only模式。上面我们讲过,VMware Workstation为主机安装了一个DHCP服务,我们还可以把VMnet2添加到DHCP的服务列表中(勾选“使用本地DHCP服务”),让DHCP为连接到VMnet2交换机上的虚拟机自动分配在子网192.168.193.0中的动态IP地址。用同样的方法,为交换机VMnet3指定子网IP192.168.70.0,并添加它到DHCP的服务列表中。注意我们并没有把真实主机中任何的虚拟网卡连接到VMnet2VMnet3VMnet0PC中的虚拟网卡eth1eth2可以保持默认的设置,采用DHCP方式。这样就可以让VMware Workstation自带的DHCP服务为它们自动分配一个VMnet2子网或VMnet3子网中的动态IP地址。当然你也可以为eth1eth2手动指定IP,以指向VMnet2VMnet3子网。配置完后,VMnet0PC需要重启,以适应VMnet2VMnet3的更改。在VMWare的右下角,我们可以看到VMnet0PC3个网卡连接情况。

接下来,我们要需要在VMnet2VMnet3中创建虚拟机并安装操作系统。这里我们在VMnet2中创建一台VMnet2PC的虚拟机,并安装Windows Server 2008。在VMnet3中,比如我们可以安装一台WindowsServer 2003的虚拟机VMnet3PC。当然我们也可以使用VMWare提供的克隆功能,直接对VMnet2PC进行复制。关闭VMnet2PC,然后单击VM--->Clone…,根据复制向导,把VMnet2PC复制成我们需要的VMnet3PC

现在的网络拓扑结构为:

VMnet0PCeth0192.168.0.115/255.255.255.0

真实主机:192.168.0.114/255.255.255.0,它与VMnet0PC均位于真实子网VMnet0内,网关为192.168.0.1。可以上Internet

VMnet0PCeth1:使用VMnet2子网的地址192.168.193.129/255.255.255.0

VMnet0PCeth2:使用VMnet3子网的地址192.168.70.128/255.255.255.0

位于VMnet2VMnet2PC:使用IP192.168.193.130/255.255.255.0

位于VMnet3VMnet3PC:使用IP192.168.70.129/255.255.255.0

到目前为止,仅有VMnet0PC可以连接internet并访问所有的网段。默认情况下VMnet2PCVMnet3PC是不能上Internet的。例如,在VMnet3PCping 192.168.70.128是能通的,但ping 192.168.0.115则不通,因为他们在不同的网段。要让不同网段之间能互访问,就必须在不同的网段之间设置路由器。VMnet0PC并不是一台路由器,但我们可以用Windows操作系统中的软路由功能或Linux中的IP转发来实现基本的路由服务。即在VMnet0PC中开发IP转发功能,将VMnet2PC的网关指向eth1,将VMnet3PC的网关指向eth2,这样就可以实现不同网段之间的互通。

VMnet0PC中配置好三块网卡后,会自动添加这三个网段的静态路由,可用route命令查看,如下:

最后一条是自动添加的缺省路由,必须要有缺省路由,因为缺省的路由是把所有的数据包都发往它的上一级网关。如果没有这些路由,可以用命令添加,例如:

route   add   -net  192.168.193.0   netmask   255.255.255.0

添加缺省路由:

route   add   default  gw   192.168.0.1

接着,在/etc/sysctl.conf文件中开启IP包转发功能,设置net.ipv4.ip_forward = 1,执行sysctl -p让参数生效。这样VMnet0PC就会自动在三个网卡之间转发IP包了。还要开启NATIP地址欺骗,使VMnet2VMnet3子网能通过VMnet0PCNAT服务实现访问Internet

iptables -F                   # 清除filter表中原有的规则

iptables -P INPUT ACCEPT

iptables -P FORWARD ACCEPT   #允许IP转发

iptables -t nat -F              # 清除NAT表中原有的规则

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE   # 打开NATIP地址欺骗功能

iptables的更改保存到/etc/sysconfig/iptables文件中,以便系统重启时仍可从此文件中读入这些规则:

service iptables save

chkconfig iptables on

VMnet0PC上测试:

第一步,测试自身网络是否工作正常,执行如下命令,测试三个网卡:

ping   192.168.0.115

ping   192.168.193.129

ping   192.168.70.128

如果这些地址都能ping通,则第一步通过,否则查找原因,排除错误。

第二步,测试与上一级网关之间是否连通:

ping   192.168.0.1

如果通畅,则正常;否则查找错误原因。

VMnet3子网内测试为例,登录到VMnet3PC,将其默认网关指向eth2,这样就可以在VMnet3PCping192.168.0.115192.168.193.129这两个不同网段的地址了。

第一步,测试自身是否工作正常,ping   192.168.70.129

第二步,测试与网关是否连通,ping   192.168.70.128

第三步,测试与VMnet2PC192.168.193.130)是否连通,这是VMnet2网段内的一台计算机,ping   192.168.193.130。注意VMnet2PC同样需要将默认网关指向eth1

第四步,测试与外网地址是否连通,ping  192.168.0.1,如果连通了,表示路由器配置正确,否则,查找原因。

     如果没问题的话,VMnet3PC就可以通过VMnet0PC访问Internet了(不行的话可能是DNS的问题,将VMnet3PCDNS设置成VMnet0PC或者真实主机使用的DNS)。可以看到,开启了IP转发和NAT之后,不同网段之间就可以实现互访,并且VMnet2VMnet3子网的机器也能够通过VMnet0PC来访问Internet。注意如果VMnet0PC中是Windows Server,我们可以用软路由功能来实现跨网段互访,在“控制面板--->管理工具--->路由和远程访问”中配置。网上有很多相关的文章介绍(搜索“用双网卡实现跨网段访问”),这里就不展开了。

原创粉丝点击