pfSense 的一大特色功能是支持多条互联网线路,通过建立网关组,实现多线路的负载平衡或故障转移。相同线路的平衡负载并不需要额外设置,默认 1:1 权重即可。如果多条线路的带宽不相同,也可以通过设置不同的权重,实现多条线路的不平均负载。下面介绍权重计算和设置方法。
网关权重
如果两个网关的带宽不同,可以根据实际带宽的比值确定权重。例如,WAN1 为 50Mbit/s,WAN2 为 100Mbit/s,则可以把 WAN1 的权重设置为 1,WAN2 的权重设置为 2。每三个连接出去,一个使用 WAN1,两个使用 WAN2。利用这种方法可以充分利用可用带宽。权重可以从 1 到 30,权重参数在 系统 > 路由管理 > 网关状态 > 编辑 菜单的高级选项下调整。

权重设置
下面介绍不同数量线路权重的设置计算方法。
1. 两条线路
下表是两条线路不同权重的负载比例,可以根据实际带宽的比值设置权重。例如:
- WAN1 为 300Mbit/s,WAN2 为 200Mbit/s,权重可设置为 3:2;
- WAN1 为 600Mbit/s,WAN2 为 300Mbit/s,权重可设置为 2:1;
- WAN1 为 600Mbit/s,WAN2 为 200Mbit/s,权重可设置为 3:1;
- WAN1 为 800Mbit/s,WAN2 为 200Mbit/s,权重可设置为 4:1;
- WAN1 为 500Mbit/s,WAN2 为 100Mbit/s,权重可设置为 5:1;
- WAN1 为 900Mbit/s,WAN2 为 30Mbit/s,权重可设置为 30:1;
依次类推……

2. 三条线路
三条线路的权重设置相对复杂,需要把 100 除以权重之和,再乘以每个带宽的权重,计算出每条线路的负载百分比。下表是三条线路的不同权重负载,可以根据实际带宽进行参考设置。例如:
- WAN1 为 200Mbit/s,WAN2 为 200Mbit/s,WAN3 为 100Mbit/s,权重为 2:2:1;
- WAN1 为 300Mbit/s,WAN2 为 200Mbit/s,WAN3 为 100Mbit/s,权重为 3:2:1;
- WAN1 为 400Mbit/s,WAN2 为 200Mbit/s,WAN3 为 100Mbit/s,权重为 4:2:1;
- WAN1 为 500Mbit/s,WAN2 为 200Mbit/s,WAN3 为 100Mbit/s,权重为 5:2:1;
- WAN1 为 600Mbit/s,WAN2 为 200Mbit/s,WAN3 为 100Mbit/s,权重为 6:2:1;
- WAN1 为 800Mbit/s,WAN2 为 300Mbit/s,WAN3 为 200Mbit/s,权重为 8:3:2;
依次类推……

3. 四条线路
这里仅举一例:WAN1 带宽为 500Mbit/s,WAN2 为 500Mbit/s,WAN3 为 200Mbit/s,WAN4 为 200Mbit/s,权重可以设置为 5:5:2:2。根据前面的方法,将 100 除以权重之和,再乘以每个带宽的权重,计算出的负载比为 36%:36%:14%:14%。下图是配置该权重后的流量图,可以看出各接口流量总体上按权重分配。

需要注意的是,这种权重设置会严格平衡连接数,而不考虑接口吞吐量或现有负载。这意味着带宽使用可能不完全平均分配,但在大多数环境中,它可以随着时间的推移大致按照配置进行分配。这也意味着,如果一个接口出现单个高吞吐量连接达到带宽上限,防火墙仍会将其他连接定向到该接口。
其他问题
一些对安全性有严格要求的网站会存储会话信息(包括客户端 IP 地址),如果后续连接使用不同的公网 IP,网站可能无法正常运行。银行网站通常存在此问题(经实测,建行、工行、兴业银行无此问题,招行存在)。解决方法是将发往这些站点的流量定向到故障转移组,或对所有 HTTPS 流量执行故障转移,或者将这些银行的 IP 地址定义为别名,指定走故障转移组或特定网关。
pfSense 的粘性连接功能有助于缓解此问题。使用粘性连接时,防火墙会记住客户端 IP 与某个网关的关联,而不是基于目标地址。当启用粘性连接后,单个客户端不会在多个 WAN 之间进行负载平衡,而是与第一个连接所使用的网关关联,直到所有客户端状态过期才可能切换到其他 WAN。因此,该功能在拥有大量客户端的环境中效果最佳,单个客户端固定使用一个 WAN 不会产生太大影响。
觉得内容不错?我要