Citrix ADC

将Citrix ADC设备配置为DNS代理服务器

作为DNS代理服务器,ADC设备可以作为单个DNS服务器或一组DNS服务器的代理。下面的示例拓扑图说明了请求和响应的流。

图1。Citrix ADC作为DNS代理

NetScaler作为DNS代理

默认情况下,Citrix ADC设备缓存来自DNS名称服务器的响应。当设备接收到DNS查询时,它将在其缓存中检查所查询的域。如果查询域的地址存在于缓存中,Citrix ADC将相应的地址返回给客户端。否则,它将查询转发到DNS名称服务器,该服务器检查地址的可用性并将其返回给Citrix ADC。然后Citrix ADC将地址返回给客户端。

对于之前缓存过的域的请求,Citrix ADC从缓存中提供该域的Address记录,而不需要查询配置的DNS服务器。

当记录的生存时间(TTL)值达到配置值时,设备将丢弃存储在其缓存中的记录。请求过期记录的客户端必须等待,直到Citrix ADC从服务器检索到该记录并更新其缓存。为了避免这种延迟,Citrix ADC通过在记录过期之前从服务器检索记录主动更新缓存。

下表列出了需要在Citrix ADC上配置的实体的示例名称和值。

表1。DNS代理实体配置举例

实体类型 的名字 IP地址 类型 港口
LB虚拟服务器 Vserver-DNS-1 10.102.29.40 DNS 53
服务 Service-DNS-1 10.102.29.50 DNS 53
服务 Service-DNS-2 10.102.29.51 DNS 53

下图显示了一个DNS Proxy的实体和要在Citrix ADC上配置的参数值。

图2。DNS代理实体模型

DNS代理实体模型

请注意

在配置DNS代理特性之前,您需要了解负载均衡服务和虚拟服务器的配置方法。

创建负载均衡虚拟服务器

在Citrix ADC上配置DNS Proxy,需要配置DNS类型的负载均衡虚拟服务器。如果要配置DNS虚拟服务器以负载均衡一组支持递归查询的DNS服务器,必须设置“递归可用”选项。使用此选项,在DNS虚拟服务器的DNS应答中将RA位设置为ON。

有关创建负载均衡虚拟服务器的说明,请参见负载平衡

创建DNS服务

创建DNS类型的负载均衡虚拟服务器后,还需要创建DNS服务。您可以对DNS服务进行添加、修改、启用、禁用和移除操作。有关创建DNS服务的说明,请参见负载平衡

将负载均衡虚拟服务器与DNS服务绑定

DNS Proxy的配置需要在负载均衡虚拟服务器上绑定DNS服务。有关将服务绑定到负载均衡虚拟服务器的说明,请参见负载平衡

将DNS代理设置配置为使用TCP

一些客户端使用用户数据报协议(UDP)进行DNS通信。UDP指定的最大报文大小为512字节。当负载长度超过512字节时,客户端必须使用TCP协议。当客户端向Citrix ADC设备发送DNS查询时,该设备将查询转发到其中一个名称服务器。如果响应对于UDP包太大,名称服务器将在其对Citrix ADC的响应中设置截断位。截断位表示响应对于UDP来说太大,客户端必须通过TCP连接发送查询。ADC设备在截断位完好无损的情况下将响应中继到客户端。它等待客户端在53端口上与DNS负载均衡虚拟服务器的IP地址发起TCP连接。客户端通过TCP连接发送请求。然后,Citrix ADC设备将请求转发到名称服务器,并将响应中继到客户端。

要将Citrix ADC配置为对DNS使用TCP协议,必须配置负载均衡虚拟服务器和服务,两者都是DNS_TCP类型。您可以配置DNS_TCP类型的监视器来检查服务的状态。有关创建DNS_TCP虚拟服务器、服务和监视器的说明,请参见负载平衡

为了主动更新记录,Citrix ADC使用到服务器的TCP连接来检索记录。

重要的

若要将Citrix ADC配置为使用UDP进行DNS,且仅当UDP的有效负载长度超过512字节时才使用TCP,则需要同时配置DNS和DNS_TCP服务。DNS_TCP服务的IP地址必须与DNS服务的IP地址保持一致。

配置DNS表项的存活时间

对于具有相同域名和记录类型的所有DNS记录,生存时间是相同的。如果其中一条记录的TTL值被更改,则新值将反映在相同域名和类型的所有记录中。缺省TTL值为3600秒。最小值为0,最大值为604800。如果DNS表项的TTL值小于最小值或大于最大值,则保存为最小值或最大值。

请通过CLI命令配置最小生存时间和最大生存时间

在Citrix ADC命令提示符下,输入以下命令来指定最小和最大TTL并验证配置:

- set dns parameter [- minttl ] [- maxttl ] - show dns parameter 

例子:

> set dns parameter -minTTL 1200 -maxTTL 1800 Done > show dns parameter dns parameters: dns retries: 5 Minimum TTL: 1200 Maximum TTL: 1800…完成> 

使用GUI指定最小和最大TTL

  1. 导航到流量管理> DNS
  2. 在“详细信息”窗格的“设置”下,单击“更改DNS设置”。
  3. 在“配置DNS参数”对话框的“TTL”中,在“最小生存时间”和“最大生存时间”文本框中,分别输入最小生存时间和最大生存时间(以秒为单位),然后单击“确定”。

注意:当TTL过期时,该记录将从缓存中删除。Citrix ADC主动联系服务器,在DNS记录过期前获取DNS记录。

刷新DNS记录

可以删除缓存中存在的所有DNS记录。例如,您可能希望在修改后重新启动服务器时刷新DNS记录。

该任务指导管理员通过CLI删除所有代理记录

在Citrix ADC命令提示符下,输入:

刷新dns proxyRecords

通过图形界面删除所有代理记录

  1. 导航到流量管理> DNS >记录
  2. 在详细信息窗格中,单击刷新代理记录。

添加DNS资源记录

您可以将DNS记录添加到将Citrix ADC设备配置为DNS代理服务器的域。有关添加DNS记录的信息,请参见配置DNS资源记录

移除负载均衡DNS虚拟服务器

有关删除负载均衡虚拟服务器的信息,请参见负载平衡

限制客户端连接上并发DNS请求的数量

可以限制单个客户端连接上并发DNS请求的数量,该数量由< clientip:端口> - < vserver ip:端口>元组。并发DNS请求是Citrix ADC设备转发给名称服务器并等待响应的请求。通过限制客户端连接上的并发请求数,可以在恶意客户端试图通过发送大量DNS请求来进行分布式拒绝服务(DDoS)攻击时保护名称服务器。当达到客户端连接的限制时,该连接上的后续DNS请求将被丢弃,直到未完成的请求数低于限制。此限制不适用于Citrix ADC设备从其缓存提供的请求。

缺省值为255。在大多数情况下,这个默认值就足够了。如果名称服务器在正常运行条件下同时处理许多DNS请求,则可以指定一个较大的值或0(0)。0将禁用此特性,并指定在单个客户端连接上不限制允许的DNS请求的数量。该参数是一个全局参数,适用于在Citrix ADC设备上配置的所有DNS虚拟服务器。缺省值为255。在大多数情况下,这个默认值就足够了。如果名称服务器在正常运行条件下同时处理许多DNS请求,则可以指定一个较大的值或0(0)。0将禁用此特性,并指定在单个客户端连接上不限制允许的DNS请求的数量。该参数是一个全局参数,适用于在Citrix ADC设备上配置的所有DNS虚拟服务器。缺省值为255。在大多数情况下,这个默认值就足够了。 If the name servers serve many concurrent DNS requests under normal operating conditions, you can specify either a large value or a value of zero (0). A value of 0 disables this feature and specifies that there is no limit to the number of DNS requests that are allowed on a single client connection. This parameter is a global parameter and applies to all the DNS virtual servers that are configured on the Citrix ADC appliance.

2 .使用CLI命令配置单个客户端连接允许并发DNS请求的最大个数

在命令提示符下,键入以下命令来指定在单个客户端连接上允许并发DNS请求的最大数量,并验证配置:

- set dns参数- maxpipeline  - show dns参数

例子:

> set dns parameter -maxPipeline 1000 Done > show dns parameter dns parameters: dns retries: 5 . .最大DNS管道请求:1000 Done 

使用GUI指定单个客户端连接上允许并发的最大DNS请求数

  1. 导航到流量管理> DNS
  2. 在详细信息窗格中,单击“更改DNS设置”。
  3. 2 .在“配置DNS参数”对话框中指定“最大DNS管道请求”。
  4. 单击OK。