- 最新动态
- 功能总览
- 产品介绍
- 计费说明
- 快速入门
- 用户指南
- 最佳实践
-
API参考
- 使用前必读
- API概览
- API版本选择建议
- 如何调用API
- API(V3)
- API(V2)
- API(OpenStack API)
- 应用示例
- 权限和授权项
- 历史API
- 附录
- SDK参考
- 常见问题
- 视频帮助
- 产品术语
-
更多文档
- 用户指南(阿布扎比区域)
- API参考(阿布扎比区域)
-
用户指南 (巴黎区域)
- 产品介绍
- 快速入门
- 负载均衡器
- 监听器
- HTTP/HTTPS监听器高级配置
- 后端服务器组
- 后端服务器(独享型)
- 后端服务器(共享型)
- 证书管理
- 访问控制管理
- TLS安全策略
- 标签管理
- 访问日志
- 监控
- 审计
- 权限管理
- 关于配额
-
常见问题
- 高频常见问题
- 为什么通过负载均衡无法访问后端业务?
- 如何检查弹性负载均衡服务不通或异常中断?
- 如何排查ELB的异常返回码?
- 弹性负载均衡器是否可以单独使用?
- ELB是否支持TCP长连接?
- 弹性负载均衡是否支持后端FTP服务?
- 弹性负载均衡分配的EIP是否为独占?
- 单个用户默认可以创建多少个负载均衡器或监听器?
- ELB权限和使用范围是什么?
- 当负载均衡器正在运行中是否可以调整后端服务器的数量?
- 弹性负载均衡是否可以添加不同操作系统的服务器?
- ELB添加后端的端口号是否可以不一致?
- ELB支持跨用户、跨VPC使用么?
- 负载均衡器的后端服务器可以反过来访问公网/私网负载均衡器上的端口吗?
- ELB能否实现前端是HTTPS协议,后端也是HTTPS协议?
- ELB所属的VPC和子网支持修改吗?
- 是否支持在业务不中断的前提下,将共享型负载均衡升级为独享型负载均衡?
- ELB对于IPv6网络的支持情况是怎样的?
- 如何检查弹性负载均衡前后端流量不一致?
- 如何检查请求不均衡?
- 如何检查弹性负载均衡业务访问延时大?
- 如何检查压测性能上不去?
- 负载均衡器
- 监听器
-
后端服务器
- 为什么后端服务器上收到的健康检查报文间隔和设置的间隔时间不一致?
- 使用ELB后,后端服务器能否访问公网?
- 为什么100开头的IP在频繁访问后端服务器?
- ELB可以跨区域关联后端服务器么?
- 公网负载均衡的后端服务器要不要绑定EIP?
- 如何检查后端服务器网络状态?
- 如何检查后端服务器网络配置?
- 如何检查后端服务器服务状态?
- 后端服务器什么时候被认为是健康的?
- 如何检查通过EIP访问后端云服务器?
- 为什么云监控服务统计的ELB活跃连接数与后端服务器上的连接数不一致?
- 为什么配置了白名单后还能访问后端服务器?
- ELB修改后端服务器权重后多久生效?
- 为什么开启跨VPC后端需要确保负载均衡所属子网至少拥有16个可用IP地址?
- 健康检查
- 获取源IP
- HTTP/HTTPS监听器
- 会话保持
- 证书管理
- 监控
- 修订记录
- API参考 (巴黎区域)
- 用户指南(吉隆坡区域)
- API参考(吉隆坡区域)
- 用户指南(安卡拉区域)
- API参考(安卡拉区域)
- 通用参考
展开导读
链接复制成功!
使用UDP协议有什么注意事项?
什么是UDP健康检查
UDP是面向非连接的一种协议,在发送数据前不会通过进行三次握手建立连接,UDP健康检查的实现过程如下:
- 健康检查的节点根据健康检查配置,向后端发送ICMP request 消息。
- 如果健康检查节点收到了后端服务器返回的ICMP reply消息,则认为服务正常,继续进行健康检查。
- 如果健康检查节点没有收到后端服务器返回的ICMP reply消息,则认为服务异常,判定健康检查失败。
- 健康检查的节点收到ICMP reply消息后,会给后端服务器发送UDP探测报文。
- 如果在【超时时间】之内,健康检查的节点服务器收到了后端服务器返回的port unreachable的ICMP消息,则认为服务异常,判定健康检查失败。
- 如果在【超时时间】之内,健康检查的节点服务器没有收到后端服务器返回的ICMP错误信息,则认为服务正常,判定健康检查成功。
当您配置UDP健康检查时,推荐使用配置页面默认的各项数值。
异常排查方法
请您按照以下两种方法排查。
- 检查健康检查超时时间是否过小。
可能的原因:后端服务器回复的reply或port unreachable类型的ICMP消息未能在超时时间内到达健康检查的节点,导致健康检查结果不准确。
建议采取的措施:将超时时间调整为更大的值。
由于UDP健康检查的原理不同于其他健康检查,建议健康检查超时时间不要过小,否则后端服务器可能会反复上线或下线。
- 后端服务器是否限制了ICMP消息产生的速率。
Linux系统下,请用以下命令检查ICMP消息速率的限制。
sysctl -q net.ipv4.icmp_ratelimit
默认值为:1000
sysctl -q net.ipv4.icmp_ratemask
默认值为:6168
请确认第一条命令返回值为默认值或0,并用以下命令放开port unreachable消息产生的速率限制。
sysctl -w net.ipv4.icmp_ratemask=6160
更详细的信息请参考Linux Programmer's Manual相关页面:
man 7 icmp
或者访问地址:http://man7.org/linux/man-pages/man7/icmp.7.html
放开port unreachable类型ICMP消息的速率限制,会让暴露在公网上的在端口扫描时,不受限制次数地产生port unreachable消息。
注意事项
使用UDP协议注意以下事项:
- 负载均衡健康检查是通过UDP报文和Ping报文探测来获取后端云服务器的状态信息。针对此种情况,用户需要确保后端云服务器开启ICMP协议,确认方法如下:
用户登录后端云服务器,以root权限执行以下命令:
cat /proc/sys/net/ipv4/icmp_echo_ignore_all
若返回值为1,表示ICMP协议关闭;若为0,则表示开启。
- 当前UDP协议服务健康检查可能存在服务真实状态与健康检查不一致的问题:
如果后端服务器是Linux服务器,在大并发场景下,由于Linux的防ICMP攻击保护机制,会限制服务器发送ICMP的速度。此时,即便服务器已经出现异常,但由于无法向前端返回“port XX unreachable”报错信息,会导致负载均衡由于没收到 ICMP 应答进而判定健康检查成功,最终导致服务真实状态与健康检查不一致。