本文解释如何配置具有两个 vSocket 的站点,以为 Microsoft Azure 云中的站点提供高可用性 (HA)。
为了在 Azure 站点中为 vSocket 提供冗余,请在同一个 Azure 虚拟网络 (VNet) 中部署两个 vSocket,并将它们设置为高可用性配置。 vSocket 在活跃/备用模式下运行,并且使用 LAN 链接在 vSocket 之间发送保持活动消息。
Azure HA 配置使用浮动 IP 地址,该地址绑定到激活 vSocket 的 LAN 接口。 当发生故障切换时,浮动 IP 移动到次要 vSocket 的 LAN 接口。 路由表使用此浮动 IP 作为通过 Cato Cloud 发送流量的下一跳。
Azure HA 支持多个可用性区域。 或者,您可以使用可用性集以确保两个 vSocket 部署在 Azure 的不同故障和更新域中。
以下网络图显示了一个 Azure 站点的 HA vSocket 配置示例。
主要和次要 vSocket 在同一个 VNet 内。 LAN 接口是 10.102.2.10 (主要) 和 10.102.2.11 (次要)。 浮动IP是 10.102.2.200,并配置为 LAN 路由表的下一跳。
该网络的正常流量流向是:
-
VM1 发送流量到互联网。
-
根据 LAN 路由表,流量的下一跳是 10.102.2.200,这被配置为主要 vSocket 的 LAN 接口的次要 IP 地址。
-
主要 vSocket 处于活跃状态,并通过 WAN 接口向互联网发送流量。
这是当主要活跃的 vSocket 切换到次要备用 vSocket 时在 Azure 站点中的工作流。 下图说明了故障切换,数字对应于下面步骤中的项目:
-
在正常操作中,主要 vSocket 扮演活跃角色,而次要 vSocket 坚持备用角色。
-
浮动IP(LAN 接口上的次要 IP 地址)连接到主要 vSocket(项目 1a)。
-
LAN 路由表前缀使用浮动IP作为下一跳(项目 1b)。
-
-
主要(活跃的)vSocket 出现故障(项目 2)。
-
次要(备用)vSocket 停止接收来自主要 vSocket 的保持活动数据包(项目 2a)。
-
-
次要 vSocket 向 Azure API 网关发出 API 调用,以对每个 vSocket 上的 LAN 接口进行以下更改:
-
从主要 vSocket 的 LAN 接口中移除浮动IP(次要 IP 地址)(项目 3a)。
-
将浮动IP添加为次要 vSocket 上的 LAN 接口的次要 IP 地址(项目 3b)。
-
-
次要 vSocket 现在是活跃的 vSocket,并为站点双向传递流量(项目 4)。
-
当主要 vSocket 恢复时,它恢复活跃角色,而次要 vSocket 返回备用状态。 (主要 vSocket 发出 API 调用,将浮动IP移回其 LAN 接口的次要 IP 地址)。
注意
注意: 由于与 Azure 基础架构相关的原因,网络接口配置更新可能需要长达 120 秒的时间,可能会导致 HA 故障切换延迟。
-
Azure 中的高可用性支持使用 Socket 版本 11.0 或更高版本的 vSocket
-
从 Cato 仓库下载 Azure HA 配置脚本,参见 复制 Azure vSocket VHD 镜像使用 SAS
-
两个 vSocket 必须是相同的 Azure VM 实例类型(例如 D2s v4)
-
Azure vSocket 必须能够访问公共 DNS 服务器。 确保 VNet 未配置为仅使用私有 DNS 服务器
-
如果您将 VNet 和 vSocket VM 使用单独的资源组,请确保存储容器 blob 在与 VM 和 VHD 映像相同的资源组中
-
每个 vSocket 需要出站连接到以下资源:
-
VirtualNetwork - DNS 和 HTTP
-
Azure 资源管理器 - HTTPS
-
管理接口需要互联网访问公共 DNS 服务器(如果配置,UDP/53)和 management.azure.com(TCP/443)
-
您可以选择在 HA 配置脚本的一部分中将每个 VM 分配给不同的 Azure 可用性区域,以保护您的应用程序和数据免受 Azure 数据中心故障的影响。 在运行 HA 脚本之前创建可用性区域。
您不能将 VM 分配给使用不同可用性集的不同可用性区域。
注意
注意: Azure 仅支持可用性区域(以及其他区域冗余配置)的标准 SKU 公共IP地址。 在部署 vSocket HA 配置之前,确保您配置了正确的 IP 地址 SKU。
下一个网络图显示了一个 Azure 站点的不同可用性区域的 HA vSocket 配置示例。
-
对于v14.0以前的Socket版本,主要vSocket LAN IP用于BGP对等。 这在故障转移到次要vSocket时无法继续运行。
-
从v14.0开始,在vSocket HA配置中,浮动IP用于BGP对等。 确保在邻居BGP路由器中定义浮动IP。
由于与Azure架构相关的原因,网络接口配置更新可能需要最多120秒,并可能导致HA故障转移的延迟。
-
-
对于现有配置,要将VM分配给可用性区域,您必须创建新的VM并重新部署vSocket(请参见配置Azure vSocket站点)
将vSocket部署在Azure虚拟机(VMs)上,作为站点的主要和次要vSocket。
对于Azure HA配置,在故障转移期间,有一个API调用会自动将浮动IP添加到备用vSocket的LAN接口,并删除配置在LAN接口上的设置(包括LAN的NSG)。 不要手动在vSocket的LAN接口上配置浮动IP。 Cato HA脚本将浮动IP分配给主要vSocket LAN接口,然后重启vSocket(参见下面的步骤7和8)。
这是部署vSocket HA配置的高级工作流程。
-
对于新建站点,在Cato管理应用程序中创建一个新站点,并运行Cato Azure vSocket脚本以部署主要vSocket。 (对于现有站点,跳过此步骤。)
-
创建站点后,Cato管理应用程序将为其分配一个唯一的序列号(S/N)。 我们建议您将序列号复制并粘贴到文本文件中。
-
验证主要vSocket是否运行Socket版本11.0或更高。
-
在Cato管理应用程序中将次要vSocket添加到站点。
-
使用Cato Azure vSocket脚本部署次要vSocket。 两个vSockets必须在相同的VNet。
您需要为次要vSocket创建的唯一虚拟资源是WAN、LAN和MGMT子网的新网络接口。
-
验证主要和次要vSocket是否均已连接到Cato Cloud。
-
运行Cato HA脚本以将HA配置应用于vSockets。
-
重新启动主要和次要vSocket。
-
更新Azure路由表以使用浮动IP作为下一跳。
-
确认vSockets的HA状态,并从Socket WebUI运行API测试。
注意
注意:在为站点配置IP设置时,请确保不要使用Azure保留的IP地址。 您不能在子网CIDR块中使用前四个IP地址和最后一个IP地址。
有关Azure保留IP地址的更多信息,请参阅Azure文档。
完成以下步骤,在VM上部署主要vSocket。 对于现有Azure站点,将主要vSocket升级到版本11.0或更高。 如果您想将 vSocket 分配到可用性集,请参见下文 将 vSocket 虚拟机分配到可用性集(可选)。
然后继续下文 将次要 vSocket 添加到 Azure 站点。
要为新站点部署主要vSocket:
-
向Cato管理应用程序添加一个新的Azure站点。
-
在VM上安装主要vSocket。
-
请记得在相同的资源组中使用这两台vSocket VM。
-
如果需要,为vSocket VM创建可用性集。
有关在Azure中安装vSocket的更多信息,请参阅手动部署Azure vSocket站点(EA 2 NIC支持)。
-
在Cato管理应用程序检测到主要vSocket已升级到版本11.0或更高版本后,添加次要Socket选项将显示在网络 > 站点 > 站点配置 > Socket屏幕中。
当您将次要vSocket添加到站点时,会弹出一个窗口,您可以在其中输入以下设置:
-
局域网接口IP - 用于次要vSocket的局域网接口的IP地址
-
局域网浮动IP - 用于Azure HA配置的浮动IP的IP地址
Cato 管理应用程序使用 LAN 接口 IP 地址作为次要 vSocket 的管理 IP 地址。 此 LAN 接口也用于 HA 保持活动数据包。
在您将次要 vSocket 添加到站点后,Cato 管理应用程序执行以下操作:
-
生成新vSocket的vSocket序列号(当您运行Cato脚本在VM上安装vSocket时,将使用此序列号)
-
启用该站点的高可用性配置部分
-
修改网络部分的原生范围,本地 IP 被浮动 IP 替换
有关 HA 站点网络段的更多信息,请参见下文 Cato 管理应用程序中 Azure 高可用性网络段概览。
在与主要 vSocket 相同的 Azure VNet 中创建并部署次要 vSocket。
-
确保站点的所有虚拟资源都在同一个 Azure 资源组中。
-
根据您的组织需求,您可以将 VNET 分配给一个资源组,并将其他虚拟资源分配给不同的资源组。
-
如有必要,为 vSocket VM 创建可用性集。
-
-
对主要和次要 vSocket 使用相同的子网。
-
为每个子网创建新的虚拟接口。
-
验证主要和次要 vSocket 均与 Cato 云有连接性。
-
运行 Cato Azure vSocket 脚本:
-
选择次要 vSocket 的资源。
-
使用 Cato 管理应用程序生成的 Azure 中次要 vSocket 的序列号。
-
有关在Azure中安装vSocket的更多信息,请参见配置Azure vSocket站点。
在您将次要vSocket部署到VNet后,两个vSocket都具有主控角色(split-brain)。 运行 Cato HA 脚本 create_ha_settings.sh 将 HA 配置应用于 vSocket。 有关下载包含Cato HA脚本的文件的更多信息,请参见Socket和vSocket图像文件(您必须登录才能查看本文)。
Cato HA脚本创建了一个托管身份,即创建的身份,随后分配给VM的角色(HA的两个成员)。 此外,Cato HA 脚本为 HA 组的每个成员创建了两个自定义脚本,这些脚本创建包含故障转移事件中 VM 所需的所有信息的配置文件。 这包括 NIC 的 subscription_id 名称、VM 的位置等。
运行 Cato HA 脚本:
-
在高可用性部分中,确认主要和次要 vSocket 均与 Cato 云有连接性:
-
每个 vSocket 的 连接到 Cato Cloud 状态显示 已连接
-
请参见下文 在 Cato 管理应用程序中显示高可用性状态
-
-
运行 Cato HA 脚本 create_ha_settings.sh 以将 HA 配置应用于 vSockets。
-
重启具有主要和次要 vSocket 的虚拟机。
-
更新 Azure 中的相关路由表条目,以使用浮动IP作为下一跳。
在成功运行 HA 脚本后,验证 vSocket 是否正确配置了 HA 功能:
-
在 高可用性 部分检查 HA 状态
-
从 Socket WebUI 中 ping 浮动IP并测试 HA API 调用
有关 HA 配置部署相关问题的帮助,请参阅 故障诊断 Azure HA 部署。
站点的 高可用性 部分显示 vSocket 的 HA 状态。 部署次要 vSocket 后,它会自动连接到站点。
要确认站点的高可用性状态:
-
从 Cato 管理应用程序的导航菜单中,点击 网络 > 站点。
-
从导航菜单中,点击 站点监控 > 网络分析。
-
从屏幕顶部,验证以下项目的状态:
-
状态 是 已连接
-
HA 状态 是 就绪
-
主控 是 主要
-
Socket 是 vSocket Azure
-
有关 HA 和故障转移行为的更多信息,请参阅 Socket 高可用性(HA):背景和故障转移条件。
您可以使用 Socket WebUI 中的网络工具来测试 vSocket 的 HA 功能。 您可以 ping HA 配置的浮动IP,以验证其是否正确配置。 高可用性 部分显示局域网浮动IP。 您需要为主要和次要 vSocket 运行测试。
vSocket 执行对 Azure API 代理的 API 调用,以验证角色和身份设置已由 HA 脚本正确配置。 它还验证 vSocket 是否能够成功与 API 代理通信。
要了解有关使用 Socket WebUI 的更多信息,请参阅 访问 Socket WebUI。
如果 Azure API 测试失败,将显示错误消息以帮助您排查问题。
API 测试错误消息 |
建议的故障排除步骤 |
---|---|
Azure API 测试失败 - 无法认证到 API 代理。 确保 Azure 访问控制 (IAM) 设置正确。 |
Azure 管理员没有足够的权限对虚拟资源进行更改。 见上文,设置管理员权限以配置高可用性。 |
Azure API 测试失败。 验证 vSocket VM 实例上的 NIC 设置是否正确。 |
|
本节解释如何使用网络部分管理Azure HA站点的网络段。
当您将次要vSocket添加到Cato管理应用程序时,网络部分中的网络段会自动更新,以包含浮动IP的设置。 浮动IP取代站点本地范围的本地IP。
本节解释如何管理Azure站点的HA:
-
显示每个vSocket的HA状态
-
更改站点的浮动IP
-
更改vSocket的管理IP地址
-
禁用站点的HA并移除次要vSocket
该站点的网络 > 站点 > 套接字屏幕显示了主要和次要vSocket的HA状态。
项目 |
描述 |
---|---|
HA 状态 |
站点的高可用性状态(就绪 或 未就绪),仅在每个 HA 状态指示器正常时显示 就绪 |
已连接 (状态指示器) |
状态 |
保持活动 (状态指示器) |
状态 |
同一版本 (状态指示器) |
状态 |
如果更改Azure中vSocket的IP地址设置,则需要在Cato管理应用程序中更新相同的设置。 这些是您可以配置的设置:
-
本地范围子网 - 使用站点的网络部分
-
浮动IP - 使用站点的网络或高可用性部分(新值会自动更新到另一部分)
-
管理IP - 使用站点的高可用性部分
使用网络部分更改本地范围子网。
您可以从Azure站点移除次要vSocket并禁用该站点的HA。 从Cato管理应用程序中移除次要vSocket后,已部署的vSocket将无法再连接到Cato Cloud。 站点的设置已恢复为单个vSocket的配置:
-
高可用性部分已禁用,不再出现在页面中
-
在网络部分,本地 IP 替换了浮动 IP
注意
注意:您无法撤销取消分配套接字操作。 次要vSocket的序列号不再有效。
如果您想再次添加次要vSocket,您必须在VM上安装一个具有新序列号的新vSocket。
事件页面显示您账户的所有HA连接事件。
你可以在这里了解有关事件屏幕的更多信息。 您可以使用SaaS 安全 API 数据保护预设来过滤事件。
Socket HA和vSocket HA的事件和字段是相同的。 这些是HA事件:
字段 |
描述 |
---|---|
Socket 角色 |
显示事件是由主要 vSocket 还是次要 vSocket 生成的 |
事件子类型 - Socket 切换 |
站点的切换进程已启动 |
有关在故障转移过程中生成的事件的更多信息,请参阅Socket HA故障转移事件。
0 条评论
请登录写评论。