1.5. IdM 的主机名和 DNS 要求

以下概述了服务器和副本系统的主机名和 DNS 要求,以及如何验证系统是否满足要求。

这些要求适用于所有身份管理(IdM)服务器,那些带有集成 DNS 的服务器和没有集成 DNS 的服务器。

警告

DNS 记录对于几乎所有 IdM 域功能至关重要,包括运行 LDAP 目录服务、Kerberos 和 Active Directory 集成。请非常小心,并确保:

  • 您有一个经过测试且可以正常工作的 DNS 服务
  • 该服务已被正确配置

这个要求适用于带有不带有集成 DNS 的 IdM 服务器。

验证服务器主机名

主机名必须是完全限定域名,如 server.idm.example.com

重要

不要使用单标签域名,例如 .company : IdM 域必须由一个或多个子域和一个顶级域组成,如 example.comcompany.example.com

完全限定域名必须满足以下条件:

  • 它是一个有效的 DNS 名称,即只允许数字、字母字符和连字符(-)。主机名中的其他字符(如下划线(_))会导致 DNS 失败。
  • 都是小写。不允许使用大写字母。
  • 它无法解析回送地址。它必须解析系统的公共 IP 地址,而不是 127.0.0.1

要验证主机名,在您要安装的系统中使用 hostname 工具:

# hostname
server.idm.example.com

hostname 的输出不能是 localhostlocalhost6

验证转发和反向 DNS 配置
  1. 获取服务器的 IP 地址。

    1. ip addr show 命令显示 IPv4 和 IPv6 地址。在以下示例中,相关的 IPv6 地址为 2001:DB8::1111,因为其范围是全局的:

      [root@server ~]# ip addr show
      ...
      2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
      	link/ether 00:1a:4a:10:4e:33 brd ff:ff:ff:ff:ff:ff
      	inet 192.0.2.1/24 brd 192.0.2.255 scope global dynamic eth0
      		valid_lft 106694sec preferred_lft 106694sec
      	inet6 2001:DB8::1111/32 scope global dynamic
       		valid_lft 2591521sec preferred_lft 604321sec
      	inet6 fe80::56ee:75ff:fe2b:def6/64 scope link
      	       valid_lft forever preferred_lft forever
      ...
  2. 使用 dig 工具证正向 DNS 配置。

    1. 运行 dig +short server.idm.example.com A 命令。返回的 IPv4 地址必须与 ip addr show 返回的 IP 地址匹配:

      [root@server ~]# dig +short server.idm.example.com A
      192.0.2.1
    2. 运行 dig +short server.idm.example.com AAAA 命令。如果返回一个地址,它必须与 ip addr show 返回的 IPv6 地址匹配:

      [root@server ~]# dig +short server.idm.example.com AAAA
      2001:DB8::1111
      注意

      如果 dig 没有返回 AAAA 记录的任何输出,那么这并不表示配置不正确。没有输出只表示系统在 DNS 中没有配置 IPv6 地址。如果您不打算在网络中使用 IPv6 协议,则可以继续进行安装。

  3. 验证反向 DNS 配置(PTR 记录)。使用 dig 工具并添加 IP 地址。

    如果以下命令显示不同的主机名或没有主机名,则反向 DNS 配置不正确。

    1. 运行 dig +short -x IPv4_address 命令。输出必须显示服务器主机名。例如:

      [root@server ~]# dig +short -x 192.0.2.1
      server.idm.example.com
    2. 如果上一步中的 dig +short -x server.idm.example.com AAAA 命令返回 IPv6 地址,请使用 dig 查询 IPv6 地址。输出必须显示服务器主机名。例如:

      [root@server ~]# dig +short -x 2001:DB8::1111
      server.idm.example.com
      注意

      如果上一步中的 dig +short server.idm.example.com AAAA 没有显示任何 IPv6 地址,则查询 AAAA 记录不会输出任何内容。在这种情况下,这是正常的行为,不代表配置不正确。

      警告

      如果反向 DNS(PTR 记录)搜索返回多个主机名,那么 httpd 和其他与 IdM 关联的软件可能会显示无法预测的行为。红帽强烈建议每个 IP 只配置一个 PTR 记录。

验证 DNS 正向解析器的标准合规性(仅集成DNS需要)

确保您要与 IdM DNS 服务器一起使用的所有 DNS 正向解析器均符合 DNS(EDNS0)扩展机制和 DNS 安全扩展扩展(DNSSEC)标准。要做到这一点,请分别检查每个正向解析器的以下命令的输出:

$ dig +dnssec @IP_address_of_the_DNS_forwarder . SOA

命令显示的预期输出包含以下信息:

  • 状态:NOERROR
  • 标记:ra
  • EDNS 标志: do
  • RRSIG 记录必须在 ANSWER 部分中存在

如果输出中缺少任何这些项,请检查您的 DNS 正向解析器文档,验证是否支持并启用了 EDNS0 和 DNSSEC。在最新版本的 BIND 服务器中,dnssec-enable yes; 选项必须在 /etc/named.conf 文件中设置。

dig 生成的预期输出示例:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48655
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 4096

;; ANSWER SECTION:
. 31679 IN SOA a.root-servers.net. nstld.verisign-grs.com. 2015100701 1800 900 604800 86400
. 31679 IN RRSIG SOA 8 0 86400 20151017170000 20151007160000 62530 . GNVz7SQs [...]
验证 /etc/hosts 文件

验证 /etc/hosts 文件是否满足以下条件之一:

  • 该文件不包含主机的条目。它只列出主机的 IPv4 和 IPv6 localhost 条目。
  • 该文件包含主机条目,并且文件满足以下所有条件:

    • 前两个条目是 IPv4 和 IPv6 localhost 条目。
    • 下一个条目指定 IdM 服务器 IPv4 地址和主机名。
    • IdM 服务器的 FQDN 位于 IdM 服务器的短名称之前。
    • IdM 服务器主机名不是 localhost 条目的一部分。

    以下是正确配置的 /etc/hosts 文件示例:

127.0.0.1   localhost localhost.localdomain \
localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain \
localhost6 localhost6.localdomain6
192.0.2.1	server.idm.example.com	server
2001:DB8::1111	server.idm.example.com	server