重写特性的DNS支持
您可以配置重写功能来修改DNS请求和响应,您会为HTTP或TCP请求和响应。您可以使用重写来管理DNS请求的流程,并在标题中做出必要的修改,或在回答部分。例如,如果DNS响应并没有在头标志AA位设置,您可以使用重写设置DNS应答AA位,并将其发送给客户端。
DNS表达式
在重写配置中,您可以使用以下NetScaler表达式来引用DNS请求或响应的各种部分:
域名绑定点
下面结合全球的点都可以包含DNS表达式政策。
绑定点 | 描述 |
---|---|
DNS_REQ_OVERRIDE | 覆盖请求策略队列。 |
DNS_REQ_DEFAULT | 标准请求策略队列。 |
DNS_RES_OVERRIDE | 覆盖响应策略队列。 |
dns_res_default. | 标准响应策略队列。 |
除了默认的绑定点,你可以创建类型DNS_REQ或DNS_RES和BIND DNS政策对他们的政策标签。
改写为DNS操作类型
- replace_dns_answer_section- 此动作替换的DNS政策的定义表达了DNS的答案部分。
- replace_dns_header_field.- 在DNS请求中检查操作码类型。返回true或false,指示DNS请求中的操作码类型是否与指定的操作码类型匹配。此操作将DNS标题部分替换为DNS策略中的已定义表达式。
配置DNS的重写策略
以下过程使用NetScaler命令行配置重写操作和策略并将策略绑定到特定于重写的全局绑定点。
配置重写操作和策略,并绑定DNS的策略
在命令提示符下,键入以下命令:
添加重写操作
对于
,替换为新动作的名称。名称的长度可以是1到127个字符,并且可以包含字母,数字,连字符( - )和下划线(_)符号。对于 ,指定为DNS表达式提供的重写操作类型。 添加重写策略
<规则> 对于
,为您的新政策替代的名称。对于 ,名称可以是长度为1〜127个字符,并且可以包含字母,数字,连字符( - ),和下划线(_)符号。对于 ,替换刚刚创建的动作名称。 绑定重写全局
-type 对于
,替换刚刚创建的策略的名称。对于<优先级>,指定策略的优先级。对于 ,替换其中一个重写 - 特种全局绑定点。
例子:
配置DNS request的AA位为负载均衡虚拟服务器。
以下命令配置NetScaler设备以充当权威DNS服务器,用于其服务的所有查询。
添加重写操作set_aa replace_dns_header_field dns.req.header.flags.set(aa)添加重写策略pol!dns.req.header.flags.is_set(aa)set_aa bind重写全局pol 100 -type dns_res_override
修改响应答案和标题部分。
如果与NX域的服务器响应,您可以设置重写动作,以取代指定IP地址的响应。一个NOPOLICY重写使您能够调用肠内银行不处理表达式(规则)。此项目是不包含规则,但引导进入一个政策标签或虚拟服务器的特定政策性银行哑政策。
添加重写操作set_aa_res replace_dns_header_field“dns.res.header.flags.set(aa)”添加重写操作modify_nxdomain_res replace_dns_answer_section“dns.new_rrs_s_a(\”10.102.218.160 \“300)”添加重写策略set_res_aa true set_a_res添加添加重写策略modify_answer“dns.res.header.rcode.eq(nxdomain)&& dns.res.question.type.eq(a)”modify_nxdomain_res添加重写重写policylabel modify_nodata dns_res绑定重写policylabel modify_nodata modify_answer 10端绑定重写policylabel modify_nodata set_res_aa 11端绑定lbvserver v1-policyname nopolicy-rewrite-proirity 11-gotokiorityexpression ext -type response - invoke policylabel modify_nodata
限制:
- 只有在NetScaler设备配置为DNS代理服务器和有缓存未命中改写政策进行评估。
- 如果标题中的递归(RA)标志设置为YES,则不会在重写中修改RA标志。
- 如果在报头中的RA标志被设置为YES,在报头中的CD标志不管任何重写动作的修改。