先进的策略基础
警告
经典策略表达式从 NetScaler 12.0 版本 56.20 版本中不建议使用,作为替代方案,Citrix 建议您使用高级策略。有关详细信息,请参阅 高级策略
高级策略基础结构 (PI) 使您能够分析更多数据(例如,HTTP 请求的正文),并在策略规则中配置更多操作(例如,将请求正文中的数据转换为 HTTP 标头)。
除了为策略分配操作或配置文件之外,还可以将策略绑定到与 NetScaler 功能关联的处理中的特定点。绑定点是决定何时评估策略的一个因素。
使用高级策略的好处
高级策略策略使用基于类对象模型构建的强大表达式语言,它们提供了多种选项,可增强您配置各种 NetScaler 功能行为的能力。使用高级策略基础架构 (PI),您可以执行以下操作:
- 对图层 2 到 7 中的网络流量执行细粒度分析。
- 评估 HTTP 或 HTTPS 请求或响应的标头或正文的任何部分。
- 将策略绑定到高级策略基础架构 (PI) 在默认级别、覆盖和虚拟服务器级别支持的多个绑定点。
- 使用 goto 表达式将控制权转移到其他策略和绑定点,具体取决于表达式评估结果。
- 使用特殊工具,如模式集、策略标签、速率限制标识符和 HTTP 标注,这些工具使您能够为复杂的用例有效配置策略。
此外,配置实用程序扩展了对高级策略基础架构 (PI) 和表达式的强大图形用户界面支持,使对网络协议知识有限的用户能够快速轻松地配置策略。配置实用程序还包括高级策略的策略评估功能。您可以使用此功能评估高级策略并在提交之前测试其行为,从而降低配置错误的风险。
高级策略的基本组件
以下是高级策略的一些特征:
-
姓名。每个策略都有一个唯一的名称。
-
规则。该规则是一个逻辑表达式,使 NetScaler 功能能够评估一段流量或另一个对象。例如,规则可以使 NetScaler 能够确定 HTTP 请求是源自特定 IP 地址,还是 HTTP 请求中的缓存控制标头的值为“无缓存”。
高级策略可以使用经典策略中提供的所有表达式,SSL VPN 客户端的经典表达式除外。此外,高级策略还允许您配置更复杂的表达式。
- 绑定。为确保 NetScaler 可以在需要时调用策略,请将该策略关联或将其绑定到一个或多个绑定点。
您可以将策略全局绑定或绑定到虚拟服务器。有关详细信息,请参阅 关于策略绑定。
- 关联的操作。操作是独立于策略的实体。策略评估最终导致 NetScaler 执行操作。
例如,集成缓存中的策略可以识别对 .gif 或 .jpeg 文件的 HTTP 请求。与此策略关联的操作可确定从缓存中提供对这些类型请求的响应。
对于某些功能,您可以将操作配置为一组更复杂的指令(称为配置文件)的一部分。
不同的 NetScaler 功能如何使用策略
NetScaler 支持依赖策略进行操作的各种功能。下表总结了 NetScaler 功能如何使用策略。
功能名称 | 策略类型 | 如何在功能中使用策略 |
---|---|---|
系统 | 经典 | 对于身份验证功能,策略包含不同身份验证方法的身份验证方案例如,您可以配置 LDAP 和基于证书的身份验证方案。您还可以在审计功能中配置策略。 |
DNS | Advanced | 确定如何对请求执行 DNS 解析。 |
SSL | 经典版和高级版 | 确定何时应用加密功能并将证书信息添加到明文中。为了提供端到端的安全性,消息解密后,SSL 功能会重新加密明文并使用 SSL 与 Web 服务器进行通信。 |
压缩 | 经典版和高级版 | 确定压缩哪种类型的流量。 |
集成缓存 | Advanced | 确定 HTTP 响应是否可缓存。 |
响应方 | Advanced | 配置响应程序函数的行为。 |
保护功能 | 经典 | 配置筛选器、SureConnect 和优先级队列功能的行为。 |
内容交换 | 经典版和高级版 | 根据传入请求的特征,确定哪个服务器或服务器组负责提供响应。请求特征包括设备类型、语言、Cookie、HTTP 方法、内容类型和关联的缓存服务器。 |
AAA-交通管理 | 经典。例外情况:流量策略仅支持高级策略基础结构 (PI),授权策略支持高级策略基础结构 (PI)。 | 用户登录并建立会话之前检查客户端安全性。确定是否需要单点登录 (SSO) 的流量策略仅使用高级策略。授权策略授权通过设备访问 Intranet 资源的用户和组。 |
缓存重定向 | 经典 | 确定响应是从缓存还是源服务器提供。 |
重写 | Advanced | 确定要在处理之前修改的 HTTP 数据。这些策略提供了修改数据的规则。例如,您可以根据传入请求的地址修改 HTTP 数据以将请求重定向到新主页、新服务器或选定的服务器,或者出于安全目的修改数据以掩盖响应中的服务器信息。URL Transformer 函数可以识别 HTTP 事务和文本文件中的 URL,以评估是否应转换 URL。 |
应用程序防火墙 | 经典版和高级版 | 识别应该或不应该通过防火墙允许的流量和数据的特征。 |
NetScaler Gateway,无客户端访问功能 | Advanced | 使用 NetScaler Gateway 为常规 Web 访问定义重写规则。 |
NetScaler Gateway | 经典 | 确定 NetScaler Gateway 如何执行身份验证、授权、审核和其他功能。 |
关于操作和配置文件
策略本身不会对数据采取操作。策略提供用于评估流量的只读逻辑。要使某项功能能够根据策略评估执行操作,请配置操作或配置文件并将其与策略关联。
注意: 操作和配置文件特定于特定功能。有关为要素分配操作和配置文件的信息,请参阅各个功能的文档。
关于操作
操作是 NetScaler 采取的步骤,具体取决于对策略中表达式的评估。例如,如果策略中的表达式与请求中的特定源 IP 地址匹配,则与此策略关联的操作将决定是否允许该连接。
NetScaler 可以执行的操作类型是特定于功能的。例如,在重写中,操作可以替换请求中的文本、更改请求的目标 URL 等。在集成缓存中,操作确定 HTTP 响应是从缓存还是源服务器提供。
在某些 NetScaler 功能中,操作是预定义的,在其他情况下,操作是可配置的在某些情况下(例如,重写),您可以使用与配置关联策略规则相同类型的表达式来配置操作。
关于配置文件
某些 NetScaler 功能使您可以将配置文件或操作和配置文件与策略相关联。配置文件是使功能能够执行复杂功能的设置的集合。例如,在应用程序防火墙中,XML 数据的配置文件可以执行多个筛选操作,例如检查数据是否存在非法 XML 语法或 SQL 注入的证据。
在特定功能中使用操作和配置文件
下表总结了不同 NetScaler 功能中操作和配置文件的使用情况。该表并非详尽无遗。有关功能的操作和配置文件的特定用途的更多信息,请参阅该功能的文档。
功能 | 动作的使用 | 个人资料的使用 |
---|---|---|
应用程序防火墙 | 是个人资料的代名词 | 所有应用程序防火墙功能都使用配置文件来定义复杂的行为,包括基于模式您将这些配置文件添加到策略中。 |
NetScaler Gateway | NetScaler Gateway 的以下功能使用操作:预身份验证。使用允许和拒绝操作。您可以将这些操作添加到配置文件中。, 授权。使用允许和拒绝操作。您可以将这些操作添加到策略中。TCP 压缩。使用各种操作。您可以将这些操作添加到策略中。 | 以下功能使用配置文件:预身份验证、会话、流量和无客户端访问。配置完配置文件后,您可以将它们添加到策略中。 |
重写 | 您可以配置 URL 重写操作并将其添加到策略中。 | 未使用。 |
集成缓存 | 您可以在策略中配置缓存和失效操作 | 未使用。 |
AAA-交通管理 | 您可以选择身份验证类型、将授权操作设置为“允许”或“拒绝”,或将审核设置为 SYSLOG 或 NSLOG。 | 您可以使用默认的超时和授权操作配置会话配置文件。 |
保护功能 | 您可以在策略中为以下功能配置操作:筛选器、压缩、响应程序和 SureConnect。 | 未使用。 |
SSL | 您可以在 SSL 策略中配置操作 | 未使用。 |
系统 | 该操作是暗示的。对于身份验证功能,它可以是允许或拒绝。对于审计,它是审计开启或关闭审计。 | 未使用。 |
DNS | 该操作是暗示的。它要么是丢弃数据包,要么是 DNS 服务器的位置。 | 未使用。 |
SSL 卸载 | 该操作是暗示的。它基于与 SSL 虚拟服务器或服务关联的策略。 | 未使用。 |
压缩 | 确定要应用于数据的压缩类型 | 未使用。 |
内容交换 | 该操作是暗示的。如果请求与策略匹配,则该请求将定向到与该策略关联的虚拟服务器。 | 未使用。 |
缓存重定向 | 该操作是暗示的。如果请求与策略匹配,则该请求将定向到源服务器。 | 未使用。 |
关于策略绑定
策略与允许调用策略的实体关联或绑定到该实体。例如,您可以将策略绑定到适用于所有虚拟服务器的请求时间评估。绑定到特定绑定点的策略集合构成了策略库。
以下是策略的不同类型绑定点的概述:
- 全局请求时间。在请求时,策略可用于功能中的所有组件。
- 全局响应时间。在响应时,某个功能中的所有组件都可以使用策略。
- 请求时间,特定于虚拟服务器。
策略可以绑定到特定虚拟服务器的请求时间处理。例如,您可以将请求时间策略绑定到缓存重定向虚拟服务器,以确保将特定请求转发到缓存的负载平衡虚拟服务器,并将其他请求发送到源的负载平衡虚拟服务器。
- 响应时间,特定于虚拟服务器。策略还可以绑定到特定虚拟服务器的响应时间处理。
- 用户定义的策略标签。对于高级策略基础结构 (PI),您可以通过定义策略标签并在策略标签下收集一组相关策略来配置策略的自定义分组(策略库)。
- 其他绑定点。其他绑定点的可用性取决于高级策略的类型以及相关 NetScaler 功能的详细信息。
有关高级策略绑定的其他信息,请参阅 绑定使用高级策略的策 略主题。
关于策略的评估顺序
组中的策略组和策略按特定顺序进行评估,具体取决于以下各项:
- 策略的绑定点,例如,策略是绑定到虚拟服务器的请求时处理还是全局响应时间处理。例如,在请求时,NetScaler 会在评估任何特定于虚拟服务器的策略之前评估所有请求时间策略。
- 策略的优先级。对于评估过程中的每个点,分配给策略的优先级别决定了相对于共享同一绑定点的其他策略的评估顺序。例如,当 NetScaler 评估一组特定于虚拟服务器的请求时间策略时,它将从分配给最低优先级值的策略开始。在策略中,所有绑定点的优先级级别必须是唯一的。
对于高级策略,NetScaler 在整体处理的特定时刻选择策略的分组或策略库。以下是高级保单的基本分组或银行的评估顺序:
- 请求时间全局覆盖
- 请求时间,特定于虚拟服务器(每个虚拟服务器一个绑定点)
- 请求时间全局默认值
- 响应时间全局覆盖
- 特定于响应时间虚拟服务器
- 响应时间全局默认值
但是,在之前的任何一家策略银行中,评估顺序比策略中的评估顺序更为灵活。在策略库中,无论优先级如何,您都可以指向要评估的下一个策略,也可以调用属于其他绑定点和用户定义的策略库的策略库。
基于交通流量的评估顺序
当流量流经 NetScaler 并由各种功能处理时,每个功能都会执行策略评估。只要策略与流量匹配,NetScaler 就会存储操作并继续处理,直到数据即将离开 NetScaler。此时,NetScaler 通常会应用所有匹配的操作。集成缓存只应用最终的缓存或 NoCache 操作,这是一个例外。
有些策略会影响其他策略的结果。以下是示例:
- 如果从集成缓存提供响应,则其他一些 NetScaler 功能不会处理响应或启动响应的请求。
- 如果内容过滤功能阻止提供响应,则后续功能不会对响应进行评估。
如果应用程序防火墙拒绝传入请求,则没有其他功能可以处理该请求。