ADC

使用高级策略绑定策略

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

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

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

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

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

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

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

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

绑定点和评估顺序

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

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

  1. 请求时间覆盖。当请求流经某个功能时,NetScaler 首先评估该功能的请求时间替代策略。
  2. 请求时间负载平衡虚拟服务器。如果在请求时间替代策略评估后策略评估不完整,NetScaler 将处理用于负载平衡虚拟服务器的请求时间策略。
  3. 请求时间内容切换虚拟服务器。如果在评估负载平衡虚拟服务器的请求时间策略之后,策略评估未完成,则 NetScaler 会处理内容交换虚拟服务器的请求时间策略。
  4. 请求时间默认。如果在评估了所有请求时间、虚拟服务器特定策略之后仍无法完成策略评估,则 NetScaler 将处理请求时间高级策略。
  5. 响应时间取代。在响应时,NetScaler 从绑定到响应时间覆盖绑定点的策略开始。
  6. 响应时间负载平衡虚拟服务器。如果在评估了所有响应时间替代策略后无法完成策略评估,则 NetScaler 会处理负载平衡虚拟服务器的响应时间策略。
  7. 响应时间内容切换虚拟服务器。如果负载平衡虚拟服务器的策略评估后策略评估不完整,NetScaler 将处理内容交换虚拟服务器的响应时间策略。
  8. 默认响应时间。如果在评估了所有响应时间、特定于虚拟服务器的策略之后仍无法完成策略评估,则 NetScaler 将处理响应时间高级策略。

跨特征的策略评估

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

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

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

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

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

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

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

策略库的条目

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

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

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

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

策略库内的评估顺序

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

  • 一个优先事项。

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

  • Goto 表达式。

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

  • 调用其他策略库。

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

Goto 表达式的值如下:

  • NEXT。

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

  • 整数。

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

  • END。

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

  • 空白。

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

  • 数字表达式。

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

  • USE_INVOCATION_RESULT。

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

    • 如果被调用的策略库中的最终 Goto 值为 END 或为空,则调用结果为 END,评估将停止。
    • 如果调用的策略库中的最后一个 Goto 表达式不是 END,则 NetScaler 会执行 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 的值。

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

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

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

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

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

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

使用高级策略绑定策略