ADC

跨不同 AWS 区域部署具有专用 IP 地址的 VPX 高可用性对

可以在 INC 模式下使用专用 IP 地址在两个不同的子网或两个不同的 AWS 可用性区域中配置两个 NetScaler VPX 实例。此解决方案可以轻松与带 弹性 IP 地址的现有多区域 VPX 高可用性对集成。因此,您可以一起使用这两个解决方案。

有关高可用性的更多信息,请参阅 高可用性。有关 INC 的更多信息,请参阅 在不同子网中配置高可用性节点

注意:

此部署受 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 对

下面是使用专用 IP 地址在两个不同子网或两个不同的 AWS 可用性区域中部署 VPX 对的步骤摘要。

  1. 创建 Amazon 虚拟私有云。
  2. 在两个不同的可用性区域中部署两个 VPX 实例。
  3. 配置高可用性
    1. 在两个实例中在 INC 模式下设置高可用性。
    2. 在 VPC 中添加指向客户端接口的相应路由表。
    3. 在主实例中添加虚拟服务器。

对于步骤 1、2 和 3b,请使用 AWS 控制台。对于步骤 3a 和 3c,请使用 NetScaler VPX GUI 或 CLI。

步骤 1. 创建 Amazon 虚拟私有云 (VPC)。

步骤 2. 在具有相同数量的 ENI(网络接口)的两个不同的可用性区域中部署两个 VPX 实例。

有关如何在 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 中,执行以下步骤以添加路由:

  1. 打开 Amazon EC2 控制台
  2. 在导航窗格中,选择 Route Tables(路由表),然后选择路由表。
  3. 选择 Actions(操作),然后单击 Edit routes(编辑路线)。
  4. 要添加路线,请选择 Add route(添加路线)。对于 Destination(目标),输入目标 CIDR 块、单个 IP 地址或前缀列表的 ID。对于网关 ID,请选择主节点的客户端接口的 ENI。

路由表-编辑路由

注意:

必须在主实例的客户端 ENI 上禁用 Source/Dest Check(源/目标检查)。

要使用控制台禁用网络接口的源/目标检查,请执行以下步骤:

  1. 打开 Amazon EC2 控制台
  2. 在导航窗格中,选择 Network Interfaces(网络接口)。
  3. 选择主客户端接口的网络接口,然后选择 Actions(操作),然后单击“Change Source/Dest”(更改源/目标)。检查
  4. 在对话框中,选择 Disabled(已禁用),然后单击 Save(保存)。

更改源-目标检查

步骤 5. 配置高可用性。您可以使用 NetScaler VPX CLI 或 GUI 来设置高可用性。

使用 CLI 配置高可用性

  1. 在两个实例中在 INC 模式下设置高可用性。

    在主节点上:

    add ha node 1 <sec_ip> -inc ENABLED
    <!--NeedCopy-->
    

    在辅助节点上:

    add ha node 1 <prim_ip> -inc ENABLED
    <!--NeedCopy-->
    

    <sec_ip> 是指辅助节点的管理 NIC 的专用 IP 地址。

    <prim_ip> 是指主节点的管理 NIC 的专用 IP 地址。

  2. 在主实例上添加一个虚拟服务器。必须从选定的子网进行添加,例如 10.10.10.0/24。

    键入以下命令:

    add \<server\_type\> vserver \<vserver\_name\> \<protocol\> \<primary\_vip\> \<port\>
    <!--NeedCopy-->
    

使用 GUI 配置高可用性

  1. 在两个实例上在 INC 模式下设置高可用性。

  2. 使用用户名 nsroot 和实例 ID 作为密码登录主节点。

  3. 导航到 Configuration(配置)> System(系统)> High Availability(高可用性),然后单击 Add(添加)。

  4. 远程节点 IP 地址 字段中,添加辅助节点的管理 NIC 的专用 IP 地址。

  5. 选择在自助节点上打开 NIC(Independent Network Configuration, 独立网络配置)模式。

  6. Remote System Login Credential(远程系统登录凭据)下,添加辅助节点的用户名和密码,然后单击 Create(创建)。

  7. 在辅助节点中重复这些步骤。

  8. 在主实例中添加虚拟服务器

    导航到 Configuration(配置)> Traffic Management(流量管理)> Virtual Servers(虚拟服务器)> Add(添加)。

    添加虚拟服务器

使用 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 角色

  1. 登录 AWS Web 控制台。
  2. IAM 选项卡中,导航到 角色 ,然后选择 创建角色
  3. 选择 另一个 AWS 帐户

    共享 vpc 创建角色

  4. 输入要授予管理员访问权限的参与者帐户的 12 位帐户 ID 号。

使用 NetScaler CLI 设置跨帐户 IAM 角色

以下命令使 NetScaler VPX 实例能够扮演 VPC 所有者帐户中存在的跨帐户 IAM 角色。

set cloud awsParam -roleARN <string>
<!--NeedCopy-->

使用 NetScaler GUI 设置跨帐户 IAM 角色

  1. 登录 NetScaler 设备并导航到 配置 > AWS > 更改云参数

    更改云参数

  2. 配置 AWS 云参数 页面中,输入 roLearn 字段的值。

    配置 AWS 云参数

场景

在这种情况下,将创建一个 VPC。在该 VPC 中,在两个可用性区域中创建了两个 VPX 实例。每个实例都有三个子网 - 一个用于管理,一个用于客户端,一个用于后端服务器。

下图说明了 AWS 上 INC 模式下的 NetScaler VPX 高可用性设置。不属于 VPC 的自定义子网 10.10.10.10 用作 VIP。因此,10.10.10.10 子网可以跨可用性区域使用。

在故障转移之前,在 INC 模式下设置高可用性

故障转移后,在 INC 模式下设置高可用性

对于这种情况,请使用 CLI 配置高可用性。

  1. 在两个实例上以 INC 模式设置高可用性。

    在主节点和辅助节点上键入以下命令。

    在主节点上:

    add ha node 1 192.168.4.10 -inc enabled
    <!--NeedCopy-->
    

    此处,192.168.4.10 是指辅助节点的管理 NIC 的专用 IP 地址。

    在辅助节点上:

    add ha node 1 192.168.1.10 -inc enabled
    <!--NeedCopy-->
    

    此处,192.168.1.10 是指主节点的管理 NIC 的专用 IP 地址。

  2. 在主实例上添加一个虚拟服务器。

    键入以下命令:

    add lbvserver vserver1 http 10.10.10.10 80
    <!--NeedCopy-->
    
  3. 保存配置。

  4. 强制故障转移后:

    • 辅助实例将成为新的主实例。
    • 指向主 ENI 的 VPC 路由迁移到辅助客户端 ENI。
    • 客户端流量将恢复到新的主实例。

适用于 HA 专用 IP 解决方案的 AWS Transit Gateway

您需要使用 AWS Transit Gateway 才能使专用 VIP 子网在内部网络内、跨 AWS VPC、区域和本地网络进行路由。VPC 必须连接到 AWS Transit Gateway。AWS Transit Gateway 路由表中的 VIP 子网或 IP 池的静态路由将创建并指向 VPC。

AWS Transit Gateway

要配置 AWS Transit Gateway,请执行以下步骤:

  1. 打开 Amazon VPC 控制台
  2. 在导航窗格上,选择 Transit Gateway 路由表
  3. 选择 由选项卡,然后单击 创建静态路由。

    AWS Transit Gateway 路由表

  4. 创建静态路由,其中 CIDR 指向您的私有 VIPS 子网,连接指向具有 NetScaler VPX 的 VPC。

    创建静态路由

  5. 单击 创建静态路由,然后选择 关闭

故障排除

如果您在跨多区域高可用性配置高可用性专用 IP 解决方案时遇到任何问题,请检查以下要点进行故障排除:

  • 主节点和辅助节点都具有相同的 IAM 权限集。
  • 在主节点和辅助节点上均启用 INC 模式。
  • 主节点和辅助节点的接口数量相同。
  • 创建实例时,请根据设备索引号在主节点和辅助节点上按照相同的顺序连接接口。假设在主节点上,首先连接客户端接口,然后连接服务器接口。在辅助节点上也遵循相同的顺序。如果有任何不匹配,请分离接口,然后按正确的顺序重新连接接口。
  • 您可以按照以下导航路径验证接口顺序: AWS 控制台 > 网络和安全 > ENI > 设备索引号。 默认情况下,为这些接口分配了以下设备索引号: - 管理接口-0 - 客户端接口-1 - 服务器接口-2
  • 如果主 ENI 上的设备索引号序列为:0、1、2。辅助 ENI 还必须遵循相同的设备索引号序列:0、1、2。

    如果设备索引号序列不匹配,则所有不匹配的路由都将传输到索引 0(管理接口),以避免任何路由丢失。但是,您仍然必须分离接口,然后按照正确的顺序重新连接它们,以避免路由移动到管理接口,因为这可能会导致流量拥塞。

  • 如果流量不流动,请确保“Source/dest. Check”首次在主节点的客户端界面上被禁用。
  • 确保 cloudhadaemon 命令 (ps -aux | grep cloudha) 正在命令行管理程序中运行。
  • 确保 NetScaler 固件版本为 13.0 Build 70.x 或更高版本。
  • 有关故障转移过程的问题,请查看以下位置的日志文件:/var/log/cloud-ha-daemon.log
跨不同 AWS 区域部署具有专用 IP 地址的 VPX 高可用性对