基本要求
来自两个不同ISP的两个互联网连接,同一家ISP的也行,但网关不能相同。可以是拨号也可以是静态连接。
- 具有三个网络端口的pfSense防火墙。
- 两个带网络端口的ISP调制解调器
- 来自ISP的静态或动态IP
- 监控ISP1的IP1 – 8.8.8.8(google dns IP)
- 监控ISP2的IP2 – 208.69.38.205(opendns IP)
网络拓扑图
详细设置
在开始之前,请确保所有WAN类型接口都启用了静态IP, 并正常设置了网关。
1:配置pfsense LAN接口
通过http://172.16.1.254访问pfSense的WEB配置界面,导航到 Interfaces> LAN,按下图进行设置。
2:配置pfsense wan01接口(ADSL ISP1)
导航到接口> WAN 01,按下图进行设置。
现在,第一个WAN接口配置了静态IP。如果需要,可以根据ISP1调制解调器设置将类型设置为DHCP。接下来确保网关IP响应ping,以确认WAN1在线并正常工作,然后继续。
3:配置pfsense wan02接口(ADSL ISP2)
导航到接口> WAN 02,按下图进行设置。
现在,第二个WAN接口配置了静态IP。如果需要,可以根据ISP1调制解调器设置将类型设置为DHCP。同上我们确认WAN1在线并正常工作,然后继续。
4:确认两个网关都在线
导航到状态 > 网关,查看网关在线情况:
如果它们是绿色的,则与网关的连接正常,这里需要配置监控P。
5:为每个网关配置监控IP
导航到系统> 路由 ,选择网关选项卡,您将看到如下页面:
单击wan_adsl2_l1GW的编辑图标,将监控IP设置为8.8.8.8:
接下来,单击WAN_ADSL2_L2(ADSL ISP2)的编辑网关图标,将监控IP设置为208.69.38.205:
6:配置双WAN链路负载均衡
导航到 系统 >路由 ,选择网关组,单击“ 添加 ”按钮,配置负载均衡:
设置如下:
- 将组名设置为“ WanLoadBalancer ”。
- 将两个网关的网关优先级设置为“ 第1层 ”。请注意,当两个网关位于同一层(例如第1层)时,它们将负载平衡。这意味着,在每个连接的基础上,连接以循环方式在每个WAN上路由。如果同一层上的任何网关出现故障,则将其从使用中删除,并且该层上的其他网关继续正常运行。
- 将触发条件设置为“ Memberdown ”。
- 将描述设置为“ My Dual ADSL Wan Link Load Balancer ”
- 最后单击“ 保存 ”>“ 应用更改 ”按钮。
7:配置链路故障转移
接下来,导航到 系统 >路由 ,选择网关组,单击“ 添加 ”按钮,配置故障转移:
当两个网关位于不同层时,较低层网关是首选。如果较低层网关出现故障,则将其从使用中删除,并使用下一个最高层网关。这就是故障转移在pfSense上的工作原理。所以要为ADSL 1设置链路故障转移:
- 将组名设置为“ ADSLLinkFailover2 ”
- 将网关优先级 wan_adsl2_l1GW(ISP 1)设置为“ 第1层 ”
- 将网关优先级 wan_adsl2_l2GW(ISP 2)设置为“ 第2层 ”
- 将触发条件设置为“ Memberdown ”
- 将描述设置为“ Link failover for ADSL 1 ”
同理,按如下方式为ADSL 2设置链路故障转移并切换网关优先级:
最后单击“ 保存 ”>“ 应用更改 ”,完成负载均衡和故障转移网关配置。
8:为负载均衡器配置防火墙规则
使用防火墙规则上的网关设置将流量传递到这些负载均衡, 单击防火墙 > 规则 > Lan > 添加并按如下所示进行设置:
单击“ 显示高级 ”按钮>向下滚动>查找网关选项并将其设置为WanLoadBalancer:
单击“保存”>“应用更改”按钮以保存防火墙规则。
9:配置防火墙规则以进行故障转移
使用防火墙规则上的网关设置将流量传递到这些故障转移网关。单击防火墙 > 规则 > Lan > 添加并按如下所示进行设置:
点击“显示高级” 按钮>向下滚动>,查找网关选项并将其设置为ADSLLinkFailover1:
单击“保存”>“应用更改”按钮,来保存防火墙规则。重复ADSLLinkFailover2的防火墙规则。
10:客户端配置
将以下范围内的所有IP地址分配给客户端计算机:
- 网络:172.16.1.254/24
- IP范围:172.16.1.1-172.16.1.253
- 默认网关:172.16.1.254
- DNS服务器:172.16.1.254(或8.8.8.8/8.8.4.4)
从客户端系统(OpenBSD)测试如下:
$ ifconfig vio0
$ netstat -nr -f inet
$ ping -c 2 google.com
$ host cyberciti.biz 172.16.1.254
你可以使用speedtest.net进行速度测试。在使用Torrent下载较大文件时,您可以使用命令speedtest-cli来验证客户端计算机的带宽是否翻倍:
$ python speedtest-cli
如果一个Internet连接断开,你仍可以通过故障转移进行互联网连接。