为AWS vSockets配置HA

本文解释了如何在Amazon Web Services (AWS) 云中配置一个站点,使用两个vSockets为高可用性(HA)提供支持。

AWS 中高可用性 vSocket 的概览

为了在AWS站点内为vSockets提供冗余,部署两个vSockets在单个VPC中,并将它们设置为高可用性(HA)配置。 vSockets以活跃/被动模式运行,使用LAN链接在vSockets之间发送保持活动消息。

您可以在单个可用区(AZ)内或同一VPC内的不同AZ中部署vSockets。 确保将两个LAN子网关联到同一路由表。

高可用性解决方案要求两个vSockets都拥有IAM权限,以便使用API调用修改路由表。

有关在AWS中安装vSocket的更多信息,请参阅从AWS Marketplace部署vSocket站点。 在AWS Marketplace中公开提供vSocket镜像。

AWS 高可用性的前提条件

  • AWS 中的高可用性支持使用 Socket 版本 9.1 或更高版本的 vSocket。

  • 所有AWS虚拟资源必须属于同一个账户
  • AWS vSockets必须能够访问公共DNS服务器,确保VPC没有配置为仅使用私有DNS服务器。

    • DNS服务器必须能够解析内部AWS域名。

  • 每个vSocket的EC2实例必须具备以下条件:

    • 允许vSocket修改路由表的IAM权限

    • 每个LAN接口的独立子网

    • 在故障切换期间用于发出API调用以更改路由表的有效MGMT接口

  • AWS安全规则必须允许双向UDP端口20480的流量在局域网接口之间流通。

注意

注意:

  • 备用。 AWS HA部署不支持WAN链接。 您必须移除任何现有的备用。 在实施HA解决方案之前的WAN链接。

  • AWS vSocket HA不支持BGP (仅支持单一的AWS vSockets)。

  • 如果将vSocket降级到早于版本9.1的版本,则该站点的HA将被禁用。 次要vSocket将从站点中移除。

    我们建议在将vSocket降级到不支持的早期版本之前,移除站点的HA设置。

AWS vSocket故障转移工作流

当主要活动vSocket在AWS站点故障转移到次要待机vSocket时,这是故障转移工作流。

  1. 主要(活动)vSocket关闭,LAN ENIs的HA链接状态更改为下线

  2. 次要(待机)vSocket发送一个声明,它是新的活动(主控)vSocket。

  3. 次要vSocket向AWS API网关发出API调用以修改LAN路由表,并将次要vSocket LAN ENI指定为0.0.0.0/0路由的下一跳。

    注意: 在故障转移期间,该MGMT接口必须启用并活动才能进行API调用以更改路由表。

  4. 路由范围(站点 > Networks)的网关IP(下一跳)将自动更新为次要Socket本地范围的网关IP地址。

  5. 次要vSocket即为活动vSocket并为站点传递流量。

  6. 当主要vSocket恢复后,它重新担任活动角色,次要vSocket回到待机状态。

有关HA和故障转移行为的更多信息,请参见什么是Socket高可用性(HA)

为高可用性准备AWS环境

本节描述了准备AWS环境以进行vSocket HA所需完成的步骤。

注意

注意: 本文中的截图和示例基于AWS的新EC2体验,适用于EC2实例。

为次要vSocket LAN 接口创建子网

次要vSocket需要一个独立的子网用于其LAN接口(ENI) 发送保持活动数据包到主要vSocket。 此要求对单一AZ和双重AZ HA部署相同。

在AWS VPC中,为次要vSocket LAN接口创建子网,并将其关联到VPC专用路由表中。 确保新子网关联到与主要vSocket LAN接口子网相同的路由表。

注意

注意:

  • 必须将所有LAN子网关联到同一专用路由表。

  • 如果您在可用区中为次要vSocket创建LAN子网,则还必须在该可用区中创建独立的WAN和MGMT子网。

为vSocket创建IAM角色

身份和访问管理(IAM) 角色使vSocket能够进行AWS API调用,以更改路由表中的条目。 创建一个IAM角色,赋予实例正确的权限。 稍后您将把此角色附加到每个vSocket上。

为IAM角色创建策略

使用JSON文件为IAM角色创建新策略,包含这些操作的AWS读写权限:

  • "ec2:CreateRoute"

  • "ec2:DescribeRouteTables"

  • "ec2:ReplaceRoute"

vSocket HA策略的JSON文件

这是IAM策略的JSON文件,为vSockets在HA配置中运行分配必要权限。 您可以在创建策略窗口中复制并粘贴此文件。

{
    "Version": "2012-10-17",
    "Statement": {
        "Effect": "Allow",
        "Action": [
                "ec2:CreateRoute",
                "ec2:DescribeRouteTables",
                "ec2:ReplaceRoute"
                ],
            "Resource": "*"
        }
}

要创建IAM策略:

  1. 查找服务中,搜索IAM,从AWS管理控制台进入。

    AWS_SearchIAM.png

    身份和访问管理(IAM)仪表板已打开。

  2. 从导航菜单中,选择访问管理>策略

  3. 点击创建策略

  4. 创建策略窗口中,点击JSON标签。

  5. 粘贴JSON文件的内容以配置IAM角色的权限。

    JSON_Policy.png
  6. 点击审查策略

  7. 输入策略的名称

  8. 点击创建策略。 该策略已创建并添加到IAM策略中。

创建一个新的IAM角色

创建一个IAM角色,将其附加到vSocket HA的EC2实例。

要创建新的IAM角色:

  1. 从导航菜单中,选择访问管理>角色

  2. 点击创建角色

  3. 创建角色>选择受信实体类型窗口中,选择AWS服务并点击EC2

    IAM_Role_resize.png
  4. 点击下一步:权限附加权限策略窗口已打开。

  5. 在搜索栏中,输入您在上一节中创建的IAM策略的名称。

    attach_permissions_720x341.png
  6. 点击下一步:标签添加标签窗口已打开。

  7. (可选)向IAM角色添加标签。 点击下一步:审查审查窗口已打开。

  8. 输入IAM vSocket HA角色的角色名称

  9. 点击创建角色。 IAM vSocket HA角色已创建。

定位路由表ID

定位并复制VPC的私有路由表ID。 在Cato管理应用程序中,添加辅助vSocket到AWS HA站点时需要此ID。 vSockets会发出API调用以修改此路由表作为故障转移过程的一部分。

定位路由表ID:

  1. 虚拟私有云导航菜单中,选择路由表

    RouteTableID.png
  2. 选择用于LAN片段的路由表,并复制路由表ID

在AWS中部署vSocket高可用性

在EC2实例上部署vSockets作为站点的主要和次要vSockets。

  1. 对于新站点,在Cato管理应用程序中创建一个新站点并部署主vSocket。 (对于现有站点,请跳过此步骤。)

  2. 将IAM角色附加到主vSocket的EC2实例。

  3. 将辅助vSocket添加到Cato管理应用程序中的站点。

  4. 将辅助vSocket部署到AWS VPC。

  5. 将IAM角色附加到次要vSocket的EC2实例。

注意

注意:配置站点的IP设置时,请确保不要使用AWS保留的IP地址。 您不能在子网CIDR块中使用前四个IP地址和最后一个IP地址。

有关AWS保留IP地址的详细信息,请参见AWS文档

在AWS VPC中部署主vSocket

完成这些步骤以在EC2实例上部署主vSocket。 对于新AWS站点,部署主vSocket并将IAM角色附加到实例。

对于现有AWS站点,将主vSocket升级到版本9.1或更高。 然后将IAM角色附加到EC2实例(主要vSocket)并继续以下将IAM角色附加到vSocket

要为新站点部署主vSocket:

  1. 向Cato管理应用程序中添加一个新的AWS站点。

  2. 在EC2实例上安装主vSocket。

    有关在AWS中安装vSocket的更多信息,请参阅从AWS Marketplace部署vSocket站点

  3. 将您在上面创建的IAM角色附加到vSocket。

上面的截图显示了在安装并升级主vSocket到版本9.1或更高后AWS站点的情况。

注意

注意: 对于现有的 AWS 站点,仅在您将 vSocket 升级到 9.1 或更高版本后,才会显示 添加次要套接字 按钮。

将 IAM 角色附加到 vSocket

将您在以上创建的 IAM 角色附加到 vSocket EC2 实例。 IAM 角色授予 vSocket 权限以进行 API 调用以修改路由表以实现 HA 功能。

要将 IAM 角色附加到实例:

  1. 在 AWS 的 实例 窗口中,选择 vSocket 实例。

  2. 操作 下拉菜单中,选择 安全性 > 修改 IAM 角色

  3. 修改 IAM 角色 窗口中,选择 IAM 角色。

    Modify_IAM_role.png
  4. 单击 保存。 IAM 角色已附加到 vSocket 实例。

向 AWS 站点添加次要 vSocket

在 Cato 管理应用程序检测到主要 vSocket 已连接到 Cato 云后,添加次要套接字 选项会显示在 网络 > 站点 > 站点配置 > 套接字 页面上。

当您将次要 vSocket 添加到站点时,会弹出一个窗口,在其中输入以下设置:

  • 局域网ENI IP地址

  • 局域网ENI子网

  • 路由表ID

Cato 管理应用程序使用局域网ENI IP地址作为次要 vSocket 的管理 IP 地址。 此局域网ENI 还用于将 HA 保持活动的数据包发送到主要 vSocket 局域网接口。

Cato 管理应用程序中的次要 vSocket 设置必须与 AWS 中使用的设置相同。

在您将次要 vSocket 添加到站点后,Cato 管理应用程序会执行以下操作:

  • 生成新 vSocket 的 vSocket 序列号(此序列号用于在 EC2 实例上安装 vSocket 时使用)

  • 为该站点启用 高可用性配置 部分

  • 使用新的本地范围修改 站点配置 > 网络 页面:

    • 局域网ENI IP地址显示为网络范围的本地 IP

    • 局域网ENI子网显示为网络范围的子网

有关HA站点中的网络段的更多信息,请参见下面Cato管理应用程序中AWS高可用性网络段概览

AWS_HA.png

要配置具有高可用性的 AWS 站点:

  1. 从导航菜单中,单击网络 > 站点,然后选择 AWS 站点。

  2. 从导航菜单中,选择 站点配置 > 套接字

  3. 单击添加次要套接字添加次要 vSocket(高可用性) 窗口打开。

  4. 将设置配置为与 vSocket EC2 实例的局域网子网完全相同:

    1. 输入 局域网接口IP。 该值用作本地 IP。

    2. 输入带有 CIDR 的局域网ENI子网。 该值用作次要套接字本地范围。

    3. 输入用于局域网范围的私有路由表路由表ID

  5. 单击 确定。 主要和次要 vSocket 的设置已配置并复制到站点配置 > 网络高可用性配置 部分。

  6. 复制并保存 vSocket 配置脚本的 vSocket 序列号:

    1. 站点 列表中,选择新的 vSocket 站点。

    2. 从导航菜单中,单击 站点配置 > 套接字。 复制序列号(S/N)并保存。

在 EC2 实例上安装次要 vSocket 时使用此序列号。

对套接字配置窗口的更改

在您将次要 vSocket 添加到站点后,LAN1 链接的 目标 自动设置为 局域网 & HA

在 AWS VPC 中部署次要 vSocket

在 AWS VPC 中使用您之前创建的 IAM 角色创建并部署次要 vSocket。

  • 创建网络接口

  • 将上面创建的IAM角色附加到vSocket(见上面将IAM角色附加到vSocket

  • 输入在 Cato 管理应用程序中生成的次要 vSocket 站点的序列号

  • 为 vSocket 配置 EC2 实例

创建WAN和LAN接口

为vSocket的EC2实例创建WAN和LAN接口。 使用 EC2 仪表板创建接口。

将 LAN 接口的 自定义 IP 地址设置为与本地范围的本地 IP 相同的 IP 地址。

您需要在 LAN 接口上禁用 AWS 源/目标检查,以允许 EC2 实例执行流量转发。

注意

注意: 为确保 vSocket 行为正确,定义自定义 DHCP 选项,并将受信任的服务器定义为主 DNS 服务器

04_LAN_NIC.png

创建网络接口 (ENI):

  1. 从 EC2 仪表板中,在导航菜单中选择 网络 & 安全性 > 网络接口

  2. 点击 创建网络接口

  3. 创建网络接口 窗口中,选择 LAN 子网

  4. (LAN 接口可选)私有 IPv4 地址中,点击 自定义 并输入用于本地范围的本地 IP。

  5. 安全组 中,选择接口的合适的安全组。

  6. 点击 创建网络接口。 AWS 创建接口。

  7. 对WAN接口重复上述步骤。

  8. 对于 LAN 接口,禁用 AWS 源/目的地跟踪:

    1. 网络接口窗口中,右键点击 LAN 接口并选择 更改源/目的地。 检查。

      05_LAN_INT_source-dest.png
    2. 更改源/目标检查 窗口中,清除 启用

    3. 点击 保存

为 vSocket 配置 EC2 实例

在为 vSocket 创建所有虚拟资源后,使用 AWS Marketplace 中可用的 Cato Networks AMI 将这些资源连接到您的 EC2 实例。

EC2 支持的实例类型

以下 EC2 实例类型已通过 vSockets 认证:

  • c5.xlarge

  • d2.xlarge 

  • c3.xlarge

  • t3.large

  • t3.xlarge

  • c4.xlarge

  • c5d.xlarge

  • c5n.xlarge(建议用于带宽超过 2Gbps 的高性能站点)

配置 Cato AMI

在准备好环境后,您现在可以配置 Cato Networks AMI。

配置 AMI:

  1. 从 AWS Marketplace 中,搜索 Cato Networks Virtual Socket。

  2. 点击 继续订阅

  3. 点击 继续配置

    • 履行选项 下,选择 Amazon Machine Image

    • 区域 下,确保选择 vSocket 所在的区域。

    Cato_AMI.png
  4. 点击 继续启动

  5. 启动此软件 页面:

    1. 选择操作 下,选择 通过 EC2 启动

    2. EC2 实例类型 下,选择 EC2 实例。

    3. VPC 设置 下,选择您要连接的 VPC。

    4. 子网设置 下,选择 MGMT 网络。

    5. 安全组设置 下,选择为该实例创建的安全组。

    6. 展开 高级网络配置,在 网络接口 下选择您创建的 MGMT 接口。

      注意: 如果不选择现有接口,将创建新的接口。

      AWS_vSocket_Cato_AMI_advanced_network_config.png
    7. 密钥对设置 下,选择您创建的密钥对。

    8. 高级详细信息部分中,在 用户数据 - 可选项 下,输入从您在 Cato 管理应用程序中创建的 vSocket 站点复制的序列号。

  6. 点击 启动

将接口附加到 vSocket 实例

在 vSocket 实例启动后,MGMT 接口会附加到它。 停止实例,然后将剩余的 WAN 和 LAN 接口连接到该实例。

注意

注意: 确保 EC2 实例处于停止状态,首先连接 WAN 接口,然后连接 LAN 接口。

将接口连接到 vSocket 实例:

  1. 从 EC2 仪表板,在导航菜单中选择 实例 > 实例

  2. 右键点击 vSocket 实例并选择 停止实例

  3. 在确认窗口中,点击 停止。 刷新窗口并确认实例状态已停止

  4. 在导航菜单中选择网络 & 安全性 > 网络接口

  5. 将WAN接口连接到实例:

    1. 右键单击WAN接口,然后选择附加接口

    2. 附加网络接口窗口中,在实例中选择vSocket实例。

    3. 单击附加

    4. 为LAN接口重复前面的三个步骤。

确认AWS站点的高可用性状态

本节描述如何测试和确认vSockets是否已正确配置以用于HA功能。

在Cato管理应用程序中显示高可用性状态

Cato管理应用程序中的高可用性部分显示了vSockets的HA状态。 部署次要vSocket后,它会自动连接到站点。

有关更多信息,请参见下面显示高可用性信息和状态

确认站点的高可用性状态:

  1. 从导航菜单中单击网络 > 站点,然后选择AWS站点。

  2. 从导航菜单中单击站点监控 > 网络分析

  3. 高可用性状态中,验证状态为就绪,并且主控主要vSocket。

从Socket WebUI测试高可用性

您可以使用Socket WebUI中的网络工具来测试vSockets的HA功能。 vSocket会对AWS API网关执行API调用,以验证这些设置的HA配置:

  • vSocket的IAM权限配置正确

  • 路由表ID配置正确

为完成测试,请确保vSocket能够解析相关区域的AWS RestAPI域。 有关详细信息,请参阅AWS文档

如果测试不成功,我们建议您比较AWS和Cato管理应用程序中路由表ID的设置。

要测试AWS vSocket的HA API调用:

  1. 从导航菜单中选择站点配置 > Socket

  2. 主要vSocket操作下拉菜单中,选择Socket WebUI

    Socket WebUI将在新标签页中打开。

  3. 单击工具标签。

  4. 在网络工具部分,单击API测试工具标签。

  5. 单击运行测试。 窗口显示HA API测试成功或失败。

  6. 为次要vSocket重复步骤2-5。

要了解有关使用 Socket WebUI 的更多信息,请参阅 访问 Socket WebUI

为AWS高可用性站点处理网络段

本节说明如何使用网络部分管理AWS HA站点的网络段。

Cato管理应用程序中的AWS高可用性网络段概览

当您将次要vSocket添加到Cato管理应用程序时,网络部分中的网络段会自动更新为以下设置:

  • 主要Socket原生范围:

    • 主要vSocket的原生范围被转换为主要Socket原生范围

    • 原生范围的本地IP代表vSocket的局域网接口IP地址。 此IP地址还用作vSocket的管理IP地址。

    • 网关IP地址自动设置为子网的第一个IP地址,指向AWS VPC路由器(基于AWS保留的IP地址)

  • 次要Socket原生范围——这些设置基于添加次要vSocket时输入的LAN ENI值:

    • 次要vSocket的原生范围是LAN ENI IP子网

    • 次要原生范围的本地IPLAN ENI IP地址。 此IP地址还用作vSocket的管理IP地址。

    • 网关IP地址自动设置为子网的第一个IP地址,指向AWS VPC路由器(基于AWS保留的IP地址)

注意

注意:

  • 由于网关IP地址是为一个范围自动计算的,因此您无法更改它。

  • 如果需要更改范围的本地IP地址,则必须更改vSocket的管理IP地址(见下文,更改本地IP地址)。

添加路由范围(静态路由)

您可以向AWS HA站点添加路由范围。 当您添加一个路由范围时,范围的网关会根据活动的vSocket自动选择。 活动vSocket原生范围的网关IP会自动用作路由范围的网关

例如,当次要vSocket处于活跃状态时,次要Socket原生范围的网关IP地址用于站点中的所有路由范围。 在下面的示例中,10.0.17.1的网关IP将被用作10.0.25.0/24路由范围的网关(下一跳)。

当主要vSocket再次活跃时,路由范围的网关IP会自动切换到10.0.3.1。

AWS_routed_range.png

要为AWS HA站点添加路由范围:

  1. 从导航菜单中,点击网络 > 站点,并选择AWS站点。

  2. 从导航菜单中,点击站点配置 > 网络

  3. 展开LAN接口。

  4. 从LAN接口中,点击新建来为IP范围添加新网络段。

    新建接口IP范围面板打开。

  5. 输入IP范围的名称

  6. 类型中,选择路由

  7. 输入该段的IP范围

  8. 点击应用

更改本地IP地址

在vSocket HA配置中,原生范围的本地IP地址与vSocket管理IP相同。 此IP地址用于HA保持活动消息,也用于访问Socket WebUI。 要更改本地范围的本地IP地址,请在相关vSocket的高可用性部分中更改管理IP地址。

例如,要更改主要vSocket原生范围的本地IP,请在高可用性部分中更改主要vSocket的管理IP地址。

要更改本地IP地址:

  1. 从导航菜单中,点击网络 > 站点,并选择AWS站点。

  2. 从导航菜单中,选择站点配置 > Socket

  3. 展开高可用性配置部分。

  4. 输入新的主要管理IP次要管理IP

  5. 点击保存。 主要或次要原生范围的本地IP已更新为新的IP地址。

更改高可用性配置中vSocket的原生IP范围

如果需要更改主要或次要原生IP范围,请在网络部分中更改IP范围,然后在高可用性部分中更新管理IP地址。

要更改段的IP范围:

  1. 从导航菜单中,点击网络 > 站点,并选择AWS站点。

  2. 从导航菜单中,点击站点配置 > 网络

  3. 为主要或次要原生IP范围配置新的IP范围:

    1. 类型列,点击网络范围。

      编辑IP范围面板打开。

    2. 为IP范围配置子网

    3. 点击应用然后点击保存

  4. 从导航菜单中,选择站点配置 > Socket

  5. 展开高可用性配置部分。

  6. 为主要或次要vSocket输入新的管理IP地址。

    管理IP必须在您在步骤2中配置的子网内。 您不能为管理IP使用AWS保留的IP地址。

  7. 点击保存

管理AWS高可用性

本节解释如何管理AWS站点的HA:

  • 显示每个vSocket的HA状态

  • 更改站点的路由表ID

  • 禁用站点的HA并移除次要vSocket

显示高可用性信息和状态

高可用性部分显示主要和次要vSocket的HA状态。

项目

描述

高可用性状态

站点的HA状态(就绪或未就绪),仅在每个状态HA状态指示器确定时才显示就绪

WAN连接性(状态指示器)

状态确定表示两个vSockets都具有到Cato Cloud的WAN连接

保持活动(状态指示器)

状态确定表示一个vSocket是主控,另一个是备用(如果两个vSocket都处于主控状态,则存在HA分割大脑问题)

Socket版本(状态指示器)

状态确定表示两个vSockets都在运行相同的Socket版本

主控

显示主要或次要vSocket是否为活跃vSocket

到Cato的连接 - 主要

主要vSocket的连接状态

连接到Cato - 次要

次要vSocket的连接状态

更改路由表ID

您可以在Cato管理应用程序中更改AWS HA站点的路由表ID,以匹配AWS中的设置。

要更改站点的路由表ID:

  1. 从导航菜单中,点击网络 > 站点,并选择AWS站点。

  2. 从导航菜单中,选择站点配置 > Sockets

  3. 展开高可用性配置部分。

  4. 输入新的路由表ID

  5. 点击保存

禁用AWS站点的高可用性

您可以从AWS站点移除次要vSocket并禁用该站点的HA。 从Cato管理应用程序中移除次要vSocket后,部署的vSocket不能再连接到Cato云。 该站点的设置恢复为单个vSocket的配置:

  • 高可用性部分被禁用,不再在页面中显示

  • 网络部分的布局更改为单个vSocket的配置

  • 对于路由范围,下一个跳转被设置为原生范围的第一个IP地址

注意

注意:您无法撤销取消分配套接字操作。 次要vSocket的序列号不再有效。

如果您想再次添加次要vSocket,您必须在EC2实例上安装一个新的vSocket,新的序列号。

要禁用AWS站点的HA:

  1. 从导航菜单中,点击网络 > 站点,并选择AWS站点。

  2. 从导航菜单中,选择站点配置 > Sockets

  3. 次要vSocket的操作菜单中,点击取消分配

  4. 在警告窗口中,点击确定。 站点的HA已禁用,并且次要vSocket已从中移除。

分析高可用性事件

事件屏幕显示您账户的所有HA连接性事件。

你可以在这里了解有关事件屏幕的更多信息。 您可以使用SaaS安全API数据保护预设来过滤事件。

解释高可用性事件字段

事件字段和事件对于Socket HA和vSocket HA都是相同的。 这些是HA事件:

字段

描述

Socket角色

显示事件是由主要或者次要vSocket生成的

事件子类型 - Socket故障转移

站点的故障转移过程被启动

有关作为故障转移过程的一部分生成的事件的详细信息,请参阅Socket HA故障转移事件

这篇文章有帮助吗?

6 人中有 6 人觉得有帮助

0 条评论