使用VirtualBox和pfSense建立一个虚拟服务器机柜

可能是由于某种情怀,我特别喜欢数据中心和服务器机柜,正好最近的一些实验需要用到LAN的环境,然而又没钱去买专门的交换机和服务器来搭建物理机柜,只好用VirtualBox和高性能开源防火墙pfSense来实现这个功能了。

本文会使用到的术语表:

  • GW -> GateWay,即网关
  • TOR-Switch -> Top Of Rack Switch,机柜顶层交换机,一般用于一个机柜间的网络通讯且起到管理整个机柜的效果。

Why not VirtualBox NAT

由于需要的是一个LAN环境,所以我们需要做NAT,虽然VirtualBox自带了一个NAT功能,但是那个NAT真的只是一个NAT,连GW都不在我们手上,不予考虑,结构图如下:
vbox-NAT
VirtualBox-NAT

Build with pfSense

在路由和防火墙领域可能国内听过说pfSense的人比较少,听说过DD-WRT或OpenWRT的人较多,pfSense是一个非常优秀的基于FreeBSD的开源操作系统,主要被用于防火墙和网关,具体特性可以见pfSense官网

首先需要在官网上下载pfSense。CQJTU校内用户可以在我建立的镜像站(10.1.74.132)上(操作系统 / BSD / pfSense)高速下载。

我的笔记本有两个网卡,一个有线网卡用于连入校园网,另一个无线网卡开放热点,自带一个有DHCP的10.42.0.1/24网段。

计划如下,将虚拟机柜的TOR-Switch(也就是我们要部署的pfSense)的WAN地址挂在10.42.0.1/24下,使用IP:10.42.0.110,对内提供一个192.168.1.1/24的网段作为机柜内部IP地址。

V-Rack

创建一个新的虚拟机,由于是GW,肯定需要两个NIC连接WAN和LAN(当然,这里的WAN是广义的),Internal Network那一栏直接写个新名字即可以创建一个内部的网络(也就是机柜内部网络段)。

VBOX-pfSense-net0
VBOX-pfSense-net1

安装pfSense,可以直接使用Easy Install,我已经安装过一遍了,忘了截图,不过也就是各种下一步就可以解决的,如果一切顺利的话,Reboot,然后你就可以看到如下界面。
pfSense-Console

当然,这里的IP是我已经配置好了的,要配置IP地址,选择 2,关闭WAN的DHCP,设置子网掩码和上游(10.42.0.1/24)同步即可。
pfSense-Config

如果你的WAN和LAN与NIC不符合的话,你需要Assign Interfaces一下,不过一般没这个问题,如果你遇到了这个问题而且实在不会解决的话,可以在下方留言。

关于pfSense的基本安装就结束了,现在把你想放入机柜中的机器的网络接口全部设置为刚刚的那个Internal Network即可,所有人都上车!

WebGUI

从机柜内部的某台机器访问192.168.1.1,默认用户名admin,密码pfsense,登录进去后根据需要修改相关配置(比如管理页面是否需要SSL啊,WAN口的上游GW是什么啊诸如此类),几张截图如下:

pfSense-WebGUI
pfSense-WebGUI

这个时候可以尝试让机柜内的机器访问一下互联网了,如果访问不了,考虑是不是以下地方出了问题
pfSense-Config

2017-06-02补充:在我这个网络结构下,机柜内部的机器需要DNS来解析域名。这里建议关闭DNS Resolver并直接Forward上游(10.42.0.1)的DNS,可以省很多事。
DNS Forward

至此,虚拟机柜已经可以开始使用了。


我的博客使用了Disqus评论框,如果你看不到评论框,那么多半Disqus服务在你所在的地区被墙,请使用代理访问。