Article / 文章中心

无法访问负载均衡的解决方法

发布时间:2018-09-25 点击数:2522

当客户端无法访问负载均衡时,可能的原因和解决方案如下:

  1. 如果您在创建负载均衡实例后,没有添加监听,此时负载均衡实例的服务地址是无法ping通的。

    解决方案:配置监听,详情查看配置监听

  2. 四层负载均衡后端Linux ECS内核配置错误。

    四层负载均衡后端添加的Linux系统的ECS实例,必须关闭其Linux内核的rp_filter特性。否则可能会导致无法从客户端使用telnet访问负载均衡的服务地址,但健康检查正常。

    Linux的rp_filter特性用于实现反向过滤(即URPF)。它验证反向数据包的流向,以避免IP伪造攻击。但是该特性可能会和负载均衡底层LVS的策略路由产生冲突,导致访问出现异常。

    解决方法:确保后端ECS实例的系统配置文件中以下三个参数的值为0。编辑/etc/sysctl.conf后,执行sysctl -p使配置生效。

    net.ipv4.conf.default.rp_filter = 0 net.ipv4.conf.all.rp_filter = 0 net.ipv4.conf.eth0.rp_filter = 0
  3. 四层负载均衡后端Windows ECS参数配置错误。

    对于四层负载均衡服务,目前不支持负载均衡后端ECS实例直接为客户端提供服务的同时,又作为所在负载均衡的后端服务器。

    因为这会概率性的出现相关访问请求被转发回同一台ECS的情形,造成数据访问形成环路,导致对应ECS访问负载均衡服务不通。

    解决方案:

    1. 安装Windows回环网卡:右键单击计算机 > 属性 。在控制面板主页,单击设备管理器 > 添加硬件 > 安装我手动从列表选择的硬件 > 显示所有设备 ,选择下图所示的设备进行安装。


    2. 启用Weak Host Model,执行以下命令查看所有网络接口的Idx。
      netsh interface ipv4 show interface
    3. 将所有网络接口分别设置weakhostsend=enabled, weakhostsend=enabled。比如设置Idx为12的网卡:
      netsh interface ipv4 set interface 12 weakhostsend=enabled
      netsh interface ipv4 set interface 12 weakhostreceive=enabled
  4. 客户端本地网络或运营商中间链路异常。

    对于公网负载均衡服务,如果客户端网络异常,或者从客户端到负载均衡服务器之间的运营商网络出现异常,也会导致客户端无法访问负载均衡服务。

    排查方法:从不同地域及不同网络环境,对负载均衡相应服务端口做访问测试。如果只有本地网络访问时出现异常,则判定是网络异常导致的问题,此时可以继续通过持续进行ping测试或MTR路由跟踪等手段做进一步排查分析。

  5. 客户端IP被云盾拦截。

    对于公网负载均衡服务,如果客户端网络是共享网络(所有局域网内服务器通过有限的公网IP共享上网),同时其本地网络内有服务器因为中毒等因素向阿里云相关服务IP段进行扫描探测等恶意攻击。

    解决方案:您可以参考如下步骤,通过将本地网络对应的公网IP加入负载均衡访问白名单来解决该问题:

    1. 在客户端网络环境下访问http://ip.taobao.com,获取客户端网络环境对应的公网IP。
    2. 将获取的IP配置为白名单,该操作将会对来自相应IP到负载均衡的所有访问全部放行。
      说明
      该操作可能会带来安全风险,确保白名单中的IP不会对负载均衡进行恶意攻击。

    如果还未能解决问题,请在提交工单时提供如下信息,以便我们更高效地协助您解决问题: