搜索

33.10. 使用外部 DNS 时系统性更新 DNS 记录

download PDF
在使用外部 DNS 时,身份管理不会在拓扑更改后自动更新 DNS 记录。以下流程解释了如何系统地更新由外部 DNS 服务管理的 DNS 记录,从而减少了手动 DNS 更新的需求。
有关流程和示例,请参阅:

33.10.1. 在身份管理中更新外部 DNS

更新 DNS 记录会删除旧的或无效的 DNS 记录并添加新记录。
您必须在拓扑更改后更新 DNS 记录,例如:
  • 安装或卸载副本后
  • 在身份管理服务器中安装 CA、DNS、KRA 或 Active Directory 信任后

33.10.2. GUI:更新外部 DNS 记录

  1. 显示您必须更新的记录。使用 ipa dns-update-system-records --dry-run 命令。
    $ ipa dns-update-system-records --dry-run
     IPA DNS records:
       _kerberos-master._tcp.example.com. 86400 IN SRV 0 100 88 ipa.example.com.
       _kerberos-master._udp.example.com. 86400 IN SRV 0 100 88 ipa.example.com.
    [... output truncated ...]
  2. 使用外部 DNS GUI 更新记录。

33.10.3. 命令行:使用 nsupdate更新外部 DNS 记录

这部分论述了如何使用 nsupdate 工具手动更新外部 DNS 记录。您也可以使用脚本中本节中的命令来自动化此过程。

使用 nsupdate的 DNS 记录生成文件

  1. 使用带有 --out 选项的 ipa dns-update-system-records --dry-run 命令。选项指定要生成的文件路径:
    $ ipa dns-update-system-records --dry-run --out dns_records_file.nsupdate
     IPA DNS records:
       _kerberos-master._tcp.example.com. 86400 IN SRV 0 100 88 ipa.example.com.
       _kerberos-master._udp.example.com. 86400 IN SRV 0 100 88 ipa.example.com.
    [... output truncated ...]
    生成的文件包含 nsupdate 工具接受的格式所需的 DNS 记录。
  2. 生成的记录依赖于:
    • 自动检测要更新记录的区域
    • 自动检测区域的权威服务器
    如果您使用 atypical DNS 设置,或者缺少区域委派,nsupdate 可能无法找到正确的区域和服务器。在这种情况下,在生成的文件开头添加以下选项:
    • server 指定 nsupdate 将记录发送到的权威 DNS 服务器的服务器名称或端口
    • zone 指定 nsupdate 放置记录的区域名称
    Example:
    $ cat dns_records_file.nsupdate
    zone example.com.
    server 192.0.2.1
    ; IPA DNS records
    update delete _kerberos-master._tcp.example.com. SRV
    update add _kerberos-master._tcp.example.com. 86400 IN SRV 0 100 88 ipa.example.com.
    [... output truncated ...]

将动态 DNS 更新请求提交到名称服务器

使用 nsupdate 发送请求时,请确保正确保护它。您可以使用以下机制保护请求:
事务签名(TSIG)协议
TSIG 可让您将 nsupdate 与共享密钥搭配使用。请参阅 过程 33.1, “使用 TSIG 发送 nsupdate 请求安全”
TSIG 的 GSS 算法(GSS-TSIG)
GSS-TSIG 使用 GSS-API 接口来获取 secret TSIG 密钥。GSS-TSIG 是 TSIG 协议的扩展。请查看 过程 33.2, “使用 GSS-TSIG 发送 nsupdate 请求安全”

过程 33.1. 使用 TSIG 发送 nsupdate 请求安全

  1. 请确定您满足以下先决条件:
    • 您的 DNS 服务器必须配置为 TSIG。请参阅以下服务器配置示例:BINDPowerDNS
    • DNS 服务器及其客户端都必须具有共享密钥。
  2. 运行 nsupdate,并使用以下选项之一提供共享 secret:
    • -k 提供 TSIG 身份验证密钥:
      $ nsupdate -k tsig_key.file dns_records_file.nsupdate
    • -Y 从密钥名称和 Base64 编码的共享 secret 中生成签名:
      $ nsupdate -y algorithm:keyname:secret dns_records_file.nsupdate

过程 33.2. 使用 GSS-TSIG 发送 nsupdate 请求安全

  1. 请确定您满足以下先决条件:
    • 您的 DNS 服务器必须配置 GSS-TSIG。请参阅以下服务器配置示例:BINDPowerDNSWindows DNS.
    注意
    此流程假定 Kerberos V5 协议用作 GSS-API 的技术。
  2. 要提交 DNS 更新请求,请使用允许更新记录的主体进行身份验证,并使用 -g 选项运行 nsupdate 来启用 GSS-TSIG 模式:
    $ kinit principal_allowed_to_update_records@REALM
    $ nsupdate -g dns_records_file.nsupdate

其它资源

  • nsupdate(8) man page
  • RFC 2845 描述 TSIG 协议
  • RFC 3645 描述了 GSS-TSIG 算法
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.