Red Hat Training

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

33.6. 管理 DNS 转发

DNS 转发会影响 DNS 查询的回答方式.默认情况下,与 IdM 集成的 BIND 服务配置为充当权威和递归 DNS 服务器。
当 DNS 客户端查询属于 IdM 服务器具有权威的 DNS 区域的名称时,BIND 会回复配置区域中包含的数据。权威数据始终优先于任何其他数据。
当 DNS 客户端查询 IdM 服务器不是权威的名称时,BIND 会尝试使用其他 DNS 服务器解析查询。如果没有定义转发器,BIND 会询问 Internet 上的根服务器,并使用递归解析算法回答 DNS 查询。
在某些情况下,不建议让 BIND 直接联系其他 DNS 服务器,并根据 Internet 上的可用数据执行递归。这些情况包括:
  • 拆分 DNS 配置,也称为 DNS 视图 配置,其中 DNS 服务器向不同的客户端返回不同的答案。拆分 DNS 配置是典型的环境,即部分 DNS 名称在公司网络内可用,但不从外部提供。
  • 防火墙限制对 Internet 上 DNS 的访问的配置。
  • 在 DNS 级别上带有集中过滤或日志记录的配置。
  • 配置,它转发到本地 DNS 缓存,这有助于优化网络流量。
在这种配置中,BIND 不会对公共 Internet 使用完全递归。相反,它使用另一个 DNS 服务器(所谓的 转发器 )来解析查询。当 BIND 配置为使用转发器时,查询和答案会在 IdM 服务器和转发器之间来回转发,IdM 服务器则充当非权威数据的 DNS 缓存。

forward 策略

IdM 支持 第一个唯一的 标准 BIND 转发策略,以及 none IdM 特定的转发策略。
转发第一(默认)
DNS 查询转发到配置的转发器。如果查询因为服务器错误或超时而失败,BIND 将使用 Internet 上的服务器返回递归解析。forward first 策略是默认策略。它适用于流量优化。
仅转发
DNS 查询转发到配置的转发器。如果查询因为服务器错误或超时而失败,BIND 会向客户端返回错误。对于采用拆分 DNS 配置的环境,建议使用 forward only 策略。
无:转发禁用
DNS 查询不会被转发。禁用转发仅作为全局转发配置的特定区域覆盖。这个选项等同于在 BIND 配置中指定一个空转发器列表。

转发不会合并 IdM 和其他 DNS 服务器中的数据

转发无法用于将 IdM 中的数据与其他 DNS 服务器的数据组合。您只能在 IdM DNS 中转发对 master 区的特定子区的查询:请参阅 “IdM DNS Master 区域中的区委派”一节
默认情况下,如果查询的 DNS 名称属于 IdM 服务器对其具有权威的区域,BIND 服务不会将查询转发到其他服务器。在这种情况下,如果无法在 IdM 数据库中找到查询的 DNS 名称,则会返回 NXDOMAIN 回答。不使用转发。

例 33.9. Scenario 示例

IdM 服务器对 test.example 具有权威。DNS 区域.BIND 配置为将查询转发到 IP 地址 192.0.2.254 的 DNS 服务器。
客户端发送对 不存在.test.example的查询时。DNS 名称,BIND 检测到 IdM 服务器对 test.example. 区域具有权威,并且不会将查询转发到 192.0.2.254. 服务器。因此,DNS 客户端会收到 NXDomain 回答,通知用户查询的域不存在。
IdM DNS Master 区域中的区委派
可以在 IdM DNS 中转发对 master 区的特定子区的查询。例如,如果 IdM DNS 处理区域 idm.example.com,您可以将 sub_zone1.idm.example.com 子区的颁发机构委派给不同的 DNS 服务器。要实现此行为,您需要按上文所述使用转发以及将子区域委派给其他 DNS 服务器的名称服务器记录。在以下示例中,sub_zone1 是子区,192.0.2.1 是子区委托给的 DNS 服务器的 IP 地址:
$ ipa dnsrecord-add idm.example.com. sub_zone1 --ns-rec=192.0.2.1
添加 forward 区域后类似如下:
$ ipa dnsforwardzone-add  sub_zone1.idm.example.com. --forwarder 192.0.2.1

33.6.1. 配置全局转发器

全局转发 器是 DNS 服务器,用于解析 IdM 服务器不具有权威的所有 DNS 查询,如 第 33.6 节 “管理 DNS 转发” 所述。
管理员可以通过以下两种方式为全局转发配置 IP 地址和转发策略:
使用 ipa dnsconfig-mod 命令或 IdM Web UI
使用这些原生 IdM 工具设置的配置会立即应用到所有 IdM DNS 服务器。如 第 33.3 节 “DNS 配置优先级” 所述,全局 DNS 配置的优先级高于 /etc/named.conf 文件中定义的本地配置。
通过编辑 /etc/named.conf 文件
在每个 IdM DNS 服务器上手动编辑 /etc/named.conf,允许在每个服务器上使用不同的全局转发器和策略。请注意,在更改 /etc/named.conf 后,必须重启 BIND 服务。

在 Web UI 中配置 Forwarders

在 IdM Web UI 中定义 DNS 全局配置:
  1. 单击 Network Services 选项卡,然后选择 DNS 子选项卡,后跟 DNS Global Configuration 部分。
  2. 要添加新的全局转发器,请点 Add 并输入 IP 地址。要定义新的转发策略,请从可用策略列表中选择它。

    图 33.28. 在 Web UI 中编辑全局 DNS 配置

    在 Web UI 中编辑全局 DNS 配置
  3. 单击 Save 以确认新配置。

从命令行配置转发器

要从命令行设置全局转发器的全局列表,请使用 ipa dnsconfig-mod 命令。它通过编辑 LDAP 数据来编辑 DNS 全局配置。ipa dnsconfig-mod 命令及其选项会一次性影响所有 IdM DNS 服务器,并覆盖任何本地配置。
例如,要使用 ipa dnsconfig-mod 编辑全局转发器列表:
[user@server ~]$ ipa dnsconfig-mod --forwarder=192.0.2.254
  Global forwarders: 192.0.2.254

33.6.2. 配置转发区

转发区域不包含任何权威数据,并指示名称服务器仅将属于特定区域的查询转发到配置的转发器。
重要
除非绝对需要,否则不要使用 forward 区域。限制对覆盖全局转发配置的使用。在大多数情况下 ,不需要只配置全局转发第 33.6.1 节 “配置全局转发器” 描述)和转发区。
forward zone 是一个非标准的解决方案,使用它们可能会导致意外和有问题的行为。在创建新的 DNS 区域时,红帽建议始终使用 NS 记录使用标准 DNS 委派,并避免转发区域。
有关支持的转发策略的详情请参考 “forward 策略”一节
有关 BIND 服务的详情,请查看 Red Hat Enterprise Linux 网络指南,BIND 9 管理员参考手册,包含在 /usr/share/doc/bind-version_number/ 目录或外部源 [5] .

在 Web UI 中配置转发区

要在 Web UI 中管理转发区域,请单击 Network Services 选项卡,然后选择 DNS 子选项卡,后跟 DNS Forward Zones 部分。

图 33.29. 管理 DNS 转发区域

管理 DNS 转发区域
DNS Forward Zones 部分中,管理员可以处理有关转发区域的所有必要操作:显示当前转发区域列表、添加新的转发区域、删除区、显示转发区,允许每个转发区修改转发器和转发策略,以及禁用或启用转发区域。

从命令行配置转发区

要从命令行管理转发区域,请使用下面描述的 ipa dnsforwardzone the 命令。
注意
ipa dnsforwardzone the 命令的行为与用于管理 master 区的 ipa dnszone the 命令一致。
ipa dnsforwardzone the 命令接受几个选项,特别是 --forwarder--forward-policy--name-from-ip 选项。有关可用选项的详情,请参考 表 33.1 “zone 属性” 或添加 --help 选项运行命令,例如:
ipa dnsforwardzone-add --help
添加转发区
使用 dnsforwardzone-add 命令添加新的转发区域。如果转发策略没有设置为 none,则需要至少指定一个转发器。
[user@server ~]$ ipa dnsforwardzone-add zone.test. --forwarder=172.16.0.1 --forwarder=172.16.0.2 --forward-policy=first

Zone name: zone.test.
Zone forwarders: 172.16.0.1, 172.16.0.2
Forward policy: first
修改转发区
使用 dnsforwardzone-mod 命令修改转发区域。如果转发策略不是任何,则需要至少指定一个转发器。可以通过多种方式进行修改。
[user@server ~]$ ipa dnsforwardzone-mod zone.test. --forwarder=172.16.0.3

Zone name: zone.test.
Zone forwarders: 172.16.0.3
Forward policy: first
[user@server ~]$ ipa dnsforwardzone-mod zone.test. --forward-policy=only

Zone name: zone.test.
Zone forwarders: 172.16.0.3
Forward policy: only
显示转发区域
使用 dnsforwardzone-show 命令显示指定转发区域的信息。
[user@server ~]$ ipa dnsforwardzone-show zone.test.

Zone name: zone.test.
Zone forwarders: 172.16.0.5
Forward policy: first
查找转发区域
使用 dnsforwardzone-find 命令查找指定的转发区域。
[user@server ~]$ ipa dnsforwardzone-find zone.test.

Zone name: zone.test.
Zone forwarders: 172.16.0.3
Forward policy: first
----------------------------
Number of entries returned 1
----------------------------
删除转发区
使用 dnsforwardzone-del 命令删除指定的转发区域。
[user@server ~]$ ipa dnsforwardzone-del zone.test.

----------------------------
Deleted forward DNS zone "zone.test."
----------------------------
启用和禁用转发区域
使用 dnsforwardzone-enablednsforwardzone-disable 命令来启用和禁用转发区。请注意,转发区会被默认启用。
[user@server ~]$ ipa dnsforwardzone-enable zone.test.

----------------------------
Enabled forward DNS zone "zone.test."
----------------------------
[user@server ~]$ ipa dnsforwardzone-disable zone.test.

----------------------------
Disabled forward DNS zone "zone.test."
----------------------------
添加和删除权限
使用 dnsforwardzone-add-permissiondnsforwardzone-remove-permission 命令来添加或删除系统权限。
[user@server ~]$ ipa dnsforwardzone-add-permission zone.test.

---------------------------------------------------------
Added system permission "Manage DNS zone zone.test."
---------------------------------------------------------
  Manage DNS zone zone.test.
[user@server ~]$ ipa dnsforwardzone-remove-permission zone.test.

---------------------------------------------------------
Removed system permission "Manage DNS zone zone.test."
---------------------------------------------------------
  Manage DNS zone zone.test.


[5] 如需更多信息,请参阅 BIND 9 配置参考