GCP 上 NetScaler VPX 实例的虚拟 IP 地址扩展支持
NetScaler 设备位于客户端和服务器之间,因此客户端请求和服务器响应都通过它。在典型安装中,设备上配置的虚拟服务器提供客户端用于访问设备背后应用程序的连接点。部署所需的公共虚拟 IP (VIP) 地址数量因情况而异。
GCP 架构限制实例上的每个接口连接到不同的 VPC。GCP 上的 VPC 是子网的集合,每个子网可以跨区域的多个可用区。此外,GCP 还有以下限制:
- 公共 IP 地址数量与 NIC 数量之间存在 1:1 映射。每个 NIC 只能分配一个公共 IP 地址。
- 更高容量的实例类型最多只能连接 8 个 NIC。
例如,n1-standard-2 实例只能有 2 个 NIC,并且可以添加的公共 VIP 数量限制为 2。有关更多信息,请参阅 VPC 资源配额。
为了在 NetScaler VPX 实例上实现更高规模的公共虚拟 IP 地址,您可以将 VIP 地址配置为实例元数据的一部分。NetScaler VPX 实例内部使用 GCP 提供的转发规则来实现 VIP 扩展。NetScaler VPX 实例还为配置的 VIP 提供高可用性。 将 VIP 地址配置为元数据的一部分后,您可以使用用于创建转发规则的相同 IP 配置 LB 虚拟服务器。因此,我们可以使用转发规则来缓解在 GCP 上的 NetScaler VPX 实例中使用公共 VIP 地址时遇到的规模限制。
有关转发规则的更多信息,请参阅转发规则概览。
有关 HA 的更多信息,请参阅 (/zh-cn/citrix-adc/13-1/system/high-availability-introduction.html)。
注意事项
- Google 对每个虚拟 IP 转发规则收取额外费用。实际费用取决于创建的条目数量。相关费用可在 Google 定价文档中找到。
- 转发规则仅适用于公共 VIP。当部署需要私有 IP 地址作为 VIP 时,可以使用别名 IP 地址。
- 您只能为需要 LB 虚拟服务器的协议创建转发规则。VIP 可以即时创建、更新或删除。您还可以添加具有相同 VIP 地址但使用不同协议的新负载平衡虚拟服务器。
开始之前
- NetScaler VPX 实例必须部署到 GCP 平台之上。
-
外部 IP 地址必须预留。有关更多信息,请参阅 预留静态外部 IP 地址。
-
确保您的 GCP 服务帐户具有以下 IAM 权限:
REQUIRED_IAM_PERMS = [ "compute.addresses.list", "compute.addresses.get", "compute.addresses.use", "compute.forwardingRules.create", "compute.forwardingRules.delete", "compute.forwardingRules.get", "compute.forwardingRules.list", "compute.instances.use", "compute.subnetworks.use", "compute.targetInstances.create" "compute.targetInstances.get" "compute.targetInstances.use", ] <!--NeedCopy--> -
为您的 GCP 项目启用 云资源管理器接口。
-
如果您在独立 VPX 实例上使用 VIP 扩展,请确保您的 GCP 服务帐户具有以下 IAM 权限:
REQUIRED_IAM_PERMS = [ "compute.addresses.list", "compute.addresses.get", "compute.addresses.use", "compute.forwardingRules.create", "compute.forwardingRules.delete", "compute.forwardingRules.get", "compute.forwardingRules.list", "compute.instances.use", "compute.subnetworks.use", "compute.targetInstances.create", "compute.targetInstances.list", "compute.targetInstances.use", ] <!--NeedCopy--> -
如果您在高可用性模式下使用 VIP 扩展,请确保您的 GCP 服务帐户具有以下 IAM 权限:
REQUIRED_IAM_PERMS = [ "compute.addresses.get", "compute.addresses.list", "compute.addresses.use", "compute.forwardingRules.create", "compute.forwardingRules.delete", "compute.forwardingRules.get", "compute.forwardingRules.list", "compute.forwardingRules.setTarget", "compute.instances.use", "compute.instances.get", "compute.instances.list", "compute.instances.setMetadata", "compute.subnetworks.use", "compute.targetInstances.create", "compute.targetInstances.list", "compute.targetInstances.use", "compute.zones.list", ] <!--NeedCopy-->注意:
在高可用性模式下,如果您的服务帐户没有所有者或编辑者角色,则必须将 Service Account User role 添加到您的服务帐户。
为 NetScaler VPX 实例上的 VIP 扩展配置外部 IP 地址
- 在 Google Cloud 控制台中,导航到 虚拟机实例页面。
- 创建新的 VM 实例或使用现有实例。
- 单击实例名称。在 VM 实例详细信息页面上,单击编辑。
- 通过输入以下内容更新自定义元数据:
- 键 = 虚拟IP地址
-
Value = 以以下 JSON 格式提供值:
{ “外部预留 IP 的名称”: [list of protocols], }
GCP 支持以下协议:
- AH
- ESP
- 互联网控制消息协议 (ICMP)
- SCT
- TCP
- UDP

有关更多信息,请参阅自定义元数据。
自定义元数据示例:
{ “external-ip1-name”:[“TCP”, “UDP”], “external-ip2-name”:[“ICMP”, “AH”] }
在此示例中,NetScaler VPX 实例会为每个 IP 和协议对内部创建一个转发规则。元数据条目映射到转发规则。此示例可帮助您了解为元数据条目创建了多少个转发规则。
创建了四个转发规则,如下所示:
- external-ip1-name and TCP
- 外部IP1名称 和 UDP
- 外部IP2名称 和 ICMP
- 外部 IP2 名称 和 AH
注意:
在 HA 模式下,您必须仅在主实例上添加自定义元数据。在故障转移时,自定义元数据将同步到新的主实例。
- 单击 保存。
在 NetScaler VPX 实例上设置具有外部 IP 地址的负载平衡虚拟服务器
步骤 1。添加负载平衡虚拟服务器。
-
导航到 配置 > 流量管理 > 负载平衡 > 虚拟服务器 > 添加。

-
添加所需的值,包括名称、协议、IP 地址类型(IP 地址)、IP 地址(作为 VIP 添加到 ADC 的转发规则的外部 IP 地址)和端口,然后单击 确定。

步骤 2。添加服务或服务组。
- 导航到 配置 > 流量管理 > 负载平衡 > 服务 > 添加。
-
添加所需的值,包括服务名称、IP 地址、协议和端口,然后单击 确定。

步骤 3。将服务或服务组绑定到负载平衡虚拟服务器。
- 导航到 配置 > 流量管理 > 负载均衡 > 虚拟服务器。
- 选择在 步骤 1 中配置的负载平衡虚拟服务器,然后单击 Edit。
-
在 服务和服务组 页面中,单击 无负载均衡虚拟服务器服务绑定。

-
选择在 步骤 3 中配置的服务,然后单击 Bind。

- 请保存配置。