本质是防火墙未放行负载均衡的健康检查源ip(如100.64.0.0/10)或业务流量snat ip,导致误判后端异常;须在防火墙入站规则中精准放行对应网段与端口,并同步检查iptables、arp及连接跟踪配置。

负载均衡接入时与后端防火墙冲突,本质是流量路径和访问控制策略不匹配——防火墙拦住了负载均衡发来的健康检查或业务请求,导致后端被误判为异常或完全不可达。解决关键在于让防火墙“认出并放行”负载均衡的合法流量,而不是简单放开所有入口。
确认防火墙拦截的是哪类流量
先区分两类典型请求,再针对性放行:
- 健康检查流量:云厂商(如华为ELB、腾讯CLB)会从固定IP段(如100.125.0.0/16、100.64.0.0/10)主动探测后端端口。若防火墙未放行该网段,健康检查必失败,节点持续标记为DOWN。
- 真实业务流量:经负载均衡转发的客户端请求,源IP通常是负载均衡的内网VIP或SNAT IP(如100.98.64.0/18)。若防火墙只允许公网IP访问,这类请求会被直接丢弃。
在防火墙上精准放行负载均衡IP段
不要用0.0.0.0/0,而是按实际来源配置规则:
- 查清负载均衡的健康检查源IP:登录控制台,在监听器详情页查看“健康检查源地址”,常见有三种情况——云厂商固定网段、子网CIDR、或SNAT IP(IDC场景需特别注意)。
- 在防火墙入站规则中添加对应条目:协议端口填后端服务实际端口(如8080),源IP填查到的网段,动作设为“允许”。例如华为ELB共享型实例,必须放行100.125.0.0/16;腾讯CLB传统账户则需放通100.64.0.0/10。
- 同步检查iptables/firewalld:若后端是Linux服务器,执行iptables -nL | grep 100.125确认无DROP规则;若有,用iptables -t filter -D INPUT -s 100.125.0.0/16 -j DROP删除。
避免ARP与会话状态引发的隐性冲突
某些防火墙启用ARP防护或连接跟踪(conntrack)后,可能干扰负载均衡行为:
- ARP防火墙环境下,后端服务器不能响应VIP的ARP请求,否则触发ARP冲突告警。需在操作系统侧禁用VIP的ARP响应(如Linux设置arp_ignore=1和arp_announce=2)。
- 若防火墙开启严格连接状态检测,而负载均衡使用长连接或keepalive,可能导致连接老化超时后回程包被拒绝。建议将防火墙的TCP连接超时调至≥负载均衡的keepalive_timeout值(如Nginx默认75秒,则防火墙设为90秒以上)。
验证与兜底建议
改完规则后,必须实测验证:
- 在后端服务器上执行curl -I http://127.0.0.1:8080/healthz确认服务自身正常;
- 再模拟负载均衡来源IP访问:curl -I --interface 100.125.1.100 http://127.0.0.1:8080/healthz(用--interface指定源IP,更贴近真实探测);
- 若仍不通,临时关闭防火墙测试(如systemctl stop firewalld),确认是否为防火墙本身所致;定位后恢复规则,而非长期关闭。











