什么是 Socket 高可用性 (HA)

本文讨论了在使用一对物理 Cato Sockets 的站点上,高可用性 (HA) 配置和故障转移条件。

Socket 高可用性站点概览

为了提高站点的弹性,Cato 强烈建议每个站点部署一对在高可用性 (HA) 模式下运行的 Sockets。 这种操作模式确保在单个 Socket 故障的情况下站点的服务连续性。 在故障转移期间,Cato Cloud 维护流状态,对最终用户体验的影响最小。

支持的 Socket HA 站点

Cato 支持以下环境中的 Socket HA:

  • 物理 Socket 站点

  • AWS vSocket 站点

  • Azure vSocket 站点

本文解释了物理 Socket 站点的 HA 工作原理。 有关几步快速设置 Socket HA 的更多信息,请参见在 HA 部署中使用 Sockets

Socket 高可用性和不同 Socket 型号

Socket HA 站点可以使用两个同一类型的 Sockets,如 X1500、X1600、X1600 LTE 或 X1700。 但是,您不能使用不同类型的 Sockets,因此不支持 X1600 和 X1700 Socket 的站点。

您不能在同一 HA 站点中同时使用 X1600 Socket 和 X1600 LTE Socket。

了解 Socket 高可用性和故障切换

在 Socket HA 部署中,将两个 Cato Sockets 分配给一个站点。 第一个分配给站点的 Socket 被识别为主 Socket,第二个为次 Socket。 Socket 在 HA 活动/备用模式下运行。 在站点的正常运行期间,主 Socket 拥有 HA 主状态,而次 Socket 拥有 HA 备用状态。 只有拥有 HA 主状态的 Socket 处理流量。

  1. 次级(备用)Socket 通过监听主 Socket 发送的定期保活消息,持续监控主 Socket 的状态(活动性)。 Keepalive 消息通过指定接口发送,目标设定为LAN & VRRPVRRP(参见下文LAN Connectivity and Socket HA)。

  2. 一旦次级 (备用) Socket 检测到主 Socket 出现故障,它将其 HA 状态更改为主并开始处理流量。 这发生在三秒钟内未收到 HA 保活消息后。  

  3. 次要 Socket 向 LAN 网络发送 GARP 消息以加速第2层收敛。

  4. 当主 Socket 恢复并恢复正常功能时,它主动成为主 Socket,次 Socket 则返回到备用状态。

下图显示了 Cato Management Application 中网络 > 站点 > {site name} > 站点配置 > Socket 中 X1500 Sockets 的 HA 配置页面:

image.png

项目

描述

1

Socket HA角色 - 主或从

2

Socket HA状态 - 主或备用

3

HA 状态 - 准备就绪或未准备就绪

4

整体HA状态的特定条件

  • 已连接 - Socket WAN连接性

    • GreenCheck.png- 主Socket和从Socket都至少有一个运营隧道连接到Cato Cloud

    • Red_X.png- Socket没有运营隧道连接到Cato Cloud

  • Keepalive - Sockets之间HA Keepalive通道的状态

    • GreenCheck.png- 从Socket接收到主Socket的HA Keepalive消息

    • Red_X.png- 从Socket没有接收到主Socket的HA Keepalive消息

  • 兼容版本 - 主和从Sockets都在运行兼容的Socket系统版本

    • GreenCheck.png- Both Sockets are running compatible (the same major) Socket version, for example 14.0.13986 and 14.0.12764

    • Red_X.png- Sockets have different major Socket versions, for example 14.0.13986 and 13.0.48732

    注意:即使Sockets正在运行不同的主版本,Socket HA故障转移也会发生。 然而,如果从Socket版本不支持主Socket版本支持的功能,站点可能会遇到功能问题。

    例如,如果主Socket运行版本18.0,而从Socket运行版本15.0,在发生故障转移的情况下,在版本16 - 18发布的功能将不会在从Socket活动时工作。

样例 Socket HA 故障切换

以下图示显示了一个主Socket发生问题导致故障转移到从Socket的示例。 当从Socket发现主Socket宕机时,它将其状态更改为主。 Cato Cloud将流量传输到从Socket的WAN链路。

Socket_HA_Regular.png
Socket_HA_Failure.png

Socket HA 和分裂脑状态

分裂脑条件是指两个Sockets同时具有主角色。 这可能是由于Sockets之间的LAN连接问题造成的,此情况导致HA Keepalive消息无法到达从Socket。

You can identify a split-brain condition by checking the Socket page (shown above) in the Cato Management Application.

  • The primary and secondary Sockets will be shown as status Master (item 2)

  • The Keepalive condition (in item 4) will be shown as Failed and this causes the HA Status (item 3) to be shown as NOT READY

在解决LAN连接问题后,从Socket确定主Socket是主,从Socket返回到待机状态。

分裂脑状态下的站点流量

The following process makes sure that during a split-brain condition, only the secondary Socket handles the traffic for the site (even if there is a split-brain condition).

  • 对于下行流量(从PoP到站点):

    1. PoP检测到次级Socket现在是主设备。

    2. PoP为次级Socket隧道设置了首选指标。

      现在下行流量仅路由到次级Socket。

  • 对于上行流量(从站点到PoP):

    1. 当次级Socket将HA状态从备用更改为主设备时,它会向LAN发送GARP消息以更新ARP和MAC表,表示现在它是主设备。

      来自LAN的上行流量现在仅路由到次级Socket。

Socket HA 到 Cato Cloud 的连接

主要和次级Socket在每个WAN端口上都建立到相同Cato Cloud PoP的DTLS隧道。 在上行方向,只有主Socket将流量发送到PoP。 在下行方向,PoP仅使用主Socket隧道将流量发送到站点。 在Socket HA故障转移事件中,次级Socket成为新主设备,PoP将流量从故障的主要Socket隧道转移到次级Socket隧道。 PoP维护流状态和NAT状态,确保所有用户应用程序在故障转移期间和之后继续运行。

以下是Socket HA的物理和逻辑拓扑示例:

PhysicalLogicalTopology.png

为了获得最佳的WAN连接性、性能和HA功能,Cato要求两个Socket具有对称(镜像)布线布局。 例如,如果主要Socket端口WAN1连接到ISP1,端口WAN2连接到ISP2,则次级Socket必须将相同的端口连接到与主要Socket相同的ISP。

这些对称拓扑可以包括与ISP路由器的直接连接或使用交换机堆栈。

WAN_Connectivity_Router_Switch.png

注意

注意: 使用非对称拓扑可能会产生问题,并且Cato不提供官方支持。 例如,在哪里主要Socket端口WAN1连接到ISP1,次级Socket端口WAN1连接到ISP2。

LAN 连接和 Socket HA

Cato要求主要和次级Socket的LAN连接具有对称(镜像)布线布局。 例如,主要和次级Socket的LAN端口1连接到LAN交换机(或具有多个LAN端口的配置中的LAN端口1和2)。

本节讨论Socket HA的以下LAN连接选项:

  1. 单个LAN端口

  2. 多个LAN端口

  3. LAN链路汇聚(推荐选项)

  4. 用于HA保活消息的专用端口

这些选项中有些需要在Cato管理应用中对站点进行额外配置。 例如,LAN端口被配置为LAN & VRRP或VRRP。

使用单一 LAN 端口的 Socket HA

有些配置使用单个LAN端口将主要和次级Socket连接到LAN交换机。 在此配置中,两个Socket上必须使用相同的端口号。 用户流量和HA保活消息通过单一链路传输。 此拓扑不提供LAN链路冗余。

下图显示了一个示例 Socket HA 拓扑,每个 Socket 的单个 LAN 端口连接到交换机:

HA_LAN_switch.png

使用多个 LAN 端口的 Socket HA

本节讨论了当主 Socket 和从属 Socket 都通过两个或更多独立的 LAN 端口连接到 LAN 交换机时的情况。 在这种配置下,两个 Socket 必须使用相同的端口来实现 LAN 连接。

默认情况下,编号最低的 LAN 端口用于 HA 保活流量和用户流量。 剩余的 LAN 端口仅承载用户流量。

您可以通过将端口的 DestinationLAN 改为 LAN & VRRP 来为 HA 保活流量选择任意 LAN 端口。  以下截图显示端口 3 用于 LAN 用户流量,端口 4 用于 HA 保活流量和用户流量。

LAN_VRRP.png

有关更改 LAN 端口以支持 Keepalive HA 流量的更多信息,请参见在 HA 部署中使用 Sockets。 这种拓扑不提供 LAN 链路冗余。

Socket HA 故障切换 (即 Secondary Socket 成为 Master) 仅在满足以下两个条件时发生:

  1. 副 Socket 停止接收来自主 Socket 的 HA 保活消息达三秒。

  2. 从属 Socket 上的 LAN & VRRP 端口处于连接状态。

如果来自属 LAN 端口是断开的,它将不会成为主 Socket,以避免可能的分裂脑状态。

Socket HA 与 LAN 链路聚合 (推荐配置)

Primary Socket 和 Secondary Socket 都通过聚合链路 (LAG) 中的两个或更多 LAN 端口连接到 LAN 交换机。  在这种配置下,两个 Socket 必须使用相同的端口来实现 LAN 连接。 这种拓扑为用户流量和 HA 保活消息都提供 LAN 链路冗余。 如果其中一个 LAG 成员端口发生故障,其他成员端口将继续承载用户流量和 HA 保活流量。

这种拓扑不仅提供链路弹性,还提供 Socket 的弹性,并被认为是一种最佳实践。

想了解更多有关 LAN LAG 的信息,参见 为 Socket 配置链路聚合

下图是使用交换机堆叠的 LAN LAG 的 Socket HA LAN 连接拓扑的示例:

SocketHA_LAG.png

用于 HA Keepalive 流量的专用端口

在这种配置中,您将 HA 保活流量与 LAN 流量隔离。 您可以分配一个端口 (LAN、WAN 或 USB 端口) 专门用于 HA Keepalive 流量,同时使用一个或多个剩余的 LAN 端口用于 LAN 流量。

要设置用于 HA 保活流量的专用 LAN 端口,请将端口的 Destination 设置为 VRRP。 然后将 HA link between sockets 选项设置为 DirectVia Switch

Direct_HA_Link.png

以下是专用端口的配置:

  1. 直接 (Sockets 之间的背靠背电缆) — 在这种配置下,如果 Secondary Socket 停止接收 HA Keepalive 消息,它将无论 VRRP 端口状态如何成为 Master。

  2. 通过交换机 - 使用此配置,两个Socket的VRRP端口连接到交换机。 故障切换行为取决于辅助Socket的VRRP端口状态:                                                             

    1. 当辅助Socket端口状态为连接状态但未收到keepalive消息时 - 辅助Socket变为主节点。

      辅助Socket假定该状态是由主Socket故障引起的。

    2. 辅助Socket端口状态为断开连接时 - 辅助Socket不会成为主节点(假设这是其自身与交换机之间的本地问题)。

      辅助Socket假定主Socket正常工作,为避免可能的split-brain情况,不会成为主节点。

这些是直接和通过交换机的专用端口配置图:

Socket_HA_-_Direct_Port_for_HA_Traffic.png
Socket_HA_-_via_Switch_Port_for_HA.png

Socket 高可用性的故障切换条件

本节描述了导致从主Socket切换到辅助Socket的条件。

由于主 Socket 故障导致的故障切换

该故障切换场景是由主Socket故障引起的。 Socket被视为处于关闭状态基于以下原因之一:

  • Socket的一般故障或电源丢失

  • LAN连接(超过三秒无keepalive)

  • 超过十秒无互联网连接

由于 Keepalive 故障导致的故障切换

当辅助Socket在三秒内未收到来自主Socket的keepalive消息时,也会出现故障切换场景。

当辅助Socket发现主Socket故障时,它将状态更改为主节点。 Cato Cloud将流量流转移到辅助Socket中的WAN链接。 下图展示了此场景。

Socket_HA_LAN_Failure.png

互联网连接问题会导致 Socket 故障切换吗?

Sockets使用探测机制来确定互联网连接状态。 如果主Socket确定所有互联网链接(Cato链接)的互联网连接中断超过10秒,那么它将停止发送HA keepalive消息。 这会导致切换到辅助Socket。

注意

注意:可能存在一种情况,即主Socket具有互联网连接,但是所有DTLS隧道都处于断开状态。 由于Sockets具有互联网和WAN恢复机制,因此此情况不会导致切换到辅助Socket。 这些恢复机制允许Socket重新连接到Cato Cloud中的不同PoP。

监控 Socket 高可用性

本节讨论了Cato管理应用中可用来监控Socket HA状态和事件的不同页面。

显示 Socket HA 状态

Cato管理应用中有不同的页面可以显示某个站点的Socket HA状态。

页面名称

描述

路径

站点

显示帐户中的所有站点。 HA状态列显示每个站点的Socket HA状态。

网络 > 站点

Socket

显示某个站点的Socket HA详情。 请参见上文了解 Socket 高可用性和故障切换

网络 > 站点 > <站点名称> > 站点配置 > 插座

网络分析

显示站点的网络数据和 HA 状态

网络 > 站点 > <站点名称> > 站点监控 > 网络分析

Socket HA 故障切换事件

每当发生插座故障切换时,当辅助插座激活超过35秒钟时,就会生成一个 插座故障切换 事件。 例如,如果主插座升级到新的插座版本,并且升级过程需要20秒,那么不会生成 插座故障切换 事件,因为辅助插座仅激活20秒。

您可以在 Cato 管理应用程序的主页 > 事件 页面中查看该事件。 这是一个展示从主插座切换到辅助插座的事件示例。

Failover.png

定义 Socket 高可用性故障切换的电子邮件通知

您可以使用链接健康规则页面(Network > Link Health Rules)来创建连接健康规则,以便发送 Socket HA 故障切换事件的电子邮件通知。 电子邮件通知将发送给您在 Cato 管理应用程序中配置的 邮件列表 中的所有收件人。 邮件列表可以包括在 Cato 管理应用程序中未为用户和管理员定义的电子邮件地址。

这是一个针对插座故障切换的连接健康规则示例:

Socket_Failover_Alert.png

有关配置连接健康规则的更多信息,请参见使用链路健康规则

这篇文章有帮助吗?

17 人中有 15 人觉得有帮助

0 条评论