Citrix ADC

重写的工作原理

重写策略由规则和操作组成。该规则确定应用重写的流量,操作确定 Citrix ADC 要执行的操作。您可以定义多个重写策略。对于每个策略,指定绑定点和优先级。

绑定点指的是流量流中的一个点,Citrix ADC 在该点上检查流量,以验证是否可以对其应用任何重写策略。您可以将策略绑定到特定负载平衡或内容交换虚拟服务器,或者如果希望将策略应用于 Citrix ADC 处理的整个流量,则可以将策略设置为全局策略。这些策略被称为全球策略。

除了用户定义的策略之外,Citrix ADC 还有一些默认策略。您无法修改或删除默认策略。

为了评估策略,Citrix ADC 遵循以下顺序:

  • 全球策略
  • 绑定到特定虚拟服务器的策略
  • 默认策略

注意:Citrix ADC 只能在绑定到某个点时应用重写策略。

Citrix ADC 通过以下步骤实现重写功能:

  • Citrix ADC 设备检查全局策略,然后检查单个绑定点的策略。

  • 如果将多个策略绑定到绑定点,Citrix ADC 将按其优先级顺序评估这些策略。首先评估优先级最高的策略。评估每个策略后,如果策略评估为 TRUE(流量与规则匹配),则会将与策略关联的操作添加到要执行的操作列表中。当策略规则中指定的特征与正在评估的请求或响应的特征匹配时,将发生匹配。

  • 对于任何策略,除了操作之外,您还可以指定应在评估当前策略之后评估的策略。此策略称为“Goto 表达式”。对于任何策略,如果指定了Goto 表达式 (GotopriorityExPR),Citrix ADC 将评估Goto 表达式策略;它将忽略具有下一个最高优先级的策略。

    您可以指定策略的优先级来指示Goto 表达式策略;您不能使用策略的名称。如果希望 Citrix ADC 在评估特定策略后停止评估其他策略,可以将“Goto 表达式”设置为“END’。

  • 在对所有策略进行评估后或将“Goto 表达式”设置为 END 时,Citrix ADC 将开始根据操作列表执行操作。

有关配置重写策略的详细信息,请参阅配置重写策略,有关绑定重写策略的详细信息,请参阅绑定重写策略

下图说明了 Citrix ADC 在使用重写功能时如何处理请求或响应。

图 1. 重写过程

图片

策略评价

首先评估优先级最高的策略。Citrix ADC 在找到匹配项时不会停止对重写策略的评估;它会评估 Citrix ADC 上配置的所有重写策略。

  • 如果策略的计算结果为 TRUE,Citrix ADC 将遵循以下步骤:
    • 如果策略将Goto 表达式设置为 END,Citrix ADC 将停止评估所有其他策略并开始执行重写。
    • GotoPriity 表达式可以设置为“’NEXT”、“END”、某个整数或“INVOCATION_LIST”。该值确定具有下一个优先级的策略。下表显示 Citrix ADC 对表达式的每个值执行的操作。

      表达式的值 操作
      NEXT 评估具有下一个优先级的策略。
      END 对策略的评估停止。
      <an integer> 评估具有指定优先级的策略。
      INVOCATION_LIST 转到 NEXT 或 END 根据调用列表的结果应用。
  • 如果策略的评估结果为 FALSE,Citrix ADC 将按优先级顺序继续进行评估。
  • 如果策略的计算结果为未定义(由于错误而无法对接收的流量进行评估),Citrix ADC 将执行分配给未定义条件的操作(称为 Undition)并停止对策略的进一步评估。

Citrix ADC 仅在评估完成后才开始实际重写。它引用被评估为 TRUE 的策略标识的操作列表,并开始重写。执行列表中的所有操作后,Citrix ADC 将根据需要转发流量。

注意

确保策略不会在 HTTP 标头或正文的同一部分或 TCP 负载上指定冲突或重叠的操作。发生此类冲突时,Citrix ADC 遇到未定义的情况并中止重写。

重写操作

在 Citrix ADC 设备上,指定要执行的操作,例如添加、替换或删除正文中的文本,或添加、修改或删除标头,或将 TCP 负载中的任何更改作为重写操作。有关重写操作的更多信息,请参阅配置重写操作

下表描述了当策略评估为 TRUE 时 Citrix ADC 可以执行的步骤。

操作 结果
插入 执行为策略指定的重写操作。
NOREWRITE 请求或响应不会被重写。Citrix ADC 在不重写消息的任何部分的情况下转发流量。
RESET 连接在 TCP 级别中止。
DROP 消息已被删除。

注意

对于任何策略,您都可以将解密(策略评估为未定义时要执行的操作)配置为 NOREWITE、RESET 或 DROP。

要使用“ 重写”功能,请执行以下步骤:

  • 启用 Citrix ADC 上的功能。
  • 定义重写操作。
  • 定义重写策略。
  • 将策略绑定到绑定点以使策略生效。

重写的工作原理