在身份管理中使用 DNS
大约 70 分钟
在身份管理中使用 DNS
来源:官方文档 原始多页入口:在身份管理中使用 DNS 内容规模:约 81,562 字符,96 个章节标题,141 个命令/代码块,15 条提示框
阅读提要
- 副标题:管理 RHEL IdM 中集成的 DNS 服务
- 摘要:DNS 是身份管理(IdM)域中的一个重要组件。例如,客户端使用 DNS 查找服务,并识别同一网站中的服务器。您可以使用命令行、IdM Web UI 和 Ansible playbook 在 IdM 中集成的 DNS 服务器中管理记录、区域、位置和转发。
- 主要章节:管理 RHEL IdM 中集成的 DNS 服务;对红帽文档提供反馈;第 1 章 使用 Ansible playbook 在 IdM 中管理全局 DNS 配置;第 2 章 管理 IdM 中的 DNS 区域;第 3 章 使用 Ansible playbook 管理 IdM DNS 区域;第 4 章 管理 IdM 中的 DNS 位置;第 5 章 使用 Ansible 管理 IdM 中的 DNS 位置;第 6 章 在 IdM 中管理 DNS 转发;第 7 章 在 IdM 中管理 DNS 记录;第 8 章 使用 Ansible 管理 IdM 中的 DNS 记录;第 9 章 使用外部 DNS 时更新 DNS 记录;第 10 章 在 IdM 中使用规范的 DNS 主机名
- 推荐阅读顺序:先看“阅读提要”和目录,再按章节查看“关键点/命令/注意”;需要原文细节时点击来源链接。
章节笔记
概览
- 该章节主要为下一级主题的入口。
管理 RHEL IdM 中集成的 DNS 服务
- 要点:摘要
对红帽文档提供反馈
- 要点:我们致力于为您提供高质量的文档,您的反馈将对我们有很大帮助。为帮助我们改进,您可以通过 Red Hat Jira 跟踪系统提交建议或报告错误。
- 要点:流程
- 列表:登录到 Jira 网站。 如果您还没有帐户,请创建一个。
- 列表:单击顶部导航栏中的 Create。
- 列表:在 Summary 字段中输入描述性标题。
- 列表:在 Description 字段中输入您对改进的建议。包括文档相关部分的链接。
- 列表:点窗口底部的 Create。
第 1 章 使用 Ansible playbook 在 IdM 中管理全局 DNS 配置
- 要点:使用 freeipa.ansible_freeipa.dnsconfig Ansible 模块配置全局 DNS 设置,包括应用到所有身份管理(IdM) DNS 服务器的转发器和转发策略。
- 要点:dnsconfig 模块支持以下变量:
- 列表:全局转发器,特别是 IP 地址和用于通信的端口。
- 列表:全局转发策略:只有、first 或 none。
- 列表:同步正向查找和反向查找区域。 注意 全局配置的优先级低于特定 IdM DNS 区的配置。
1.1. 先决条件
- 要点:其他资源
- 列表:DNS 服务安装在 IdM 服务器上。
- 列表:安装 IdM 服务器:使用集成的 DNS,集成的 CA 作为 root CA
- 列表:安装 IdM 服务器:具有集成的 DNS,具有外部 CA 作为根CA
- 列表:安装 IdM 服务器:使用集成的 DNS,没有 CA
1.2. IdM 如何确保 NetworkManager 不会删除 /etc/resolv.conf 中的全局转发器
- 要点:了解身份管理(IdM)如何配置 NetworkManager,以在 DHCP 网络上的 /etc/resolv.conf 中保留 DNS 设置。
- 要点:安装带有集成 DNS 的 IdM 配置 /etc/resolv.conf 文件以指向 127.0.0.1 localhost 地址:
- 列表:DNS 安装脚本会创建一个 /etc/NetworkManager/conf.d/zzz-ipa.conf NetworkManager 配置文件来控制搜索顺序和 DNS 服务器列表: # auto-generated by IPA installer [main] dns=default [global-dns] searches=$DOMAIN [global-dns-domain-*] servers=127.0.0.1
- 列表:NetworkManager 服务已重新加载,该服务始终使用 /etc/NetworkManager/conf.d/ 目录中的最后一个文件中的设置来创建 /etc/resolv.conf 文件。这时为 zzz-ipa.conf 文件。
- 命令/配置摘录:
# Generated by NetworkManager search idm.example.com nameserver 127.0.0.1
# auto-generated by IPA installer [main] dns=default [global-dns] searches=$DOMAIN [global-dns-domain-*] servers=127.0.0.1- 注意:重要 不要手动修改 /etc/resolv.conf 文件。
1.3. 使用 Ansible 确保 IdM 中存在 DNS 全局转发器
- 要点:使用 Ansible 将全局 DNS 转发器添加到身份管理(IdM),以解析 IdM DNS 区域之外的域的查询。
- 要点:在以下示例中,IdM 管理员确保在端口 53 上存在一个 Internet 协议(IP) v4 地址为 7.7.9.9 和 IP v6 地址为 2001:db8::1:0 的 DNS 全局转发器。
- 列表:您已配置了 Ansible 控制节点以满足以下要求: 您在使用 Ansible 版本 2.15 或更高版本。 您已安装了 ansible-freeipa 软件包。 示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。 示例假定 secret.yml Ansible vault 存储了您的 ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
- 列表:您在使用 Ansible 版本 2.15 或更高版本。
- 列表:您已安装了 ansible-freeipa 软件包。
- 列表:示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。
- 列表:示例假定 secret.yml Ansible vault 存储了您的 ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
- 列表:目标节点(也就是在其上执行 freeipa.ansible_freeipa 模块的节点)作为 IdM 客户端、服务器或副本,是 IdM 域的一部分。
- 命令/配置摘录:
$ cd ~/MyPlaybooks/
$ cp /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/dnsconfig/forwarders-absent.yml ensure-presence-of-a-global-forwarder.yml1.4. 使用 Ansible 确保 IdM 中没有 DNS 全局转发器
- 要点:在弃用外部 DNS 服务器或更改转发配置时,使用 Ansible 从身份管理(IdM)中删除全局 DNS 转发器。
- 要点:在以下示例流程中,IdM 管理员确保端口 53 上具有互联网协议(IP)v4 地址 8.8.6.6 和 IP v6 地址 2001:4860:4860::8800 的 DNS 全局转发器(IP)不存在。
- 列表:您已配置了 Ansible 控制节点以满足以下要求: 您在使用 Ansible 版本 2.15 或更高版本。 您已安装了 ansible-freeipa 软件包。 示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。 示例假定 secret.yml Ansible vault 存储了您的 ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
- 列表:您在使用 Ansible 版本 2.15 或更高版本。
- 列表:您已安装了 ansible-freeipa 软件包。
- 列表:示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。
- 列表:示例假定 secret.yml Ansible vault 存储了您的 ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
- 列表:目标节点(也就是在其上执行 freeipa.ansible_freeipa 模块的节点)作为 IdM 客户端、服务器或副本,是 IdM 域的一部分。
- 命令/配置摘录:
$ cd ~/MyPlaybooks/
$ cp /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/dnsconfig/forwarders-absent.yml ensure-absence-of-a-global-forwarder.yml- 注意:重要 如果您仅在 playbook 中使用 state: absent 选项,而不使用 action: member,则 playbook 会失败。
1.5. ipadnsconfig ansible-freeipa 模块中的 action: member 选项
- 要点:查看在需要 action: member 和 ipadnsconfig 模块时使用 Ansible 在身份管理(IdM)中管理全局转发器时的示例。
- 要点:使用 ansible-freeipa ipadnsconfig 模块排除 IdM 中的全局转发器,除了 state: absent 选项外,还需要使用 action: member 选项。如果您只使用 playbook 中的 state: absent,而没有使用 action: member,则 playbook 将失败。因此,要删除所有全局转发器,您必须在 playbook 中分别指定它们。相反,state: present 选项不需要 action: member。
- 列表:执行 playbook 前配置的全局转发器
- 列表:playbook 摘录
- 列表:执行 playbook 后配置的全局转发器
- 表格样本(共 5 行):
- 之前的转发器 | Playbook 摘录 | 之后的转发器
- 8.8.6.6 | [...] tasks: - name: Ensure the presence of DNS global forwarder 8.8.6.7 ipadnsconfig: forwarders: - ip_address: 8.8.6.7 state: present | 8.8.6.7
- 8.8.6.6 | [...] tasks: - name: Ensure the presence of DNS global forwarder 8.8.6.7 ipadnsconfig: forwarders: - ip_address: 8.8.6.7 action: member state: present | 8.8.6.6, 8.8.6.7
- 8.8.6.6, 8.8.6.7 | [...] tasks: - name: Ensure the absence of DNS global forwarder 8.8.6.7 ipadnsconfig: forwarders: - ip_address: 8.8.6.7 state: absent | 尝试执行 playbook 会导致错误。原始配置 - 8.8.6.6、8.8.6.7 - 保持不变。
1.6. IdM 中的 DNS 转发策略
- 要点:了解身份管理(IdM)中的 DNS 转发策略类型,以及它们如何确定查询是否在本地转发、解析或被视为不存在。
- 要点:IdM 支持 第一个 且 唯一的 标准 BIND 转发策略,以及任何 IdM 特定的转发策略。
- 注意:注意 您不能使用转发将 IdM 中的数据与其他 DNS 服务器的数据组合。您只能在 IdM DNS 中转发主区的查询。 默认情况下,如果查询的 DNS 名称属于 IdM 服务器具有权威的区域,BIND 服务不会将查询转发到另一服务器。在这种情况下,如果无法在 IdM 数据库中找到查询的 DNS 名称,则会返回 NXDOMAIN 回答。未使用转发。
1.7. 使用 Ansible playbook 确保 IdM DNS 全局配置中设置了 forward first 策略
- 要点:使用 Ansible 将全局 DNS 转发策略 设置为在身份管理(IdM)中转发,它会首先尝试转发器,然后回退到递归解析。
- 要点:forward first 策略是默认策略。它适用于流量优化。如果因为服务器错误或超时查询失败,BIND 会使用 Internet 上的服务器回退到递归解析。
- 列表:您已配置了 Ansible 控制节点以满足以下要求: 您在使用 Ansible 版本 2.15 或更高版本。 您已安装了 ansible-freeipa 软件包。 示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。 示例假定 secret.yml Ansible vault 存储了您的 ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
- 列表:您在使用 Ansible 版本 2.15 或更高版本。
- 列表:您已安装了 ansible-freeipa 软件包。
- 列表:示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。
- 列表:示例假定 secret.yml Ansible vault 存储了您的 ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
- 列表:目标节点(也就是在其上执行 freeipa.ansible_freeipa 模块的节点)作为 IdM 客户端、服务器或副本,是 IdM 域的一部分。
- 命令/配置摘录:
$ cd ~/MyPlaybooks/
$ cp /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/dnsconfig/set-configuration.yml set-forward-policy-to-first.yml1.8. 使用 Ansible playbook 确保 IdM DNS 中禁用了全局转发器
- 要点:使用 Ansible 禁用身份管理(IdM)中的全局 DNS 转发,以强制服务器使用递归解析。
- 要点:禁用转发仅作为全局转发配置的特定区覆盖。这个选项等同于在 BIND 配置中指定空转发器列表。
- 列表:您已配置了 Ansible 控制节点以满足以下要求: 您在使用 Ansible 版本 2.15 或更高版本。 您已安装了 ansible-freeipa 软件包。 示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。 示例假定 secret.yml Ansible vault 存储了您的 ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
- 列表:您在使用 Ansible 版本 2.15 或更高版本。
- 列表:您已安装了 ansible-freeipa 软件包。
- 列表:示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。
- 列表:示例假定 secret.yml Ansible vault 存储了您的 ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
- 列表:目标节点(也就是在其上执行 freeipa.ansible_freeipa 模块的节点)作为 IdM 客户端、服务器或副本,是 IdM 域的一部分。
- 命令/配置摘录:
$ cd ~/MyPlaybooks/
$ cp /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/dnsconfig/disable-global-forwarders.yml disable-global-forwarders-copy.yml1.9. 使用 Ansible playbook 确保 IdM DNS 中禁用了正向和反向查找区域的同步
- 要点:使用 Ansible 进行独立区域管理,禁用身份管理(IdM)中的正向和反向 DNS 区域之间的自动同步。
- 要点:先决条件
- 列表:您已配置了 Ansible 控制节点以满足以下要求: 您在使用 Ansible 版本 2.15 或更高版本。 您已安装了 ansible-freeipa 软件包。 示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。 示例假定 secret.yml Ansible vault 存储了您的 ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
- 列表:您在使用 Ansible 版本 2.15 或更高版本。
- 列表:您已安装了 ansible-freeipa 软件包。
- 列表:示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。
- 列表:示例假定 secret.yml Ansible vault 存储了您的 ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
- 列表:目标节点(也就是在其上执行 freeipa.ansible_freeipa 模块的节点)作为 IdM 客户端、服务器或副本,是 IdM 域的一部分。
- 命令/配置摘录:
$ cd ~/MyPlaybooks/
$ cp /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/dnsconfig/disallow-reverse-sync.yml disallow-reverse-sync-copy.yml第 2 章 管理 IdM 中的 DNS 区域
- 要点:管理身份管理(IdM) DNS 区域,以控制网络如何解析名称。您可以添加、删除和配置主区来维护健康的 DNS 基础架构。
2.1. 先决条件
- 列表:DNS 服务安装在 IdM 服务器上。
- 列表:您了解 IdM 中支持哪些 DNS 区域类型。
2.2. 在 IdM Web UI 中添加主 DNS 区域
- 要点:使用 Identity Management (IdM) Web UI 创建新的主 DNS 区域。这个图形界面提供了一种直观的方法,用于在 IdM 环境中命名和初始化子域。
- 要点:先决条件
- 列表:以 IdM 管理员身份登录。
- 列表:在 IdM Web UI 中,点击 Network Services → DNS → DNS Zones。 管理 IdM DNS 主区域
- 列表:单击所有区域列表顶部的 Add。
- 列表:提供区域名称。 输入一个新的 IdM 主区
- 列表:点添加。
2.3. 在 IdM CLI 中添加主 DNS 区域
- 要点:通过执行 ipa dnszone-add 命令,向 DNS 域添加新子域。此命令允许直接输入区域名称,或者为缺少详情提供交互式提示。
- 要点:先决条件
- 列表:以 IdM 管理员身份登录。
- 列表:ipa dnszone-add 命令向 DNS 域添加新区域。添加新区域要求您指定新子域的名称。您可以直接使用以下命令传递子域名: $ ipa dnszone-add newzone.idm.example.com 如果您没有将名称传递给 ipa dnszone-add,脚本会自动提示。
- 命令/配置摘录:
$ ipa dnszone-add newzone.idm.example.com2.4. 在 IdM Web UI 中删除主 DNS 区域
- 要点:通过 IdM Web UI 的 Network Services 部分删除不必要的 DNS 区域。删除区域会从身份管理数据库永久删除其关联的记录。
- 要点:先决条件
- 列表:以 IdM 管理员身份登录。
- 列表:在 IdM Web UI 中,点击 Network Services → DNS → DNS Zones。
- 列表:按区域名称选择复选框,然后单击 Delete。 删除主 DNS 区域
- 列表:在 Remove DNS 区域 对话框窗口中,确认您要删除所选区域。
2.5. 在 IdM CLI 中删除主 DNS 区域
- 要点:使用 ipa dnszone-del 命令删除主 DNS 区域。指定目标区名称会立即从 IdM 服务器中删除条目及其配置。
- 要点:先决条件
- 列表:以 IdM 管理员身份登录。
- 列表:要删除主 DNS 区域,请输入 ipa dnszone-del 命令,后跟您要删除的区域的名称。例如: $ ipa dnszone-del idm.example.com
- 命令/配置摘录:
$ ipa dnszone-del idm.example.com2.6. DNS 配置优先级
- 要点:IdM 根据特定层次结构应用 DNS 设置。特定于区域的设置具有最高优先级,后跟每个服务器和全局配置,而 /etc/named.conf 中的手动条目则具有最低权重。
- 要点:在每个 IdM DNS 服务器的 /etc/named.conf 文件中定义的配置具有最低优先级。它特定于每台服务器,必须手动编辑。
- 列表:LDAP 中的每服务器配置
2.7. 主要 IdM DNS 区的配置属性
- 要点:身份管理(IdM)初始化带有默认设置的区域,用于刷新周期、传输和缓存。您可以修改这些属性,以控制 SOA 记录行为并通过 CLI 或 Web UI 更新频率。
- 要点:在 IdM DNS 区域属性 中,您可以使用以下选项之一查找您可以修改的默认区配置的属性:
- 列表:命令行(CLI)上的 dnszone-mod 命令。如需更多信息,请参阅在 IdM CLI 中编辑主 DNS 区的配置。
- 列表:IdM Web UI.如需更多信息,请参阅在 IdM Web UI 中编辑主 DNS 区的配置。
- 表格样本(共 17 行):
- 属性 | 命令行选项 | 描述
- 权威名称服务器 | --name-server | 设置主 DNS 名称服务器的域名,也称为 SOA MNAME。 默认情况下,每个 IdM 服务器在 SOA MNAME 字段中公告其自身。因此,使用 --name-server 存储在 LDAP 中的值被忽略。
- 管理员电子邮件地址 | --admin-email | 设置要用于区域管理员的电子邮件地址。这默认为主机上的 root 帐户。
- SOA 串行 | --serial | 在 SOA 记录中设置序列号。请注意,IdM 会自动设置版本号,用户不应该修改它。
2.8. 在 IdM Web UI 中编辑主 DNS 区域的配置
- 要点:通过 IdM Web UI 中的 Settings 选项卡修改区域配置属性,如 TTL 和刷新间隔。对大多数属性的更改在 IdM 环境中立即生效。
- 要点:先决条件
- 列表:以 IdM 管理员身份登录。
- 列表:在 IdM Web UI 中,点击 Network Services → DNS → DNS Zones。 DNS 主区管理
- 列表:在 DNS Zones 部分中,单击所有区域列表中的区域名称,以打开 DNS 区域页面。 编辑主区域
- 列表:单击 Settings。 主区域编辑页面中的 Settings 选项卡
- 列表:根据需要更改区域配置。 有关可用设置的详情,请参考 IdM DNS 区域属性。
- 列表:单击 Save 以确认新配置。 注意 如果您要将默认时间改为区域的 live (TTL),请在所有 IdM DNS 服务器上重新启动 named 服务,以使更改生效。所有其他设置将立即自动激活。
- 注意:注意 如果您要将默认时间改为区域的 live (TTL),请在所有 IdM DNS 服务器上重新启动 named 服务,以使更改生效。所有其他设置将立即自动激活。
2.9. 在 IdM CLI 中编辑主 DNS 区域的配置
- 要点:使用 ipa dnszone-mod 命令更新现有的 DNS 区设置。此工具覆盖当前值,或为特定属性(如重试间隔和更新策略)添加新值。
- 要点:先决条件
- 列表:以 IdM 管理员身份登录。
- 列表:要修改现有的主 DNS 区域,请使用 ipa dnszone-mod 命令。例如,在重试失败的刷新操作前要设置等待的时间为 1800 秒: $ ipa dnszone-mod --retry 1800 有关可用设置及其相应 CLI 选项的更多信息,请参阅 IdM DNS 区域属性。 如果特定设置在您要修改的 DNS 区域条目中没有值,则 ipa dnszone-mod 命令会添加该值。如果设置没有值,该命令将使用指定的值覆盖当前值。 注意 如果您要将默认时间改为区域的 live (TTL),请在所有 IdM DNS 服务器上重新启动 named 服务,以使更改生效。所有其他设置将立即自动激活。
- 命令/配置摘录:
$ ipa dnszone-mod --retry 1800- 注意:注意 如果您要将默认时间改为区域的 live (TTL),请在所有 IdM DNS 服务器上重新启动 named 服务,以使更改生效。所有其他设置将立即自动激活。
2.10. IdM 中的区域传送
- 要点:区域传送在名称服务器之间复制资源记录以确保数据一致性。身份管理(IdM)支持 AXFR 和 IXFR 标准,将权威数据分发到主区域之外的服务器。
- 要点:在有集成 DNS 的 IdM deployment 中,您可以使用 zone transfers 将所有资源记录从一个名称服务器复制到另一个名称服务器。名称服务器为其区域维护权威数据。如果您更改了对 zone A DNS 区具有权威的 DNS 服务器上的区,您必须在位于zone A 外的 IdM DNS 域中的其他名称服务器间分发更改。
- 列表:RFC 5936 (AXFR)
- 列表:RFC 1995 (IXFR)
- 列表:在 IdM Web UI 中启用区域传送
- 列表:在 IdM CLI 中启用区传输
- 注意:重要 IdM 集成的 DNS 可以由不同的服务器同时写入。IdM 区域中的授权起始(SOA)序列号没有在单独的 IdM DNS 服务器间同步。因此,将您的 DNS 服务器配置为仅使用 to-be-transferred 区域中的一个特定的 DNS 服务器。这可防止由未同步的 SOA 序列号导致的区域传输失败。
2.11. 在 IdM Web UI 中启用区域传送
- 要点:通过更新 IdM Web UI 中的 Allow Transfer 设置来授权特定的名称服务器接收区记录。这会创建一个允许请求完整区数据的 IP 地址的安全列表。
- 要点:先决条件
- 列表:以 IdM 管理员身份登录。
- 列表:在 IdM Web UI 中,点击 Network Services → DNS → DNS Zones。
- 列表:单击 Settings。
- 列表:在 Allow transfer 下,指定要将区域记录传输到的名称服务器。 图 2.1. 启用区传输
- 列表:单击 DNS 区域页面顶部的 Save,以确认新配置。
2.12. 在 IdM CLI 中启用区传输
- 要点:使用带有- allow-transfer 选项的 ipa dnszone- mod 命令启用数据分发。这定义了哪些外部名称服务器可以与 IdM 主机上的 BIND 服务同步。
- 要点:先决条件
- 列表:以 IdM 管理员身份登录。
- 列表:您有访问二级 DNS 服务器的 root 权限。
- 列表:要在 BIND 服务中启用区传输,输入 ipa dnszone-mod 命令,并指定使用 --allow-transfer 选项向该区域记录的待传输的名称服务器列表。例如: $ ipa dnszone-mod --allow-transfer=192.0.2.1;198.51.100.1;203.0.113.1 idm.example.com
- 列表:SSH 到启用了区传输的 DNS 服务器之一: $ ssh 192.0.2.1
- 列表:使用 dig 工具传输 IdM DNS 区域: # dig @ipa-server zone_name AXFR
- 命令/配置摘录:
$ ipa dnszone-mod --allow-transfer=192.0.2.1;198.51.100.1;203.0.113.1 idm.example.com
$ ssh 192.0.2.12.13. 其他资源
- 列表:安装 IdM 服务器:使用集成的 DNS,集成的 CA 作为 root CA
- 列表:安装 IdM 服务器:具有集成的 DNS,具有外部 CA 作为根CA
- 列表:安装 IdM 服务器:使用集成的 DNS,没有 CA
- 列表:IdM 中支持哪些 DNS 区域类型
- 列表:使用 Ansible playbook 管理 IdM DNS 区域
第 3 章 使用 Ansible playbook 管理 IdM DNS 区域
- 要点:使用 Ansible 在身份管理(IdM)中创建和配置主 DNS 区域,以管理您的域的权威 DNS 数据。
3.1. 先决条件
- 列表:DNS 服务安装在 IdM 服务器上。
3.2. 支持的 DNS 区类型
- 要点:您可以使用主区域来托管权威 DNS 数据,并转发区域,将查询委派给身份管理(IdM)部署中的外部服务器。
- 要点:身份管理 (IdM) 支持两种类型的 DNS 区域:primary 和 forward区域。
- 列表:域名
- 列表:与域关联的 DNS 服务器的 IP 地址 所有对属于定义的域的名称的查询都转发到指定的 IP 地址。此行为等同于标准 BIND 配置中的 type forward 设置。您可以使用 ipa dnsforwardzone-* 命令管理转发区域。 转发 DNS 区域在 IdM-Active Directory(AD)信任的上下文中特别有用。如果 IdM DNS 服务器对 idm.example.com 区域具有权威,并且 AD DNS 服务器对 ad.example.com 区域具有权威,则 ad.example.com 是 idm.example.com 主区的 DNS 转发区域。这意味着,当查询来自 IdM 客户端以获取 some…
- 注意:注意 本指南对区域类型使用 BIND 术语,不同于用于 Microsoft Windows DNS 的术语。BIND 服务器中的 Primary zones 与 Microsoft Windows DNS 中的 forward lookup zones 和 reverse lookup zones 作用相同。BIND 中的转发区域的作用与 Microsoft Windows DNS 中的条件 转发器相同。
3.3. 使用 Ansible 时的主 IdM DNS 区域的配置属性
- 要点:查看 Ansible ipadnszone 模块中提供的 DNS 区域属性,并调优它们以获得最佳 DNS 性能。
- 要点:身份管理(IdM)创建一个具有特定默认配置的新区域,如刷新周期、传输设置或缓存设置。在下面,您可以找到可使用 Ansible 修改的默认区域配置的属性。
- 表格样本(共 17 行):
- 属性 | ansible-freeipa 变量 | 描述
- 权威名称服务器 | name_server | 设置主 DNS 名称服务器的域名,也称为 SOA MNAME。 默认情况下,每个 IdM 服务器在 SOA MNAME 字段中公告其自身。因此,使用 --name-server 存储在 LDAP 中的值被忽略。
- 管理员电子邮件地址 | admin_email | 设置要用于区域管理员的电子邮件地址。这默认为主机上的 root 帐户。
- SOA 串行 | serial | 在 SOA 记录中设置序列号。请注意,IdM 会自动设置版本号,用户不应该修改它。
3.4. 使用 Ansible 在 IdM DNS 中创建主区域
- 要点:在 IdM 中创建主 DNS 区域,以托管由您的 IdM 服务器管理的域的权威 DNS 记录。
- 要点:先决条件
- 列表:您已配置了 Ansible 控制节点以满足以下要求: 您在使用 Ansible 版本 2.15 或更高版本。 您已安装了 ansible-freeipa 软件包。 示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。 示例假定 secret.yml Ansible vault 存储了您的 ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
- 列表:您在使用 Ansible 版本 2.15 或更高版本。
- 列表:您已安装了 ansible-freeipa 软件包。
- 列表:示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。
- 列表:示例假定 secret.yml Ansible vault 存储了您的 ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
- 列表:目标节点(也就是在其上执行 freeipa.ansible_freeipa 模块的节点)作为 IdM 客户端、服务器或副本,是 IdM 域的一部分。
- 命令/配置摘录:
$ cd /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/dnszone
[ipaserver] server.idm.example.com3.5. 使用 Ansible playbook 确保 IdM 中存在一个带有多个变量的主 DNS 区域
- 要点:使用自定义设置(如管理员电子邮件、刷新间隔和 TTL 值)创建 DNS 区域,以满足您所在机构的 DNS 要求。
- 要点:在以下示例中,作为 IdM 管理员,您要确保存在 zone.idm.example.com DNS 区域。
- 列表:您已配置了 Ansible 控制节点以满足以下要求: 您在使用 Ansible 版本 2.15 或更高版本。 您已安装了 ansible-freeipa 软件包。 示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。 示例假定 secret.yml Ansible vault 存储了您的 ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
- 列表:您在使用 Ansible 版本 2.15 或更高版本。
- 列表:您已安装了 ansible-freeipa 软件包。
- 列表:示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。
- 列表:示例假定 secret.yml Ansible vault 存储了您的 ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
- 列表:目标节点(也就是在其上执行 freeipa.ansible_freeipa 模块的节点)作为 IdM 客户端、服务器或副本,是 IdM 域的一部分。
- 命令/配置摘录:
$ cd /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/dnszone
$ cp dnszone-all-params.yml dnszone-all-params-copy.yml3.6. 在给定 IP 地址时,使用 Ansible playbook 确保存在用于反向 DNS 查找的区域
- 要点:使用 Ansible 创建反向 DNS 区域,为 IP 到主机名解析启用 PTR 记录查找。
- 要点:在以下示例中,IdM 管理员使用 IdM 主机的 IP 地址和前缀长度来确保存在反向 DNS 查找区。
- 列表:1.168.192.in-addr.arpa.
- 列表:168.192.in-addr.arpa.
- 列表:192.in-addr.arpa.
- 列表:您已配置了 Ansible 控制节点以满足以下要求: 您在使用 Ansible 版本 2.15 或更高版本。 您已安装了 ansible-freeipa 软件包。 示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。 示例假定 secret.yml Ansible vault 存储了您的 ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
- 列表:您在使用 Ansible 版本 2.15 或更高版本。
- 列表:您已安装了 ansible-freeipa 软件包。
- 命令/配置摘录:
$ cd /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/dnszone
$ cp dnszone-reverse-from-ip.yml dnszone-reverse-from-ip-copy.yml3.7. 其他资源
- 列表:管理 IdM 中的 DNS 区域
第 4 章 管理 IdM 中的 DNS 位置
- 要点:管理身份管理(IdM) DNS 位置,以优化流量并减少客户端和服务器之间的延迟。配置这些位置可确保客户端发现和确定最接近的可用服务。
4.1. 先决条件
- 列表:您了解 IdM 中基于 DNS 的服务发现的概念。
- 列表:您了解 IdM 中 DNS 位置的 deployment 注意事项。
- 列表:您了解 DNS 生存时间 (TTL) 的概念。
4.2. 基于 DNS 的服务发现
- 要点:了解客户端如何使用 DNS 来自动定位接近 IdM 服务器,从而减少网络延迟和消除手动服务器配置。
- 要点:在基于 DNS 的服务发现中,客户端使用 DNS 协议在提供特定服务的网络中查找服务器,如 LDAP 或 Kerberos。种典型的操作类型是允许客户端在最接近的网络基础架构中查找身份验证服务器,因为它们提供更高的吞吐量和较低的网络延迟,从而降低总体成本。
- 列表:无需使用附近服务器的名称明确配置客户端。
- 列表:DNS 服务器用作策略的中央提供程序。使用同一 DNS 服务器的客户端有权访问关于服务提供商及其首选顺序的相同策略。
- 列表:0(优先级):目标主机的优先级。首选使用较低值。
- 列表:100 (权重).为优先级相同的条目指定相对权重。
- 列表:88(端口号):服务的端口号。
- 列表:提供服务的主机的规范名称。
- 命令/配置摘录:
$ 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.
$ 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.4.3. DNS 位置部署的注意事项
- 要点:规划您的 DNS 位置部署,以确保客户端收到特定于位置的 SRV 记录,并连接到接近 IdM 服务器。
- 要点:使用集成 DNS 时,身份管理(IdM)可以生成特定于位置的服务(SRV)记录。因为每个 IdM DNS 服务器都会生成特定于位置的 SRV 记录,所以您必须在每个 DNS 位置至少安装一个 IdM DNS 服务器。
4.4. DNS 生存时间(TTL)
- 要点:查看您可以使用 DNS TTL 值来控制客户端缓存记录的时长,这对在位置间移动的客户端来说尤其重要。
- 要点:客户端可以在区域配置中设置的一段时间内缓存 DNS 资源记录。由于这种缓存,客户端可能无法接收更改,直到生存时间(TTL)值过期为止。Identity Management(IdM)中的默认 TTL 值为 1 天。
- 列表:使用 Ansible 时的主 IdM DNS 区域的配置属性
4.5. 使用 IdM Web UI 创建 DNS 位置
- 要点:通过 IdM Web UI 定义新的 DNS 位置,以按物理或逻辑站点对服务器进行分组。此机构帮助环境将客户端请求定向到本地基础架构,从而改进响应时间。
- 要点:先决条件
- 列表:您的 IdM 部署已经集成了 DNS。
- 列表:您有在 IdM 中创建 DNS 位置的权限。例如,您以 IdM admin 身份登录。
- 列表:打开 IPA Server 选项卡。
- 列表:选择 Topology 子选项卡。
- 列表:单击导航栏中的 IPA Locations。
- 列表:单击位置列表顶部的 Add。
4.6. 使用 IdM CLI 创建 DNS 位置
- 要点:使用 ipa location-add 命令通过命令行添加 DNS 位置。此工具会在身份管理(IdM)数据库中快速注册新的地理或基于网络的站点,以备将来服务器分配。
- 要点:先决条件
- 列表:您的 IdM 部署已经集成了 DNS。
- 列表:您有在 IdM 中创建 DNS 位置的权限。例如,您以 IdM admin 身份登录。
- 列表:例如,要创建新位置 germany,请输入: $ ipa location-add germany ---------------------------- Added IPA location "germany" ---------------------------- Location name: germany
- 列表:可选:重复添加更多位置的步骤。
- 列表:使用 IdM CLI 将 IdM 服务器分配到一个 DNS 位置
- 列表:使用 Ansible 确保存在 IdM 位置
- 命令/配置摘录:
$ ipa location-add germany
---------------------------- Added IPA location "germany" ---------------------------- Location name: germany4.7. 使用 IdM Web UI 将 IdM 服务器分配给 DNS 位置
- 要点:使用 IdM Web UI 中的 Topology 选项卡将特定的身份管理(IdM)服务器与定义的位置关联。在此过程中设置服务权重会进一步重新定义客户端如何分发连接尝试。
- 要点:先决条件
- 列表:您的 IdM 部署已经集成了 DNS。
- 列表:您以有权将服务器分配到 DNS 位置的用户身份登录,例如 IdM admin 用户。
- 列表:您对要为其分配 DNS 位置的主机具有 root 访问权限。
- 列表:您已 创建了要为其分配服务器的 IdM DNS 位置。
- 列表:打开 IPA Server 选项卡。
- 列表:选择 Topology 子选项卡。
- 命令/配置摘录:
[root@idmserver-01 ~]# systemctl restart named4.8. 使用 IdM CLI 将 IdM 服务器分配给 DNS 位置
- 要点:使用 ipa server-mod 命令将服务器链接到特定的 DNS 位置。之后重新启动 named 服务会激活新的路由逻辑,确保服务器将自身公告给正确的本地客户端。
- 要点:先决条件
- 列表:您的 IdM 部署已经集成了 DNS。
- 列表:您以有权将服务器分配到 DNS 位置的用户身份登录,例如 IdM admin 用户。
- 列表:您对要为其分配 DNS 位置的主机具有 root 访问权限。
- 列表:您已 创建了要为其分配服务器的 IdM DNS 位置。
- 列表:可选:列出所有配置的 DNS 位置: [root@server ~]# ipa location-find ----------------------- 2 IPA locations matched ----------------------- Location name: australia Location name: germany ----------------------------- Number of entries returned: 2 -----------------------------
- 列表:将服务器分配到 DNS 位置。例如,要将位置 germany 分配给服务器 idmserver-01.idm.example.com,请运行: # ipa server-mod idmserver-01.idm.example.com --location=germany [...] -------------------------------------------------- Modified IPA server "idmserver-01.idm.example.com" -------------------------------------------------- Servername: idmserver-0…
- 命令/配置摘录:
[root@server ~]# ipa location-find
----------------------- 2 IPA locations matched ----------------------- Location name: australia Location name: germany ----------------------------- Number of entries returned: 2 -----------------------------4.9. 将 IdM 客户端配置为使用同一位置的 IdM 服务器
- 要点:通过 DHCP 或手动网络配置将客户端指向本地 DNS 服务器。当客户端的主 DNS 服务器位于分配的身份管理(IdM)位置时,客户端会为所有验证和查找任务优先选择本地 IdM 服务。
- 要点:IdM服务器被分配到DNS位置。您可以将客户端配置为使用与 IdM 服务器位于同一位置的 DNS 服务器:
- 列表:如果 DHCP 服务器为客户端分配 DNS 服务器 IP 地址,请配置 DHCP 服务。有关在 DHCP 服务中分配 DNS 服务器的详情,请查看 DHCP 服务文档。
- 列表:如果您的客户端没有从 DHCP 服务器接收 DNS 服务器 IP 地址,请在客户端的网络配置中手动设置 IP。
- 列表:使用 IdM Web UI 将 IdM 服务器分配给 DNS 位置
- 列表:配置网络连接设置
- 命令/配置摘录:
nameserver 10.10.0.1 nameserver 10.10.0.2
nameserver 10.50.0.1 nameserver 10.50.0.3- 注意:注意 如果您将客户端配置为使用分配给不同位置的 DNS 服务器,客户端会联系两个位置的 IdM 服务器。
4.10. 其他资源
- 列表:使用 Ansible 管理 IdM 中的 DNS 位置
第 5 章 使用 Ansible 管理 IdM 中的 DNS 位置
- 要点:使用 Ansible 定义 DNS 位置,使客户端能够发现和使用地理附近的身份管理(IdM)服务器,以加快响应速度。
- 要点:有关 FreeIPA Ansible 集合中变量和示例 playbook 的详情,请查看控制节点上的 /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/README-location.md 文件和 /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/location 目录。
5.1. 基于 DNS 的服务发现
- 要点:了解客户端如何使用 DNS 来自动定位接近 IdM 服务器,从而减少网络延迟和消除手动服务器配置。
- 要点:在基于 DNS 的服务发现中,客户端使用 DNS 协议在提供特定服务的网络中查找服务器,如 LDAP 或 Kerberos。种典型的操作类型是允许客户端在最接近的网络基础架构中查找身份验证服务器,因为它们提供更高的吞吐量和较低的网络延迟,从而降低总体成本。
- 列表:无需使用附近服务器的名称明确配置客户端。
- 列表:DNS 服务器用作策略的中央提供程序。使用同一 DNS 服务器的客户端有权访问关于服务提供商及其首选顺序的相同策略。
- 列表:0(优先级):目标主机的优先级。首选使用较低值。
- 列表:100 (权重).为优先级相同的条目指定相对权重。
- 列表:88(端口号):服务的端口号。
- 列表:提供服务的主机的规范名称。
- 命令/配置摘录:
$ 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.
$ 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.5.2. DNS 位置部署的注意事项
- 要点:规划您的 DNS 位置部署,以确保客户端收到特定于位置的 SRV 记录,并连接到接近 IdM 服务器。
- 要点:使用集成 DNS 时,身份管理(IdM)可以生成特定于位置的服务(SRV)记录。因为每个 IdM DNS 服务器都会生成特定于位置的 SRV 记录,所以您必须在每个 DNS 位置至少安装一个 IdM DNS 服务器。
5.3. DNS 生存时间(TTL)
- 要点:查看您可以使用 DNS TTL 值来控制客户端缓存记录的时长,这对在位置间移动的客户端来说尤其重要。
- 要点:客户端可以在区域配置中设置的一段时间内缓存 DNS 资源记录。由于这种缓存,客户端可能无法接收更改,直到生存时间(TTL)值过期为止。Identity Management(IdM)中的默认 TTL 值为 1 天。
- 列表:使用 Ansible 时的主 IdM DNS 区域的配置属性
5.4. 使用 Ansible 确保存在 IdM 位置
- 要点:使用 Ansible 在身份管理(IdM)中创建 DNS 位置,以便客户端可以发现并使用 nearby 服务器来加快身份验证。
- 要点:作为身份管理系统管理员(IdM),您可以配置 IdM DNS 位置,以允许客户端在最接近的网络基础架构中查找身份验证服务器。
- 列表:在控制节点上: 您在使用 Ansible 版本 2.15 或更高版本。 您已安装了 ansible-freeipa 软件包。 示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。 示例假定 secret.yml Ansible vault 存储了您的 ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
- 列表:您在使用 Ansible 版本 2.15 或更高版本。
- 列表:您已安装了 ansible-freeipa 软件包。
- 列表:示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。
- 列表:示例假定 secret.yml Ansible vault 存储了您的 ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
- 列表:目标节点(也就是在其上执行 freeipa.ansible_freeipa 模块的节点)作为 IdM 客户端、服务器或副本,是 IdM 域的一部分。
- 命令/配置摘录:
$ cd ~/MyPlaybooks/
$ cp /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/location/location-present.yml location-present-copy.yml5.5. 使用 Ansible 确保缺少 IdM 位置
- 要点:在停用地理站点或重新构建拓扑时,使用 Ansible 从身份管理(IdM)中删除 DNS 位置。
- 要点:作为身份管理系统管理员(IdM),您可以配置 IdM DNS 位置,以允许客户端在最接近的网络基础架构中查找身份验证服务器。
- 列表:没有 IdM 服务器被分配给 germany DNS 位置。
- 列表:您已配置了 Ansible 控制节点以满足以下要求: 您在使用 Ansible 版本 2.15 或更高版本。 您已安装了 ansible-freeipa 软件包。 示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。 示例假定 secret.yml Ansible vault 存储了您的 ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
- 列表:您在使用 Ansible 版本 2.15 或更高版本。
- 列表:您已安装了 ansible-freeipa 软件包。
- 列表:示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。
- 列表:示例假定 secret.yml Ansible vault 存储了您的 ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
- 命令/配置摘录:
$ cd ~/MyPlaybooks/
$ cp /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/location/location-absent.yml location-absent-copy.yml5.6. 其他资源
- 列表:管理 IdM 中的 DNS 位置
第 6 章 在 IdM 中管理 DNS 转发
- 要点:使用 Web UI、CLI 或 Ansible 配置全局转发器和 DNS 转发区域,以解析身份管理(IdM)域之外的名称。
6.1. IdM DNS 服务器的两个角色
- 要点:身份管理(IdM) DNS 服务器可以作为权威和递归 DNS 服务器运行,并使用转发来解析外部查询。
- 要点:DNS 转发会影响 DNS 服务如何应答 DNS 查询。默认情况下,集成了 IdM 的 Berkeley Internet Name Domain (BIND) 作为一个 authoritative 和一个 recursive DNS 服务器:
6.2. 在 IdM Web UI 中添加全局转发器
- 要点:通过 Web 界面配置全局 DNS 转发器,以解析身份管理(IdM) DNS 区域之外的域的查询。
- 要点:先决条件
- 列表:以 IdM 管理员身份登录到 IdM WebUI。
- 列表:您知道要将查询转发到的 DNS 服务器的 Internet 协议(IP)地址。
- 列表:在 IdM Web UI 中,选择 Network Services → DNS Global Configuration → DNS。
- 列表:在 DNS Global Configuration 部分中,单击 Add。
- 列表:指定将接收转发 DNS 查询的 DNS 服务器的 IP 地址。
- 列表:选择 Forward policy。
6.3. 在 CLI 中添加全局转发器
- 要点:从命令行配置全局 DNS 转发器,以解析身份管理(IdM) DNS 区域之外的域的查询。
- 要点:先决条件
- 列表:以 IdM 管理员身份登录。
- 列表:您知道要将查询转发到的 DNS 服务器的 Internet 协议(IP)地址。
- 列表:使用 ipa dnsconfig-mod 命令添加新的全局转发器。使用 --forwarder 选项指定 DNS 转发器的 IP 地址。 [user@server ~]$ ipa dnsconfig-mod --forwarder=10.10.0.1 Server will check DNS forwarder(s). This may take some time, please wait ... Global forwarders: 10.10.0.1 IPA DNS servers: server.example.com
- 列表:使用 dnsconfig-show 命令显示全局转发器。 [user@server ~]$ ipa dnsconfig-show Global forwarders: 10.10.0.1 IPA DNS servers: server.example.com
- 命令/配置摘录:
[user@server ~]$ ipa dnsconfig-mod --forwarder=10.10.0.1
Server will check DNS forwarder(s). This may take some time, please wait ... Global forwarders: 10.10.0.1 IPA DNS servers: server.example.com6.4. 在 IdM Web UI 中添加 DNS 转发区域
- 要点:通过身份管理(IdM) Web 界面(Web UI)创建 DNS 转发区域,将对特定域的查询转发到指定的外部 DNS 服务器。
- 要点:先决条件
- 列表:以 IdM 管理员身份登录到 IdM WebUI。
- 列表:您知道要将查询转发到的 DNS 服务器的 Internet 协议(IP)地址。
- 列表:在 IdM Web UI 中,选择 Network Services → DNS Forward Zones → DNS。
- 列表:在 DNS Forward Zones 部分,点 Add。
- 列表:在 Add DNS forward zone 窗口中,指定 forward zone 名称。
- 列表:点击 Add 按钮,并指定 DNS 服务器的 IP 地址来接收转发请求。您可以为每个转发区指定多个转发器。
- 注意:重要 除非绝对需要,否则请不要使用转发区域。转发区域不是标准解决方案,使用它们可能会导致意外和有问题的行为。如果您必须使用 forward zone,限制使用它们覆盖全局转发配置。 在创建新 DNS 区域时,红帽建议您始终使用名称服务器(NS)记录和避免转发区域,始终使用标准 DNS 委派。在大多数情况下,使用全局转发器足够了,并且转发区不需要。
6.5. 在 CLI 中添加 DNS 转发区域
- 要点:从命令行(CLI)创建 DNS 转发区域,将特定域的查询转发到指定的外部 DNS 服务器。
- 要点:先决条件
- 列表:以 IdM 管理员身份登录。
- 列表:您知道要将查询转发到的 DNS 服务器的 Internet 协议(IP)地址。
- 列表:使用 dnsforwardzone-add 命令添加新的转发区域。如果转发策略不是 none,则使用 --forwarder 选项至少指定一个转发器,并使用 --forward-policy 选项指定转发策略。 [user@server ~]$ ipa dnsforwardzone-add forward.example.com. --forwarder=10.10.0.14 --forwarder=10.10.1.15 --forward-policy=first Zone name: forward.example.com. Zone forwarders: 10.10.0.14, 10.10.1.15 Forward pol…
- 列表:使用 dnsforwardzone-show 命令显示您刚才创建的 DNS 转发区域。 [user@server ~]$ ipa dnsforwardzone-show forward.example.com. Zone name: forward.example.com. Zone forwarders: 10.10.0.14, 10.10.1.15 Forward policy: first
- 命令/配置摘录:
[user@server ~]$ ipa dnsforwardzone-add forward.example.com. --forwarder=10.10.0.14 --forwarder=10.10.1.15 --forward-policy=first
Zone name: forward.example.com. Zone forwarders: 10.10.0.14, 10.10.1.15 Forward policy: first- 注意:重要 除非绝对需要,否则请不要使用转发区域。转发区域不是标准解决方案,使用它们可能会导致意外和有问题的行为。如果您必须使用 forward zone,限制使用它们覆盖全局转发配置。 在创建新 DNS 区域时,红帽建议您始终使用名称服务器(NS)记录和避免转发区域,始终使用标准 DNS 委派。在大多数情况下,使用全局转发器足够了,并且转发区不需要。
6.6. 使用 Ansible 在 IdM 中建立 DNS 全局转发器
- 要点:使用 Ansible 在身份管理(IdM)中配置初始全局 DNS 转发器,以启用外部域名的解析。
- 要点:在以下示例流程中,IdM 管理员创建了一个到互联网协议(IP)v4 地址为 8.8.6.6 和 IPv6 地址为 2001:4860:4860::8800 的 DNS 服务器,端口为 53 的 DNS 全局转发器。
- 列表:您已配置了 Ansible 控制节点以满足以下要求: 您在使用 Ansible 版本 2.15 或更高版本。 您已安装了 ansible-freeipa 软件包。 示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。 示例假定 secret.yml Ansible vault 存储了您的 ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
- 列表:您在使用 Ansible 版本 2.15 或更高版本。
- 列表:您已安装了 ansible-freeipa 软件包。
- 列表:示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。
- 列表:示例假定 secret.yml Ansible vault 存储了您的 ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
- 列表:目标节点(也就是在其上执行 freeipa.ansible_freeipa 模块的节点)作为 IdM 客户端、服务器或副本,是 IdM 域的一部分。
- 命令/配置摘录:
$ cd /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/dnsconfig
$ cp set-configuration.yml establish-global-forwarder.yml6.7. 使用 Ansible 确保 DNS 全局转发器在 IdM 中被禁用
- 要点:使用 Ansible 禁用全局 DNS 转发器,将 forward 策略设置为 none,强制身份管理(IdM)使用递归解析。
- 要点:先决条件
- 列表:您已配置了 Ansible 控制节点以满足以下要求: 您在使用 Ansible 版本 2.15 或更高版本。 您已安装了 ansible-freeipa 软件包。 示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。 示例假定 secret.yml Ansible vault 存储了您的 ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
- 列表:您在使用 Ansible 版本 2.15 或更高版本。
- 列表:您已安装了 ansible-freeipa 软件包。
- 列表:示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。
- 列表:示例假定 secret.yml Ansible vault 存储了您的 ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
- 列表:目标节点(也就是在其上执行 freeipa.ansible_freeipa 模块的节点)作为 IdM 客户端、服务器或副本,是 IdM 域的一部分。
- 命令/配置摘录:
$ cd /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/dnsconfig
$ cat disable-global-forwarders.yml6.8. 使用 Ansible 确保 IdM 中存在 DNS 转发区域
- 要点:使用 Ansible 在身份管理(IdM)中创建 DNS 转发区域,将特定域的查询定向到指定的外部 DNS 服务器。
- 要点:在以下示例中,IdM 管理员确保将 example.com 的 DNS 转发区域配置为将查询转发到 8.8.8.8。
- 列表:您已配置了 Ansible 控制节点以满足以下要求: 您在使用 Ansible 版本 2.15 或更高版本。 您已安装了 ansible-freeipa 软件包。 示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。 示例假定 secret.yml Ansible vault 存储了您的 ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
- 列表:您在使用 Ansible 版本 2.15 或更高版本。
- 列表:您已安装了 ansible-freeipa 软件包。
- 列表:示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。
- 列表:示例假定 secret.yml Ansible vault 存储了您的 ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
- 列表:目标节点(也就是在其上执行 freeipa.ansible_freeipa 模块的节点)作为 IdM 客户端、服务器或副本,是 IdM 域的一部分。
- 命令/配置摘录:
$ cd /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/dnsconfig
$ cp forwarders-absent.yml ensure-presence-forwardzone.yml6.9. 使用 Ansible 确保 DNS 转发区域 在 IdM 中有多个转发器
- 要点:使用 Ansible 为 DNS 转发区域配置多个转发器,以便在解析外部域的查询时提供冗余。
- 要点:在以下示例中,您可以确保 example.com 的 DNS 转发区转发到 8.8.8.8 和 4.4.4.4。
- 列表:您已配置了 Ansible 控制节点以满足以下要求: 您在使用 Ansible 版本 2.15 或更高版本。 您已安装了 ansible-freeipa 软件包。 示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。 示例假定 secret.yml Ansible vault 存储了您的 ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
- 列表:您在使用 Ansible 版本 2.15 或更高版本。
- 列表:您已安装了 ansible-freeipa 软件包。
- 列表:示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。
- 列表:示例假定 secret.yml Ansible vault 存储了您的 ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
- 列表:目标节点(也就是在其上执行 freeipa.ansible_freeipa 模块的节点)作为 IdM 客户端、服务器或副本,是 IdM 域的一部分。
- 命令/配置摘录:
$ cd /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/dnsconfig
$ cp forwarders-absent.yml ensure-presence-multiple-forwarders.yml6.10. 使用 Ansible 确保 IdM 中禁用了 DNS 转发区
- 要点:使用 Ansible 禁用 DNS 转发区域,以停止对特定域的转发查询,而不删除区域配置。
- 要点:在以下示例中,您可以确保 example.com 的 DNS 转发区域被禁用。
- 列表:您已配置了 Ansible 控制节点以满足以下要求: 您在使用 Ansible 版本 2.15 或更高版本。 您已安装了 ansible-freeipa 软件包。 示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。 示例假定 secret.yml Ansible vault 存储了您的 ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
- 列表:您在使用 Ansible 版本 2.15 或更高版本。
- 列表:您已安装了 ansible-freeipa 软件包。
- 列表:示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。
- 列表:示例假定 secret.yml Ansible vault 存储了您的 ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
- 列表:目标节点(也就是在其上执行 freeipa.ansible_freeipa 模块的节点)作为 IdM 客户端、服务器或副本,是 IdM 域的一部分。
- 命令/配置摘录:
$ cd /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/dnsconfig
$ cp forwarders-absent.yml ensure-disabled-forwardzone.yml6.11. 使用 Ansible 确保 IdM 中没有 DNS 转发区域
- 要点:当您不再需要转发特定域的查询时,使用 Ansible 从身份管理(IdM)中删除 DNS 转发区域。
- 要点:在以下示例中,IdM 管理员确保 example.com 缺少 DNS 转发区。
- 列表:您已配置了 Ansible 控制节点以满足以下要求: 您在使用 Ansible 版本 2.15 或更高版本。 您已安装了 ansible-freeipa 软件包。 示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。 示例假定 secret.yml Ansible vault 存储了您的 ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
- 列表:您在使用 Ansible 版本 2.15 或更高版本。
- 列表:您已安装了 ansible-freeipa 软件包。
- 列表:示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。
- 列表:示例假定 secret.yml Ansible vault 存储了您的 ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
- 列表:目标节点(也就是在其上执行 freeipa.ansible_freeipa 模块的节点)作为 IdM 客户端、服务器或副本,是 IdM 域的一部分。
- 命令/配置摘录:
$ cd /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/dnsconfig
$ cp forwarders-absent.yml ensure-absence-forwardzone.yml第 7 章 在 IdM 中管理 DNS 记录
- 要点:通过在身份管理(IdM)中管理 DNS 记录来保持网络名称解析的准确性。您可以添加、更新和删除各种记录类型,以反映基础架构中的更改并确保无缝服务发现。
7.1. 先决条件
- 列表:您的 IdM 部署包含一个集成的 DNS 服务器。
- 列表:您了解 IdM 中存在哪些类型的 DNS 记录。
- 列表:您了解在 IdM 中添加、修改和删除最常见的 DNS 资源记录类型时有哪些可用的选项。
7.2. IdM 中的 DNS 记录
- 要点:了解 IdM 支持的 DNS 记录类型,包括用于主机解析和服务发现的 A、AAAA、SRV 和 PTR 记录。
- 要点:身份管理(IdM)支持许多不同的 DNS 记录类型。以下 4 个是最常用的:
- 列表:RFC 1035
- 列表:RFC 3596
- 列表:RFC 2782
- 列表:RFC 2317
- 列表:RFC 3596 - IPv6 反向区域
- 注意:注意 IPv4 地址的所有反向 DNS 查找都使用在 in-addr.arpa. 域中定义的反向条目。反向地址(人类可读形式)与常规 IP 地址正好相反,其中 in-addr.arpa. 域附加到该地址。例如,对于网络地址 192.0.2.0/24,反向区域为 2.0.192.in-addr.arpa。
- 注意:注意 使用 .ip6.arpa. 域中的区域,也可以为 IPv6 地址配置反向区域。
7.3. 在 IdM Web UI 中添加 DNS 资源记录
- 要点:通过 IdM Web UI 添加新资源记录来扩展您的 DNS 区域。此图形界面简化了定义主机地址、服务位置和其他关键网络数据的过程。
- 要点:先决条件
- 列表:要添加 DNS 记录的 DNS 区域存在,并由 IdM 管理。有关在 IdM DNS 中创建 DNS 区域的更多信息,请参阅 在 IdM 中管理 DNS 区域。
- 列表:以 IdM 管理员身份登录。
- 列表:在 IdM Web UI 中,点击 Network Services → DNS → DNS Zones。
- 列表:点击您要添加 DNS 记录的 DNS 区域。
- 列表:在 DNS Resource Records 部分,点 Add 来添加新记录。 添加新 DNS 资源记录
- 列表:选择要创建的记录类型,并根据需要填写其他字段。 定义新的 DNS 资源记录
7.4. 从 IdM CLI 添加 DNS 资源记录
- 要点:使用 ipa dnsrecord-add 命令,通过命令行将新条目插入到特定的 DNS 区域。这个方法可让您精确控制记录参数,并支持自动化进行批量更新。
- 要点:先决条件
- 列表:您要添加 DNS 记录的 DNS 区域存在。有关在 IdM DNS 中创建 DNS 区域的更多信息,请参阅 在 IdM 中管理 DNS 区域。
- 列表:以 IdM 管理员身份登录。
- 列表:要添加 DNS 资源记录,请使用 ipa dnsrecord-add 命令。该命令采用以下语法: $ ipa dnsrecord-add zone_name record_name --record_type_option=data 在以上命令中: zone_name 是正在向其添加记录的 DNS 区域的名称。 record_name 是新 DNS 资源记录的标识符。 例如,要将 host1 的 A 类型 DNS 记录添加到 idm.example.com 区域,请输入: $ ipa dnsrecord-add idm.example.com host1 --a-rec=192.168.122.123
- 列表:zone_name 是正在向其添加记录的 DNS 区域的名称。
- 列表:record_name 是新 DNS 资源记录的标识符。
- 命令/配置摘录:
$ ipa dnsrecord-add zone_name record_name --record_type_option=data
$ ipa dnsrecord-add idm.example.com host1 --a-rec=192.168.122.1237.5. Common ipa dnsrecord-* 选项
- 要点:查看用于在 IdM DNS 区域中管理 A、AAAA、SRV 和 PTR 记录的命令行选项。
- 要点:在 Bash 中,您可以通过列出大括号内的逗号分隔列表中的值来定义多个条目,如 --option={val1,val2,val3}。
- 表格样本(共 3 行):
- 选项 | 描述
- --ttl=number | 为记录设置生存时间。
- --structured | 解析原始 DNS 记录,并以结构化格式返回它们。
7.6. 在 IdM Web UI 中删除 DNS 记录
- 要点:使用 IdM Web UI 从现有资源条目中删除特定的记录类型。此集中删除维护整个资源标识符,同时剥离不再有效的单个数据点。
- 要点:先决条件
- 列表:以 IdM 管理员身份登录。
- 列表:在 IdM Web UI 中,点击 Network Services → DNS → DNS Zones。
- 列表:单击您要从中删除 DNS 记录的区域,如 example.com。
- 列表:在 DNS Resource Records 部分,点击资源记录的名称。 选择 DNS 资源记录
- 列表:按要删除的记录类型的名称选择复选框。
- 列表:点 Delete。 删除 DNS 资源记录 现在,所选的记录类型已被删除。资源记录的其他配置保持不变。
7.7. 在 IdM Web UI 中删除整个 DNS 记录
- 要点:删除 IdM Web UI 中的整个记录条目,以清除与特定资源关联的所有数据。此操作会从一个步骤中从 DNS 区域中删除主机或服务标识符及其所有相关记录类型。
- 要点:先决条件
- 列表:以 IdM 管理员身份登录。
- 列表:在 IdM Web UI 中,点击 Network Services → DNS → DNS Zones。
- 列表:单击您要从中删除 DNS 记录的区域,如 zone.example.com。
- 列表:在 DNS Resource Records 部分,选中要删除的资源记录的复选框。
- 列表:点删除。 删除 Entire 资源记录 现在,整个资源记录已被删除。
7.8. 删除 IdM CLI 中的 DNS 记录
- 要点:运行 ipa dnsrecord-del 命令删除特定的记录,或者使用 --del-all 选项来擦除与名称关联的所有条目。此命令提供了一个直接从 IdM CLI 清理过时的 DNS 数据的有效方法。
- 要点:先决条件
- 列表:以 IdM 管理员身份登录。
- 列表:要从区中删除记录,请使用 ipa dnsrecord-del 命令,将 --recordType-rec 选项和记录值一起添加。例如,要删除 A 类型记录: $ ipa dnsrecord-del example.com www --a-rec 192.0.2.1 如果您运行没有任何选项的 ipa dnsrecord-del,命令会提示输入要删除的记录的信息。请注意,使用命令和 -del-all 选项会删除区域的所有相关记录。
- 命令/配置摘录:
$ ipa dnsrecord-del example.com www --a-rec 192.0.2.17.9. 其他资源
- 列表:使用 Ansible 管理 IdM 中的 DNS 记录
第 8 章 使用 Ansible 管理 IdM 中的 DNS 记录
- 要点:使用 Ansible 在身份管理(IdM)区域中添加、修改和删除 DNS 记录,以便在您的基础架构之间自动化 DNS 管理。
8.1. IdM 中的 DNS 记录
- 要点:了解 IdM 支持的 DNS 记录类型,包括用于主机解析和服务发现的 A、AAAA、SRV 和 PTR 记录。
- 要点:身份管理(IdM)支持许多不同的 DNS 记录类型。以下 4 个是最常用的:
- 列表:RFC 1035
- 列表:RFC 3596
- 列表:RFC 2782
- 列表:RFC 2317
- 列表:RFC 3596 - IPv6 反向区域
- 注意:注意 IPv4 地址的所有反向 DNS 查找都使用在 in-addr.arpa. 域中定义的反向条目。反向地址(人类可读形式)与常规 IP 地址正好相反,其中 in-addr.arpa. 域附加到该地址。例如,对于网络地址 192.0.2.0/24,反向区域为 2.0.192.in-addr.arpa。
- 注意:注意 使用 .ip6.arpa. 域中的区域,也可以为 IPv6 地址配置反向区域。
8.2. Common ipa dnsrecord-* 选项
- 要点:查看用于在 IdM DNS 区域中管理 A、AAAA、SRV 和 PTR 记录的命令行选项。
- 要点:在 Bash 中,您可以通过列出大括号内的逗号分隔列表中的值来定义多个条目,如 --option={val1,val2,val3}。
- 表格样本(共 3 行):
- 选项 | 描述
- --ttl=number | 为记录设置生存时间。
- --structured | 解析原始 DNS 记录,并以结构化格式返回它们。
8.3. 确保使用 Ansible 在 IdM 中存在 A 和 AAAA DNS 记录
- 要点:创建 A 和 AAAA 记录,将主机名映射到 IPv4 和 IPv6 地址,为 IdM 域中的主机启用名称解析。
- 要点:以下示例确保 idm.example.com DNS 区域中存在 host1 的 A 和 AAAA 记录。
- 列表:您已配置了 Ansible 控制节点以满足以下要求: 您在使用 Ansible 版本 2.15 或更高版本。 您已安装了 ansible-freeipa 软件包。 示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。 示例假定 secret.yml Ansible vault 存储了您的 ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
- 列表:您在使用 Ansible 版本 2.15 或更高版本。
- 列表:您已安装了 ansible-freeipa 软件包。
- 列表:示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。
- 列表:示例假定 secret.yml Ansible vault 存储了您的 ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
- 列表:目标节点(也就是在其上执行 freeipa.ansible_freeipa 模块的节点)作为 IdM 客户端、服务器或副本,是 IdM 域的一部分。
- 命令/配置摘录:
$ cd /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/dnsrecord
$ cp ensure-A-and-AAAA-records-are-present.yml ensure-A-and-AAAA-records-are-present-copy.yml8.4. 确保使用 Ansible 在 IdM 中存在 A 和 PTR DNS 记录
- 要点:创建匹配的 A 和 PTR 记录,为单个 Ansible 任务中的主机启用正向和反向 DNS 查找。
- 要点:以下示例确保 idm.example.com 区域中存在 IP 地址为 192.168.122.45 的 host1 的 A 和 PTR 记录。
- 列表:您已配置了 Ansible 控制节点以满足以下要求: 您在使用 Ansible 版本 2.15 或更高版本。 您已安装了 ansible-freeipa 软件包。 示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。 示例假定 secret.yml Ansible vault 存储了您的 ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
- 列表:您在使用 Ansible 版本 2.15 或更高版本。
- 列表:您已安装了 ansible-freeipa 软件包。
- 列表:示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。
- 列表:示例假定 secret.yml Ansible vault 存储了您的 ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
- 列表:目标节点(也就是在其上执行 freeipa.ansible_freeipa 模块的节点)作为 IdM 客户端、服务器或副本,是 IdM 域的一部分。
- 命令/配置摘录:
$ cd /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/dnsrecord
$ cp ensure-dnsrecord-with-reverse-is-present.yml ensure-dnsrecord-with-reverse-is-present-copy.yml8.5. 确保使用 Ansible 在 IdM 中存在多个 DNS 记录
- 要点:在单个 DNS 记录中添加多个 IP 地址,用于具有多个网络接口的主机或负载平衡目的。
- 要点:按照以下流程,使用 Ansible playbook 确保多个值与特定 IdM DNS 记录相关联。在以下流程中使用的示例中,IdM 管理员确保 idm.example.com DNS 区域中存在 host1 的多个 A 记录。
- 列表:您已配置了 Ansible 控制节点以满足以下要求: 您在使用 Ansible 版本 2.15 或更高版本。 您已安装了 ansible-freeipa 软件包。 示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。 示例假定 secret.yml Ansible vault 存储了您的 ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
- 列表:您在使用 Ansible 版本 2.15 或更高版本。
- 列表:您已安装了 ansible-freeipa 软件包。
- 列表:示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。
- 列表:示例假定 secret.yml Ansible vault 存储了您的 ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
- 列表:目标节点(也就是在其上执行 freeipa.ansible_freeipa 模块的节点)作为 IdM 客户端、服务器或副本,是 IdM 域的一部分。
- 命令/配置摘录:
$ cd ~/MyPlaybooks/
$ cp /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/dnsrecord/ensure-presence-multiple-records.yml ensure-presence-multiple-records-copy.yml8.6. 确保使用 Ansible 在 IdM 中存在多个 CNAME 记录
- 要点:创建 CNAME 别名记录,为同一主机提供多个名称,当服务器托管多个服务时很有用。
- 要点:Canonical Name 记录(CNAME 记录)是在域名系统(DNS)中一种资源记录类型,用于将一个域名、别名映射到另一个名称,即规范名称。
- 列表:您已配置了 Ansible 控制节点以满足以下要求: 您在使用 Ansible 版本 2.15 或更高版本。 您已安装了 ansible-freeipa 软件包。 示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。 示例假定 secret.yml Ansible vault 存储了您的 ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
- 列表:您在使用 Ansible 版本 2.15 或更高版本。
- 列表:您已安装了 ansible-freeipa 软件包。
- 列表:示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。
- 列表:示例假定 secret.yml Ansible vault 存储了您的 ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
- 列表:目标节点(也就是在其上执行 freeipa.ansible_freeipa 模块的节点)作为 IdM 客户端、服务器或副本,是 IdM 域的一部分。
- 命令/配置摘录:
$ cd /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/dnsrecord
$ cp ensure-CNAME-record-is-present.yml ensure-CNAME-record-is-present-copy.yml8.7. 使用 Ansible 在 IdM 中存在 SRV 记录
- 要点:创建 SRV 记录以公告服务位置,使客户端可以通过查询主机名、端口和优先级的 DNS 来发现服务。
- 要点:DNS 服务 (SRV) 记录定义域中可用服务的主机名、端口号、传输协议、优先级和权重。在 Identity Management(IdM)中,您可以使用 SRV 记录来定位 IdM 服务器和副本。
- 列表:它将服务的优先级设置为 10。
- 列表:它将服务的权重设置为 50。
- 列表:它将服务要使用的端口设置为 88。
- 列表:您已配置了 Ansible 控制节点以满足以下要求: 您在使用 Ansible 版本 2.15 或更高版本。 您已安装了 ansible-freeipa 软件包。 示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。 示例假定 secret.yml Ansible vault 存储了您的 ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
- 列表:您在使用 Ansible 版本 2.15 或更高版本。
- 列表:您已安装了 ansible-freeipa 软件包。
- 命令/配置摘录:
$ cd /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/dnsrecord
$ cp ensure-SRV-record-is-present.yml ensure-SRV-record-is-present-copy.yml第 9 章 使用外部 DNS 时更新 DNS 记录
- 要点:使用 nsupdate 工具或外部 DNS GUI 时,将 IdM DNS 记录保持最新状态。在拓扑更改后,更新外部服务器需要发现 IdM 服务的 DNS 记录。
9.1. 先决条件
- 列表:您的 IdM 部署使用外部 DNS 服务器,而不是集成的 DNS。
- 列表:bind-utils 软件包安装在运行 nsupdate 的系统上。
9.2. 使用 nsupdate 更新外部 DNS 记录
- 要点:生成 DNS 记录文件,以用于 nsupdate 工具,以便在 IdM 部署中拓扑更改后更新外部 DNS 记录。您还可以将命令添加到脚本中来自动化过程。
- 要点:流程
- 列表:要使用 nsupdate 的 DNS 记录生成文件,请使用带有-- out 选项的 'ipa dns-update-system-records -- dry-run 命令。--out 选项指定要生成的文件的路径: $ 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…
- 列表:其中记录要被更新的区域的自动检测。
- 列表:区域的权威服务器的自动检测。 如果您使用一个typical DNS 配置,或者缺少区委托,nsupdate 可能无法找到正确的区和服务器。在这种情况下,在生成的文件的开头添加以下选项:
- 列表:server :指定 nsupdate 向其发送记录的服务器名称或权威 DNS 服务器的端口。
- 列表:zone :指定 nsupdate 放置记录的区域的名称。
- 命令/配置摘录:
$ 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 ...]
$ 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 ...]9.3. 发送一个使用 TSIG 保护的 nsupdate 请求
- 要点:发送使用事务签名(TSIG)保护的 nsupdate 请求,以使用共享 secret 密钥更新外部 DNS 记录。
- 要点:先决条件
- 列表:您必须为 TSIG 配置您的 DNS 服务器。
- 列表:DNS 服务器及其客户端必须有共享的密钥。
- 列表:运行 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
- 列表:-k 提供 TSIG 身份验证密钥: $ nsupdate -k tsig_key.file dns_records_file.nsupdate
- 列表:-y 从密钥名称和以 Base64 编码的共享 secret 生成签名: $ nsupdate -y algorithm:keyname:secret dns_records_file.nsupdate
- 命令/配置摘录:
$ nsupdate -k tsig_key.file dns_records_file.nsupdate
$ nsupdate -y algorithm:keyname:secret dns_records_file.nsupdate9.4. 发送一个使用 GSS-TSIG 保护的 nsupdate 请求
- 要点:发送使用 GSS-TSIG 保护的 nsupdate 请求,以使用基于 Kerberos 的身份验证而不是静态共享密钥来更新外部 DNS 记录。
- 要点:先决条件
- 列表:必须为 GSS-TSIG 配置您的 DNS 服务器。
- 列表:使用允许更新记录的主体进行身份验证: $ kinit principal_allowed_to_update_records@REALM
- 列表:使用 -g 选项运行 nsupdate ,以启用 GSS-TSIG 模式: $ nsupdate -g dns_records_file.nsupdate
- 命令/配置摘录:
$ kinit principal_allowed_to_update_records@REALM
$ nsupdate -g dns_records_file.nsupdate- 注意:注意 此流程假设 Kerberos V5 协议用作 GSS-API 的技术。
9.5. 使用 GUI 更新外部 DNS 记录
- 要点:使用外部 DNS GUI 更新外部 DNS 记录,以反映 IdM 部署中的拓扑更改。
- 要点:流程
- 列表:显示您必须更新的记录: $ 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 ...]
- 列表:使用外部 DNS GUI 更新记录。
- 命令/配置摘录:
$ 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 ...]9.6. 其他资源
- 列表:在 IdM 中管理 DNS 记录
第 10 章 在 IdM 中使用规范的 DNS 主机名
- 要点:默认情况下,身份管理(IdM)禁用 DNS 规范,以防止攻击者将短名称查询重定向到被入侵的主机。通过启用此功能,客户端可以在 Kerberos 身份验证过程中将短主机名解析为其规范形式。
- 要点:例如,如果攻击者控制了域中的 DNS 服务器和一个主机,攻击者可能会导致在用户使用短主机名(如 demo )时将其解析到被入侵的主机,如 malicious.example.com。在这种情况下,用户连接到与预期不同的服务器。
10.1. 向主机主体中添加别名
- 要点:手动添加服务主体别名,以允许用户使用短名称访问主机。这个方法通过明确将短名称(如 demo)链接到 Kerberos 数据库中的完整主机主体,为全局规范提供了安全的替代选择。
- 要点:默认情况下,使用 ipa-client-install 命令注册的 Identity Management(IdM)客户端不允许在服务主体中使用短主机名。例如,在访问服务时,用户只能使用 host/demo.example.com@EXAMPLE.COM 而不是 host/demo@EXAMPLE.COM。
- 列表:IdM 客户端已安装。
- 列表:主机名在网络中是唯一的。
- 列表:以 admin 用户身份向 IdM 进行身份验证: $ kinit admin
- 列表:将别名添加到主机主体。例如,要在 demo.examle.com 主机主体中添加 demo 别名: $ ipa host-add-principal demo.example.com --principal=demo
- 命令/配置摘录:
$ kinit admin
$ ipa host-add-principal demo.example.com --principal=demo10.2. 在客户端的服务主体中启用主机名规范
- 要点:修改 /etc/krb5.conf 文件,以允许客户端通过 DNS 解析主机名,然后再请求服务票据。将 dns_canonicalize_hostname 参数设置为 true 可自动化名称解析,但需要可信的 DNS 环境。
- 要点:如果您使用主机主体别名,如 向主机主体中添加别名 中所述,则不需要启用规范。
- 列表:已安装 Identity Management(IdM)客户端。
- 列表:以 root 用户身份登录到 IdM 客户端。
- 列表:主机名在网络中是唯一的。
- 列表:将 /etc/krb5.conf 文件中的 [libdefaults] 部分中的 dns_canonicalize_hostname 参数设置为 false : [libdefaults] ... dns_canonicalize_hostname = true
- 命令/配置摘录:
[libdefaults] ... dns_canonicalize_hostname = true10.3. 使用启用了 DNS 主机名规范的主机名的选项
- 要点:在使用完全限定域名(FQDN)或依赖 Active Directory NetBIOS 兼容性时进行选择。这些选项决定了在不同 IdM 和 AD 环境中客户端请求服务主体的方式。
- 要点:如果在 /etc/krb5.conf 文件中设置 dns_canonicalize_hostname = true,则在服务主体中使用主机名时有以下选项:
- 列表:在 Identity Management(IdM)环境中,您可以在服务主体中使用完整主机名,如 host/demo.example.com@EXAMPLE.COM。
- 列表:在没有 IdM 的环境中,但如果 RHEL 主机作为 Active Directory(AD)域的成员,则不需要进一步考虑,因为 AD 域控制器(DC)自动为注册到 AD 的机器的 NetBIOS 名称创建服务主体。
- 列表:在客户端的服务主体中启用主机名规范
第 11 章 自定义 BIND 日志记录
- 要点:通过定制 BIND 服务记录活动的方式,提高系统可见性和安全性。通过自定义日志记录配置,您可以在身份管理(IdM)环境中更有效地跟踪 DNS 查询和更新。
11.1. 自定义 BIND 日志路径
- 要点:通过在 ipa-logging-ext.conf 文件中定义自定义日志记录频道,将 BIND 输出定向到特定位置。此配置控制日志文件的目标、轮转大小以及服务器记录的特定信息类别。
- 要点:流程
- 列表:打开 /etc/named/ 目录中的 ipa-logging-ext.conf 文件,并使用您的文件路径添加或修改日志记录渠道: logging { channel ipa_custom_log { file "/var/log/named/ipa_dns_queries.log" versions 3 size 10m; severity info; print-time yes; print-severity yes; print-category yes; }; category queries { ipa_custom_log; }; category update { ipa_custom_log; }; catego…
- 列表:重启 BIND 服务器: # systemctl restart named
- 命令/配置摘录:
logging { channel ipa_custom_log { file "/var/log/named/ipa_dns_queries.log" versions 3 size 10m; severity info; print-time yes; print-severity yes; print-category yes; }; category queries { ipa_custom_log; }; category update { ipa_custom_log; }; category update-security { ipa_custom_log; }; };
# systemctl restart named11.2. 为 BIND 自定义日志记录扩展 SELinux 策略
- 要点:通过更新 SELinux 策略,授予 BIND 服务权限来写入自定义目录。分配 named_log_t 上下文可确保安全框架允许在非标准路径中创建和修改文件。
- 要点:流程
- 列表:创建日志目录: # mkdir -p /var/log/named # chown named:named /var/log/named # chmod 750 /var/log/named
- 列表:将 named_log_t SELinux 上下文分配给新目录和日志文件: # semanage fcontext -a -t named_log_t "/var/log/named(/.*)?" # restorecon -Rv /var/log/named
- 列表:重启 BIND 服务器: # systemctl restart named
- 列表:显示自定义日志文件: $ tail -f /var/log/named/ipa_dns_queries.log
- 命令/配置摘录:
# mkdir -p /var/log/named
# chown named:named /var/log/named完整目录
- 管理 RHEL IdM 中集成的 DNS 服务
- 对红帽文档提供反馈
- 第 1 章 使用 Ansible playbook 在 IdM 中管理全局 DNS 配置
- 1.1. 先决条件
- 1.2. IdM 如何确保 NetworkManager 不会删除 /etc/resolv.conf 中的全局转发器
- 1.3. 使用 Ansible 确保 IdM 中存在 DNS 全局转发器
- 1.4. 使用 Ansible 确保 IdM 中没有 DNS 全局转发器
- 1.5. ipadnsconfig ansible-freeipa 模块中的 action: member 选项
- 1.6. IdM 中的 DNS 转发策略
- 1.7. 使用 Ansible playbook 确保 IdM DNS 全局配置中设置了 forward first 策略
- 1.8. 使用 Ansible playbook 确保 IdM DNS 中禁用了全局转发器
- 1.9. 使用 Ansible playbook 确保 IdM DNS 中禁用了正向和反向查找区域的同步
- 第 2 章 管理 IdM 中的 DNS 区域
- 2.1. 先决条件
- 2.2. 在 IdM Web UI 中添加主 DNS 区域
- 2.3. 在 IdM CLI 中添加主 DNS 区域
- 2.4. 在 IdM Web UI 中删除主 DNS 区域
- 2.5. 在 IdM CLI 中删除主 DNS 区域
- 2.6. DNS 配置优先级
- 2.7. 主要 IdM DNS 区的配置属性
- 2.8. 在 IdM Web UI 中编辑主 DNS 区域的配置
- 2.9. 在 IdM CLI 中编辑主 DNS 区域的配置
- 2.10. IdM 中的区域传送
- 2.11. 在 IdM Web UI 中启用区域传送
- 2.12. 在 IdM CLI 中启用区传输
- 2.13. 其他资源
- 第 3 章 使用 Ansible playbook 管理 IdM DNS 区域
- 3.1. 先决条件
- 3.2. 支持的 DNS 区类型
- 3.3. 使用 Ansible 时的主 IdM DNS 区域的配置属性
- 3.4. 使用 Ansible 在 IdM DNS 中创建主区域
- 3.5. 使用 Ansible playbook 确保 IdM 中存在一个带有多个变量的主 DNS 区域
- 3.6. 在给定 IP 地址时,使用 Ansible playbook 确保存在用于反向 DNS 查找的区域
- 3.7. 其他资源
- 第 4 章 管理 IdM 中的 DNS 位置
- 4.1. 先决条件
- 4.2. 基于 DNS 的服务发现
- 4.3. DNS 位置部署的注意事项
- 4.4. DNS 生存时间(TTL)
- 4.5. 使用 IdM Web UI 创建 DNS 位置
- 4.6. 使用 IdM CLI 创建 DNS 位置
- 4.7. 使用 IdM Web UI 将 IdM 服务器分配给 DNS 位置
- 4.8. 使用 IdM CLI 将 IdM 服务器分配给 DNS 位置
- 4.9. 将 IdM 客户端配置为使用同一位置的 IdM 服务器
- 4.10. 其他资源
- 第 5 章 使用 Ansible 管理 IdM 中的 DNS 位置
- 5.1. 基于 DNS 的服务发现
- 5.2. DNS 位置部署的注意事项
- 5.3. DNS 生存时间(TTL)
- 5.4. 使用 Ansible 确保存在 IdM 位置
- 5.5. 使用 Ansible 确保缺少 IdM 位置
- 5.6. 其他资源
- 第 6 章 在 IdM 中管理 DNS 转发
- 6.1. IdM DNS 服务器的两个角色
- 6.2. 在 IdM Web UI 中添加全局转发器
- 6.3. 在 CLI 中添加全局转发器
- 6.4. 在 IdM Web UI 中添加 DNS 转发区域
- 6.5. 在 CLI 中添加 DNS 转发区域
- 6.6. 使用 Ansible 在 IdM 中建立 DNS 全局转发器
- 6.7. 使用 Ansible 确保 DNS 全局转发器在 IdM 中被禁用
- 6.8. 使用 Ansible 确保 IdM 中存在 DNS 转发区域
- 6.9. 使用 Ansible 确保 DNS 转发区域 在 IdM 中有多个转发器
- 6.10. 使用 Ansible 确保 IdM 中禁用了 DNS 转发区
- 6.11. 使用 Ansible 确保 IdM 中没有 DNS 转发区域
- 第 7 章 在 IdM 中管理 DNS 记录
- 7.1. 先决条件
- 7.2. IdM 中的 DNS 记录
- 7.3. 在 IdM Web UI 中添加 DNS 资源记录
- 7.4. 从 IdM CLI 添加 DNS 资源记录
- 7.5. Common ipa dnsrecord-* 选项
- 7.6. 在 IdM Web UI 中删除 DNS 记录
- 7.7. 在 IdM Web UI 中删除整个 DNS 记录
- 7.8. 删除 IdM CLI 中的 DNS 记录
- 7.9. 其他资源
- 第 8 章 使用 Ansible 管理 IdM 中的 DNS 记录
- 8.1. IdM 中的 DNS 记录
- 8.2. Common ipa dnsrecord-* 选项
- 8.3. 确保使用 Ansible 在 IdM 中存在 A 和 AAAA DNS 记录
- 8.4. 确保使用 Ansible 在 IdM 中存在 A 和 PTR DNS 记录
- 8.5. 确保使用 Ansible 在 IdM 中存在多个 DNS 记录
- 8.6. 确保使用 Ansible 在 IdM 中存在多个 CNAME 记录
- 8.7. 使用 Ansible 在 IdM 中存在 SRV 记录
- 第 9 章 使用外部 DNS 时更新 DNS 记录
- 9.1. 先决条件
- 9.2. 使用 nsupdate 更新外部 DNS 记录
- 9.3. 发送一个使用 TSIG 保护的 nsupdate 请求
- 9.4. 发送一个使用 GSS-TSIG 保护的 nsupdate 请求
- 9.5. 使用 GUI 更新外部 DNS 记录
- 9.6. 其他资源
- 第 10 章 在 IdM 中使用规范的 DNS 主机名
- 10.1. 向主机主体中添加别名
- 10.2. 在客户端的服务主体中启用主机名规范
- 10.3. 使用启用了 DNS 主机名规范的主机名的选项
- 第 11 章 自定义 BIND 日志记录
- 11.1. 自定义 BIND 日志路径
- 11.2. 为 BIND 自定义日志记录扩展 SELinux 策略
