影评周公子 2026-03-14 16:20 采纳率: 99.2%
浏览 1
已采纳

AnyRouter如何配置多WAN负载均衡?

在AnyRouter上配置多WAN负载均衡时,一个常见问题是:**启用ECMP(等价多路径)后流量仍单边走主WAN口,未实现预期的带宽叠加与会话级分担**。这通常源于未正确配置“出站策略路由(Policy-Based Routing)”或忽略“连接跟踪(Conntrack)模式”设置——AnyRouter默认启用会话保持(Session Stickiness),导致同一TCP/UDP流始终绑定至首个选中的WAN接口,无法动态分散;同时,若未在“负载均衡策略”中启用“按源IP哈希”或“轮询+权重”算法,并关联对应WAN接口的健康检测(如ICMP或HTTP探测),系统将降级为仅故障切换(Failover)模式。此外,NAT规则未针对各WAN口独立配置或SNAT地址池未映射,也会引发回程路径不对称、连接中断等问题。需结合CLI验证`show load-balance status`与`show firewall session`确认实际分流效果。
  • 写回答

1条回答 默认 最新

  • 桃子胖 2026-03-14 16:20
    关注
    ```html

    一、现象层:ECMP启用后流量仍单边走主WAN口

    这是最直观的故障表征:尽管在AnyRouter WebUI中已勾选“启用ECMP”并添加多条WAN接口(如WAN1/WAN2),但实际业务流量(如HTTP下载、视频流)持续经由WAN1出站,show interface statistics 显示WAN2长期空载(RX/TX < 50 Kbps),而WAN1带宽占用率持续>90%。此现象常被误判为“ECMP未生效”,实则暴露底层策略协同缺失。

    二、机制层:会话保持(Session Stickiness)与Conntrack模式的隐性约束

    • AnyRouter默认启用conntrack mode=strict,强制同一五元组(源IP:端口+目的IP:端口+协议)的所有数据包复用首次建立的连接跟踪条目(show firewall session | grep ESTABLISHED 可验证);
    • ECMP仅作用于新连接建立阶段,而TCP长连接(如HTTPS、SSH)或UDP会话(如DNS/VOIP)一旦绑定WAN1,将永久锁定该路径;
    • 若未显式配置set system conntrack hash-mode src-ip-dst-ip-protocol 或禁用sticky(set load-balance policy sticky disable),负载均衡退化为“首次选择即终局”。

    三、策略层:出站策略路由(PBR)与负载均衡算法的耦合失效

    ECMP本身不决定路径选择逻辑——它仅提供多下一跳能力。真正分流需依赖PBR规则链与负载均衡策略的精准绑定:

    配置项错误配置示例正确实践
    负载均衡算法仅启用“优先级模式”(Priority)必须启用source-ip-hash(会话级分散)或round-robin-weighted(按带宽权重轮询)
    健康检测未为WAN2配置ICMP探测或探测间隔>30s启用health-check icmp interval 5 fail-count 2,确保WAN2状态实时同步

    四、NAT层:SNAT地址池映射与回程路径对称性破缺

    若仅配置全局SNAT规则(如set nat source rule 10 outbound-interface 'any'),所有流量将统一使用WAN1公网IP做源地址转换,导致回程包被运营商路由器丢弃(因目的IP非原出口IP)。正确做法是:

    1. 为每个WAN口定义独立SNAT规则:set nat source rule 20 outbound-interface 'wan2' translation address '203.0.113.2'
    2. 在负载均衡策略中启用use-snat-pool,确保出向流量自动匹配对应WAN口的SNAT地址;
    3. 验证回程:从外网用tcpdump -i eth0 host 203.0.113.1 or 203.0.113.2抓包,确认双向流量IP一致性。

    五、验证层:CLI诊断黄金组合与典型输出解读

    graph LR A[show load-balance status] -->|显示WAN1/WAN2状态| B[Active: Yes/No] A -->|显示当前算法| C[Algorithm: source-ip-hash] D[show firewall session count] -->|总数| E[Total: 12482] D -->|按out-if统计| F[WAN1: 11920, WAN2: 562] G[show load-balance distribution] -->|会话分布热力图| H[WAN1: ▇▇▇▇▇▇▇▇▇▇ 95%
    WAN2: ▇ 5%]

    六、进阶调优:会话级动态重均衡与连接老化控制

    针对高并发短连接场景(如API网关),需突破传统ECMP静态哈希局限:

    • 启用连接老化动态调整:set system conntrack tcp-established-timeout 300(缩短ESTABLISHED超时);
    • 配置会话重均衡触发器:set load-balance policy rebalance-on-link-change enable
    • 结合应用层标识(如HTTP Host头)做七层分流:set load-balance policy match application http-host 'api.example.com'

    七、避坑指南:企业级部署必检清单

    1. ✅ 检查WAN接口MTU是否一致(避免分片导致健康检测失败);
    2. ✅ 验证BGP/OSPF邻居未向AnyRouter通告默认路由(防止PBR被动态路由覆盖);
    3. ✅ 确认防火墙全局策略未启用drop-invalid且conntrack表未满(show system conntrack table-size);
    4. ✅ 测试工具需模拟多源IP(如ab -n 10000 -c 200 http://test.com)而非单IP压测;
    5. ✅ 升级固件至v7.4.3+(修复v7.2.x中source-ip-hash对IPv6流哈希偏差问题)。
    ```
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 3月15日
  • 创建了问题 3月14日