这很奇怪。我有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:2
to/etc/resolv.conf
似乎确实有帮助,但这会阻止它尝试将其作为绝对的第一个查找,所以它并不是真正可取的。
如果我有一个点,有人知道是什么导致第二台服务器忽略搜索域吗?
答案1
我不知道在 centos 7 中什么会导致您的问题,但根据 RHEL 支持解决方案,您描述的行为(这是 RHEL 7 的更改)显然是故意的https://access.redhat.com/solutions/6699861,遵循 ICANN 公告:
在 RHEL8 中,这是预期行为,即使该行为与 glibc 和 RHEL7 不同。这是遵循 ICANN SSAC 关于 DNS“搜索列表”处理的建议SAC064。