使用 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服务在你所在的地区被墙,请使用代理访问。