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会从缓存中提供域的地址记录,而无需查询配置的DNS服务器。

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

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

表 1.DNS代理实体配置示例

实体类型 名称 IP地址 类型 端口
Lb虚拟服务器 虚拟服务器-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代理的实体以及要在Citrix ADC上配置的参数值。

图 2.DNS代理实体模型

DNS代理实体模型

注意

要配置DNS代理功能,您需要知道如何配置负载平衡服务和虚拟服务器。

创建负载平衡虚拟服务器

要在Citrix ADC上配置DNS代理,请配置DNS类型的负载平衡虚拟服务器。若要将DNS虚拟服务器配置为负载平衡一组支持递归查询的DNS服务器,必须设置“递归可用“选项。使用此选项,ra位在DNS虚拟服务器的DNS回复中设置为开启。

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

创建DNS服务

创建DNS类型的负载平衡虚拟服务器后,必须创建DNS服务。您可以添加,修改,启用,禁用和删除DNS服务。有关创建DNS服务的说明,请参阅负载平衡

将负载平衡虚拟服务器绑定到DNS服务

要完成DNS代理配置,必须将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和DNSS_TCP服务。Dnss_tcp服务的IP地址必须与DNS服务的IP地址相同。

为DNS条目配置生存时间值

TTL对于具有相同域名和记录类型的所有DNS记录都是相同的。如果更改其中一条记录的TTL值,则新值将反映在同一域名和类型的所有记录中。默认TTL值为3600秒。最小值为 0,最大值为 604800。如果DNS条目的TTL值小于或大于最大值,则分别将其另存为最小值或最大TTL值。

使用cli指定最小和最大tl

在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指定最小和最大tl

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

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

刷新DNS记录

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

使用cli删除所有代理记录

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

刷新dns proxyRecords

使用GUI删除所有代理记录

  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将禁用此功能,并指定单个客户端连接上允许的DNS请求数量没有限制。此参数是全局参数,适用于Citrix ADC设备上配置的所有DNS虚拟服务器。此参数的默认值为 255。在大多数情况下,此默认值就足够了。如果名称服务器在正常运行条件下处理许多并发DNS请求,则可以指定较大的值或值为零(0)。值为0将禁用此功能,并指定单个客户端连接上允许的DNS请求数量没有限制。此参数是全局参数,适用于Citrix ADC设备上配置的所有DNS虚拟服务器。此参数的默认值为 255。在大多数情况下,此默认值就足够了。如果名称服务器在正常运行条件下处理许多并发 DNS 请求,则可以指定较大的值或值为零 (0)。值为 0 将禁用此功能,并指定单个客户端连接上允许的 DNS 请求数量没有限制。此参数是全局参数,适用于 Citrix ADC 设备上配置的所有 DNS 虚拟服务器。

使用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. 在"配置DNS参数"对话框中,为"最大DNS管道请求"指定值。
  4. 单击ok(确定)。