前置域名搜索是覆盖而不是前置

前置域名搜索是覆盖而不是前置

我有一个在 AWS 上运行的 Linux 主机,我想将域添加到搜索中。默认情况下,resolv.conf 文件如下所示

[ec2-user@ip- ~]$ cat /etc/resolv.conf
; generated by /sbin/dhclient-script
search us-west-2.compute.internal

我尝试将以下行添加到/etc/dhcp/dhclient.conf

prepend domain-search "ux.corp.local";

生成的 resolv.conf 文件(重新启动网络后)如下所示。

[ec2-user@ip-172-31-30-39 ~]$ cat /etc/resolv.conf
; generated by /sbin/dhclient-script
search ux.corp.local.

显然它没有添加前缀(我也尝试了添加)。它也没有正确输入域名(参见末尾的句点)。

如何在 resolv.conf 中添加或添加要搜索的域名?

答案1

显然它没有添加到前面(我也尝试添加)

请注意用于此的 DHCP 选项:(domain-name包含一个域后缀,也用于略有不同的目的)和domain-search(包含多个后缀)。

我怀疑你的当前的值“us-west-2.compute.internal”实际上来自选项domain-name,并且domain-search实际上是空的。因此,当您在其前面添加或附加内容时,dhclient 会发现两个选项都已设置,并会忽略它domain-name(因为它比较旧且限制较多)。

因此,您需要手动列出两个域,或者更改 resolv.conf 生成步骤。例如,许多发行版使用resolvconf(又名 openresolv)作为中间工具,该工具从多个来源生成 resolv.conf,并且它支持search_domains_append=在 DHCP 数据之上添加自定义后缀的选项。

它也没有正确地输入域名(请参阅末尾的句点)。

不,这仍然是正确的。结尾的句点表示完全合格的域名(就像前导斜杠表示绝对路径一样)。当您尝试解析域名时没有有尾随句点,操作系统可能会尝试将所有搜索后缀附加到它。(是的,即使名称已经由多个部分组成!)

当然,在搜索列表中本身,结尾的点绝对不会改变任何东西。但由于搜索列表的理念是“如果您附加此列表,您将获得一个完全合格的域”,因此有些人认为将完全合格的后缀放在 中是合乎逻辑的search。(或者他们可能只是在吹毛求疵。)

相关内容