ADC

配置模式集

要配置模式集,必须指定用作模式的字符串。可以手动为每种模式分配唯一的索引值,也可以允许自动分配索引值。

注意:

模式集区分大小写(除非您将表达式指定为忽略大小写)。因此,字符串模式“product1”(例如)与字符串模式“Product1”不同。

关于索引值要记住的要点:

  • 不能将相同的索引值绑定到多个模式。
  • 自动分配的索引值比模式集中现有模式的最高索引值大一个数字。例如,如果模式集中现有模式的最大索引值为 104,则下一个自动分配的索引值为 105。
  • 如果您没有为第一个模式指定索引,则索引值 1 会自动分配给该模式。
  • 如果删除或修改了一个或多个模式,则不会自动重新生成索引值。例如,如果集合包含五个模式,索引介于 1 到 5 之间,并且如果删除了索引为 3 的模式,则不会自动重新生成模式集中的其他索引值以生成 1 到 4 之间的值。
  • 可以分配给模式的最大索引值为 4294967290。如果该值已分配给集合中的某个模式,则必须手动为任何新添加的模式分配索引值。无法自动分配低于当前使用值的未使用索引值。

从 NetScaler 14.1-12.x 版本开始,除了使用静态字符串外,您还可以使用表达式来推导模式集名称,并在 CONTAINS_ANY、EQUALS_ANY、STARTSWITH_ANY 等策略表达式方法中关联模式集。模式集名称是从表达式中动态派生的,因此减少了必须为多个模式集创建的策略的数量。通过创建动态模式集,可以避免重复配置。

例如,在 NetScaler 14.1-12.x 版本之前的版本中,如果有四个模式集,则必须创建四个策略来关联这四个模式集。从 NetScaler 14.1-12.x 版本开始,除了使用静态字符串外,您还可以使用表达式来推导模式集名称。该表达式有助于简化配置。

为了使表达式识别模式集作为其评估的一部分,必须使用 dynamic 关键字将模式集配置为动态模式。该表达式仅考虑那些配置为动态的模式集。如果在创建模式集时尚未将模式集配置为动态,则也可以稍后将其设置。只能为非默认模式集设置动态关键字。

作为表达式求值的一部分,将执行以下检查:

  • 如果没有与表达式匹配的模式集,则将其视为错误,错误计数器将增加。
  • 如果存在与表达式匹配的模式集名称但未将其标记为动态,则将其视为错误,错误计数器将增加。

使用命令行界面配置模式集

在命令提示窗口中执行以下操作:

  1. 创建模式集。

    add policy patset <name>

示例:

add policy patset samplepatset

  1. 将模式绑定到模式集。

    bind policy patset <name> <string> [-index <positive_integer>][-charset ( ASCII | UTF_8 )] [-comment <string>]

示例:

bind policy patset samplepatset product1 -index 1 -comment short description about the pattern bound to the pattern set

注意:对要绑定到模式集的所有模式重复此步骤。

  1. 验证配置。

show policy patset <name>

使用配置实用程序配置模式集

  1. 导航到 AppExpert > 模式集
  2. 在详细信息窗格中,单击“添加”打开“创建模式集”对话框。
  3. 在“名称”文本框中为模式集指定名称。
  4. 在“指定模式”下,键入第一个模式,并为以下参数指定值(可选):
    • 将反斜线视为转义字符-选中此复选框可指定将模式中可能包含的任何反斜线字符视为转义字符。
    • 索引 - 用户分配的索引值,介于 1 到 4294967290 之间。
  5. 验证您输入的字符是否正确,然后单击“添加”。
  6. 重复步骤 4 和 5 以添加更多模式,然后单击“创建”。

配置动态模式集

使用 CLI 配置动态模式集

在命令提示符下,键入以下命令:

  1. 创建图案集。

    add policy patset <name> - dynamic yes

  2. 将模式集绑定到模式集。

    bind patset <name> <string>

  3. 添加策略并使用表达式代替模式集名称。

    add responder policy <name> <rule> <action>

  4. 验证配置。

    show patset -dynamicOnly

使用 CLI 配置动态模式集的示例

将 compa_Pat 和 Compb_Pat 创建为两个动态模式集。

add policy patset CompA_pat -dynamic yes
bind policy patset CompA_pat stringA
add policy patset CompB_pat -dynamic yes
bind policy patset CompB_pat string B
<!--NeedCopy-->

添加带有动态派生模式集名称的表达式的策略:

add responder policy samplepolicy1 http.req.hostname.contains_any("Comp" + http.req.url.path.get(1) + "_pat") reset

请注意,http://www.citrix.com/A/home.htmlhttp://www.google.com/B/test.html 是传入 URL。根据传入的 URL,表达式 “Comp” + http.req.url.path.get(1) + “_pat” 在运行时动态确定模式集,即 CompA_pat 或 CompB_pat。您无需为 CompA_pat 和 CompB_pat 创建两个单独的策略。

使用 show 命令验证配置:

> show patset -dynamicOnly
1) Patset: CompA_pat
2) Patset: CompB_pat
 Done
<!--NeedCopy-->

使用 GUI 配置动态模式集

  1. 导航到 AppExpert > 模式集
  2. 单击“添加”打开“创建模式集”对话框。
  3. 名称文本框中指定数据集的名称。
  4. 单击“插入”,然后在“模式”字段中指定模式。(可选)为索引指定一个值。索引是用户分配的值,介于 1 到 4294967290 之间。
  5. 验证您输入的字符是否正确,然后单击“插入”。
  6. 重复步骤 4 和 5 以添加更多图案。
  7. 选中“动态”复选框,然后单击“创建”。
  8. 导航到 AppExpert > 响应程序 > 策略 > 添加
  9. 创建可以派生模式集的表达式。
  10. 填写其他必填字段,然后单击“创建”。

设置、取消设置或移除动态模式集

要将非默认模式设置为动态,请执行以下操作:

> set patset <name> -dynamic yes

示例:

> set patset CompA_pat -dynamic yes
 Done
<!--NeedCopy-->

要取消设置非默认模式,请将其设置为动态

> unset patset <name> -dynamic

示例:

> unset patset CompA_pat -dynamic
Warning: [Dynamic attribute turned off. Expressions using this patset or dataset dynamically will not work.]
 Done
<!--NeedCopy-->

移除动态模式集

> rm patset <name>

示例:

> rm patset CompA_pat
Warning: [Dynamic patset or dataset removed. Expressions using this patset or dataset dynamically will not work.]
 Done
<!--NeedCopy-->

注意:

取消设置或移除动态模式集时,使用此模式集的表达式不起作用。

配置基于文件的模式集

NetScaler 设备支持基于文件的模式集。

使用 CLI 配置基于文件的模式集

在命令提示符下,键入以下命令:

  • 将新的模式集文件导入 NetScaler 设备。

     import policy patsetfile <src> <name> -delimiter <char> -charset <ASCII | UTF_8>
     <!--NeedCopy-->
    

    示例:

     import policy patsetfile local:test.csv clientids_list –delimiter ,
     <!--NeedCopy-->
    

    您可以从本地设备、HTTP 服务器或 FTP 服务器导入文件。要从本地设备添加文件,该文件必须位于 /var/tmp 位置。

  • 向数据包引擎添加模式集文件。

     add policy patsetfile <patset filename>
     <!--NeedCopy-->
    

    示例:

     add policy patsetfile clientids_list
     <!--NeedCopy-->
    
  • 更新 NetScaler 设备上的现有模式集文件。

     update policy patsetfile <patset filename>
     <!--NeedCopy-->
    

    示例:

     update policy patsetfile clientids_list
     <!--NeedCopy-->
    
  • 将模式绑定到模式集。

     add policy patset <patset name> -patsetfile <patset filename>
     <!--NeedCopy-->
    

    示例:

     add policy patset clientid_patset -patsetfile clientids_list
     <!--NeedCopy-->
    
  • 验证配置。

     show policy patsetfile clientids_list
    
     Name: clientids_list
     Patset Name: clientid_patset
     Number of Imported Patterns: 8
     Number of Bound Patterns: 8
     (All the patterns bound successfully)
    
     Done
     <!--NeedCopy-->
    

使用 GUI 配置基于文件的模式集

  1. 导航到 AppExpert-> 模式集文件

  2. 在“导入”窗格中,单击“导入”。

  3. 在“配置策略 Patset 文件”页中,选择要导入的文件,然后单击“确定”。

  4. 选择导入的文件,然后单击“添加”。

  5. 在“创建策略 Patset 文件”页面中,输入详细信息,然后单击“创建”以添加策略模式集。

配置模式集