部署使用私有 IP 地址的 VPX 高可用性对,跨不同的 AWS 区域
您可以在 INC 模式下,在两个不同的子网或两个不同的 AWS 可用区中配置两个使用私有 IP 地址的 NetScaler VPX 实例。此解决方案可以轻松地与现有的多区域 (/zh-cn/vpx/current-release/deploy-aws/vpx-ha-eip-different-aws-zones.html) 集成。因此,您可以同时使用这两种解决方案。
有关高可用性的更多信息,请参阅 (/zh-cn/citrix-adc/current-release/system/high-availability-introduction.html)。有关 INC 的更多信息,请参阅 (/zh-cn/citrix-adc/current-release/system/high-availability-introduction/configuring-high-availability-nodes-different-subnets.html)。
注意:
此部署支持 NetScaler 13.0 版本 内部版本 67.39 及更高版本。此部署与 AWS Transit Gateway 兼容。
使用 AWS 非共享 VPC 的私有 IP 地址高可用性对
先决条件
确保与您的 AWS 账户关联的 IAM 角色具有以下 IAM 权限:
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"ec2:DescribeInstances",
"ec2:DescribeAddresses",
"ec2:AssociateAddress",
"ec2:DisassociateAddress",
"ec2:DescribeRouteTables",
"ec2:DeleteRoute",
"ec2:CreateRoute",
"ec2:ModifyNetworkInterfaceAttribute",
"iam:SimulatePrincipalPolicy",
"iam:GetRole"
],
"Resource": "*",
"Effect": "Allow"
}
]
}
<!--NeedCopy-->
使用 AWS 非共享 VPC 部署使用私有 IP 地址的 VPX HA 对
以下是在两个不同的子网或两个不同的 AWS 可用区中部署使用私有 IP 地址的 VPX 对的步骤摘要。
- 创建 Amazon 虚拟私有云。
- 在两个不同的可用区中部署两个 VPX 实例。
- 配置高可用性功能
- 在这两个实例中以 INC 模式设置高可用性。
- 在 VPC 中添加指向客户端接口的相应路由表。
- 在主实例中添加一个虚拟服务器。
对于步骤 1、2 和 3b,请使用 AWS 控制台。对于步骤 3a 和 3c,请使用 NetScaler VPX GUI 或 CLI。
步骤 1. 创建 Amazon 虚拟私有云 (VPC)。
步骤 2. 在两个不同的可用区中部署两个 VPX 实例,并使用相同数量的 ENI(网络接口)。
有关如何在 AWS 上创建 VPC 和部署 VPX 实例的更多信息,请参阅 在 AWS 上部署 NetScaler VPX 独立实例 和 场景:独立实例
步骤 3. 通过选择与 Amazon VPC 子网不重叠的子网来配置 ADC VIP 地址。如果您的 VPC 是 192.168.0.0/16,则要配置 ADC VIP 地址,您可以从以下 IP 地址范围中选择任何子网:
- 0.0.0.0 - 192.167.0.0
- 192.169.0.0 - 254.255.255.0
在此示例中,选择了 10.10.10.0/24 子网并在该子网中创建了 VIP。您可以选择除 VPC 子网 (192.168.0.0/16) 之外的任何子网。
步骤 4. 从 VPC 路由表添加一个指向主节点客户端接口 (VIP) 的路由。
在 AWS CLI 中,键入以下命令:
aws ec2 create-route --route-table-id rtb-2272532 --destination-cidr-block 10.10.10.0/24 --gateway-id <eni-client-primary>
<!--NeedCopy-->
在 AWS GUI 中,执行以下步骤添加路由:
- 打开 亚马逊 EC2 控制台。
- 在导航窗格中,选择 Route Tables,然后选择路由表。
- 选择 操作,然后单击 编辑路由。
- 要添加路由,请选择“添加路由”。对于“目标”,输入目标 CIDR 块、单个 IP 地址或前缀列表的 ID。对于网关 ID,选择主节点客户端接口的 ENI。

注意:
您必须在主实例的客户端 ENI 上禁用“源/目标检查”。
若要通过控制台禁用网络接口的源/目标检查,请执行以下步骤:
- 打开 亚马逊 EC2 控制台。
- 在导航窗格中,选择“网络接口”。
- 选择主客户端接口的网络接口,然后选择“操作”,然后单击“更改源/目标检查”。
- 在对话框中,选择“已禁用”,然后单击“保存”。

步骤 5. 配置高可用性。您可以使用 NetScaler VPX CLI 或 GUI 设置高可用性。
使用 CLI 配置高可用性
-
在两个实例中以 INC 模式设置高可用性。
在主节点上:
add ha node 1 \<sec\_ip\> -inc ENABLED <!--NeedCopy-->在辅助节点上:
add ha node 1 \<prim\_ip\> -inc ENABLED <!--NeedCopy--><sec_ip> 指的是次节点管理网卡的私有 IP 地址。
<prim_ip> 指的是主节点管理网卡的私有 IP 地址。
-
在主实例上添加一个虚拟服务器。您必须从所选子网中添加它,例如 10.10.10.0/24。
键入以下命令:
add \<server\_type\> vserver \<vserver\_name\> \<protocol\> \<primary\_vip\> \<port\> <!--NeedCopy-->
使用 GUI 配置高可用性
-
在两个实例上以 INC 模式设置高可用性
-
使用用户名
nsroot和实例 ID 作为密码登录到主节点。 -
导航到 配置 > 系统 > 高可用性,然后单击 添加。
-
在 远程节点 IP 地址 字段中,添加次节点管理网卡的私有 IP 地址。
-
在自节点上选择 启用 NIC(独立网络配置) 模式。
-
在 远程系统登录凭据 下,添加次节点的用户名和密码,然后单击 创建。
-
在次节点中重复这些步骤。
-
在主实例中添加虚拟服务器
导航到 配置 > 流量管理 > 虚拟服务器 > 添加。

使用 AWS 共享 VPC 部署具有私有 IP 地址的 VPX HA 对
在 AWS 共享 VPC 模型中,拥有 VPC 的账户(所有者)将一个或多个子网共享给其他账户(参与者)。因此,您将拥有一个 VPC 所有者账户和一个参与者账户。子网共享后,参与者可以在共享给他们的子网中查看、创建、修改和删除其应用程序资源。参与者无法查看、修改或删除属于其他参与者或 VPC 所有者的资源。
有关 AWS 共享 VPC 的信息,请参阅 AWS 文档。
注意:
使用 AWS 共享 VPC 部署具有私有 IP 地址的 VPX HA 对的配置步骤与 使用 AWS 非共享 VPC 部署具有私有 IP 地址的 VPX HA 对 相同,但有以下例外情况:
- 指向客户端接口的 VPC 中的路由表必须从 VPC 所有者账户 添加。
先决条件
-
确保 AWS 参与者账户中与 NetScaler VPX 实例关联的 IAM 角色具有以下 IAM 权限:
"Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "ec2:DisassociateAddress", "iam:GetRole", "iam:SimulatePrincipalPolicy", "ec2:DescribeInstances", "ec2:DescribeAddresses", "ec2:ModifyNetworkInterfaceAttribute", “ec2:AssociateAddress”, "sts:AssumeRole" ], "Resource": "*" } ] } <!--NeedCopy-->注意:
AssumeRole 允许 NetScaler VPX 实例承担由 VPC 所有者账户创建的跨账户 IAM 角色。
-
确保 VPC 所有者账户使用跨账户 IAM 角色向参与者账户提供以下 IAM 权限:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "ec2:CreateRoute", "ec2:DeleteRoute", "ec2:DescribeRouteTables" ], "Resource": "*" } ] } <!--NeedCopy-->
创建跨账户 IAM 角色
- 登录 AWS Web 控制台。
- 在 IAM 选项卡中,导航到 角色,然后选择 创建角色。
-
选择 另一个 AWS 账户。

- 输入您要授予管理员访问权限的参与者账户的 12 位账户 ID 号。
使用 NetScaler 命令行界面设置跨账户 IAM 角色
以下命令使 NetScaler VPX 实例能够承担 VPC 所有者账户中存在的跨账户 IAM 角色。
set cloud awsParam -roleARN <string>
<!--NeedCopy-->
使用 NetScaler 图形用户界面设置跨账户 IAM 角色
-
登录 NetScaler 设备并导航到 配置 > AWS > 更改云参数。

-
在 配置 AWS 云参数 页面中,输入 RoleARN 字段的值。

场景
在此场景中,将创建一个 VPC。在该 VPC 中,在两个可用区中创建了两个 VPX 实例。每个实例有三个子网 - 一个用于管理,一个用于客户端,一个用于后端服务器。
以下图表说明了 AWS 上 INC 模式下的 NetScaler VPX 高可用性设置。自定义子网 10.10.10.10 不属于 VPC,用作 VIP。因此,10.10.10.10 子网可以在不同的可用区中使用。


对于此场景,请使用 CLI 配置高可用性。
-
在两个实例上以 INC 模式设置高可用性。
在主节点和辅助节点上键入以下命令。
在主节点上:
add ha node 1 192.168.4.10 -inc enabled <!--NeedCopy-->此处,192.168.4.10 指辅助节点的管理网卡的私有 IP 地址。
在辅助节点上:
add ha node 1 192.168.1.10 -inc enabled <!--NeedCopy-->此处,192.168.1.10 指主节点的管理网卡的私有 IP 地址。
-
在主实例上添加一个虚拟服务器。
键入以下命令:
add lbvserver vserver1 http 10.10.10.10 80 <!--NeedCopy--> -
将配置保存下来。
-
强制故障转移后:
- 辅助实例将接替成为新的主实例。
- 指向主 ENI 的 VPC 路由迁移到辅助客户端 ENI。
- 客户端流量恢复到新的主实例。
用于高可用性私有 IP 解决方案的 AWS Transit Gateway 配置
您需要 AWS Transit Gateway 以使私有 VIP 子网在内部网络、AWS VPC、区域和本地网络中可路由。VPC 必须连接到 AWS Transit Gateway。在 AWS Transit Gateway 路由表中为 VIP 子网或 IP 池创建静态路由,并指向 VPC。

要配置 AWS 传输网关,请按照以下步骤操作:
- 打开 亚马逊 VPC 控制台。
- 在导航窗格中,选择 传输网关路由表。
-
选择 路由 选项卡,然后单击 创建静态路由。

-
创建一个静态路由,其中 CIDR 指向您的私有 VIPS 子网,并且附件指向具有 NetScaler VPX 的 VPC。

- 单击 创建静态路由,然后选择 关闭。
故障排除
如果在配置跨多区域 HA 的 HA 私有 IP 解决方案时遇到任何问题,请检查以下关键点进行故障排除:
- 主节点和辅助节点都具有相同的 IAM 权限集。
- 主节点和辅助节点都启用了 INC 模式。
- 主节点和辅助节点具有相同数量的接口。
- 创建实例时,请根据设备索引号,在主节点和辅助节点上遵循相同的接口附加顺序。例如,在主节点上,客户端接口首先附加,服务器接口其次附加。在辅助节点上也要遵循相同的顺序。如果存在任何不匹配,请按正确的顺序分离并重新附加接口。
- 您可以通过以下导航路径验证接口序列:AWS 控制台 > 网络与安全 > ENI > 设备索引号。
默认情况下,以下设备索引号分配给这些接口:
- 管理接口 – 0
- 客户端接口 – 1
- 服务器接口 – 2
-
如果主 ENI 上的设备索引号序列为:0、1、2。则辅助 ENI 也必须遵循相同的设备索引号序列:0、1、2。
如果设备索引号序列不匹配,所有不匹配的路由都将转移到索引 0(管理接口),以避免任何路由丢失。但您仍必须分离接口并以正确的顺序重新连接它们,以避免路由移动到管理接口,因为这可能导致流量拥塞。
- 如果流量不通,请确保首次在主节点的客户端接口上禁用“源/目标检查”。
- 确保
cloudhadaemon命令 (ps -aux | grep cloudha) 在 Shell 中运行。 - 确保 NetScaler 固件版本为 13.0 build 70.x 或更高版本。
- 有关故障转移过程的问题,请检查以下位置的日志文件:
/var/log/cloud-ha-daemon.log