分享

用pfSense搭建ESXi上的软路由

 0璇玑玉衡0 2016-11-25
这么干的目的是开一个虚拟机承担路由角色,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:///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./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。但不建议有做软阵列需求的用虚拟机,不稳定因素太多。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多