域名系统

注意: 从版本 13.0 Build 41.x 中,处于 ADNS 和代理模式的 Citrix ADC 设备完全投诉 DNS 标志日 2019。

您可以将 Citrix ADC 设备配置为作为域的权威域名服务器(ADNS 服务器)。添加属于设备具有权威性的域的 DNS 资源记录并配置资源记录参数。您还可以将设备配置为代理 DNS 服务器,负载平衡网络内部或外部的 DNS 名称服务器场。将设备配置为最终解析器和转发器。您可以配置 DNS 后缀,以便在未配置完全限定域名时启用名称解析。设备还支持检索属于域的所有记录的 DNS ANY 查询。

您可以将设备配置为同时作为一个域的权威 DNS 服务器和另一个域的 DNS 代理服务器。将设备配置为某个区域的权威 DNS 服务器或 DNS 代理服务器时,您可以使该设备对超出为用户数据报协议 (UDP) 指定的大小限制的响应大小使用 TCP。

DNS 在 Citrix ADC 上的工作原理

您可以将 Citrix ADC 设备配置为 ADNS 服务器、DNS 代理服务器、最终解析器和转发器。您可以在 Citrix ADC 设备上添加 DNS 资源记录,包括以下记录:

  • 服务 (SRV) 记录
  • IPv6 (AAAA) 记录
  • 地址 (A) 记录
  • 邮件交换 (MX) 记录
  • 规范名称 (CNAME) 记录
  • 指针 (PTR) 记录
  • 授权开始 (SOA) 记录
  • 文本 (TXT) 记录

此外,您还可以配置 Citrix ADC 以便对外部 DNS 名称服务器进行负载平衡。

Citrix ADC 设备可以配置为域的权限。为域添加有效的 SOA 和 NS 记录。

ADNS 服务器是包含有关区域的完整信息的 DNS 服务器。

要将 Citrix ADC 设备配置为区域的 ADNS 服务器,必须添加 ADNS 服务,然后配置该区域。为此,您可以添加域的有效 SOA 和 NS 记录。当客户端发送 DNS 请求时,Citrix ADC 设备会搜索已配置的资源记录中的域名。您可以将 ADNS 服务配置为与 Citrix ADC 全局服务器负载平衡 (GSLB) 功能一起使用。

您可以通过将子域的 NS 记录添加到父域的区域来委派子域。然后,您可以通过为每个子域名服务器添加“粘合记录”,使 Citrix ADC 成为子域的权威性。如果配置了 GSLB,Citrix ADC 将根据其配置做出 GSLB 负载平衡决策,并使用所选虚拟服务器的 IP 地址进行响应。下图显示了 ADNS GSLB 设置和 DNS 代理设置中的实体。

图 1. DNS 代理实体模型

DNS 实体模型

Citrix ADC 设备可以作为 DNS 代理。DNS 记录的缓存是 DNS 代理的一项重要功能,默认情况下在 Citrix ADC 设备上启用。缓存使 Citrix ADC 设备能够为重复转换提供快速响应。创建负载平衡 DNS 虚拟服务器和 DNS 服务,然后将这些服务绑定到虚拟服务器。

Citrix ADC 提供两种选项,即最短生存时间 (TTL) 和最大 TTL,用于配置缓存数据的生命周期。缓存的数据按照您的设置为这两个选项指定的超时。Citrix ADC 检查来自服务器的 DNS 记录的 TTL。如果 TTL 小于配置的最小 TTL,则将替换为配置的最小 TTL。如果 TTL 大于配置的最大 TTL,则将替换为配置的最大 TTL。

Citrix ADC 还允许缓存域的负面响应。否定响应表示有关请求域的信息不存在,或者服务器无法为查询提供答案。此信息的存储称为负缓存。负面缓存有助于加快对域上查询的响应速度,并且可以选择提供记录类型。

负面响应可以是以下情况之一:

  • NXDomains 错误消息-如果本地缓存中存在负响应,Citrix ADC 将返回错误消息 (NXDomains)。如果响应不在本地缓存中,则查询将转发到服务器,并且服务器将 NXDomains 错误返回到 Citrix ADC。Citrix ADC 在本地缓存响应,然后向客户端返回错误消息。
  • NODATA 错误消息-如果查询中的域名有效但给定类型的记录不可用,Citrix ADC 将发送 NODATA 错误消息。

Citrix ADC 支持对 DNS 请求进行递归解析。在递归解析中,解析程序(DNS 客户端)将递归查询发送到域名服务器。如果查询的名称服务器对域具有权威性,则会使用请求的域名进行响应。否则,Citrix ADC 会递归查询名称服务器,直到找到请求的域名。

您必须先启用递归查询选项,然后才能应用该选项。您还可以设置 DNS 查找失败时 DNS 解析程序必须发送解析请求(DNS 重试)的次数。

您可以将 Citrix ADC 配置为 DNS 转发器。转发器将 DNS 请求传递给外部名称服务器。Citrix ADC 允许您添加外部名称服务器,并为网络外的域提供名称解析。Citrix ADC 还允许您将名称查找优先级设置为 DNS 或 Windows Internet 名称服务 (WINS)。

使 ADC 设备能够使用 DNS 将主机名解析为各自的 IP 地址

注意: 您需要 SSH 实用程序才能访问设备的命令行界面 (CLI)。

默认情况下,ADC 设备无法将主机名解析为各自的 IP 地址。完成以下任务以在设备上启用名称解析:

  1. 定义名称服务器。
  2. 定义 DNS 后缀。

需要注意的事项

从 CLI 执行 DNS 查找。从 FreeBSD 操作系统的外壳提示符中的 DNS 查找失败,因为 /etc/解析ver.conf 文件中的条目指向 127.0.0.2 IP 地址。

以下命令在设备的 CLI 中不可用:

-  host
-  dig
-  getent/MIP
-  nslookup

如果设备无法在其 SNIP 地址上 ping DNS 服务器,则服务器状态显示为“关闭”。当设备位于防火墙后面时,成功 ping 非常重要。

CLI 配置

在命令提示窗口中,键入:

add dns nameServer <Name_Server_IP_Address>
add dns suffix <DNS_Suffix>

要验证配置,请键入:

show dns nameServer
show dns suffix

要测试 DNS 解析,请键入:

show dns addrec <Host_Name>

GUI 配置

  1. 导航到流量管理 > DNS > 名称服务器 > 添加
  2. 在“创建名称服务器”对话框中,输入名称服务器 IP 地址,然后单击“创建”。
  3. 导航到流量管理 > DNS > DNS 后缀 > 添加
  4. 在“创建 DNS 后缀”对话框中,输入要用于所有主机查询的 DNS 后缀(例如 example.com),然后单击“创建”。

循环 DNS

当客户端发送 DNS 请求以查找 DNS 资源记录时,它会收到解析为 DNS 请求中名称的 IP 地址列表。然后,客户端使用列表中的一个 IP 地址,通常是第一个记录或 IP 地址。因此,单个服务器用于缓存的总 TTL,并且在到达许多请求时会重载。

Citrix ADC 收到 DNS 请求时,它会通过循环方法更改 DNS 资源记录列表的顺序进行响应。此功能称为轮询 DNS。循环在数据中心之间平均分配流量。Citrix ADC 会自动执行此功能。您不必配置此行为。

功能概述

如果 Citrix ADC 配置为 ADNS 服务器,则会按照配置记录的顺序返回 DNS 记录。将 Citrix ADC 配置为 DNS 代理时,将按照从服务器接收记录的顺序返回 DNS 记录。缓存中存在的记录顺序与从服务器接收记录的顺序相匹配。

然后,Citrix ADC 以循环方式更改 DNS 响应中记录的发送顺序。第一个响应包含序列中的第一个记录,第二个响应包含序列中的第二个记录,并且顺序以同一序列继续。因此,请求相同名称的客户端可以连接到不同的 IP 地址。

循环 DNS 示例

作为循环 DNS 的示例,请考虑已添加的 DNS 记录,如下所示:

  add dns addRec ns1 1.1.1.1  add dns addRec ns1 1.1.1.2  add dns addRec ns1 1.1.1.3  add dns addRec ns1 1.1.1.4

域,abc.com 链接到 NS 记录,如下所示:

  add dns nsrec abc.com. ns1

当 Citrix ADC 收到有关 ns1 A 记录的查询时,地址记录将以循环方法提供,如下所示。在第一个 DNS 响应中,1.1.1.1 作为第一条记录:

  ns1.                    1H IN A         1.1.1.1  ns1.                    1H IN A         1.1.1.2  ns1.                    1H IN A         1.1.1.3  ns1.                    1H IN A         1.1.1.4

在第二个 DNS 响应中,第二个 IP 地址 1.1.1.2 作为第一条记录:

  ns1.                    1H IN A         1.1.1.2  ns1.                    1H IN A         1.1.1.3  ns1.                    1H IN A         1.1.1.4  ns1.                    1H IN A         1.1.1.1

在第三个 DNS 响应中,第三个 IP 地址 1.1.1.2 作为第一条记录:

  ns1.                    1H IN A         1.1.1.3  ns1.                    1H IN A         1.1.1.4  ns1.                    1H IN A         1.1.1.1  ns1.                    1H IN A         1.1.1.2