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地址 类型 港口
磅的虚拟服务器 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服务器进行负载均衡,必须设置“递归可用”选项。通过这个选项,RA位在来自DNS虚拟服务器的DNS应答中被设置为ON。

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

创建DNS服务

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

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

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

配置DNS代理设置以使用TCP

有些客户端使用UDP (User Datagram Protocol)进行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值,新的TTL值将反映在同一域名和类型的所有记录中。默认的TTL值是3600秒。最小值为0,最大值为604800。如果DNS表项的TTL值小于最小值或大于最大值,则分别保存为最小值或最大值。

通过CLI命令指定最小和最大TTL

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

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

例子:

> set dns parameter -minTTL 1200 -maxTTL 1800 Done > show dns parameter dns参数:dns retries: 5 Minimum TTL: 1200 Maximum TTL: 1800…完成> < !——NeedCopy >

使用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.

通过CLI命令,指定单个客户端连接允许并发的最大DNS请求数

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

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

例子:

> set dns parameter -maxPipeline 1000 Done > show dns parameter dns参数:dns重试:5 . .最大DNS管道请求:1000已完成

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

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