在使用VMware workstation的时候,我们经常以NAT的方式配置虚拟机的网络,与桥接方式相比,这样配置可以让虚拟机共享主机的网络而不用单独设置IP。到了ESXi,由于其使用了vSwitch作为网络交换设备,因此没有NAT这样的选项了。但在实际环境中,我们还是经常会遇到IP不够用的情况,比如只有少量几个公网IP,但是有一堆虚拟机需要上网。此时就要通过软路由来达到目的。
先看一下配置之前的网络环境,在vSphere Client上选中主机,然后在右边依次点击“配置”->“网络”,如下图:
可以看到当前主机上有一个虚拟交换机vSwitch0,构成VM Network网络,它连接到主机的物理网卡vmnic0上,因此网络是与外网连通的。有4台虚拟机连接到此网络。此时这4台虚拟机想要上网,必须有此网段的独立IP。
想达到共享上网的目的,我们必须增加一个内网,比如10.10.10.*,然后通过路由设置把这个网段内的请求映射到外网去。
先在主机上创建内网,还在刚才的“网络”页,点“添加网络...”,选择创建虚拟机网络:
之后比较关键,选择创建虚拟交换机,但是不要让它与物理网卡相关,因此去掉vmnic1前面的勾,下方的预览图里会相应显示无适配器。之所以这么做,是因为我们要把这个网络的请求都转发到VM Network上去,而不要让它自己走物理网卡出去。
下一步,可以给它定一个名称,比如NAT Network。
接下来要建一个软件路由了,它的作用是连接两个网络,把内网的请求转发到外网去。我推荐使用pfSense,它是一个ova文件,在vSphere Client的文件菜单里选“部署OVF模板...”就可以部署它了,过程比较简单,不一一截图了。
部署完成后,注意编辑一下配置,作为路由器,它一定有2个网络适配器,我们把适配器1定义为外网,让它接入VM Network网络,把适配器2定义为内网,让它接入NAT Network,如下图:
顺便记录一下这两个适配器的MAC地址,后面会用到。
完成后启动新部署的pfSense虚拟机,比较慢,启动好后如图:
从图中可以看到它识别了两个网络,WAN表示外网,绑定到了em1上,没有ip,LAN表示内网,绑定到了em0上,自动分配了一个192.168.1.1的IP。
接下来要设置它,选择1,设置适配器,如图:
两个有效的网络接口,em0和em1,这时刚才记录的MAC就发挥作用了,对比之前的设置得知,em0是连接到VM Network的适配器,是外网,我们要让它代表WAN,并且分配外网IP,em1是连接到NAT Network的适配器,是内网,我们要让它代表LAN,分配内网IP,并且作为此网络的网关。
后续的几个选项:
Do you want to set up VLANs now? 选n,不设置vlan
Enter the WAN interface name or 'a' for auto-detection: 设置外网的适配器,输入em0
Enter the LAN interface name or 'a' for auto-detection: 设置内网的适配器,输入em1
Do you want to proceed? 是否继续设置其它内容,先选n,不继续设置了
如图:
之后会回到首页,选2,设置IP:
Configure WAN interface via DHCP: 是否开启DHCP,选n
Enter the number of the interface you wish to configure: 输入要设置哪个适配器,参照上面的提示,选1,先设置外网的
Enter the new WAN IPv4 address: 输入外网的IP地址,如192.168.90.16
Enter the new WAN IPv4 subnet bit count: 输入外网的子网掩码位数,如24表示255.255.255.0
Do you want to revert to HTTP as the webConfigurator protocol: 输入y,表示使用http协议登录管理控制台
同理再设置内网的IP为10.10.10.1/24,完成后的效果如图:
OK,万事俱备,下面要进行详细的设置了。再建立一个虚拟机,比如Win7(后续的设置要通过浏览器,最好是IE8以上,或者用chrome/firefox一类的),把它的适配器连入NAT网络,设置IP为10.10.10.2/24,网关为10.10.10.1,然后打开浏览器登录 http://10.10.10.1,默认用户名密码为admin/pfsense。
第一次登录,会自动进入设置向导。
设一下Hostname和DNS:
根据实际情况设一下外网的类型、IP、Gateway,这样外网才能上网,比如我这里是局域网固定IP,Type就选Static。
再设一下内网的(由于之前设过了,检查一下就好了):
OK,现在虚拟机可以连通外网了,打开一个网页试一下吧。
此时查看主机的网络设置,可以看到是这样的:
pfSense29这台软路由跨了两个vSwitch,它将NAT Network(内网)的请求转发到VM Network(外网)上,并最终走主机的物理网卡vmnic0到达互联网。以后增加新的虚拟机,只要把网络适配器连到NAT Network上,设置IP为10.10.10.*,网关10.10.10.1就可以上网了。