![FreeIPA:安装程序未从主机文件解析域名](https://linux22.com/image/698572/FreeIPA%EF%BC%9A%E5%AE%89%E8%A3%85%E7%A8%8B%E5%BA%8F%E6%9C%AA%E4%BB%8E%E4%B8%BB%E6%9C%BA%E6%96%87%E4%BB%B6%E8%A7%A3%E6%9E%90%E5%9F%9F%E5%90%8D.png)
我在安装时遇到了问题FreeIPA
。问题是每次我运行安装程序时,FreeIPA
应用程序都不会从主机文件中读取,而是尝试使用 DNS 查询来解析域名(我机器的主机名)。我正在使用CentOS Linux release 7.3.1611 (Core)
/etc/hosts
以下是我的文件中的条目:
[root@ipa ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.28.5 ipa.example.com ipa
条目/etc/resolve.conf
[root@ipa ~]# cat /etc/resolv.conf
# Generated by NetworkManager
search example.com
如果我在上面添加 DNS 条目,example.com
则会从该 DNS 解析域,并且会出现以下错误,正如查询外部 DNS 时所预期的那样。
Please provide a realm name [EXAMPLE.COM]:
Checking DNS domain example.com., please wait ...
ipa.ipapython.install.cli.install_tool(Server): ERROR DNS zone example.com. already exists in DNS and is handled by server(s): a.iana-servers.net., b.iana-servers.net.
因此我选择不添加 DNS,而是使用resolve.conf
如上所示的空文件。我也尝试过将设置nameserver
为我的机器 IP,但没有成功。
为了让它强制从我的hosts
文件中读取,我将nsswitch
配置更改为仅从hosts
文件中读取,但这仍然是徒劳的。请参阅下面的我的/etc/nsswitch
配置。
[root@ipa ~]# grep hosts /etc/nsswitch.conf
hosts: files
运行安装程序
[root@ipa ~]# ipa-server-install --setup-dns -a <passwd> -p <passwd>
现在使用当前配置返回以下内容:
Please provide a realm name [EXAMPLE.COM]:
Checking DNS domain example.com., please wait ...
Please provide the IP address to be used for this host name:
因此,hosts 文件再次被忽略,安装程序要求输入域名的 IP。
hostname
以下是一些显示IP
解决成功的测试
[root@ipa ~]# ping ipa.example.com
PING ipa.example.com (192.168.28.5) 56(84) bytes of data.
64 bytes from ipa.example.com (192.168.28.5): icmp_seq=1 ttl=64 time=0.126 ms
^C
--- ipa.example.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.126/0.126/0.126/0.000 ms
[root@ipa ~]# getent hosts ipa.example.com
192.168.28.5 ipa.example.com ipa
[root@ipa ~]# telnet ipa.example.com
Trying 192.168.28.5...
抱歉发了这么长的帖子,我被这个问题难住了,不知道我漏掉了什么。如果能就这个问题提供任何帮助,我将不胜感激。谢谢。
PS:该设置不适用于实时环境,仅用于测试目的。
答案1
实际上,设置 IPA 服务器最终取代现有正在运行的域名 DNS 服务器是一个合法用例。“去购买新域名”的答案无法解决潜在的技术问题。
可以通过指定来处理这种情况ipa-server-install --allow-zone-overlap
,记录这里。
答案2
您不能使用其他人控制的域名。如果您尝试这样做,您将收到此处显示的错误。
相反,使用您自己的域名的子域名。如果您没有域名,可以从众多域名注册商那里以非常便宜的价格获得一个。
答案3
测试环境中每个人都使用的标准域名“ipa.example.com”,但遇到了同样的问题。您无需为测试实验室购买任何东西,只需将域名更改为某个独特的域名即可。当然,请将其放入:/etc/hosts /etc/resolve.conf(您可以将 8.8.8.8 作为名称服务器)希望对您有所帮助。问候