本指南介绍了如何配置pfSense,使LAN流量能够在多个Internet连接(WAN)之间实现负载平衡或故障切换。负载平衡以基于连接的方式在正常使用的WAN之间循环分配流量;故障切换则优先使用最高优先级的WAN,当其掉线时自动切换到下一个WAN。pfSense通过网关IP或替代监视IP监视每个WAN连接,一旦监视IP故障,该WAN将在网关组中被剔除。
基本步骤
多数情况下只需完成以下三部分:
- 添加网关组(系统 > 路由管理,网关组选项卡)
- 在LAN防火墙规则上使用网关组
- 为每个WAN网关设置至少一个DNS服务器(系统 > 常规设置)
本指南使用pfSense 2.3.4汉化版进行示例。
一、接口设置
开始前,请确保所有WAN类型接口均已启用。对于静态IP WAN,确保它们都设置了网关。同时确认网关/监视IP能够响应ping,以验证每个WAN实际在线。如果已定义网关,可在“系统状态 > 网关状态”中查看,绿色表示网关连通。
二、网关设置
确保每个WAN接口都拥有一个网关(在系统 > 路由 > 网关选项卡设置)。静态IP WAN有正常的网关条目,DHCP/PPPoE则具有动态网关条目。

每个网关还有一些可调整的行为设置,大多数应保留默认值,也可根据需要修改。
- 监视IP
默认情况下,pfSense会ping网关以判断WAN的连接质量。某些情况下这并不准确,例如网关是本地设备而非ISP网络对端时,WAN链路中断可能不会反映在网关ping上;或者ISP网关正常但上游故障,ping网关依然成功。可在此输入自定义IP地址,用于确定WAN连接质量,如公共网站、Google公共DNS等任何能响应ping的IP。缺点是若此IP自身故障,可能导致WAN被误标记为断开。 - 比重
负载平衡时,同一层级的所有WAN默认被视为相等。若WAN带宽不同,比重参数可让系统对更快链路给予更多分配。例如一条50Mbit线路和一条10Mbit线路,设置50Mbit线路比重为5,则使用比例为5:1,使负载更均衡。 - 丢包/延迟阈值
各WAN的“正常”表现不同,有些延迟低、丢包少,有些即使有少量丢包或高延迟也能正常工作。这些字段用于设定触发WAN网关告警的阈值。有线线路上可将丢包率阈值提高到20%以上;在慢速DSL或卫星链路上,几百ms的延迟可能属正常。可通过查看质量图了解WAN线路的指标。

三、网关组
网关组(系统 > 路由管理 > 网关组)将多个网关组合起来,以预定的协调方式工作,实现负载平衡、故障转移或两者混合。
双WAN配置的常见做法是创建三个网关组:一个用于负载平衡,一个用于故障转移,一个用于优先WAN。可扩展至任意数量的WAN:创建一个优先级组,并对其他WAN排序进行故障转移,从而能选择性地将流量引导至特定WAN或进行负载平衡。
1. 层级
在网关组中,每个网关被分配一个层级来决定何时使用。层级数字越小越优先。同一层级的两个网关将进行负载平衡;不同层级则实现故障切换。层级设为“Never”表示该网关不属于此网关组。
2. 触发条件
- 掉线:当监视IP 100%丢包时触发。
- 丢包:仅当网关丢包率高于其定义的阈值时触发。
- 高延迟:仅当网关延迟高于其定义的阈值时触发。
- 丢包或高延迟:满足两者之一便触发。
3. 负载平衡
两个处于同一层级的网关将负载平衡,即基于连接以轮询方式在各WAN上路由流量。若该层级中任一网关掉线,它将被移出使用,层级中其他网关继续正常工作。
4. 故障转移
不同层级的网关中,层级较低者优先。当较低层级网关掉线时,将被移出,启用下一个较高层级网关。
5. 组合
通过层级系统,可组合出任意的负载平衡与故障转移方案。例如三个WAN进行负载平衡,若一个掉线,剩余两个继续负载平衡;若两个掉线,还有一个可用。唯一的限制是仅支持5个层级,因此配置深度最多5层。

四、防火墙设置
定义网关组只是配置的一部分,还必须在防火墙规则上通过网关设置将流量分配给这些网关。
在防火墙 > 规则策略中,于LAN接口选项卡下编辑现有“通行”规则,添加网关设置并选择所需网关,或新增规则。请记住,规则自上而下执行,一旦匹配即停止处理。如果使用多WAN负载平衡,记得添加多网关。
可将某些流量通过故障转移组指向特定WAN,将其他流量匹配至另一个WAN,或让所有规则参与负载均衡。


策略路由否定:当防火墙规则将流量引导到网关时,会绕过路由表。策略路由否定是指不设置网关,让流量传递给其他本地或*连接网络的规则,此时将绕过网关组并使用路由表。这类规则应置于列表顶部,或至少高于任何设置了网关的规则。
五、出站NAT
如果使用手动出站NAT,必须为第二个WAN添加规则。若遵循上文指导使用自动出站NAT,则无需调整。
六、注意事项
每个WAN上应至少配置一个DNS服务器以正确解析。可在“系统 > 常规选项”下编辑DNS服务器,并为每个DNS服务器指定网关。确保为特定WAN选择的DNS服务器工作正常,系统的DNS转发器会同时查询所有DNS服务器,因此不受WAN故障影响。如果客户端自行设置了DNS服务器则无此限制,但防火墙自身服务仍需DNS,若无正常的DNS服务器将影响相关服务。
七、本地服务
默认情况下,使用Squid等代理的流量会绕过策略路由,始终使用默认路由传送,也会绕过出站NAT,直接以WAN IP地址发出,因此无法实现负载平衡。此时,可在系统 > 高级选项 > 附带组件选项卡下,启用“默认网关切换”来实现故障切换。

八、故障排除
- 检查系统仪表板小部件上的网关状态,或进入系统状态 > 网关状态查看。
- 若故障触发频繁,请检查质量图并调整网关的丢包和/或延迟阈值。
- 若本地或VPN流量失败,请确保存在策略路由否定规则(参考绕过策略路由)。
- 若流量始终使用默认网关而非多WAN,请检查规则以确认其已定义网关。
觉得内容不错?我要