Citrix ADC

DNS支持重写功能

您可以配置重写功能来修改DNS请求和响应,就像修改HTTP或TCP请求和响应一样。您可以使用重写来管理DNS请求流,并在报头或应答部分中进行必要的修改。例如,如果DNS响应的报头标志中没有设置AA位,可以使用rewrite设置DNS响应中的AA位,然后发送给客户端。

DNS表达式

在重写配置中,您可以使用以下Citrix ADC表达式来引用DNS请求或响应的各个部分:

看到表达和描述

DNS绑定点

以下全局绑定点可用于包含DNS表达式的策略。

绑定点 描述
DNS_REQ_OVERRIDE 覆盖请求策略队列。
DNS_REQ_DEFAULT 标准请求策略队列。
DNS_RES_OVERRIDE 覆盖响应策略队列。
DNS_RES_DEFAULT 标准响应策略队列。

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

重写DNS的动作类型

  • replace_dns_answer_section-该动作将DNS应答部分替换为DNS策略中定义的表达式。
  • replace_dns_header_field-检查DNS请求中的操作码类型。返回True或False,表示DNS请求中的操作码类型是否与指定的操作码类型匹配。该操作将DNS报头部分替换为DNS策略中定义的表达式。

配置DNS重写策略

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

配置“重写动作”和“重写策略”,并为DNS绑定策略

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

  1. 添加重写动作

    < actname >,为新操作替换一个名称。长度为1 ~ 127个字符,可以包含字母、数字、“-”和“_”。为< actType >,指定为DNS表达式提供的重写操作类型。

  2. 添加重写策略

    < polname >,为您的新策略替换一个名称。为< actname >,长度为1 ~ 127个字符,可以包含字母、数字、“-”和“_”。为< actname >,替换您刚刚创建的动作的名称。

  3. bind rewrite global -type . type . type: bindPoint

    < polName >,替换您刚刚创建的策略的名称。为< >优先,指定策略的优先级。为< bindPoint >,替换一个特定于重写的全局绑定点。

例子

设置DNS请求的AA位为负载均衡虚拟服务器

以下命令将Citrix ADC设备配置为它所服务的所有查询的权威DNS服务器。

dns.req.header.flags.is_set(aa) set_aa绑定重写全局pol 100 -type dns_res_override 

修改响应答案和标题部分

如果服务器响应的是NX域,则可以设置重写动作,将响应替换为指定的IP地址。NOPOLICY-REWRITE使您能够调用外部银行而无需处理表达式(规则)。此条目是一个虚拟策略,它不包含规则,但将条目指向策略标签或虚拟服务器特定的策略银行。

添加重写动作set_aa_res replace_dns_header_field "dns.res.header.flags.set(aa)"添加重写动作modify_nxdomain_res replace_dns_answer_section "dns.new_rrset_a(\"10.102.218.160\",300)"添加重写策略set_res_aa true set_aa_res add添加重写策略modify_answer "dns.RES.HEADER.RCODE.EQ(nxdomain) && dns.res. questions . type . eq (A)" modify_nxdomain_res add rewrite policylabel MODIFY_NODATA dns_res bind rewrite policylabel MODIFY_NODATA modify_answer 10 END绑定重写policylabelMODIFY_NODATA set_res_aa 11 END bind lb vserver v1 -policyName NOPOLICY-REWRITE -priority 11 -gotoPriorityExpression END -type RESPONSE -invoke policylabel MODIFY_NODATA 

限制

  • 只有当Citrix ADC设备被配置为DNS代理服务器并且存在缓存丢失时,才会评估重写策略。
  • 如果报头中的RA (Recursion Available)标志被设置为YES, RA标志将不会在重写中被修改。
  • 如果报头中的RA标志被设置为YES,则不管任何重写操作,报头中的CD标志都将被修改。
DNS支持重写功能