高级概念

Citrix ADC 管理分区验证的参考设计

功能概览

Citrix ADC 管理分区在单个 Citrix ADC 实例中启用软件级别的多租户。每个分区都有自己的控制平面和网络平面。

管理分区的主要优势是:

  1. 控制平面 — 隔离的配置和管理
  2. 数据平面 — 关键分区数据和文件在分区边界内受到严格控制
  3. 网络平面 — 使用自己的网络配置隔离流量。同一 Citrix ADC 上的两个分区看不到通过每个分区的相同流量

本文档详细介绍了 Admin Partitions 启用的典型使用案例,以及在客户环境中使用管理分区的指导原则。

管理分区用例

管理分区的企业用例

Citrix ADC 管理员可以将 Citrix ADC 分区为多个 ADC,并将分区分配给不同的应用程序管理员,例如 Microsoft SharePoint 和 Microsoft Lync。每个应用程序管理员/所有者都可以自行更改配置。

IP 重叠: IP 重叠的主要好处是,相同的 IP 范围可以在不同的管理分区中使用,而不会发生任何 IP 冲突。对于后端服务器,您可以使用同一组私有 IP 地址。在 IP 重叠情形中,无法共享 VLAN。

虚拟路由: 路由配置对每个分区都是唯一的,每个分区所有者都可以配置自己的路由协议。

命名空间隔离: 实体名称在不同的分区中是唯一的,因此您可以在不同的管理分区中使用相同的名称。

参考图:

单网卡 — 多个 VLAN

image-admin-patritions-01

IP 重叠

image-admin-partitions-02

管理分区的服务提供商用例

服务提供商可以对 Citrix ADC 进行分区,并根据带宽要求和并发连接数将其分配给各个客户端。

服务提供商可以使用 NITRO API 开发编排工具,以便从各个客户端获取有关其带宽要求和并发连接的输入,创建分区并将其分配给客户端。

以下是帮助服务提供商的一组隔离措施:

文件系统: 每个分区都分配了文件系统的一部分,存储在该分区空间中的文件对其他分区不可见。SSL 证书/密钥存储在该分区中,其他分区所有者看不到,因此每个分区都是安全的。

共享 VLAN: 在具有多租户部署的典型服务提供商中,最终客户可能没有用于传入流量的独立 VLAN。当无法使用专用 VLAN 时,共享 VLAN 功能会共享 VLAN。

VLAN 标记: 单个接口可以在多个管理分区之间共享,并使用标记的 VLAN 隔离。对于未标记的 VLAN, 请使用共享 VLAN。

故障排除和调试: 管理员可以独立查看每个分区的流量统计信息,并通过分区 ID 进行筛选来分隔日志。trace 函数可确保分区的独立性,因为从一个分区触发的跟踪永远不会看到来自另一个分区的数据包。

参考图

image-admin-partitions-03


实现管理分区的指导方针

管理分区支持资源共享,包括带宽、内存和并发连接,并在网络、数据和管理层面提供隔离。

资源分区

ADC 管理员需要以下详细信息来配置管理员分区:

  1. 连接 —(TCP 连接数)
  2. 内存
  3. 带宽要求

连接数和带宽要求取决于应用程序和相应分区处理的流量。ADC 管理员将与应用程序管理员协商,获取分区的连接/带宽。

内存分配指南

分配给默认分区的内存量应至少为可用内存总量的 50%,原因如下:

  1. 在将来为客户提供灵活性,以便在达到限制时增加其他分区的内存。
  2. 所有分区的集成缓存内存取自默认分区。

PE 可以消耗的总内存为 4 GB。因此,总共可以将2 GB分配给除管理员分区之外的所有分区。

分配给 admin 分区的内存有两个用途:

  1. 存储静态对象(配置、SSL 密钥)
  2. 动态对象-根据启用的功能列表和为动态对象分配的内存的连接数会有所不同

ADC 管理员使用应用程序所有者的连接和带宽要求以及以下指南来得出内存估算值。

为配置分配静态内存的指导原则

表 1 列出了常用配置和所需的内存。

表 1

配置的类型 每个数据包引擎分配的内存以 KB 为单位
添加 SNIP 255
添加 IPv4 服务器 0.384
添加服务 5.253
添加带有服务的虚拟服务器 11.157
将 vlan 绑定到分区 0.116
向分区添加路由 0.564
添加 acl 0.5
添加监视器 4.34
添加服务组 4.625
将服务器绑定到服务组 5.817
添加 cs 操作 4.532
添加 cs 策略 2.548
添加 cs 虚拟服务器 11.589
将 cs 策略绑定到 cs 虚拟服务器 7.348

配置在 PE 之间复制,因此上述要求需要乘以 PE 的数量。

动态内存指南

表 2

功能 内存要求
连接(仅当 Citrix ADC 版本为 12.0 及更高版本时适用) 每 1000 个连接有 2.4 MB
持续会话 每 1000 个会话中有 600 KB
GSLB 永久会话 每 1000 个会话 6 MB
SSL 6 MB 用于 SSL 卸载中的 1000 个 SSL 连接/会话,9 MB 用于端到端 SSL 中的 1000 个 SSL 连接/会话
AAA — 取决于用户数量 用户数量 * 2 KB
重写 — 获取重写策略将解析的最大长度 连接数 * 最大长度
响应程序 — 获取响应程序策略将解析的最大长度 连接数 * 最大长度
TCP 缓存 20% 的连接 * 配置的 TCP 缓冲区大小

动态内存 = 根据上表中的每一行计算出的内存总和。

在计算的总内存中添加 10-20% 的缓冲区。

没有提供某些功能(如 AppQoE)的内存要求,因为从分区内存消耗的内存对于这些功能来说可以忽略不计,并且 10-20 % 的缓冲区足以处理它们。

总内存 = 静态内存* PE 的数量 + 动态内存

假设我们得出的结论是,所需的内存为 1 GB,数据包引擎的数量为 4。然后,对于该特定分区,所需的内存量由以下公式得出:

管理分区内存配置 =(所需内存量/数据包引擎数量)

管理员分区内存 = 1GB/4 = 250 MB

达到资源限制时的行为

  1. 连接 — 新连接将被丢弃
  2. 带宽 — 新流量将被丢弃
  3. 内存 — 新流量将被丢弃

您可以配置在特定分区的资源用尽时触发的 SNMP 警报。SNMP 陷阱列表在附加资源部分中给出。

网络平面

VLAN:配置不同的 VLAN 并将其分配给管理分区,以保持网络级别的隔离。

路由:每个分区的路由配置是唯一的。

ADC 管理员与网络管理员协商(根据应用管理员的意见)根据网络拓扑来定义 VLAN 和路由相关的配置。

L3 参数:可以是特定于分区的参数。一些 L3 参数包括丢弃 DF 数据包、ICMP 错误阈值、overridernat 等,输入应来自网络或 ADC 管理员。

控制平面:用户体验

管理分区提供不同级别的隔离,允许用户安全地管理隔离的 ADC 实例。

不同的隔离级别包括:

  1. UI 页面 — 配置,仅显示分区的统计信息
  2. 诊断-跟踪隔离。Trace 不会捕获其他分区的流量
  3. SNMP 警报-在分区级别配置
  4. 日志级别隔离

可以使用以下方法配置 UI 级隔离:

  1. 在相应的分区中,为一个 SNIP 启用 mgmt. 访问权限,然后使用该 SNIP 访问 GUI。这将提供UI级别的隔离和仅对该分区的可见性。

表 3

日志类型 分区特定
博客
技术支持捆绑包
审计日志
/var/log

企业用例的管理分区

本节介绍企业客户用例,其中包含四个使用管理分区的应用程序。

客户要求

  • 需要托管 4 个应用程序

  • 每个应用程序都有自己的管理员和一组不同的 ADC 要求。下表列出了应用程序及其独特要求。

表 4

应用程序 特征 要求/特性
SharePoint 共享文件、音频、文件等 缓存、压缩、身份验证、SSL 卸载、SSL 配置文件
数据库 自定义 SQL 规则、身份验证、在读取和写入之间拆分以获得更好的性能 内容切换,SQL 相关关键字的策略基础架构
企业网站 公共访问-容易受到攻击,应用程序防火墙 DDoS、AppQOE、AppFW、SSL 配置文件
Outlook 与 AD、SSO 集成,在 HTTP 中具有更好的性能 身份验证 SSO、SSL 卸载

从上面的要求表中可以清楚地看出,每个应用程序都需要一组不同的配置才能实现 Citrix ADC 的全部优势。建议对 Citrix ADC 进行分区,然后将这些分区分配给相应的应用程序所有者。

带宽和连接估计

Outlook 和 SharePoint

SharePoint、Exchange 和 Lync 等企业应用程序的带宽取决于:

  1. 并发用户数
  2. 用法类型
    1. Exchange — 平均邮件大小和数量
    2. SharePoint — 文件类型、读取与写入的比率

应用程序管理员使用上述两个因素计算带宽需求,并将信息提供给 Citrix ADC 管理员以配置管理分区。

示例

Outlook 2010 的带宽:用户类型(轻、中、重等)。对于中等用户,发送 10 封电子邮件,接收 40 封电子邮件,平均邮件大小 50 KB = 2.15 Kbps。对于 1000 个用户,所需的带宽为 2150 Kbps。

用于 SharePoint 的带宽:用户数量 = 1000。假设 20% 的用户在任何时间点处于活动状态,平均页面加载大小为 100 KB,并且在 1 小时内访问了大约 10 个页面:

= 100 KB * 200 * 10/小时 = 200000 KB/小时 = 200000*8(8 位/字节)/3600(秒数)

= 444 Kbps

每秒连接数 = 活跃用户数 * 10

MSSQL

根据查询速率和响应大小,得出带宽和连接数。

企业网站

带宽要求:平均页面大小* 随时最大用户数 * 2

连接:最大用户数 * 每个用户的连接数

示例:

带宽:4 KB10002 = 48000 Kbps

最大用户数 = 1000,每个用户的连接数 = 10。连接 = 1 万

如果大多数用户来自 HTTP/1.1,则每个用户的连接数将为 2–3,但如果混合更倾向于 HTTP/1.0,则连接数将为 10–15。根据流量/客户端组合,每个用户的连接数乘法因子会有所不同 3—15。

要配置的内存取决于:

  1. 相应管理分区中的配置列表-静态内存。有关更多详细信息,请参阅表 1。
  2. 动态内存 — 连接数和连接类型(HTTP 与SSL) — 有关更多详细信息,请参阅表 2。
  3. 数据包引擎的数量。内存 =(静态内存 + 动态内存)/(数据包引擎的数量)

ADC 管理员的步骤

  1. 收集每个应用程序的带宽和连接
  2. 分别为 SharePoint、数据库和 Outlook 创建三个分区。使用上一步骤中的带宽和连接并将其分配给相应的分区。如果客户需要 AppFW,则企业网站可以托管在默认分区上,因为 AppFW 仅在默认分区上受支持。
  3. 为每个分区创建用户并共享凭据。
  4. 启用集成缓存并设置缓存内存。缓存内存取自默认分区中配置的高速缓存。有关分配的详细信息,请参阅 IC 的附录部分。

    1. 咨询 ADC 管理员后,分配缓存内存。尝试在系统中分配总缓存内存的 30-40%。如果分配的总容量为 10 GB,则为 SharePoint 分区中的缓存分配大约 3-4 GB。
    2. 应用程序所有者应首先监视缓存统计信息,以检查优势级别。
    3. 检查缓存对象命中率,如果大量缓存对象的命中率很高,请增加该特定分区的 IC 内存大小。
  5. 启用压缩
    1. SharePoint 将发布不同类型(Excel、PowerPoint、Word)的文件,如果压缩并交付给客户端,则会减少带宽使用量。

数据库用户

  1. 配置 CS、VIP 和后端服务器。
  2. 使用内容切换来拆分读/写请求并重定向到相应的服务器组。

企业网站

  1. 配置 VIP 和后端服务器。
  2. 启用集成缓存。

    1. 企业网站位于默认分区中,因此其他分区中未使用的缓存可用于企业网站。因此,假设 SharePoint 和 Outlook 各消耗了 35%,那么总消耗量将为 70%,剩余的 30% 留给默认分区(企业网站)。如果总缓存内存为 10 GB,则默认分区将有 3 GB 的缓存内存。
    2. 应用程序所有者应首先监视缓存统计信息,以检查优势级别。
    3. 检查缓存对象命中率,如果大量缓存对象的命中率很高,则增加该特定分区的 IC 内存大小。
  3. 启用前端优化。
  4. 启用 AppFW。

服务提供商管理分区使用案例

服务提供商托管 Microsoft 应用程序,并将 IIS、SharePoint 和 MSSQL 应用程序作为服务提供。他们的客户通常有以下要求:

客户要求

  • 客户 1:访问数据库服务器,其读/写拆分为 90:10,最终客户想要配置自定义的 SQL 相关的筛选器

  • 客户 2:通过 SSL 访问 Web 应用程序,最终客户希望控制其 SSL 证书

  • 客户 3:从服务提供商处访问托管的 SharePoint

服务提供商为其客户托管一个门户,以便:

  1. 选择它要托管的应用程序
  2. 带宽要求

服务提供商为其客户托管一个门户,以便:

  1. 选择它要托管的应用程序
  2. 带宽要求
  3. 连接

根据选择,服务提供商可以使用 NITRO API 使用与后端特定应用程序相关的配置来配置相应的分区。

根据客户选择的应用程序,选择相应的选项。

  1. 使用 SSL 的 Web 应用程序
    1. 要绑定到 VIP 的 SSL 证书选项
    2. HTTP 到 HTTPS 重定向
    3. SSL 配置文件相关参数
  2. SQL
    1. 客户想要配置的 SQL 相关筛选器
  3. SharePoint
    1. 缓存内存限制和规则
    2. 压缩策略

创建管理分区后,服务提供商遵循两个选项之一来实现确切的要求。

配置选项 1:

服务提供商收集来自客户的请求,并在相应的分区上执行这些请求。

配置选项 2:

使用 NITRO API 自动执行管理分区。可以从前端门户收集输入,在后端可以执行 NITRO API 来配置分区。

功能注意事项

功能支持:大多数功能都支持管理员分区,只有少数功能不支持。有关确切列表,请参阅 Citrix 文档 并查看特定的软件版本。它将包含一个列出可支持性列表的表格。

配置限制。以下版本不支持管理分区:

  1. 群集

  2. MPX-FIPS 应用装置

结论

Admin Partitions 的主要优势在于能够在软件级别分离 ADC,并为每个分区所有者提供安全、隔离的用户体验。


其他资源

故障排除工具

管理分区中的常见问题:

ESX 上 VPX 上的管理分区:

  • 配置自定义 MAC 地址时无法访问非默认分区。

  • 解决方案:需要在 ESX 上启用混杂模式才能使非默认分区正常工作。

配置失败:

  • 配置可能无法抛出错误输入文件不存在。

  • 需要使用相对路径,而不是绝对路径。

VLAN 配置:

  • 管理分区 VLAN 支持标记的 VLAN,因此,在标记 VLAN 时,Citrix ADC 接口所连接的交换机应配置适当的 VLAN。对于未标记的 VLAN,请使用共享 VLAN 配置

集成高速缓存内存分配

要在分区的 Citrix ADC 上配置集成缓存 (IC),在默认分区上定义 IC 内存后,超级用户可以在每个管理分区上配置 IC 内存,使分配给所有管理分区的 IC 内存总量不超过默认分区上定义的 IC 内存。未为管理分区配置的内存仍然可用于默认分区。

例如,如果具有两个管理分区的 Citrix ADC 设备将 10 GB 的 IC 内存分配给默认分区,并且两个管理分区的 IC 内存分配如下所示:

  • 分区 1:4 GB

  • 分区 2:3 GB

然后,默认分区具有 10-(4 + 3) = 3 GB 的 IC 内存可供使用。

注意

如果管理分区使用了所有 IC 内存,则默认分区没有可用的 IC 内存。

用于检查内存使用情况的命令

  • 分区内的统计系统内存将显示分区的聚合系统级内存分配,stat 分区名称将显示分区内使用的内存百分比。
>add partition p1
Done
>switch partition p1
Done
p1> stat system memory
done

Citrix ADC Memory Information:
Maximum Memory Available (MB): 50
Memory Currently Available (MB): 50
Memory Allocated (MB) 7
Memory Allocated (%) 14.95
InUse Memory  (MB) 7
InUse Memory (%) 14.95
Free Memory (MB) 42

>stat partition p1

Partition(s) Summary
   MinBW MaxBW MaxConn MaxMem

p1 10240 10240  1024  10

Partition Stats:

                       Rates (/s)   Total
Current Bandwidth         --          0
Current Connections       --          0
Memory Usage (%)          --          14
Total Packet Drops        0           7
Total Drops (KB)          0           0
Total Connection Drops    0           0
<!--NeedCopy-->
  • 配置内存:由于每个配置都在每个 Packet Engine 中复制,因此会在每个 Packet Engine 中分配内存。例如,如果“add lb vserver”命令在 peach Packet Engine 中大约需要 10 KB,并且我们在 5 – Packet Engine 系统中创建了 10 MB 分区,则将总共消耗 50 KB 的分区内存。
  • 通过在 Citrix ADC shell 上应用配置并运行以下命令,可以测量特定配置的内存需求的精确值:
root@ns# nsconmsg -s nsppeid=0 -s nspartid=1 -g mem_cur_usedsize -d current
Displaying performance information
Citrix ADC V20 Performance Data
Citrix ADC NS11.0: Build 65.572.nc, Date: Apr 7 2016, 10:32:51

reltime:mili second between two records Thu Feb 23 13:45:18 2017
 Index rtime totalcount-val delta rate/sec symbol-name&device-no
    0  22681     1597631     8965  5333     mem_cur_usedsize partition_ctx(p1) (PART-1)
<!--NeedCopy-->

在此实验中,在 PPE-0 中为分区 ID 1 使用大约 9 KB 的内存。在 Citrix ADC 上配置的每个分区都有一个唯一的 ID。

以下命令允许测量给定分区的完整系统(包括所有数据包引擎)的内存估计。

root@ns# nsconmsg -s nspartid=1 -g mem_cur_used -d current
Displaying performance information
Citrix ADC V20 Performance Data
Citrix ADC NS11.0: Build 65.572.nc, Date: Apr 7 2016, 10:32:51

reltime:mili second between two records Thu Feb 23 13:44:27 2017
Index rtime totalcount-val delta rate/sec symbol-name&device-no
 0   7000    7881865       6403    5333    mem_cur_usedsize partition_ctx(p1) (PART-1)
<!--NeedCopy-->

Citrix ADC 12.0 中引入的 SNMP 陷阱的列表

陷阱名称 说明
partitionCONNLimitExceeded 分区的连接限制已用尽,新连接被丢弃
partitionCONNLimitNormal 分区现在可以接受新连接
partitionBWLimitExceeded 分区的带宽限制已用尽,数据包被丢弃
paritionBWThresholdReached 当前带宽使用率 >= 80%
partitionCONNThresholdReached 当前活动连接计数 >= 80%
paritionCONNThresholdNormal 当前活动连接计数 <= 60%
partitionMEMThresholdReached PE 的当前内存使用率 >= 80%
partitionMEMThresholdNormal PE 的当前内存使用率 <= 60%
partitionMEMLimitExceeded PE 的当前内存使用率 >= 95%

其他参考资料

交易所客户端网络带宽计算器测试版

运行 Microsoft Online Services 需要多少带宽

Citrix ADC 管理分区验证的参考设计