PCEVA,PC绝对领域,探寻真正的电脑知识
打印 上一主题 下一主题
开启左侧

用pfSense搭建ESXi上的软路由

[复制链接]
跳转到指定楼层
1#
nighttob 发表于 2014-10-4 11:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
点击数:37631|回复数:28
本帖最后由 nighttob 于 2014-10-6 18:04 编辑

才不是给东哥写的……

本文会涉及到的ESXi基础知识在这里。继续的话,我默认你已经了解ESXi和vSphere的最基本操作了,所以不会逐步介绍。

这么干的目的是开一个虚拟机承担路由角色,NAT出来下级IP供其它虚拟机和ESXi主机及其他外部设备使用。适用于需要部署大量虚拟机,但只有一个外网IP,且不能添置独立路由器的环境。当然就是为了玩软路由也能这么干,我家里就这么用了。

网络最终搭好以后应该是这个样子的:

稍作注解

服务器有两个网口,在ESXi里面分别记作"vmnic0"和"vmnic1"。分别用这两个网口作为服务器的WAN端口和LAN端口,划分出两个虚拟交换机,也就是图上的"VM WAN"和"VM LAN"。

外部的无线路由器,模式变更为“无线AP模式”,也就是5个RJ-45都是LAN、NAT关闭、DHCP关闭,只充当无线接入点+千兆有线路由的角色。后面的台式机、笔记本等其他设备还是连在无线路由器上。



正片开始。

我用的是pfSense这个软路由系统,之前@Overthink和@Asuka曾经介绍过,基于FreeBSD 8.x,还有防火墙、VPN Server、PPPoE Server等功能。这里只介绍做基本的路由功能。

首先下载最新版pfSense,目前最新版是v2.1.5-Release,地址https://pfsense.org/download/,点"here on the mirrors"这个链接。然后让你选需要的版本,选择"AMD64"和"Live CD with Installer",之后就有数个下载镜像站点了,随便找一个下载就是了,反正都在国外。

下载完以后得到一个.gz格式的压缩包,解压出其中的ISO镜像,然后在vSphere Client里新建一个虚拟机,使用光盘镜像安装。

安装之前先配置好ESXi的虚拟网络,也就是像我上面图那样,划分出两个交换机。一个作为系统的WAN端口,一个用来给虚拟机提供LAN端口。你可以不需要双网卡,只需要一个网口做WAN,LAN只服务于虚拟机。

关于虚拟机的配置,简单说一下:
1. 客户机操作系统选"FreeBSD 64位",在其他里面;
2. CPU核心数量根据你的外网速度(实际上是NAT转发能力)及功能需求而定,咱们普遍不到百兆的外网速度和基本路由功能,只需要主频2GHz以上CPU的单核心(单线程)就够了。详情看pfSense的硬件需求说明,https://www.pfsense.org/hardware/#requirements
3. 内存最小256MB,建议512MB。同样,网速和功能更多的话需求也更多,同样见pfSense的硬件需求说明。
4. 2个虚拟网卡,用默认的E1000就可以。这两个网卡要分布在之前划分的两个虚拟交换机中;

5. 虚拟磁盘有2GB就足够,没必要很大。其他虚拟磁盘相关的设置保持默认,比如“LSI Logic 并行”和“厚置备延迟置零”。

然后就可以开启虚拟机电源,打开控制台开始安装pfSense了。(在此之前可以编辑虚拟机配置里面看一下两个虚拟网卡的MAC地址,记录下来,以防后面混淆)

把pfSense安装到虚拟机中

在虚拟机开始引导以后,会出现欢迎界面

1,或者等时间继续。闪过一堆信息以后

输入I,回车,开始安装。然后是一个蓝屏

前三项都保持默认,选第四项,继续。又是一个选项

选第一项快速安装。出来一个确认框,告诉你会抹除磁盘数据

OK继续。开始走进度条

第一个进度条结束,让你选择核心

保持默认,选第一个,继续。然后是第二个进度条

走完以后安装就完成了,重启。同时告诉你取出安装介质。

正在重启,这里告诉你默认用192.168.1.1登录Web管理界面,默认用户名admin,默认密码pfsense,要记住,以后可以改。

重启以后跟刚开始差不多,但欢迎界面时间短了不少,依然选1,或者等时间。

闪过一堆信息以后,告诉你有两个网口,分别叫"em0",MAC地址尾号是"b7",和"em1",MAC地址尾号是"c1"。检查一下是否跟之前记录的一样,还有分别对应到哪个网络/虚拟交换机上。我这里em0在VM WAN上,em1在VM LAN上。

首先让你设置VLAN,这里我不需要,输入N,回车。

输入WAN的网口名字,输入em0,回车。

输入LAN的网口名字,输入em1,回车。

输入额外网口,如果有的话,这里没有了,留空,回车。

现在告诉你WAN和LAN端口的对应关系,确定无误,输入Y,回车继续。

然后pfSense会根据之前提供的信息自动配置一番,出现这个界面就代表系统准备完毕,可以登录到Web管理界面进行设置了。

设置pfSense

为了方便后续进入Web管理界面进行设置,我们现在先手动配置一下IP,选2,回车。

输入1,回车,先配置WAN口。

WAN口是否由DHCP获取IP地址。这个根据自己情况选,我这里是PPPoE,所以输入N,回车。

指定IP地址。同样根据自己情况,如果是固定IP就填进去。我这里是PPPoE所以是动态IP,留空,回车。

WAN口是否由DHCPv6获取IPv6地址。同上,输入N,回车。

指定IPv6地址。同上,留空,回车。

然后问你是否用HTTP协议访问Web管理界面,输入Y就是用HTTP登录,输入N就是用HTTPS协议登录。如果用HTTPS的话浏览器可能会报警,网页的证书无效,当然你也可以在本地安装证书解决问题。完成上述以后回车继续。

接下来继续配置LAN口。

输入LAN口的IP地址,自己写新的。

子网掩码,一般是24,也就是255.255.255.0。

这里回车继续。

输入LAN口IPv6地址,不需要就留空。

是否要在LAN口上启用DHCP服务,需要就Y,回车。

输入DHCP地址范围起点,主意要跟LAN IP地址在一个网段内。

输入DHCP地址范围的终点,同上。

完成,回车继续。

LAN口的IP地址就已经发生变化了,后面就可以登录Web管理界面继续设置。

打开浏览器,在地址栏输入LAN口的IP地址。

"Username"和"Password"就是安装结束后告诉你的admin和pfsense。

首次登陆默认进入向导。如果没有自动出现,在最上方菜单栏上点"System"下拉菜单出来的"Setup Wizzard"。

General Information(基本信息)页,需要设置Hostname(主机名)、Domain(域)、主要和次要DNS服务器、以及Overrride DNS。主机名和域可以自己改,也可以不动。如果外网IP自动获得DNS地址就不用手动指定DNS,不自动获得DNS或者用自己的DNS就现在写上吧。最后一个Override DNS保持勾选。

Time Server Infomation(时间信息)页。第一项是设置NTP服务器,可以不动。第二项是时区,我找了很多次都没发现北京,随便找个东八区内的就好了。

Configure WAN Interface(WAN口设置)页。先选择你的外网类型,是DHCP、PPPoE还是静态IP。然后下面分别填空,PPPoE在比较靠下的位置,一般填写用户名和密码就可以了,其他的项目不要随便乱填、乱改。

Configure LAN Interface(WAN口设置)页。先前已经改好了,这里确认一下就好。

Set Admin WebGUI Password(设置新密码)页。修改admin账户的密码,没什么要求,只要别一样就行。

最后Reload一下,完成向导。

这里告诉你完成了,点下面那个"here"继续,上面那个"here"是让你给pfSense项目捐款。

如果一切正常的话,这里就可以看到WAN口有公网IP了。如果没有的话,检查一下网线连接,然后重启一下pfSense(在"Diagnostics"下拉菜单找"Reboot",或者在vSphere的虚拟机控制台输入5)。

LAN内的虚拟机和其他设备也应该可以上网了,如果不行的话断开一下网络连接,然后重新连接(重新插拔网线或者在网络连接里面禁用启用都行)。

到这里基本的pfSense设置就完成了,后面还有一些建议操作。

为避免主机重名,可以在"System"下拉菜单里找"General Setup",再次指定主机名、域和DNS服务器等。

在"System"下拉菜单里"Advanced"里可以选择是用HTTP协议登录还是HTTPS协议登录,"Disable webConfigurator login autocomplete"是禁止用户名密码自动完成,可以不勾。

同样"System"下拉菜单里"Package"里面可以找到一个"Open-VM-Tools",是个开源版的VMware Tools。安装以后能实现近似功能,这样就不用在SHELL里面手动打命令装了。还有其他的Package,用途看介绍。

对Windows来说,可能还需要开启UPnP服务,在"Service"下拉菜单里有"UPnP & NAT-PMP",默认是禁用的,要启用就勾上前两个复选框,后面的选项看自己需要选填。

此外还有NAT转发设置、防火墙规则、QoS(Traffic Shaper),这些都在"Firewall"下拉菜单里,设置非常全面且复杂,以及VPN、DDNS、PPPoE服务器、网络唤醒等等,有需要请直接参考pfSense的帮助。

如果想给pfSense关机的话,跟前面说的重启类似,是在"Diagnostics"下拉菜单找"Halt System",或者vSphere虚拟机控制台输入6

你还可以给pfSense的主页(Dashboard)增添元素,点那个"+",然后选择需要的,比如我这里添加了"Traffic Graph"和"Services Status",然后按"Save Setting"。

在这里我就只介绍这些内容。软路由并不是十分傻瓜或者说容易上手的,如果想自己尝试,需要自己手一定能力,当然看懂英文也是必要的。虽然pfSense也有汉化版,但我个人不推荐,有些东西翻译成中文反而看不懂了。

以下说几个主意事项:

1. 强烈建议把ESXi管理端口改成固定IP,在ESXi主机上改或者在vSphere Client上面改都可以。因为你把路由从主机外面移动到里面了,所以路由不可能比主机更早启动,这也就导致如果还用DHCP获取ESXi管理端IP地址的话,在软路由启动之前是没有IP的。万一内部网络出现问题,就需要重置整个网络才行了。因此强烈建议手动指定IP,当然也要跟软路由的LAN IP在一个网段内。

2. 强烈建议把软路由添加到“虚拟机自动启动/关机”里面。理由部分同上,如果LAN内的设备主要依赖DHCP的话,在没有获取DHCP分配的IP地址之前也是访问不到ESXi主机的。另外pfSense的启动比较费时间,让它尽早启动,以免耽误正常使用。

3. pfSense会自动检查更新,也有在线升级的功能,在更新前建议备份设置,在"Diagnostics"下拉菜单找"Backup/restore"。

4. 建议禁用掉自带的admin账户,自己创建一个新管理员账户登录。在"System"下拉菜单里找"User Manager",新建一个管理员账户,权限可以参考admin账户,设置好以后把admin账户禁用掉。



我用pfSense做软路由也有4个多月了,从最开始摸索完开始算,也就是随服务器重启或者关机的时候才会关软路由,稳定性什么的肯定不用担心,就是看你能不能掌控的住。对我这15M都不到的网来说,单核心1230v2+512M内存也是绰绰有余了。

只是为了取代路由器而用软路由,这实在太蛋疼,我设计的情形是有多个虚拟机要使用LAN联网,且无法用单独的路由器。另外pfSense对无线网支持不佳,普遍只能支持802.11g的无线,而且只对Qualcomm Atheros的无线网卡支持的比较好,其他品牌的都差很多,所以有无线网需求的,还是别多此一举了。

如果你的网速比较快(百兆以上),有7x24挂机需求,而且挂机量巨大,对无线网依赖低,那么这套方案还是比较可行的。在ESXi里面配置三个虚拟机,分别作软路由、下载机和存储,可以实现一机多用,如果不需要直通PCI设备的话,i3甚至奔腾都没问题。只是RDM(裸映射磁盘或者说直通磁盘)的话,不需要有VT-d。但不建议有做软阵列需求的用虚拟机,不稳定因素太多。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

评分

参与人数 1活跃度 +5 收起 理由
无心飘落 + 5 xiexie= =

查看全部评分

2#
nighttob  楼主| 发表于 2014-10-4 16:31 | 只看该作者
3#
overthink 发表于 2014-10-4 16:38 | 只看该作者
小东东快来学习,  我准备写用ESXI跑ROS的
4#
overthink 发表于 2014-10-4 16:42 | 只看该作者
但不建议有做软阵列需求的用虚拟机,不稳定因素太多。


我用了,5个东芝3T  RDM给OMV做RAID5
5#
nighttob  楼主| 发表于 2014-10-4 21:45 | 只看该作者
overthink 发表于 2014-10-4 16:42
我用了,5个东芝3T  RDM给OMV做RAID5

反正有朝一日死的那一天别说我没提醒就对了……

其实我觉得OMV还不是那么丧病,虚拟机用还可以。FreeNAS和NAS4Free就得出事了。
6#
无心飘落 发表于 2014-10-4 21:48 | 只看该作者
感动。。我被ESXi虐了5天,转去2012R2了。。
7#
overthink 发表于 2014-10-4 21:52 | 只看该作者
nighttob 发表于 2014-10-4 21:45
反正有朝一日死的那一天别说我没提醒就对了……

其实我觉得OMV还不是那么丧病,虚拟机用还可以。FreeNAS ...

碰到什么问题了么?  我这到目前为止,还算正常
8#
nighttob  楼主| 发表于 2014-10-4 21:56 | 只看该作者
overthink 发表于 2014-10-4 21:52
碰到什么问题了么?  我这到目前为止,还算正常

我遇到的问题并不能完全排除硬件因素。
但FreeNAS的开发者是不建议在虚拟机里面做ZFS。你是当实验验证、安全起见还是免责声明,那就看你自己了。
9#
overthink 发表于 2014-10-4 22:03 | 只看该作者
nighttob 发表于 2014-10-4 21:56
我遇到的问题并不能完全排除硬件因素。
但FreeNAS的开发者是不建议在虚拟机里面做ZFS。你是当实验验证、 ...

没32G内存,不敢上ZFS,就是普通的软RAID5
10#
nighttob  楼主| 发表于 2014-10-4 22:11 | 只看该作者
overthink 发表于 2014-10-4 22:03
没32G内存,不敢上ZFS,就是普通的软RAID5

买块硬卡直通解决所有问题。
11#
EITCo 发表于 2014-10-8 14:46 | 只看该作者
逐步贴图说明辛苦了
有看有回

关于pfSense对无线网支持不佳的问题
是指PCI-e与USB无线网卡么?
若用独立AP从实体LAN接入
就不会受影响对吗?
12#
nighttob  楼主| 发表于 2014-10-8 20:23 | 只看该作者
EITCo 发表于 2014-10-8 14:46
逐步贴图说明辛苦了
有看有回

对,PCIe和USB挑的都比较厉害。
无线AP就没问题了。
13#
xudaiqing 发表于 2014-10-11 13:30 | 只看该作者
为什么不把无线ap换成路由器呢?无法理解为什么要这么搞。
装了open-vm-tools应该把网卡换成vmxnet3,模拟e1000的性能实在不能看啊
14#
nighttob  楼主| 发表于 2014-10-11 14:39 | 只看该作者
xudaiqing 发表于 2014-10-11 13:30
为什么不把无线ap换成路由器呢?无法理解为什么要这么搞。
装了open-vm-tools应该把网卡换成vmxnet3,模拟e ...

我就是拿无线路由器当作无线AP来用
我没有超过百兆的NAT需求,所以E1000e也足够了。LAN内全千兆,虚拟机外部都走这个E1000e也没有明显性能损失。
15#
xudaiqing 发表于 2014-10-11 15:51 | 只看该作者
nighttob 发表于 2014-10-11 14:39
我就是拿无线路由器当作无线AP来用
我没有超过百兆的NAT需求,所以E1000e也足够了。LAN内全千兆,虚拟机 ...

我上次弄的时候,e1000e延迟能增加10ms+。不过那时候还是2.0版刚出来,现在性能估计不一样的
16#
nighttob  楼主| 发表于 2014-10-11 16:05 | 只看该作者
xudaiqing 发表于 2014-10-11 15:51
我上次弄的时候,e1000e延迟能增加10ms+。不过那时候还是2.0版刚出来,现在性能估计不一样的 ...

我觉得那不是e1000e的事,是esxi自己的事。
我上次用vmxnet2,基本上每5分钟就掉网口,后来就没再试。
17#
gmx168 发表于 2014-10-14 00:01 | 只看该作者
pfSense的VPN支持IPsec否?
18#
nighttob  楼主| 发表于 2014-10-14 18:24 | 只看该作者
gmx168 发表于 2014-10-14 00:01
pfSense的VPN支持IPsec否?

VPN这方面折腾的还不多,IPsec是有的

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
19#
gmx168 发表于 2014-10-14 22:29 | 只看该作者
nighttob 发表于 2014-10-14 18:24
VPN这方面折腾的还不多,IPsec是有的

那我有兴趣折腾一下了
20#
sniperpr 发表于 2014-11-19 13:39 | 只看该作者
pfsnese的优势已经基本不存在了。除了freebsd的血统,就真没优势了。

无法在嵌入下使用以及不开源,阻碍了他们发展。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部