当域有一个点时,resolv.conf 搜索不再起作用

当域有一个点时,resolv.conf 搜索不再起作用

这很奇怪。我有2台CentOS7服务器。一台较旧,一台是最近建造的,它们具有相同的resolv.conf文件。

$ cat /etc/resolv.conf
search prod.gb2.example.com gb2.example.com example.com hosts.example.com
nameserver xx.yy.zz.1
nameserver xx.yy.zz.2 

在较旧的版本上,如果我尝试查找 中的域example.com,如果它包含一个点,则它会起作用:

[oldhost ~]$ host -v proxy.gb1
Trying "proxy.gb1"
Received 102 bytes from xx.yy.zz.1#53 in 0 ms
Trying "proxy.gb1.prod.gb2.example.com"
Trying "proxy.gb1.gb2.example.com"
Trying "proxy.gb1.example.com"   -> This leads to a match I'm looking for
[newhost ~]$ host -v proxy.gb1
Trying "proxy.gb1"
Host proxy.gb1 not found: 3(NXDOMAIN)
Received 102 bytes from xx.yy.zz.1#53 in 0 ms
Received 102 bytes from xx.yy.zz.2#53 in 0 ms

看起来第二台主机甚至根本不会尝试执行域搜索,除非我从中删除.

添加ndots:2to/etc/resolv.conf似乎确实有帮助,但这会阻止它尝试将其作为绝对的第一个查找,所以它并不是真正可取的。

如果我有一个点,有人知道是什么导致第二台服务器忽略搜索域吗?

答案1

我不知道在 centos 7 中什么会导致您的问题,但根据 RHEL 支持解决方案,您描述的行为(这是 RHEL 7 的更改)显然是故意的https://access.redhat.com/solutions/6699861,遵循 ICANN 公告:

在 RHEL8 中,这是预期行为,即使该行为与 glibc 和 RHEL7 不同。这是遵循 ICANN SSAC 关于 DNS“搜索列表”处理的建议SAC064

相关内容