Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

33.9. DNS 位置

33.9.1. 基于 DNS 的服务发现

基于 DNS 的服务发现是一种进程,客户端使用 DNS 协议在提供特定服务(如 LDAPKerberos )的网络中查找服务器。种典型的操作类型是允许客户端在最接近的网络基础架构中定位身份验证服务器,因为它们可提供更高的吞吐量和更低的网络延迟,从而降低总成本。
服务发现的主要优点是:
  • 不需要为客户端配置专用服务器的名称。
  • DNS 服务器用作策略的中央提供程序。使用相同的 DNS 服务器的客户端有权访问相同的策略,如服务提供商及其首选顺序。
在 IdM 域中,LDAP、Kerberos 和其他服务的 DNS 服务记录(SRV 记录)存在。例如,以下命令查询 DNS 服务器以获取在 IdM DNS 域中提供基于 TCP 的 Kerberos 服务的主机:

例 33.10. DNS 位置独立结果

$ dig -t SRV +short _kerberos._tcp.idm.example.com
0 100 88 idmserver-01.idm.example.com.
0 100 88 idmserver-02.idm.example.com.
输出包含以下信息:
  • 0 (优先级):目标主机的优先级.首选值较低。
  • 100 (权重).为具有相同优先级的条目指定相对权重。如需更多信息,请参阅 RFC 2782 第 3 节
  • 88 (端口号):服务的端口号。
  • 提供服务的主机的规范名称。
在上例中,返回的两个主机名具有相同的优先级和权重。在这种情况下,客户端使用结果列表中的随机条目。
当客户端查询在 DNS 位置配置的 DNS 服务器时,输出会有所不同。对于分配到某个位置的 IdM 服务器,会返回定制值。在以下示例中,客户端查询位置 germany 中的 DNS 服务器:

例 33.11. 基于 DNS Location 的结果

$ dig -t SRV +short _kerberos._tcp.idm.example.com
_kerberos._tcp.germany._locations.idm.example.com.
0 100 88 idmserver-01.idm.example.com.
50 100 88 idmserver-02.idm.example.com.
IdM DNS 服务器自动返回一个 DNS 别名(CNAME),指向一个 DNS 位置特定的 SRV 记录(首选本地服务器)。此 CNAME 记录显示在输出的第一行中。在上例中,主机 idmserver-01.idm.example.com 具有最低的优先级值,因此首选。idmserver-02.idm.example.com 具有更高的优先级,因此仅在首选主机不可用的情况下用作备份。

33.9.2. DNS 位置的部署注意事项

对于对主 IdM DNS 域具有权威的 IdM DNS 服务器,IdM 可以生成特定于位置的 SRV 记录。因为每个 IdM DNS 服务器都会生成特定于位置的 SRV 记录,所以您必须在每个 DNS 位置至少安装一个 IdM DNS 服务器。
客户端与 DNS 位置的关联性仅由客户端收到的 DNS 记录定义。因此,如果客户端执行 DNS 服务发现从 IdM DNS 服务器解析特定于位置的记录,您可以将 IdM DNS 服务器与非 IdM DNS 从属服务器合并,并递归器。
在大多数带有混合 IdM 和非 IdM DNS 服务的部署中,DNS 递归器会使用往返时间指标自动选择最接近的 IdM DNS 服务器。通常,这可确保使用非 IdM DNS 服务器的客户端正在获取最接近的 DNS 位置的记录,从而使用最佳 IdM 服务器集。

33.9.2.1. 生存 DNS 时间(TTL)

客户端可以在区域的配置中设置的大量时间缓存 DNS 资源记录。由于这种缓存,客户端可能无法接收更改,直到生存时间(TTL)值过期。IdM 中的默认 TTL 值为 1 天
如果您的客户端计算机在站点间漫游,您应该调整 IdM DNS 区的 TTL 值。将该值设置为小于客户端在站点之间漫游的时间。这样可确保客户端上缓存的 DNS 条目在重新连接到另一个站点之前过期,从而查询 DNS 服务器来刷新特定位置的 SRV 记录。
有关如何修改 DNS 区的默认 TTL 的详情请参考 第 33.4.2 节 “为主 DNS 区域添加额外的配置”

33.9.3. 创建 DNS 位置

从 Web UI 创建 DNS 位置

  1. 打开 IPA Server 选项卡,然后选择 Topology 子选项卡。
  2. 单击导航栏中的 IPA Locations
  3. 单击位置列表顶部的 Add
  4. 填写位置名称。
  5. 单击 添加 按钮以保存位置。
为要添加的更多位置重复上述步骤。

从命令行创建 DNS 位置

例如,要创建新位置 germany,请输入:
[root@server ~]# ipa location-add germany
----------------------------
Added IPA location "germany"
----------------------------
  Location name: germany
为所有要添加的位置重复此步骤。

33.9.4. 将 IdM 服务器分配给 DNS 位置

通过 Web UI 将 IdM 服务器分配给 DNS 位置

  1. 打开 IPA Server 选项卡,然后选择 Topology 子选项卡。
  2. 单击导航中的 IPA Servers
  3. 单击 IdM 服务器名称。
  4. 选择 DNS 位置,并选择性地设置服务权重:

    图 33.34. 将服务器分配到 DNS 位置

    将服务器分配到 DNS 位置
  5. 点击 Save
  6. 在您在前面的步骤中指定的主机上重启 named-pkcs11 服务:
    [root@idmserver-01 ~]# systemctl restart named-pkcs11
对您要为其分配 DNS 位置的其他 IdM 服务器重复这些步骤。

从命令行将 IdM 服务器分配给 DNS 位置

  1. 可选:列出所有配置的 DNS 位置:
    [root@server ~]# ipa location-find
    -----------------------
    2 IPA locations matched
    -----------------------
    Location name: australia
    Location name: germany
    -----------------------------
    Number of entries returned: 2
    -----------------------------
  2. 将服务器分配到 DNS 位置。例如,要将位置 germany 分配给服务器 idmserver-01.idm.example.com,请运行:
    [root@server ~]# ipa server-mod idmserver-01.idm.example.com --location=germany
    ipa: WARNING: Service named-pkcs11.service requires restart on IPA server
    idmserver-01.idm.example.com to apply configuration changes.
    --------------------------------------------------
    Modified IPA server "idmserver-01.idm.example.com"
    --------------------------------------------------
    Servername: idmserver-01.idm.example.com
    Min domain level: 0
    Max domain level: 1
    Location: germany
    Enabled server roles: DNS server, NTP server
  3. 在您在前面的步骤中指定的主机上重启 named-pkcs11 服务:
    [root@idmserver-01 ~]# systemctl restart named-pkcs11
对您要为其分配 DNS 位置的其他 IdM 服务器重复这些步骤。

33.9.5. 将客户端配置为在同一位置中使用 IdM 服务器

IdM 服务器被分配给 DNS 位置,如 第 33.9.4 节 “将 IdM 服务器分配给 DNS 位置” 所述。现在,您可以将客户端配置为使用与 IdM 服务器位于同一位置的 DNS 服务器:
  • 如果 DHCP 服务器为客户端分配 DNS 服务器 IP 地址,请配置 DHCP 服务。有关在您的 DHCP 服务中分配 DNS 服务器的详情,请查看 DHCP 服务文档。
  • 如果您的客户端没有从 DHCP 服务器接收 DNS 服务器 IP 地址,请手动设置客户端网络配置中的 IP 地址。有关在 Red Hat Enterprise Linux 中配置网络的详情,请参考《红帽企业 Linux 网络指南》中的"配置网络连接设置 "章节
注意
如果您将客户端配置为使用分配给不同位置的 DNS 服务器,客户端会联系两个位置的 IdM 服务器。

例 33.12. 根据客户端位置的不同名称服务器条目

以下示例显示了位于不同位置的客户端的 /etc/resolv.conf 文件中的不同名称服务器条目:
布拉格中的客户端:
nameserver 10.10.0.1
nameserver 10.10.0.2
拉丁美洲客户:
nameserver 10.50.0.1
nameserver 10.50.0.3
Oslo 中的客户端:
nameserver 10.30.0.1
林中的客户端:
nameserver 10.30.0.1
如果每个 DNS 服务器都被分配给 IdM 中的一个位置,客户端将使用其位置中的 IdM 服务器。