本文解释了如何在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的流量在局域网接口之间流通。
注意:
Alt. AWS HA部署不支持WAN链接。 您必须移除任何现有的备用。 在实施HA解决方案之前的WAN链接。
AWS vSocket HA不支持BGP (仅支持单一的AWS vSockets)。
如果将vSocket降级到早于版本9.1的版本,则该站点的HA将被禁用。 次要vSocket将从站点中移除。
我们建议在将vSocket降级到不支持的早期版本之前,移除站点的HA设置。
AWS vSocket故障转移工作流
当主要活动vSocket在AWS站点故障转移到次要待机vSocket时,这是故障转移工作流。
主要(活动)vSocket关闭,LAN ENIs的HA链接状态更改为下线。
次要(待机)vSocket发送一个声明,它是新的活动(主控)vSocket。
次要vSocket向AWS API网关发出API调用以修改LAN路由表,并将次要vSocket LAN ENI指定为0.0.0.0/0路由的下一跳。
注意: 在故障转移期间,该MGMT接口必须启用并活动才能进行API调用以更改路由表。
路由范围(站点 > Networks)的网关IP(下一跳)将自动更新为次要Socket本地范围的网关IP地址。
次要vSocket即为活动vSocket并为站点传递流量。
当主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策略:
在查找服务中,搜索IAM,从AWS管理控制台进入。

身份和访问管理(IAM)仪表板已打开。
从导航菜单中,选择访问管理>策略。
点击创建策略。
在创建策略窗口中,点击JSON标签。
粘贴JSON文件的内容以配置IAM角色的权限。

点击审查策略。
输入策略的名称。
点击创建策略。 该策略已创建并添加到IAM策略中。
创建一个新的IAM角色
创建一个IAM角色,将其附加到vSocket HA的EC2实例。
要创建新的IAM角色:
从导航菜单中,选择访问管理>角色。
点击创建角色。
在创建角色>选择受信实体类型窗口中,选择AWS服务并点击EC2。

点击下一步:权限。 附加权限策略窗口已打开。
在搜索栏中,输入您在上一节中创建的IAM策略的名称。

点击下一步:标签。 添加标签窗口已打开。
(可选)向IAM角色添加标签。 点击下一步:审查。 审查窗口已打开。
输入IAM vSocket HA角色的角色名称。
点击创建角色。 IAM vSocket HA角色已创建。
定位路由表ID
定位并复制VPC的私有路由表ID。 在Cato管理应用程序中,添加辅助vSocket到AWS HA站点时需要此ID。 vSockets会发出API调用以修改此路由表作为故障转移过程的一部分。
定位路由表ID:
从虚拟私有云导航菜单中,选择路由表。

选择用于LAN片段的路由表,并复制路由表ID。
在AWS中部署vSocket高可用性
在EC2实例上部署vSockets作为站点的主要和次要vSockets。
对于新站点,在Cato管理应用程序中创建一个新站点并部署主vSocket。 (对于现有站点,跳过此步骤。)
将IAM角色附加到主vSocket的EC2实例。
在Cato管理应用程序中将次要vSocket添加到站点。
将辅助vSocket部署到AWS VPC。
将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:
向Cato管理应用程序中添加一个新的AWS站点。
在EC2实例上安装主vSocket。
有关在AWS中安装vSocket的更多信息,请参阅从AWS Marketplace部署vSocket站点。
将您在上面创建的IAM角色附加到vSocket。
上面的截图显示了在安装并升级主vSocket到版本9.1或更高后AWS站点的情况。
注意:
对于现有的AWS站点,仅在您将vSocket升级到9.1或更高版本后,才会显示添加次要套接字按钮。
将 IAM 角色附加到 vSocket
将您在以上创建的 IAM 角色附加到 vSocket EC2 实例。 IAM 角色授予 vSocket 权限以进行 API 调用以修改路由表以实现 HA 功能。
要将 IAM 角色附加到实例:
在 AWS 的 实例 窗口中,选择 vSocket 实例。
从 操作 下拉菜单中,选择 安全性 > 修改 IAM 角色。
在 修改 IAM 角色 窗口中,选择 IAM 角色。

应用程序在 集成的应用程序 表中显示,状态为 已连接。 IAM 角色已附加到 vSocket 实例。
向 AWS 站点添加次要 vSocket
在 Cato 管理应用程序检测到主要 vSocket 已连接到 Cato 云后,添加次要套接字 选项会显示在 网络 > 站点 > 站点配置 > 套接字 页面上。
当您将次要vSocket添加到站点时,会弹出一个窗口,您可以在其中输入次要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 站点:
从导航菜单中单击网络 > 站点,然后选择AWS站点。
从导航菜单中选择站点配置 > Socket。
单击 添加次要套接字 。 添加次要vSocket(高可用性)窗口打开。
将设置配置为与次要vSocket EC2实例的局域网子网完全相同:
输入局域网接口IP 。 该值用作本地 IP。
输入带有 CIDR 的局域网ENI子网。 该值用作次要套接字本地范围。
输入用于局域网范围的私有路由表路由表ID。
点击确定。 主要和次要vSocket的设置已配置并复制到站点配置 > Socket和Socket配置部分。
复制并保存vSocket的序列号以用于vSocket配置脚本:
从站点列表中选择新的 vSocket 站点。
从导航菜单中点击站点配置 > 套接字。 复制序列号(S/N)并保存。
在 EC2 实例上安装次要 vSocket 时使用此序列号。
对套接字配置窗口的更改
在您将次要 vSocket 添加到站点后,LAN1 链接的 目标 自动设置为 局域网 & HA。
在 AWS VPC 中部署次要 vSocket
在 AWS VPC 中使用您之前创建的 IAM 角色创建并部署次要 vSocket。
创建网络接口
将上面创建的IAM角色附加到次要vSocket(见上面将IAM角色附加到vSocket)
输入在 Cato 管理应用程序中生成的次要 vSocket 站点的序列号
为 vSocket 配置 EC2 实例
创建MGMT、WAN和LAN接口
为vSocket的EC2实例创建MGMT、WAN和LAN接口。 使用 EC2 仪表板创建接口。
将局域网接口的自定义 IP地址设置为CMA中输入的局域网接口IP相同的IP地址。
您需要在 LAN 接口上禁用 AWS 源/目标检查,以允许 EC2 实例执行流量转发。
注意:
为确保vSocket的正确行为,请定义自定义DHCP选项,并将受信任的服务器作为主要DNS服务器

创建网络接口 (ENI):
从 EC2 仪表板中,在导航菜单中选择 网络 & 安全性 > 网络接口。
点击 创建网络接口。
在 创建网络接口 窗口中,选择 LAN 子网。
(MGMT/WAN接口可选) 在私有IPv4地址中,点击自定义并输入CMA中输入的局域网接口IP。
在 安全组 中,选择接口的合适的安全组。
点击 创建网络接口。 AWS 创建接口。
对MGMT和WAN接口重复以上步骤。
对于局域网接口,禁用AWS源/目的地跟踪:
在 网络接口窗口中,右键点击 LAN 接口并选择 更改源/目的地。 检查。

在更改源/目标检查窗口中,取消选中启用。
应用程序在 集成的应用程序 表中显示,状态为 已连接。
将弹性IP地址与MGMT和WAN接口关联
创建并将弹性IP地址与次要vSocket的WAN和MGMT接口关联。 您可以使用从Amazon的IPv4地址池分配的公共IP地址。
要分配弹性IP地址:
从EC2仪表板中的导航菜单中选择Network & Security > Elastic IPs。
单击分配弹性IP地址。
对于公共IPv4地址池,选择Amazon的IPv4地址池。
单击分配。 弹性IP已分配。
选择弹性IP,然后选择操作 > 关联弹性IP地址。

在关联弹性IP地址窗口中,在资源类型中选择网络接口。
在网络接口中,选择 WAN 接口。
点击关联。 弹性IP已与接口关联。
对MGMT接口重复以上步骤。
为 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:
从 AWS Marketplace 中,搜索 Cato Networks Virtual Socket。
点击 继续订阅。
点击 继续配置。
在 履行选项 下,选择 Amazon Machine Image。
在区域下,确保选择您的 vSocket 所在的区域。

点击 继续启动。
在 启动此软件 页面:
在 选择操作 下,选择 通过 EC2 启动。
在 EC2 实例类型 下,选择 EC2 实例。
在 VPC 设置 下,选择您要连接的 VPC。
在 子网设置 下,选择 MGMT 网络。
在 安全组设置 下,选择为该实例创建的安全组。
展开 高级网络配置,在 网络接口 下选择您创建的 MGMT 接口。
注意: 如果不选择现有接口,将创建新的接口。

在 密钥对设置 下,选择您创建的密钥对。
在 高级详细信息部分中,在 用户数据 - 可选项 下,输入从您在 Cato 管理应用程序中创建的 vSocket 站点复制的序列号。
点击 启动。
将接口附加到 vSocket 实例
在 vSocket 实例启动后,MGMT 接口会附加到它。 停止实例,然后将剩余的 WAN 和 LAN 接口连接到该实例。
注意:
确保EC2实例停止,然后先连接WAN接口,再连接LAN接口。
将接口连接到 vSocket 实例:
从 EC2 仪表板,在导航菜单中选择 实例 > 实例。
右键点击 vSocket 实例并选择 停止实例。
在确认窗口中,点击 停止。 刷新窗口并确认实例状态为已停止。
在导航菜单中选择网络 & 安全性 > 网络接口。
将WAN接口连接到实例:
右键单击WAN接口,然后选择附加接口。
在附加网络接口窗口中,在实例中选择vSocket实例。
单击附加。
为LAN接口重复前面的三个步骤。
确认AWS站点的高可用性状态
本节描述如何测试和确认vSockets是否已正确配置以用于HA功能。
在卡托管理应用显示高可用性状态
Cato管理应用程序中的高可用性部分显示了vSockets的HA状态。 部署次要 vSocket 后,它会自动连接到站点。
有关更多信息,请参见下面显示高可用性信息和状态。
要确认站点的高可用性状态:
从导航菜单中单击网络 > 站点,然后选择AWS站点。
从导航菜单中,点击站点监控 > 网络分析
在高可用性状态中,验证状态为就绪,并且主控是主要vSocket。
从Socket WebUI测试高可用性
您可以使用 Socket WebUI 中的网络工具来测试 vSocket 的 HA 功能。 vSocket会对AWS API网关执行API调用,以验证这些设置的HA配置:
vSocket的IAM权限配置正确
路由表ID配置正确
为完成测试,请确保vSocket能够解析相关区域的AWS RestAPI域。 有关详细信息,请参阅AWS文档。
如果测试不成功,我们建议您比较AWS和Cato管理应用程序中路由表ID的设置。
要测试AWS vSocket的HA API调用:
在导航菜单中,选择站点配置 > 套接字。
从主要 vSocket 的 操作 下拉菜单中,选择 Socket WebUI。
Socket WebUI 在新标签页中打开。
点击 工具 标签页。
在 网络工具 部分,点击 API 测试工具 标签页。
点击 运行测试。 窗口显示 HA API 测试是否成功或失败。
为次要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子网
次要原生范围的本地IP是LAN 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 HA站点添加路由范围:
从导航菜单中单击网络 > 站点,然后选择AWS站点。
从导航菜单,点击 站点配置 > 网络。
展开局域网接口。
从局域网接口,点击新建以添加新的网络段用于IP范围。
新接口IP范围面板打开。
输入IP范围的名称。
从类型中,选择路由。
输入该段的IP范围。
点击 应用。
更改本地IP地址
在vSocket HA配置中,原生范围的本地IP地址与vSocket管理IP相同。 此IP地址用于HA保持活动消息,也用于访问Socket WebUI。 要更改本地范围的本地IP地址,请在相关vSocket的高可用性部分中更改管理IP地址。
例如,要更改主要vSocket原生范围的本地IP,请在高可用性部分中更改主要vSocket的管理IP地址。
要更改本地IP地址:
从导航菜单中单击网络 > 站点,然后选择AWS站点。
从导航菜单中选择 站点配置 > Socket。
展开 高可用性配置 部分。
输入新的主要管理IP或次要管理IP。
单击 保存。 主要或次要原生范围的本地IP已更新为新的IP地址。
更改高可用性配置中vSocket的原生IP范围
如果需要更改主要或次要原生IP范围,请在网络部分中更改IP范围,然后在高可用性部分中更新管理IP地址。
要更改段的IP范围:
从导航菜单中,点击网络 > 站点,并选择AWS站点。
从导航菜单,点击 站点配置 > 网络。
为主要或次要原生IP范围配置新的IP范围:
在类型列中,点击网络范围。
编辑IP范围面板打开。
为IP范围配置子网。
点击应用然后点击保存。
在导航菜单中,选择站点配置 > 套接字。
展开 高可用性配置 部分。
为主要或次要vSocket输入新的管理IP地址。
管理IP必须在您在步骤2中配置的子网内。 您不能为管理IP使用AWS保留的IP地址。
应用程序在 集成的应用程序 表中显示,状态为 已连接。
管理AWS高可用性
本节解释如何管理AWS站点的HA:
显示每个 vSocket 的 HA 状态
更改站点的路由表ID
禁用站点的HA并移除辅助vSocket
显示高可用性信息和状态
高可用性部分显示主要和次要vSocket的HA状态。
项目 | 描述 |
|---|---|
高可用性状态 | 站点的 HA 状态(准备就绪或未准备就绪),每个 HA 状态指示器均为 OK 时,仅显示准备就绪状态。 |
WAN连接性(状态指示器) | 状态确定表示两个vSockets都具有到Cato Cloud的WAN连接 |
保持活动(状态指示器) | 状态确定表示一个vSocket是主控,另一个是备用(如果两个vSocket都处于主控状态,则存在HA分割大脑问题) |
Socket版本(状态指示器) | 状态确定表示两个vSockets都在运行相同的Socket版本 |
主控 | 显示主要或次要vSocket是否为活跃vSocket |
到Cato的连接 - 主要 | 主要vSocket的连接状态 |
连接到Cato - 次要 | 次要vSocket的连接状态 |
更改路由表ID
您可以在Cato管理应用程序中更改AWS HA站点的路由表ID,以匹配AWS中的设置。
要更改站点的路由表ID:
从导航菜单中,点击网络 > 站点,并选择AWS站点。
从导航菜单中选择站点配置 > Socket。
展开 高可用性配置 部分。
输入新的路由表ID。
应用程序在 集成的应用程序 表中显示,状态为 已连接。
禁用AWS站点的高可用性
您可以从AWS站点移除次要vSocket并禁用该站点的HA。 从Cato管理应用程序移除辅助vSocket后,已部署的vSocket将无法再连接到Cato Cloud。 站点的设置恢复为单个vSocket的配置:
高可用性部分被禁用,不再在页面中显示
网络部分的布局更改为单个vSocket的配置
对于路由范围,下一个跳转被设置为原生范围的第一个IP地址
注意:
您无法撤销取消分配Socket操作。 辅助vSocket的序列号不再有效。
如果您想再次添加次要vSocket,您必须在EC2实例上安装一个新的vSocket,新的序列号。
要禁用AWS站点的HA:
从导航菜单中,点击网络 > 站点,并选择AWS站点。
从导航菜单中选择 站点配置 > Socket。
从次要 vSocket 的操作菜单中,点击取消分配。
在警告窗口中,点击确定。 该站点的 HA 已禁用,并且次要 vSocket 已从中移除。
分析高可用性事件
事件屏幕显示您账户的所有HA连接性事件。
您可以在此处了解更多关于使用事件屏幕的信息。 您可以使用SaaS 安全 API 数据保护预设来过滤事件。
解释高可用性事件字段
Socket HA和vSocket HA的事件和字段是相同的。 这些是HA事件:
字段 | 描述 |
|---|---|
Socket 角色 | 显示事件是由主要 vSocket 还是次要 vSocket 生成的 |
事件子类型 - Socket故障转移 | 站点的切换进程已启动 |
有关在故障转移过程中生成的事件的更多信息,请参阅Socket HA故障转移事件。