ADC

域名系统

注意: 自版本 13.0 内部版本 41.x 起,处于 ADNS 和代理模式的 Citrix ADC 设备完全符合 2019 年 DNS 标志日的要求。

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

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

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 还允许缓存域的负响应。负响应表示不存在有关请求的域的信息,或者服务器无法为查询提供答案。此信息的存储称为逆向缓存。逆向缓存有助于加快对域中查询的响应速度,还可以有选择地提供记录类型。

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

  • NXDOMAIN 错误消息 - 如果本地缓存中存在负响应,Citrix ADC 将返回错误消息 (NXDOMAIN)。如果响应不在本地缓存中,则查询将转发到服务器,服务器将向 Citrix ADC 返回 NXDOMAIN 错误。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 操作系统的 shell 提示符下进行的 DNS 查找失败,因为 /etc/resolv.conf 文件中的条目指向 127.0.0.2 IP 地址。

设备的 CLI 中不能使用以下命令:

-  host
-  dig
-  getent/MIP
-  nslookup
<!--NeedCopy-->

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

CLI 配置

在命令提示符下,键入:

add dns nameServer <Name_Server_IP_Address>
add dns suffix <DNS_Suffix>
<!--NeedCopy-->

要验证配置,请键入:

show dns nameServer
show dns suffix
<!--NeedCopy-->

要测试 DNS 解析,请键入:

show dns addrec <Host_Name>
<!--NeedCopy-->

GUI 配置

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

轮询 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
<!--NeedCopy-->

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

  add dns nsrec abc.com. ns1
<!--NeedCopy-->

当 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
<!--NeedCopy-->

在第二个 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
<!--NeedCopy-->

在第三个 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
<!--NeedCopy-->
域名系统