VMWare是著名的虚拟化产品公司,VMWare Esxi也是专为服务器设计的虚拟化软件。在安装VMWare Esxi的服务器上可以同时运行多个虚拟系统,充分利用服务器资源。其一大特色之处就在于可以生成虚拟的网络拓扑,通过创建虚拟交换机,可以管理不同虚拟系统上的流量,也令虚拟设备的配置变得更加灵活。可惜的是,VMWare Esxi使用vSwitch作网络交换设备,并未直接提供NAT上网的解决方案。下面以多个虚拟机共享一个公网IP上网为例(相当于需要路由器配置上网),讲解在VMWare Esxi中配置NAT环境。(本教程以讲解搭建Esxi虚拟网络拓扑为主,安装Esxi及虚拟机、设置软路由等操作不作为重点,因此略去,有需要可自行搜索相关教程或参考本文结尾处的"参考资料")
目的:一个公网IP(本例中为172.16.12.141),2台虚拟设备共享上网
系统环境:VMWare Esxi 5.5
软件环境:海蜘蛛软路由(v8),VMWare vSphere Client 5.5,操作系统镜像
步骤详解:
1. 安装并配置VMWare Esxi
硬件环境可以使用VMWare Workstation[1],前提是PC最好有8G以上内存,如果有条件可以在真正的服务器或闲置的PC上直接安装。下载地址及教程略,可以自行搜索网上教程。安装好后需要配置Esxi的管理IP。本实验在局域网下(路由器),网络地址为172.16.12.1,实际主机和虚拟机都桥接在这个局域网下。建议开启DHCP并在【DHCP服务器】中进行静态地址分配。具体教程略。
本例中,VMWare Esxi安装在实际主机的VMWare Workstation虚拟机上,配置两个网卡(自动桥接),根据网卡的MAC在路由器上分配DHCP地址:
如上图,Esxi的两个网卡分别绑定了140和141,其管理地址为140(具体配置参考Esxi网络配置相关教程[2])。配置好后能通过vSphere Client登录到管理后台为配置成功,如下图。
2. 在Esxi上安装系统
本步骤操作同在VMWare Workstation上安装虚拟机一样,因此略。
对于Esxi运行在虚拟机上的情况,建议安装WinXp、Linux这些占用资源少的系统,而且共安装两个系统已经足够了。
本例安装两个WinXp系统作实验。
3. 在Esxi上安装海蜘蛛软路由
软路由可以帮助虚拟网络拓扑实现路由转发功能,虽然性能不及硬件路由器好,但是有着比硬件路由更丰富的功能,而且一般的路由功能需要的性能并不高,在服务器上跑软路由可以满足基本的NAT需求了。本例中使用的海蜘蛛有功能强大、使用操作简单的优点,在Esxi上新建虚拟机安装海蜘蛛则可以满足NAT共享上网的需求。海蜘蛛可从官网上下载试用版[3]或者找破解版的教程[4]。
海蜘蛛的安装也很简单,根据提示安装或参照网上教程都可以。对于破解版,安装后可以使用命令激活[5]。注意在创建海蜘蛛虚拟机时,至少需要创建两个网络适配器。
安装后进入海蜘蛛主机控制台(右键虚拟机-打开控制台),可以看到海蜘蛛的后台界面,包括配置地址及更改参数的选项。本教程使用默认配置,即NAT内网地址为192.168.0.1,管理端口880。
4. 搭建局域网
软路由安装后,只要与其他虚拟机配置好网络,就可以通过其他虚拟机进入配置网页,相当于一般路由器的192.168.1.1,这里就是192.168.0.1:880。下面通过创建vSwitch搭建局域网[6]。
在vSphere Client中选中主机,点击【配置】-【网络】,如下图
接下来要创建一个标准交换机:
4.1 点击右上角的按钮【添加网络...】 - 【虚拟机】 - 创建vSphere标准交换机,注意要取消所有实际网卡,这个交换机是无适配器的,如下图:
4.2 点击下一步,可以更改端口组的名称(本例中改为NAT)
4.3 完成后,在虚拟机的【编辑虚拟机设置】选项中,将目前所有虚拟机的网络适配器选项中,网络标签改为NAT(根据步骤4.2的端口组名称)
4.4 配置完成后,vSwitch1的端口组应该是这样的(这个交换机没有物理适配器):
至此局域网已配置好了,打开其中一台虚拟机,通过浏览器登入软路由的管理后台(192.168.0.1:880,帐号admin,密码admin)。登得上证明已经连接到局域网了(下图为管理主页界面),可以ping一下其他虚拟机的IP测试。至于路由器中的局域网、DHCP之类的设置,这个属于路由器配置的问题了,这里略。
5. 连接WAN口
硬件路由器上除了几个LAN口外,还有一个WAN口。而对于软路由,WAN口可以有不止一个。在第4步中,局域网已经搭好,不同虚拟机间以及虚拟机和海蜘蛛间都可以通信。接下来只需要把软路由的WAN口插上,就可以上网了。
创建一个标准交换机:【添加网络...】 - 【虚拟机】 - 【创建vSphere标准交换机】(这里勾选一个空闲的网卡,如vnmic-1)- 更名(本例为WAN)
在海蜘蛛虚拟机的配置中,把海蜘蛛虚拟机的另一个空闲网络适配器加到WAN网络中:
对比上面vSwitch1的配置截图,Router软路由跨了两个交换机端口组。接下来打开Esxi中的其中一台虚拟机,通过浏览器进入路由控制台,在左边选项中可以发现增加了【广域网接口】这个选项(这时因为WAN口已经插上了,如果再给WAN网络分配多一个网卡,广域网接口就会出现两个)。通过【广域网接口】可以设置WAN口的上网参数。用服务器或实体主机做实验的话就和配置PC上网一样,如果是经过硬件路由器、到VMWare Workstation、再到Exsi的话,就填在硬件路由器中的IP地址参数,这时只要连接上硬件路由器就可以了。本例中,广域网地址设为172.16.12.141。
完整的网络拓扑图:
6. 分析
就Esxi来看,这时NAT共享IP上网的网络拓扑已经搭建好了,如果网络里的虚拟机能连上路由器而不能上网,那是路由器的配置问题了。下面的内容就这个网络拓扑分析NAT上网的原理。
从网络拓扑配置(上面两个交换机的截图)可以看到,软路由跨了两个端口组,由于LAN没有物理适配器,所有虚拟机的流量都发到了软路由上(其他虚拟机也会收到,但是不作处理),软路由在LAN的网络适配器用于接收局域网流量。软路由的程序可以实现路由功能,通过NAT转换等操作后,把流量统一由WAN中的网络适配器输出。由于WAN连接着物理适配器,流量从LAN进入路由,从WAN转发出,最终从物理适配器(上图vnmic1)发到真实的网络。
如果要和硬件路由器类比,LAN相当于路由器的几个LAN口,而WAN就是WAN口了。通常硬件路由器只有一个WAN口,但软路由可以实现多带宽负载均衡等功能,因此可以插上多个WAN口。
系统结构如上图,这里的交换机都只有一个端口组(同端口组所有端口属性相同)。公网IP(172.16.12.141)从vSwitch2进入软路由,通过路由功能生成一个内网网段(192.168.0.1),由vSwitch2把192.168.0.1xx网址分配给2台虚拟机。这里软路由只有一个工作,就是把外网IP转换为多个NAT内网地址,地址分配的功能由vSwitch1实现,所以2台虚拟机和路由器插在LAN的端口组上。右下角表示172.16.12.140留作管理IP用。
上图的红色框线内表示一个硬件路由器的工作原理(路由器所有LAN口集合相当于交换机),在其内部实现了路由功能和交换功能,而WAN口插网线相当于上图红色虚线(直接连接上网口),只是在Esxi中需要通过交换机(vSwitch2)连接上真实的网卡。
通过软路由,可以实现服务器中建立多个虚拟机而使用同一IP,在虚拟机中各自安装服务器软件,就可以通过这个外网IP访问2台虚拟机了。当然端口不能共用,80口只能给一个虚拟机用,其他可以通过端口转发,或者用反向代理的方法,这里也不作详细说明。
参考资料及引用:
[1] Workstation安装Esxi: 红黑联盟.VMware ESXi 5安装图文教程.
http://www.2cto.com/os/201201/117743.html
[2] Esxi网络设置:虚拟化之Esxi的基本设置.
http://tieba.baidu.com/p/2096905053
[3] 海蜘蛛官方网站: http://www.hi-spider.com/
[4] 海蜘蛛完美激活+海盾: 海蜘蛛6.15完美激活+海盾+教程.
http://bbs.pxecn.com/thread-101591-1-1.html
[5] 海蜘蛛muddyboot激活方法: 海蜘蛛破解方法.
http://blog.chinaunix.net/uid-20832381-id-1743773.html
[6] 局域网配置: 在VMware ESXi服务器上配置NAT上网.
http://www.it165.net/os/html/201309/6206.html