Citrix ADC

使用高级策略绑定策略

定义策略后,您可以通过将策略绑定到绑定点来指示何时激活策略。然后指定优先级别。

只将策略绑定到一个绑定点。绑定点可以是全局性的。全局绑定点适用于配置的虚拟服务器。或者,绑定点可以特定于特定的虚拟服务器;负载平衡或内容交换虚拟服务器。并非所有绑定点都可用于所有功能。

评估策略的顺序决定了策略的应用顺序。这些功能通常按特定顺序评估各种保单银行。

有时,其他功能可能会影响保单库内的评估顺序。评估顺序取决于策略中配置的参数值。大多数功能都应用与策略相关联的操作,其评估结果与正在处理的数据匹配。集成缓存功能是一个例外。

策略绑定中特定功能的差异

您可以将策略绑定到内置的全局绑定点(或数据库)、虚拟服务器或策略标签。

但是,Citrix ADC 功能因可用绑定类型而异。下表总结了如何在使用策略的各种 Citrix ADC 功能中使用策略绑定。

功能名称 在功能中配置的虚拟服务器 在功能中配置的策略 为策略配置的绑定点 在功能中使用策略
DNS DNS 策略 全局 确定如何对请求执行 DNS 解析。
内容切换(注意:此功能可以支持高级策略,但不能同时支持两者。) 内容切换 (CS) 内容切换策略 内容切换或缓存重定向虚拟服务器;策略标签 根据传入请求的特征,确定哪个服务器或服务器组负责提供响应。请求特征包括设备类型、语言、Cookie、HTTP 方法、内容类型和关联的缓存服务器。
集成缓存 缓存策略 全局覆盖、全局默认值、策略标签、负载平衡、内容切换或 SSL 卸载虚拟服务器 确定 HTTP 响应是否可以存储在 Citrix ADC 设备的集成缓存中并从中提供服务。
响应方 响应者策略 全局覆盖、全局默认值、策略标签、负载平衡、内容切换或 SSL 卸载虚拟服务器 配置响应程序函数的行为。
重写 重写策略 全局覆盖、全局默认值、策略标签、负载平衡、内容切换或 SSL 卸载虚拟服务器 确定要在处理之前修改的 HTTP 数据。这些策略提供了修改数据的规则。例如,您可以修改 HTTP 数据以将请求重定向到选定的服务器。此修改基于传入请求的地址。或者,出于安全考虑,在响应中掩盖服务器信息。
重写功能中的 URL 转换函数 转型策略 全局覆盖、全局默认、策略标签 在评估是否必须更改 URL 时识别 HTTP 事务和文本文件中的 URL。
Citrix Gateway(仅限无客户端 VPN 功能) VPN 服务器 无客户端访问策略 VPN 全局,VPN 服务器 确定 Citrix Gateway 的执行方式:身份验证、授权、审核和其他功能,并使用 Citrix Gateway 定义常规 Web 访问的重写规则。

绑定点和评估顺序

要使策略生效,您必须确认该策略在处理过程中的某个时候已激活。为此,请将策略与绑定点关联。绑定到绑定点的策略集合称为策略库。

以下是 Citrix ADC 评估的绑定点,按策略库内的典型评估顺序列出

  1. 请求时间覆盖。当请求通过某项功能时,Citrix ADC 首先评估该功能的请求时间覆盖策略。
  2. 请求时间负载平衡虚拟服务器。如果在请求时间覆盖策略评估之后,策略评估不完整,Citrix ADC 将处理负载平衡虚拟服务器的请求时间策略。
  3. 请求时间内容切换虚拟服务器。如果在评估负载平衡虚拟服务器的请求时间策略之后,策略评估不完整,Citrix ADC 将处理内容交换虚拟服务器的请求时间策略。
  4. 请求时间默认值。如果在所有请求时间之后都无法完成策略评估,则已评估了虚拟服务器特定的策略,Citrix ADC 将处理请求时间高级策略。
  5. 响应时间覆盖。在响应时,Citrix ADC 从绑定到响应时间覆盖绑定点的策略开始。
  6. 响应时间负载平衡虚拟服务器。如果在评估所有响应时间覆盖策略之后无法完成策略评估,Citrix ADC 将处理负载平衡虚拟服务器的响应时间策略。
  7. 响应时间内容切换虚拟服务器。如果在负载平衡虚拟服务器的策略评估之后,策略评估不完整,Citrix ADC 将处理内容交换虚拟服务器的响应时间策略。
  8. 默认响应时间。如果在所有响应时间之后都无法完成策略评估,则已对特定于虚拟服务器的策略进行了评估,Citrix ADC 将处理响应时间高级策略。

跨特征的策略评估

如果策略绑定到内容交换虚拟服务器。除了功能中的策略评估之外。在其他策略之前对策略进行评估。

将策略绑定到内容交换虚拟服务器会在 Citrix ADC 9.0.x 版本中产生的结果不同于 8.x 版本的结果。在 Citrix ADC 9.0 及更高版本中,评估方式如下:

  • 在其他策略之前评估内容切换策略。如果内容交换策略的评估结果为 TRUE,则会选择目标负载平衡虚拟服务器。
  • 如果所有内容交换策略的评估均为 FALSE,则会选择内容交换 VIP 下的默认负载平衡虚拟服务器。

内容交换过程选择目标负载平衡虚拟服务器后,将按以下顺序评估策略:

  1. 绑定到全局覆盖绑定点的策略。
  2. 绑定到默认负载平衡虚拟服务器的策略。
  3. 绑定到目标内容交换虚拟服务器的策略。
  4. 绑定到全局默认绑定点的策略。

为确保按预期顺序评估策略,请遵循以下准则:

  • 确保默认的负载平衡虚拟服务器无法从外部直接访问;例如,虚拟服务器 IP 地址可以是 0.0.0.0。
  • 要防止在负载平衡默认虚拟服务器上暴露内部数据,请将策略配置为以 “503 Service 不可用” 状态进行响应,然后将其绑定到默认负载平衡虚拟服务器。

策略库的条目

策略库中的每个条目都至少有一个策略和一个优先级级别。您还可以配置更改基于优先级的评估顺序的条目,还可以配置调用外部策略库的条目。

下表总结了策略库中的每个条目。

策略名称 优先级 转到表达式 调用类型 要调用的策略库
策略名称或名为 NOPOLICY 的 “虚拟” 策略。NOPOLICY 条目在不处理规则的情况下控制评估流程。 整数。 可选。确定银行中要评估的下一个保单,或结束任何进一步的评估 可选。表示将调用外部策略库。此字段将选择限制为全局策略标签或虚拟服务器。 可选。与调用类型一起使用。这是策略库或虚拟服务器名称的标签。Citrix ADC 在处理外部库后返回到当前库。

如果策略的评估结果为 TRUE,Citrix ADC 将存储与策略关联的操作。如果策略的评估结果为 FALSE,Citrix ADC 将评估下一个策略。如果策略既不是 TRUE 也不是 FALSE,Citrix ADC 将使用关联的 Uneff(未定义)操作。

策略库内的评估顺序

在保单银行内,评估顺序取决于以下项目:

  • 一个优先事项。

    有关评估订单的最小数量的信息是数字优先级。数字越低,优先级越高。

  • Goto 表达式。

    如果提供,Gto 表达式将指示要评估的下一个策略,通常在同一个策略库中。Goto 表达式只能在库继续前进。为防止循环,如果 Gto 语句在库中向后指向,则策略库配置无效。

  • 调用其他策略库。

    任何条目都可以调用外部策略库。Citrix ADC 提供了一个名为 NOPOLICY 的内置实体,该实体没有规则。当您想调用另一个策略库但不想在调用之前处理任何其他规则时,可以在策略库中添加 NOPOLICY 条目。可以在多个策略库中有多个 NOPOLICY 条目。

Goto 表达式的值如下:

  • NEXT。

    此关键字在当前策略库中选择具有下一个更高优先级级别的策略。按优先级顺序评估策略,从编号较低的优先级到编号较高的优先级。

  • 整数。

    如果提供一个整数,它必须与当前策略库中另一个策略的优先级相匹配。

  • END。

    此关键字在处理当前保单后停止评估,并且不会处理该银行中的其他保单。

  • 空白。

    如果 Goto 表达式为空,则与指定 END 相同。

  • 数字表达式。

    这是一个高级的策略表达式,解析为当前库中的另一个策略的优先级编号。

  • USE_INVOCATION_RESULT。

    只有在调用外部保单银行时,才能使用此短语。输入此短语会导致 Citrix ADC 执行以下操作之一:

    • 如果被调用的策略库中的最终 Goto 值为 END 或为空,则调用结果为 END,评估将停止。
    • 如果被调用的策略库中的最后一个 Goto 表达式不是 END,Citrix ADC 将执行 NEXT。

下表说明了使用 Goto 语句和策略库调用的策略库。

策略名称 优先级 Goto 调用 要调用的策略库
客户端证书策略(规则:请求是否包含客户端证书?) 100 300
Subnet策略(规则:客户端来自私有子网吗?) 200 NEXT
NOPOLICY 300 USE INVOCATION RESULT 请求虚拟服务器 My_Request_VServer
NOPOLICY 350 USE INVOCATION RESULT 策略标签 my_Policy_label
工作时间政策(规则:是工作时间吗?) 400 END

表 3. 使用 Goto 和外部策略库的策略库示例

策略评估如何结束

当发生以下情况之一时,对保单银行的评估结束:

  • 策略的评估结果为 TRUE,其 Gto 语句值为 END。

    此功能中不会进一步评估任何政策或保单银行。

  • 调用外部策略库,其评估返回 END,Goto 语句使用 USE_INVOCATION_RESULT 或 END 的值。

    对此功能的下一个策略库继续进行评估。例如,如果当前库是请求时间覆盖库,Citrix ADC 接下来会评估虚拟服务器的请求时间策略库。

  • Citrix ADC 已遍历此功能中的所有策略库,但尚未遇到结束。

    如果这是此策略库中要评估的最后一个条目,Citrix ADC 将继续使用下一个功能。

策略评估后功能如何使用操作

在评估特定数据点的所有相关策略(例如,HTTP 请求)之后,Citrix ADC 将存储与与数据匹配的任何策略关联的所有操作。

对于大多数功能,匹配策略中的所有操作都将应用于流量数据包离开 Citrix ADC 时。集成缓存功能只应用一个操作:CACHE 或 NOCACHE。此操作与 “最高优先级” 策略库中具有最低优先级值的策略相关联(例如,在特定于虚拟服务器的策略之前应用请求时间覆盖策略)。

使用高级策略绑定策略