概览
本指南提供了一个详细的故障排除框架,用于解决在部署 AWS vSocket 高可用性 (HA) 期间遇到的常见问题。 无论是手动部署还是通过 AWS Marketplace 部署,这些步骤旨在帮助有效识别和解决潜在问题。
症状
AWS vSocket HA 部署的常见问题可能包括:
-
HA 切换失败
- 来自 vSocket WebUI 的 HA API 测试失败。
- HA 切换失败导致流量未被转发到次要的 vSocket。
-
HA 状态未就绪
- CMA 显示站点的 HA 状态为“未就绪”
可能原因
HA 部署失败通常是由于以下原因引起的:
- 在 AWS 中使用非公共 DNS。
- 管理接口缺乏互联网访问。
- IAM 角色配置错误。
- AWS 中的安全组和路由设置过于严格。
- 无法将适当的网络接口分配到 LAN 路由表。
- LAN 连接性问题。
问题故障排除
重要
重要:开始故障排除之前,请确保所有 AWS HA vSocket 部署的先决条件都已得到验证。 请参阅手动部署 AWS vSocket 站点,从 AWS Marketplace 部署 vSocket 站点和配置 AWS vSocket 的 HA。
故障排除 HA 切换失败
如果流量在切换期间未路由到次要 vSocket,请考虑以下故障排除步骤:
运行 HA API 测试
- 从 vSocket WebUI 运行 API 测试工具以测试两个 vSocket。
- 此工具验证与 AWS 的 API 调用是否可以成功进行。
- 此处可以看到与权限或路由表更新相关的任何错误。
检查 AWS DNS 配置
- 验证关联 VPC 是否配置了默认的AWS DNS 服务器。
- 要检查 AWS DNS 配置,请参阅修复 DNS 配置问题
- 如果配置了自定义 DNS 服务器(例如,私有 DNS 服务器),请确保其可以解析公共域名。 验证其可以解析由 API 使用的完全限定域名 (FQDN) ec2.<region>.amazonaws.com(例如,ec2.us-east-1.amazonaws.com),。
- 即使配置了默认 AWS DNS 服务器,与 MGMT 接口关联的安全组也应允许对 8.8.8.8 和 8.8.4.4 的 DNS 请求。
验证 LAN 路由表
- 为了将流量路由到主 vSocket,AWS 将当前主 vSocket 的 LAN 网络接口分配到 LAN 路由表。
- 前往VPC > 路由表并选择 LAN 路由表。 在路由标签下,验证主 vSocket 的 LAN 网络接口是默认路由的网关 (目标)。 如果不是,请继续后续步骤。
- 请注意,如果在切换期间未更改目标网络接口卡,则手动修改 LAN 路由表可能是一个快速的解决方法。
验证 IAM 角色
- 在AWS vSocket 部署期间,HA IAM 角色被创建并与主要和次要 vSocket 关联。
- 在每个实例的详细信息页面下,确认分配了正确的 IAM 角色。
-
点击 IAM 角色链接,并在权限标签下,验证 IAM 策略是否包含正确的声明,如下所示。
注意: 如果缺失 IAM 角色,一旦角色被添加,必须重启 sockets 以使添加的角色生效。
验证 IMDS 设置
-
确保两个 vSocket 使用匹配的 IMDS 设置(可选或必填)。 欲了解更多信息,请查看AWS 文档。
- 从 vSocket 版本 20.0.18221 开始,支持 IMDSv2。
- 要修改 IMDS 设置,选择实例,然后在操作下点击实例设置 > 修改实例元数据选项。
验证网络安全组。
- 确保网络安全组未阻止到管理接口的出站流量。
-
在EC2 > 网络接口下,找到与管理接口相关联的安全组。
-
验证安全组的出站规则是否允许端口 80、443 和 53。 在这种情况下,所有出站流量均被允许。
验证 MGMT 接口的互联网流量路由。
-
如果 MGMT 接口流量通过 AWS 中的第三方防火墙进行路由,请检查是否允许 UDP/53、TCP/80 和 TCP/443 出站连接。
-
在网络接口页面上,点击 MGMT 接口的子网 ID。
-
在子网页面上,选择路由表标签。 下图显示了指向 Internet 网关的默认路由,因此防火墙未阻止流量。
- 打开相关的路由表并验证所有 MGMT 子网是否被列为相关联的子网。 在双可用区的情况下,将存在两个 MGMT 子网,每个 vSocket 一个,如为次要 vSocket 局域网接口创建子网中所述。
- 在 VPC 的资源地图标签上,所有关联的子网及其路由配置都以视觉方式呈现,便于参考。
- 确认弹性IP已关联到MGMT接口。 这可以从实例的网络选项卡中看到。 MGMT接口可以通过其设备索引0来识别。 WAN和LAN接口应分别与设备索引1和2关联。
检查CloudTrail日志
-
启用AWS CloudTrail日志记录API调用到AWS,以调试HA故障转移期间LAN路由表的修改失败。
排查HA状态未就绪问题
如果CMA显示HA状态未就绪并且两者vSocket都已上线运行,则两者vSocket将承担主控角色(分脑情况)。 这可能是由于以下原因:
- 两个vSocket运行不同的固件版本
- HA保持活动消息未到达次要vSocket
建议查看两者vSocket的WebUI页面以确认每个vSocket的HA状态。 如果主控和备用vSocket都处于主控角色,则会出现分脑情况。 WebUI将在主要监控页面的顶部显示当前角色。
检查固件版本
为了满足兼容版本标准,两者vSocket必须运行相同的主要版本,例如 v17.xx.yy 或 v18.xx.yy。vSocket在首次部署后执行初始升级。 如果其中一个vSocket未能升级,则必须对该问题进行故障排除。 提交支持工单以报告该问题。
检查HA保持活动
保持活动数据包使用AWS vSocket的UDP/20480端口,将仅从主控vSocket发送到备用vSocket。 当两个vSocket都有主控角色时会出现分脑情况,这可能由于vSocket之间的LAN连接性问题引起,导致HA保持活动消息未能到达次要vSocket。
运行以下检查以确认LAN连接性:
- 检查网络安全组是否正在阻止UDP/20480端口。 快速检查NSG规则的方法是转到AWS中的每个LAN网络接口并检查入站和出站规则,如检查网络安全组是否正在阻止出站流量中所述。
- 确认两者LAN接口已关联到不同的LAN子网。
- 从两者vSocket的WebUI中运行数据包捕获,并确定次要vSocket是否接收到主要发出的保持活动消息。
解决发现的问题
修复DNS配置问题
- 要修复DNS配置问题,请检查AWS默认DNS服务器是否已为VPC配置。
- 在VPC详细信息中,找到为其配置的DHCP选项集。
- 打开DHCP选项集,并验证已定义的域名服务器为AmazonProvidedDNS。
- 无法更改现有的域名服务器。 为此,创建一个新的DHCP选项集,该选项集将默认使用AmazonProvidedDNS。
注销并重新部署AWS vSocket
- 如果在执行了上述所有故障排除步骤后,HA故障转移仍继续失败,则可以注销并重新部署一个或两个vSocket。 请参阅重新部署高可用性vSocket站点
- 在重新部署vSocket之前,重要的是要删除虚拟机,但保留网络接口、相关的公共IP和IAM角色。
- 此外,请记得通过选择vSocket实例 > 安全性 > 附加IAM角色并分配AWS-HA角色,将正确的IAM角色重新附加到vSocket上。
向Cato支持提交案例
提交支持工单,同时附上上述故障排除步骤的结果。 请在工单中包括以下信息:
- 问题的清晰描述,包括任何错误消息。
- VPC中的DNS配置。
- API测试结果。
- LAN路由表和已配置的IAM角色的截图。
- 如果可能,请附上故障转移失败时的CloudTrail日志文件。
0 条评论
请登录写评论。