33.5. 管理动态 DNS 更新


33.5.1. 启用动态 DNS 更新

IdM 中新 DNS 区域默认禁用动态 DNS 更新。禁用动态更新后,ipa-client-install 脚本无法添加指向新客户端的 DNS 记录。
注意
启用动态更新可能会造成安全风险。但是,如果您的环境中可以接受启用动态更新,您可以将其简化客户端安装。
启用动态更新需要以下内容:
  • DNS 区域必须配置为允许动态更新
  • 必须将本地客户端配置为发送动态更新

33.5.1.1. 配置 DNS 区域以允许动态更新

在 Web UI 中启用动态 DNS 更新

  1. 打开 Network Services 选项卡,然后选择 DNS 子选项卡,后跟 DNS Zones 部分。

    图 33.16. DNS 区域管理

    DNS 区域管理
  2. 单击所有区域列表中的区域名称,以打开 DNS 区域页面。

    图 33.17. 编辑 master zone

    编辑 master zone
  3. Settings 切换到 DNS zone settings 选项卡。

    图 33.18. Master zone Edit 页面中的 Settings 选项卡

    Master zone Edit 页面中的 Settings 选项卡
  4. 向下滚动到 Dynamic update 字段,并将值设为 True

    图 33.19. 启用动态 DNS 更新

    启用动态 DNS 更新
  5. 单击页面顶部的 Save,以确认新配置。

从命令行启用动态 DNS 更新

要允许从命令行对 DNS 区域进行动态更新,请使用 ipa dnszone-mod 命令和 --dynamic-update=TRUE 选项。例如:
[user@server ~]$ ipa dnszone-mod server.example.com --dynamic-update=TRUE

33.5.1.2. 将客户端配置为发送动态更新

客户端会在域中注册时自动设置来发送 DNS 更新,方法是将 --enable-dns-updates 选项与 ipa-client-install 脚本搭配使用。
[root@client ~]# ipa-client-install --enable-dns-updates
DNS 区域具有为其 SOA 配置中为记录设置的生存时间(TTL)值。但是,动态更新的 TTL 由系统安全服务守护进程(SSSD)在本地系统上管理。要更改动态更新的 TTL 值,请编辑 SSSD 文件以设置值;默认值为 1200 秒。
  1. 打开 SSSD 配置文件。
    [root@server ~]# vim /etc/sssd/sssd.conf
  2. 找到 IdM 域的 domain 部分。
    [domain/ipa.example.com]
  3. 如果没有为客户端启用动态更新,则将 dyndns_update 值设置为 true。
    dyndns_update = true
  4. 添加或编辑 dyndns_ttl 参数,以以秒为单位设置值。
    dyndns_ttl = 2400

33.5.2. 同步 A/AAAA 和 PTR 记录

和 AAAA 记录与反向区域中的 PTR 记录分开配置。由于这些记录是独立配置的,因此 A/AAAA 记录可以存在,而无需对应的 PTR 记录,反之亦然。
PTR 同步工作有一些 DNS 设置要求:
  • 正向和反向区域都必须由 IdM 服务器管理。
  • 两个区域都必须启用动态更新。
    第 33.5.1 节 “启用动态 DNS 更新” 中介绍了启用动态更新。
  • 必须为 master 正向和反向区域启用 PTR 同步。
  • 只有请求客户端的名称与 PTR 记录中的名称匹配时,才会更新 PTR 记录。
重要
通过 IdM Web UI 所做的更改、通过 IdM 命令行工具或直接编辑 LDAP 条目 不会 更新 PTR 记录。仅 DNS 服务本身所做的更改会触发 PTR 记录同步。
警告
客户端系统可以更新自己的 IP 地址。这意味着,被入侵的客户端可以通过更改其 IP 地址来覆盖 PTR 记录。

33.5.2.1. 在 Web UI 中配置 PTR 记录同步

请注意,PTR 记录同步必须在存储 A 或 AAAA 记录的区域上配置,而不是在 PTR 记录所在的反向 DNS 区域中进行配置。
  1. 打开 Network Services 选项卡,然后选择 DNS 子选项卡,后跟 DNS Zones 部分。

    图 33.20. DNS 区域管理

    DNS 区域管理
  2. 单击所有区域列表中的区域名称,以打开 DNS 区域页面。

    图 33.21. 编辑 DNS 区域

    编辑 DNS 区域
  3. Settings 切换到 DNS zone settings 选项卡。

    图 33.22. Master zone Edit 页面中的 Settings 选项卡

    Master zone Edit 页面中的 Settings 选项卡
  4. 选择 Allow PTR sync 复选框。

    图 33.23. 启用 PTR 同步

    启用 PTR 同步
  5. 单击页面顶部的 Save,以确认新配置。

33.5.2.2. 使用命令行配置 PTR 记录同步

您可以为特定区域配置 PTR 记录同步,也可以使用命令行为所有区域配置 PTR 记录同步。
33.5.2.2.1. 为特定区配置 PTR 记录同步
例如,要为 idm.example.com 转发区配置 PTR 记录同步:
  1. 为转发区启用动态更新:
    # ipa dnszone-mod idm.example.com. --dynamic-update=TRUE
  2. 配置 forward 区的更新策略:
    # ipa dnszone-mod idm.example.com. --update-policy='grant IDM.EXAMPLE.COM krb5-self * A; grant IDM.EXAMPLE.COM krb5-self * AAAA; grant IDM.EXAMPLE.COM krb5-self * SSHFP;'
  3. 为 forward 区域启用 PTR 记录同步:
    # ipa dnszone-mod idm.example.com. --allow-sync-ptr=True
  4. 为反向区启用动态更新:
    # ipa dnszone-mod 2.0.192.in-addr.arpa. --dynamic-update=TRUE
33.5.2.2.2. 为所有区域全局配置 PTR 记录同步
您可以使用以下方法之一为 IdM 管理的所有区启用 PTR 同步:
  • 同时为所有服务器上的所有区启用 PTR 同步:
    # ipa dnsconfig-mod --allow-sync-ptr=true
  • 启用每个服务器同步:
    1. sync_ptr yes; 设置为 /etc/named.conf 文件中的 dyndb "ipa" "/usr/lib64/bind/ldap.so" 部分:
      dyndb "ipa" "/usr/lib64/bind/ldap.so" {
         ...
         sync_ptr yes;
      };
    2. 重启 IdM:
      # ipactl restart
    3. 在每个安装了 DNS 服务的 IdM 服务器上重复这些步骤。

33.5.3. 更新 DNS 动态更新策略

IdM 服务器维护的 DNS 域可以根据 RFC 3007 接受 DNS 动态更新[4].
确定特定客户端可修改哪些记录的规则遵循与 /etc/named.conf 文件中的 update-policy 语句相同的语法。如需有关动态更新策略的更多信息,请参阅 BIND 9 文档
请注意,如果为 DNS 区域禁用动态 DNS 更新,则会拒绝所有 DNS 更新,而不会反映动态更新策略声明。有关启用动态 DNS 更新的详情请参考 第 33.5.1 节 “启用动态 DNS 更新”

在 Web UI 中更新 DNS 更新策略

  1. 打开 Network Services 选项卡,然后选择 DNS 子选项卡,后跟 DNS Zones 部分。

    图 33.24. DNS 区域管理

    DNS 区域管理
  2. 单击所有区域列表中的区域名称,以打开 DNS 区域页面。

    图 33.25. 编辑 DNS 区域

    编辑 DNS 区域
  3. Settings 切换到 DNS zone settings 选项卡。

    图 33.26. Master zone Edit 页面中的 Settings 选项卡

    Master zone Edit 页面中的 Settings 选项卡
  4. BIND 更新策略文本框中的分号列表中设置所需的更新策略

    图 33.27. DNS 更新策略设置

    DNS 更新策略设置
  5. 单击 DNS 区域页面顶部的 Save,以确认新配置。

从命令行更新 DNS 更新策略

要从命令行设置 DNS 更新策略,请使用 --update-policy 选项并在 选项后添加 语句中的访问控制规则。例如:
$ ipa dnszone-mod zone.example.com --update-policy "grant EXAMPLE.COM  krb5-self * A; grant EXAMPLE.COM krb5-self * AAAA; grant EXAMPLE.COM  krb5-self * SSHFP;"


[4] 有关 RFC 3007 的完整文本,请参阅 http://tools.ietf.org/html/rfc3007
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.