Citrix ADC

响应程序功能的 DNS 支持

您可以将响应程序功能配置为响应 DNS 请求,就像响应 HTTP 和 TCP 请求一样。例如,您可以将其配置为通过 UDP 发送 DNS 响应,并确保客户端的 DNS 请求通过 TCP 发送。许多 Citrix ADC 表达式支持检查请求中的 DNS 报头。这些表达式检查特定的标题字段并发送适当的响应。

  • DNS 表达式。在响应程序配置中,可以使用以下 Citrix ADC 表达式来引用 DNS 请求的各个部分:

    表达式 说明
    DNS.NEW_RESPONSE 根据请求创建新的空 DNS 响应。
    DNS.NEW_RESPONSE <AA, TC, rcode> 根据指定的参数创建新的 DNS 响应。
  • DNS 绑定点。以下全局绑定点可用于包含 DNS 表达式的策略。

    绑定点 说明
    DNS_REQ_OVERRIDE 优先级/覆盖请求策略队列。
    DNS_REQ_DEFAULT 标准请求策略队列。

    除了默认绑定点之外,您还可以创建 DNS 类型的策略标签并将 DNS 策略绑定到这些标签。

配置 DNS 的响应程序策略

以下过程使用 Citrix ADC 命令行配置响应程序操作和策略,并将策略绑定到特定于响应程序的全局绑定点。

要将响应程序配置为响应 DNS 请求,请执行以下操作:

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

  1. add responder action <actName> <actType>

    对于 <actname>,替换新操作的名称。名称的长度可以是 1 到 127 个字符,并且可以包含字母、数字、连字符 (-) 和下划线 (_) 符号。对于 <actType>, 替换响应程序操作类型 respondWith

  2. add responder policy <polName> <rule> <actName>

    对于 <polname>,请替换新策略的名称。对于<actname>,名称的长度可以为 1 到 127 个字符,并且可以包含字母、数字、连字符 (-) 和下划线 (_) 符号。对于<actname>,替换刚创建的操作的名称。

  3. bind responder policy <polName> <priority> <nextExpr> -type <bindPoint>

    对于<bindPoint>,指定特定于响应程序的全局绑定点之一。对于<polName>,替换刚创建的策略的名称。对于<priority>,指定策略的优先级。

示例配置-通过 TCP 强制执行所有 DNS 请求:

要通过 TCP 强制执行所有 DNS 请求,请创建一个响应程序操作,该操作将 TC 位和 rcode 设置为 NOERRR。

> add responder action resp_act_set_tc_bit respondwith DNS.NEW_RESPONSE(true, true, NOERROR)
Done

> add responder policy enforce_tcp  dns.REQ.TRANSPORT.EQ(udp)  resp_act_set_tc_bit
Done

>bind lb vserver dns_udp –policyName  enforce_tcp   -type request –priority 100
Done

响应程序功能的 DNS 支持