ADC

AppQoE 操作

启用 AppQoE 功能后,您必须配置一个或多个处理请求的操作。

重要:

创建动作不需要特定的单个参数,但必须包含至少一个参数,否则无法创建动作。

使用命令行配置 AppQoE 操作

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

  • add appqoe action <name> [-priority <priority>] [-respondWith (ACS|NS) [<customfile>] [-altContentSvcName <string>] [-altContentPath <string>] [-maxConn <positive_integer>] [-delay <usecs>] [-polqDepth <positive_integer>] [-priqDepth <positive_integer>] [-dosTrigExpression <expression>] [-dosAction ( **SimpleResponse** | **HICResponse** )]
  • show appqoe action

示例

要为中等优先级和最低优先级队列分别配置策略队列深度为 10 和 1000 的优先级队列,请执行以下操作:

> add appqoe action appqoe-act-basic-prhigh -priority HIGH
 Done

> add appqoe action appqoe-act-basic-prmedium -priority MEDIUM -polqDepth 10
 Done

> add appqoe action appqoe-act-basic-prlow -priority LOW -polqDepth 1000
 Done

> show appqoe action

1.       Name: appqoe-act-basic-prhigh
        ActionType: PRIORITY_QUEUING
        Priority: HIGH
        PolicyQdepth: 0
        Qdepth: 0

1.      Name: appqoe-act-basic-prmedium
        ActionType: PRIORITY_QUEUING
        Priority: MEDIUM
        PolicyQdepth: 10
        Qdepth: 0

1.      Name: appqoe-act-basic-prlow
        ActionType: PRIORITY_QUEUING
        Priority: LOW
        PolicyQdepth: 1000
        Qdepth: 0
Done
<!--NeedCopy-->

使用命令行修改现有的 AppQoE 操作

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

  • set appqoe action <name> [-priority <priority>] [-altContentSvcName <string>] [-altContentPath <string>] [-polqDepth <positive_integer>] [-priqDepth <positive_integer>] [-maxConn <positive_integer>] [-delay <usecs>] [-dosTrigExpression <expression>] [-dosAction ( SimpleResponse | HICResponse )]
  • show appqoe action

使用命令行删除 AppQoE 操作

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

  • rm appqoe action <name>
  • show appqoe action

配置 AppQoE 操作的参数

  • 名称。新操作的名称或要修改的现有操作的名称。名称可以以字母、数字或下划线符号开头,可以由一到字母、数字以及连字符 (-)、句点 (.) 英镑 (#)、空格 ()、at 符号 (@)、等号 (=)、冒号 (:) 和下划线 (_) 符号组成。

  • 优先。将请求分配到的优先级队列。当受保护的 Web 服务器或应用程序负载过重且无法接受其他请求时,请指定资源可用时满足等待请求的顺序。选项有:

  1. 高。资源可用后立即满足请求。
  2. 中等。在满足高优先级队列中的所有请求后完成请求。
  3. 低。在满足高优先级和中等优先级队列中的所有请求后完成请求。
  4. 最低的。只有在满足了更高优先级队列中的所有请求之后,才会满足请求。

如果未配置优先级,则默认情况下,NetScaler 设备会将请求分配给优先级最低的队列。

  • respondWith。将 NetScaler 配置为在达到指定阈值时采取指定的响应程序操作。必须与以下设置之一一起使用:

    • ACS: 提供来自备用内容服务的内容。阈值:maxConn(最大连接数)或延迟。
    • NS: 提供来自 NetScaler 的内置响应。阈值:maxConn(最大连接数)或延迟。
    • 不采取任何操作: 不提供任何替代内容。如果达到 maxConn(最大连接数)或延迟阈值,则将连接分配给最低优先级队列。
  • altContentSvcName。如果指定了-responseWith ACS,则为备用内容服务的名称,通常是托管替代内容的 Web 服务器的绝对 URL。

  • altContentPath。如果指定了-responseWith (ACS | NS),则为替代内容的路径。

  • olqDepth。与此操作相关的策略队列的策略队列的策略队列深度阈值。当与此操作相关的策略队列中的连接数增加到指定数量时,后续请求将分配给 LOWEST 策略队列。最小值:1 最大值:4,294,967,294

  • priqDepth。指定优先级队列的策略队列深度阈值。如果与当前操作关联的策略绑定到的虚拟服务器上指定队列中的请求数增加到指定数量,则后续请求将分配给优先级最低的队列。最小值:1 最大值:4,294,967,294

  • MaxConn。可以为匹配策略规则的请求打开的最大连接数。最小值:1 最大值:4,294,967,294

  • 延迟。匹配策略规则的请求的延迟阈值,以微秒为单位。如果匹配请求的延迟时间超过阈值,则 NetScaler 设备将执行指定的操作。如果未指定 ACTION,则设备会将请求分配给优先级最低的队列。最小值:1 最大值:599999,999

  • dosTrigExpression。添加可选的二级检查以触发 DoS 操作。

  • dosAction。当设备确定其或受保护服务器受到 DoS 攻击时应采取的操作。可能的值:简单响应、HiResponse。

这些值指定了 HTTP 质询响应方法,用于验证传入请求的真实性,以缓解 HTTP-DDoS 攻击。

在 HTTP 质询响应生成和验证过程中,AppQoE 使用 cookie 来验证客户端的响应并验证客户端的响应是否真实。发送挑战时,NetScaler 设备会生成两个 cookie:

Header cookie (_DOSQ)。包含特定于客户端的信息,以便 NetScaler 设备可以验证响应。

Body cookie (_DOSH)。用于验证客户端计算机的信息。客户端的浏览器(如果是 HIC,则由用户)计算此 cookie 的值。NetScaler 设备将该值与预期值进行比较以验证客户端。

设备发送到客户端以计算 _DOSH 值的信息基于 DoS 操作配置。

  1. simpleResponse:在这种情况下,NetScaler 设备会拆分该值并生成 JavaScript 代码来合并最终值。能够计算原始值的客户端计算机被视为正品。

  2. HICResponse:在这种情况下,NetScaler 设备会生成两个个位数的数字,并为这些数字生成图像。然后,使用背面补丁框架,设备将这些图像作为 base64 字符串插入。

限制

  1. 这不是一个简单的 CAPTCHA 实现,这就是为什么不使用这个术语的原因。

  2. 验证号码基于 NetScaler 生成的数字,该数字在 120 秒内没有变化。这个数字应该是动态的或特定于客户的。

使用配置实用程序配置 AppQoE 操作

  1. 导航到 App-Expert > AppQoE > 操作
  2. 在详细信息窗格中,执行以下操作之一:
    • 要创建新操作,请单击“添加”。
    • 要修改现有操作,请选择该操作,然后单击 编辑
  3. 在“创建 AppQoE 操作”或“配置 AppQoE 操作”屏幕中,键入或选择参数值。对话框的内容与“配置 AppQoE 操作的参数”中描述的参数相对应,如下所示(星号表示必填参数):
    • 名称- name
    • 操作类型 - respondWith
    • 优先级-优先级
    • 策略队列深度—polqDepth
    • 队列深度— priqDepth
    • DOS 操作—dosAction
  4. 单击 Create(创建)或 OK(确定)。
AppQoE 操作