0%

新增阿里云ECS服务器作为TCP负载均衡访问失败

问题

由于需要扩大业务访问量,新增ECS服务器,作为TCP负载均衡,添加到阿里云负载均衡下,添加成功后,业务总是会出现发送不了消息,登陆不成功。

如图所示

原因

初步找遍了防火墙、业务配置问题都没发现问题,单独调用一台服务器作为开发调试,也是正常,在负载均衡器里面,只添加一台新增服务器也是正常的,添加两台后就立马不行。最后无奈只能提交给工单,给阿里云客服处理,结果反馈是需要在ECS服务器上需要添加内核参数。是因为rp_filter特性和负载均衡底层LVS的策略路由产生冲突,导致访问出现异常。改成0,是因为从mac层面接受数据包 拆包到ip层 对应lo后 会以其他网卡发送数据包 ,由于rp_filter参数为1 所以 不允许从非此网卡接受的数据从该网卡发出 导致了 大量的syn超时。

解决方案

具体参照阿里云TCP负载均衡不能访问解决方案:https://help.aliyun.com/knowledge_detail/55206.html

1
2
3
4
5
6
7
8
9
#编辑/etc/sysctl.conf文件,将系统配置文件中的以下三个参数值设置为0。

net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.eth0.rp_filter = 0
net.ipv4.conf.eth1.rp_filter = 0


#执行sysctl -p命令,使配置生效。