IPV6 CLB健康检查异常case分析

2022-04-11 00:55:52 浏览数 (2)

背景:客户报障CLB部分机器出现健康检查异常,流量掉零。本文章简单总结腾讯云IPV6排查思路。

产品特性

IPv6 负载均衡是基于 IPv6 单栈技术实现的负载均衡,和 IPv4 负载均衡协同工作,实现 IPv6/IPv4 双栈通信。IPv6 负载均衡绑定的是云服务器的 IPv6 地址,并对外提供 IPv6 VIP 地址。

腾讯云IPV6 CLB业务逻辑架构腾讯云IPV6 CLB业务逻辑架构

健康检查逻辑(IPV6 CLB)

监听器健康检查主要两种方式,TCP通过使用SYN包,HTTP通过使用http请求方式。

TCP 健康检查机制如下(本次故障用到的场景):

  1. 负载均衡向后端 CVM(内网IP 地址 健康检查端口)发送 SYN 连接请求报文。
  2. 后端 CVM 收到 SYN 请求报文后,若相应端口处于正常监听状态,则会返回 SYN ACK 响应报文。
  3. 若在响应超时时间内,负载均衡收到后端 CVM 返回的 SYN ACK 响应报文,则表示服务运行正常,判定健康检查成功,并向后端 CVM 发送 RST 复位报文中断 TCP 连接。
  4. 若在响应超时时间内,负载均衡未收到后端 CVM 返回的 SYN ACK 应报文,则表示服务运行异常,判定健康检查失败,并向后端 CVM 发送 RST 复位报文中断 TCP 连接。
图来自腾讯云官网:zijiebao.com图来自腾讯云官网:zijiebao.com

健康检查要求(IPV6 CLB)

1、安全组要求:

  • CLB安全组:

作用于CLB实例,具备有状态的数据包过滤功能,控制实例级别的出入流量。CLB的安全组属性有两个模式:开启默认放通状态/关闭默认放通状态。开启放通功能后,后端的CVM安全组可以不需要放通Client IP 和服务端口。默认情况下,IPv6 CLB 安全组默认放通为开启状态,且无法关闭。

图来自腾讯云官网:zijiebao.com图来自腾讯云官网:zijiebao.com

CVM安全组:

关闭默认放通状态情况下,需要对IPV6请求放开;

开启默认放通状态,不需要设置;

2、云主机设置

需要配置IPV6 ip,如果是传统账户,则要求配置IPV6外网带宽;

后端服务,需要支持IPV6监听;

故障回顾

【问题描述】

客户反馈同一个CLB上有CVM出现健康检查异常,但机器应用是正常的。

【初步排查】

  1. 检查安全组;

CLB安全组上,开启了默认放通的功能,且未对client等做了IP限制;

CVM安全组上,未对CLB VIP做限制;

2、CVM配置:

CVM ipv6配置已生效,客户账户是非系统账号,CLB支持下,云主机可以不需要配置外网带宽;

应用服务正常,客户反馈该端口同时提供ipv4和ipv6应用,目前ipv4服务是正常的。

3、CLB集群检查

CLB集群服务正常,集群流量、QPS等未出现突降等情况,可用性探测正常;

【排查受限】

客户生产机器,客户侧也无法登陆机器,提供排查信息,无法抓包等操作配合排查;走流程申请权限需要时间。

【临时恢复方案】

健康检查异常的机器,已自动剔除。现网业务不影响,建议客户侧暂时将该机器剔除。

【深入排查】

  1. 抓取探测包信息:抓包点:CLB集群、CVM硬件网卡:都只收到了SYN包,CVM未能相应SYN ACK;
CLB抓包CLB抓包

CVM抓到了CLB给过来的SYN包,奈何没有相应;

cvm抓包cvm抓包

2、Ng服务器日志排查

请求没有进入应用层,没有日志生成;

综合以上,怀疑是路由问题,路由没有到达应用层。

3、排查路由

确认路由缺少默认路由,导致机器无法达到下一跳。

路由图路由图

【规避措施】

  1. 给机器添加上默认路由;default dev eth0
  2. 梳理IPV6机器配置

配置文件一:/etc/sysctl.conf

net.ipv6.conf.all.disable_ipv6 = 0

net.ipv6.conf.default.disable_ipv6 = 0

net.ipv6.conf.lo.disable_ipv6 = 0

配置文件二:/etc/sysconfig/network-scripts/ifcfg-eth0

DHCPV6C=yes

配置文件三:/etc/sysconfig/network-scripts/route6-eth0

default dev eth0 via fe80::feee:ffff:feff:ffff或者是default dev eth0

PS:文章部分截图取自腾讯云官网。

0 人点赞